一、背景
继R-CNN和Fast-RCNN提出后,Faster-RCNN的提出进一步提高了目标检测模型的速度和精度,其提出的背景:
基于选择搜索算法产生候选区域的耗时在整个推理阶段的时间占比较高,为了减少候选区域的生成时间,Faster-RCNN迈出了里程碑式的一步,提出了使用RPN(候选区域网络)来生成候选区域,并首次实现了端到端的训练。
二、整体架构
Faster-R-CNN的架构如下。
据此架构,从输入到输出的处理流程如下:
1、 通过预训练卷积网络(比如ImageNet、VGG)等的卷积层,计算输入图像的特征映射;
2、得到的特征映射分别作为Fast-R-CNN和RPN的输入,这是为了共享特征映射;
3、RPN通过在输入的特征映射上进行训练,输出2000个候选区域;
4、Fast-R-CNN使用RPN产生的2000个候选区域进行分类和边界框回归,并微调预训练网络;
总的来说,架构由RPN和Fast-R-CNN构成,RPN生成候选区域,Fast-R-CNN使用RPN生成的候选区域进行分类和回归。
三、RPN
3.1、架构
预训练卷积网络的输出是一个特征映射,通过一个 卷积滑动窗口在特征映射每个位置上提取特征,提取到的特征分别被送入两个 的卷积层,分别用于分类和边界框回归。
3.2、Anchor Box
为对不同形态的目标进行检测,Faster-r-cnn引入了anchor box的概念(anchor的意思是锚,即固定在某一点处的物体),anchor box的中心点是滑动窗口映射到输入图像对应区域的中心点。
如图3, 滑动窗口的中心点映射到原图是一个很大的感受野,这个感受野的中心是anchor的中心点,原文在每个滑动窗口上关联了3种不同大小(、、)、3种不同宽高比(、、)的anchor box,共计9种,所有anchor box的中心相同。若某个窗口的感受野是图中的灯塔,则 9 种不同的acnhor box会锚定在中心点,蓝色、橙色和绿色anchor box的尺寸分别为 、、。图4给出了anchor box与滑窗的位置关系。
3.3、训练过程
1、随机从训练集中选择一张图片,通过预训练网络生成 的特征映射,以 的窗口在特征映射每个位置上进行卷积(stride=1,padding=2),卷积核 512 个,尺寸是 ;
2、在特征映射上随机选择256个anchor box形成mini-batch,正负样本做到大致均衡,每个anchor box都是从 的特征映射的不同位置上进行采样得到;
3、将mini-batch输入分类网络,每个anchor box有2个 的卷积核,输出 的向量,分别表示anhor box属于前景和背景的概率;同时输入回归网络,每个anchor box有 4 个 的卷积核,分别负责学习x,y,w,h的回归参数,输出 的向量,分别表示预测边界框相对anchor box的偏移,每个anchor box的输出是负责对该anchor box对应类型进行参数回归的卷积核的卷积输出,有4个卷积核负责产生输出,分别负责输出x,y,w,h;
4、对mini-batch里所有的anchor box,根据预测概率和真实标签,计算多类交叉熵损失,对mini-batch里面的正样本,计算平滑L1损失,两部分损失相加表示整个损失函数,根据损失函数进行反向传播;
随着训练过程的推进,分类网络会不断改善anchor box的分类质量,回归网络中 9 个不同的卷积核会不断改善将不同形态的anchor box修正为真实边界框的回归参数。图5给出了RPN训练过程。
3.4、创新点
1、多尺度检测优化。anchor box具有不同的尺度和宽高比,这就可以应对多尺度下的目标检测问题,因为仅依赖单一尺度的图像和卷积核,较多尺度图像金字塔和多尺度卷积核金字塔等方法要高效的多。
2、独立回归建模。r-cnn和fast-r-cnn等对所有的候选区域统一进行边界框回归,但RPN对不同形态的anchor box的边界框回归进行独立建模,这样可以捕捉到更丰富的边界框形态。
3、分类层助力高objectness候选区域生成。分类网络初步将大部分低objectness的box过滤,并根据分类score产生top-N个高质量box,有助于Fast-r-cnn进一步提升检测精度。
四、Faster-r-cnn训练过程
训练过程采用了一种交替训练方法,在这种交替训练的过程中,实现了卷积特征映射共享。
- 训练RPN网络,使用ImageNet预训练网络初始化,并在训练过程对预训练网络进行微调。
- 训练Fast-r-cnn网络,同样使用ImageNet预训练网络初始化,并使用RPN产生的候选区域进行训练,并微调预训练网络,训练完成后用微调后的预训练网络再次初始化RPN网络。
- 冻结共享卷积层,训练RPN,仅更新RPN独有的层的参数。
- 冻结共享卷积层,训练Fast-r-cnn,仅更新Fast-r-cnn独有的层的参数。
第3、4步实现了卷积共享,这两步可以进行多次,但原文提到说多次训练收效甚微。其次,整个训练过程形成一个闭环反馈系统,RPN提取候选区域的质量靠Faster-r-cnn驱动,RPN提取候选区域质量提升后,促进Fast-r-cnn的检测精度。
五、总结
两阶段目标检测,faster-r-cnn基本可以画上一个句号,其思想和训练范式基本上没有太大的提升空间了。在要求高精度的场景下,faster-r-cnn值得一用。