FASTER RCNN 论文笔记
摘要:
SPPNET 和 FAST RCNN 较少了检测网络的时间,但是 region proposal 还是耗费很多时间。FASTER RCNN 解决了这个问题,提出了Region Proposal Network(RPN)代替selective search部分,同时输出bbox和每一类的scores。可以与FAST RCNN结合实现端到端的网络,可以共享卷积特征。速度是5fps,在VOC2007的结果是mAP 73.2%.
整个FASTER RCNN的结构图如下所示:
Region Proposal Networks
PRN以任意尺寸的图片作为输入,输出一系列矩形的region proposals以及每个对应的scores。为了使PRN和fast rcnn 分享卷积特征,所以这两个网络要使用同样的卷积层。本文使用了ZF和VGG19两个网络的卷积层,作为共享卷积层。
如图1所示,为了生成region proposals 在最后一个卷积层上,用一个n*n(n=3)的小窗口(卷积层)滑动每个位置,把特征降为256维。把这256为特征分别输入两个全连接层cls和reg。
Translation-Invariant Anchors
在每个滑窗的位置预测k个region proposals(k=9)叫作anchor,3种尺度和3种长宽比。reg layer 有4k个输出对应BBox的坐标,cls layer有2k个scores输出对应是否有目标的概率。若一个最后一个特征层大小是W*H,那么总共有WHk个anchors。
A Loss Function for Learning Region Proposals
为了训练PRNs,赋予anchors二值的类标对应是否包含object。以下两种anchors赋予正类标:
- 与某个ground truth 的IOU最大的anchors。
- 与任何GT的IOU大于0.7的anchors。
赋予与任何GT的iou小于0.3的anchors作为负例,其余的anchors弃之不用。
损失函数如下:
Paste_Image.png Paste_Image.png
Optimization
一个mini-batch从一幅图像中采样256个anchors,正负样本比例为1:1. 如果正样本数量不够128,就用负样本填充。
Sharing Convolutional Features for Region Proposal and Object Detection
- 先训练PRNs。通过在imagenet上训练好的分类模型,端到端的在Region Proposal任务上fine-tune。
- 训练FAST RCNN网络通过step1中PRNs生成的region proposals。FAST RCNN也通过预训练网络初始化。
- 用dectetion 网络初始化PRNs网络,固定共享层,只fine-tunePRNS独有的层。
- 最后,固定共享层,fine-tune FAST RANN的全连接层。
最后要进行非最大值抑制,删除重复的bbox。在NMS 之后,选择得分最高的N个区域作为结果。