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

发布于:2025-06-02 ⋅ 阅读:(23) ⋅ 点赞:(0)

一、《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为什么要加缩放因子?

 


网站公告

今日签到

点亮在社区的每一天
去签到