当前位置: 首页 > backend >正文

Python----目标检测(《Fast R-CNN》和Fast R-CNN)

一、《Fast R-CNN》

1.1、基本信息

  • 作者:Ross Girshick

  • 机构:Microsoft Research

  • 发表时间:2015年

  • 论文链接:arXiv:1504.08083

  • 代码开源:GitHub仓库(MIT License)

1.2、主要内容

Fast R-CNN是一种高效的基于区域提议的卷积神经网络(R-CNN)改进方法,主要解决了R-CNN和SPPnet在训练和检测速度上的瓶颈问题,同时提升了检测精度。核心创新点包括:

  1. 单阶段训练:通过多任务损失函数(分类+边界框回归)实现端到端训练,取代了R-CNN的多阶段流程(如SVM分类器、特征缓存等)。

  2. RoI池化层:将不同大小的候选区域(RoI)统一为固定尺寸的特征图,共享卷积计算,显著加速训练和测试。

  3. 全网络微调:支持更新所有网络层(包括卷积层),而SPPnet无法更新卷积层。

  4. 性能提升

    • 训练速度:VGG16比R-CNN快9倍,比SPPnet快3倍。

    • 测试速度:比R-CNN快213倍(使用截断SVD加速全连接层)。

    • 检测精度:在PASCAL VOC 2012上mAP达到66%(R-CNN为62%)。

1.3、影响和作用

  • 技术贡献

    • 推动了目标检测从多阶段流水线向端到端训练的演进,为后续Faster R-CNN(引入区域提议网络RPN)奠定了基础。

    • 提出的RoI池化层成为后续检测模型(如Mask R-CNN)的标准组件。

  • 实际应用

    • 高效的训练和检测速度使其更适合实际部署,尤其在需要处理大量候选框的场景。

    • 开源实现促进了目标检测研究的快速发展。

  • 后续影响

    • 启发了更快的模型(如Faster R-CNN、YOLO、SSD)和更复杂的任务(如实例分割)。

    • 证明了深度卷积网络直接学习尺度不变性的能力,减少了对多尺度图像金字塔的依赖。

二、实现过程

        1. 候选区域生成:使用选择性搜索或其他方法生成约2000个候选区域 (使用Selective Search方法)。

        2. 获得特征矩阵:将原始的整幅图像输入网络得到相应的特征图,将SS 算法生成的候选框映射到特征图上获得相应的特征矩阵。

        3. 预测:将每个特征矩阵通过 RoI(Region of Interest)池化层缩放到 7x7大小的特征图,Fast R-CNN通过全连接层对每个RoI进行分类和边 界框回归。分类任务用于确定RoI中是否包含感兴趣的对象类别,而回 归任务则用于精确定位物体的边界框 ( Fast R-CNN通过整合所有组件 (特征提取、RoI池化、分类、回归)为一个网络模型,实现了端到端 的训练,简化了整体流程。 )。

2.1、获得特征矩阵

        在R-CNN中,需要对2000个候选区域都进行CNN,即进行2000次CNN计 算,在Fast R-CNN中,将整张图送入到CNN(使用的VGGNet-16)网络, 然后从特征图上提取相应的候选区域。

2.2、RoI池化层

将49个区域每一个区域都进行池化操作:

        最大池化通常用于提取每个子区域中最显著的特征值,以保留最重要的 信息(使用的这个)。

        平均池化则计算每个子区域中特征的平均值,用于保留更全局的信息。

就得到一个7 x 7 x channels的张量。

2.3、预测-分类器

        Softmax之前的FC层输出节点有N+1个节点,经过Softmax之后,得到概 率结果,例如Pascal VOC就是20类+1个背景。

        顺序是背景、第一类、...、第二十类。

2.4、预测-回归器

        与RCNN的回归器是一样的,只是回归参数是由FC网络训练得到,即20*4 的矩阵。

 2.5、损失函数

 Fast R-CNN的损失函数是同时用于分类和边界框回归的联合损失函数。其 定义为:

        Fast R-CNN的损失函数同时考虑了分类任务和回归任务:

                1. 分类损失:通过交叉熵损失函数来度量模型预测的类别与真实类别之间 的差异。这个损失引导模型进行正确的分类。

                2. 回归损失:通过平滑L1损失函数来度量模型预测的边界框与真实边界 框之间的差异。这个损失引导模型进行边界框的精确回归调整。

        通过联合这两部分损失,Fast R-CNN可以同时优化目标检测中的分类和定 位任务,使得模型能够更准确地识别目标类别并精确定位目标边界。超参数 用于调节分类损失和回归损失的相对重要性,通常通过实验设置一个 合适的值。 

三、 边框回归流程

四、 回归损失

训练样本偏移v的构造

x/y为什么要加缩放因子?

 

http://www.xdnf.cn/news/10089.html

相关文章:

  • 如何成为一名优秀的产品经理
  • 2359.找到离给定两个节点最近的节点
  • AC220V整流滤波电路Multisim仿真
  • C++八股 —— 手撕线程池
  • 深入浅出:Spring IOCDI
  • MongoTemplate 中如何构建复杂的查询条件 (Criteria API)?
  • 十一、【核心功能篇】测试用例管理:设计用例新增编辑界面
  • Hive中资源优化方法的详细说明
  • 十二、【核心功能篇】测试用例列表与搜索:高效展示和查找海量用例
  • Python Day37 学习
  • RabbitMQ vs MQTT:深入比较与最新发展
  • 堆遇到的stl与理论基础
  • CSS Day07
  • 主流电商平台的反爬机制解析
  • 从0开始学习R语言--Day12--泊松分布
  • 智能教育个性化学习路径规划系统实战指南
  • vue的监听属性watch的详解
  • Oracle数据仓库在医院的应用场景
  • 在CentOS7上使用tree查看目录树
  • 通过回调函数注册定时器触发事件
  • Hive的存储格式如何优化?
  • PX30 GPIO驱动开发系统集成完整流程指南
  • 数据结构 --链表
  • Css样式中设置gap: 12px以后左右出现距离问题解析
  • 什么是内存分页和分段?
  • 【Netty系列】Reactor 模式 1
  • 如何在 Vue.js 中集成 Three.js —— 创建一个旋转的 3D 立方体
  • keepalived定制日志bug
  • SI24R05国产低功耗2.4GHz+125K低频唤醒SoC人员定位/畜牧业牛羊定位/资产管理定位方案芯片
  • 什么是 SQL 注入?如何防范?