目标检测总结:RCNN系列(2)

上一篇介绍了RCNN和Fast RCNN,本文介绍RCNN系列的终极版本,FasterRCNN。Faster RCNN虽然是2015年的论文,但它至今认识许多目标检测算法的基础。
FasterRCNN可以看做是RPN(region proposal network) + fast RCNN的系统,用RPN代替了之前的selective search 来进行region proposal的选择和修正。

RPN

目标检测总结:RCNN系列(2)
如上图所示,RPN网络的基本思路是将图片经过CNN进行特征的提取,对所有可能的候选框进行打分,选出confidence较高的框(前2000)传入下一层用于fast RCNN的目标检测,其中RPN和Fast RCNN两个网络共享一组共同的卷积层。
目标检测总结:RCNN系列(2)
如上图所示,我们再最后的特征层上进行滑窗,这个窗口将输入卷积特征映射的n×n空间窗口作为输入,每个窗口都可以映射到原始的图片中, 其映射的原始图片的位置即为输入RPN的候选框。在文章中,使用的n为3,即每个候选框映射到特征层的窗口为3×3大小。最后我们对得到的特征输入两个1×1的卷积层,分别预测类别(2分类,)和坐标(xywh)。
anchor:anchor即为我们所提到的候选框,在滑动窗口的位置,同时预测多个候选框,候选框的中心点是相同的,只是有不同的尺度和长宽比。文章使用3个尺度和3个长宽比。
损失函数:RPN训练过程的正例是与gtbox的iou最大的anchor和与gtbox的iou>0.7,负例是与gtbox<0.3。与之前FastRCNN的损失函数类似,
目标检测总结:RCNN系列(2)
目标检测总结:RCNN系列(2)
Faster RCNN还是比较难理解的,原始的论文重点介绍的是RPN,具体和fastRCNN是怎么结合的文章也没有很好的说明,当时我看完也是云里雾里的,查了好多的资料,整个FasterRCNN,从算法到代码复现,我前前后后大概啃了一个半月,才算搞懂,这里我放几张图片,供大家结合论文理解。
目标检测总结:RCNN系列(2)
图片来源,这个图比较清晰的展示了FasterRCNN的整个架构。
另外,了解了整个FasterRCNN的框架之后,其代码复现可以尝试着看一下,如果没有目标检测的基础,上来看FasterRCNN还是比较吃力的,建议先从单阶段的框架开始看起。这里也放一张代码的架构图供大家参考。
目标检测总结:RCNN系列(2)
图片来自,这个图展示代码的实现流程。