【目标检测】Faster RCNN基本思想和网络结构以及论文补充

文章目录

      • 一、Faster RCNN简介
      • 二、Faster RCNN算法流程
        • 1.算法流程
        • 2.Faster RCNN 网络的基本结构
        • 3.RPN网络(Region Proposal Network)
          • 3.1RPN网络结构
          • 3.2 anchor的定义
          • 3.3 RPN生成proposal的过程
        • 4.Faster RCNN框架
      • 三、论文解析补充
        • 1.fastrcnn分配两种anchor
        • 2.三种训练网络
        • 3.交替训练的过程
        • 4.感受野的问题
        • 5.小知识点

一、Faster RCNN简介

Faster RCNN 是作者 Ross Girshick 继 RCNN 和 Fast RCNN后的又一力作。同样使用 VGG16作为网络的backbone,推理速度在GPU上达到5fps(包括候选区域的生成),准确率也有进一步的提升。在2015年的ILSVRC以及cOco竞赛中获得多个项目的第一名。

二、Faster RCNN算法流程

Faster RCNN = RPN + Fast RCNN
RPN 是指 Region Proposal Network,建议区域生成网络。 Faster RCNN 中用 RPN 来代替了 Fast RCNN 中的SS算法。

1.算法流程

(1)将图像输入网络得到相应的特征图。

(2)使用RPN网络生成候选框,将RPN生成的候选框投影到特征图上获得ROI区域的特征矩阵。

(3)将每个ROI区域的特征矩阵通过 ROI pooling 层缩放到7x7大小的特征图,接着将特征图展平为vector,之后通过一系列全连接层得到预测结果。

2.Faster RCNN 网络的基本结构

【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第1张图片

3.RPN网络(Region Proposal Network)

3.1RPN网络结构

【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第2张图片
图中的 conv feature map 是图像输入网络得到相应的特征图,通过sliding window处理之后产生一个256-d的一维向量。该向量通过两个全连接层,分别输出分类概率scores和边界框回归参数coordinates,其中k是指 k个 anchor boxes,2k个scores是每个 anchor box 分别为前景和背景的概率(注意这里只区分前景和背景,所有的类别都归为前景),4k个coordinates是因为每个anchor box 有四个参数。
注意
2k cls的2分别代表是背景不是背景
4k reg的4代表中心坐标、宽、高

3.2 anchor的定义

anchor不是候选框(Proposal),后面会提到二者的区别。
【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第3张图片
我们在特征图中找一个点,就可以在原图中找到对应的一个像素点,以该像素点为中心,画出9个不同大小和长宽比的框,称为anchor 。如下图所示,这些anchor里面可能包含目标,也可能没有目标。因为我们在一张图中想找的的目标的大小和长宽比并不是固定的,所以这里用9个不同大小和长宽比的anchor来进行预测。
注意
这里要做特征图向原图的映射
如果找?
x = 原图的宽度/特征图的宽度(取整)* 3 (x = 步距 * 滑动窗口大小)
y = 原图的高度/特征图的高度(取整)* 3 (y = 步距 * 滑动窗口大小)
为什么是9个anchor呢?
论文中给出了每个anchor的面积和长宽比:

所以特征图中的每个位置在原图中都会生成 33=9 个anchor,如下图所示,蓝色的三个anchor是面积为128128的,红色是面积为256256的,绿色是512512的。
【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第4张图片
如何计算感受野?
【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第5张图片
论文细节
【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第6张图片

3.3 RPN生成proposal的过程

对于一张 1000x600x3 的图像(三通道),用3x3的卷积核进行特征提取得到60x40的特征图,则共有 60x40x9 (约2w个)个anchor。忽略超过图片边界的 anchor 后,剩下约 6000 个anchor。

对于这6000 个 anchor,通过RPN生成的边界框回归参数将每个 anchor 调整为proposal(前面提到了每个anchor经过RPN都输出2个概率和4个边界框回归参数),这里就能看到anchor和proposal的区别。这个过程就是 RPN 生成候选框的过程。

RPN 生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩下 2000 个候选框。

4.Faster RCNN框架

【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第7张图片
Faster RCNN 在Fast RCNN的基础上更进一步,将候选框生成也融入到CNN网络中,使得 候选框生成、特征提取、候选框分类、候选框边界回归这四大部分都结合在一个CNN网络中,避免了分步训练,实现了真正端到端的目标检测。

三、论文解析补充

1.fastrcnn分配两种anchor

1)与目标框相交最大的anchor 2)IOU>0.7的anchor

2.三种训练网络

1)交替训练本篇论文使用的就是交替训练
2)近似联合训练存在的问题:RPN在反向传播时,不能计算偏导数。所以求出来的值只是一个近似值。
3)非近似联合训练

3.交替训练的过程

1)单独训练RPN网络
2)单独训练RCNN网络,并且使用第1步训练的RPN网络
3)使用RCNN网络初始化RPN网络(这里固定了卷积层,仅仅微调了RPN独有的结构)
4)固定了卷积层,仅仅微调了RCNN独有的结构
【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第8张图片

4.感受野的问题

ZF感受野171
VGG感受野228
【目标检测】Faster RCNN基本思想和网络结构以及论文补充_第9张图片
为什么能预测的比感受野更大?
根据可见部分,可以粗略预测(人们在看东西的时候,也可以根据已知推未知)

5.小知识点

1)coco数据集上小目标图像比较多
2)RPN上只跑了300个候选区域(通过实验所得)

你可能感兴趣的:(目标检测,计算机视觉,深度学习)