论文背景
论文名称:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(简称:Faster R-CNN)
论文链接:https://arxiv.org/abs/1506.01497
论文日期:2016.1.6
选区域的提取一直是一个瓶颈。在Faster R-CNN中我们提出了一个region proposal network(RPN),同时预测物体的框并且进行打分,是一个端到端(end to end)的候选区域提取的算法,结合了RPN和Fast RCNN算法,使之变成一个共享卷积参数的单一神经网络。
目前的先进的目标检测算法都由成功的区域提取算法和卷积神经网络驱动,以往的候选区域提取是耗费大量时间的,一般都是有selective search算法来实现,虽然在SPP-Net和fast rcnn中通过共享卷积参数在检测上实现了很大的速度进步,但是提取候选区域仍然耗费大量时间,EdgeBoxes算法在精度和速度上有了很大提升,但是每张照片仍需要0.2s。
用来加速检测的方法有两个:
- 使用GPU进行训练;
- 使用RPN神经网络,与卷积神经网络共享参数,每张照片10ms;
算法详情
RPN
在卷积神经网络的顶部构造一个RPN(一些额外的卷积神经网络),同时回归区域框以及在格子里的每一个定位的物体打分。RPN是一个全卷积神经网络,能端到端地训练。
使用一个宽范围的scale和aspect radio进行有效的预测,使用anchor boxes。
候选区域提取算法(RPN)和目标检测的微调交替进行,同时,结合的神经网络共享参数,共享的神经网络可以是ZF net(256-d) 或者 VGG16(512-d)。
训练步骤:(交替训练)
- 单独训练RPN,使用ImageNet的预训练模型生成候选区域;
- 利用RPN生成的候选区域,通过Fast R-CNN训练一个单独的检测网络,检测网络也是利用预训练模型初始化的;
- 使用检测网络初始化RPN,固定共享卷积层,单独微调属于RPN的层;
- 保持共享卷积层参数不变,微调属于Fast R-CNN的网络层。
faster rcnn的神经网络结构:
每张图片通过RPN生成300个候选区域,红线以下的就是RPN神经网络结构:
anchor
(a)图片金字塔;
(b)金字塔卷积核;
(c)金字塔回归框。
使用scale和aspect radio均为3,k=n x n=3 x 3=9,分类的参数为2k,回归的参数为4k
使用每一个像素点作为anchor的中点,因此对于一个feature map,共有M x H个像素点,总共的anchors为M x H x k,
anchor box的选择:
将每一个像素点都映射到输入图片中,然后再进行anchor box的选取 ,之后再将feature map和region proposal输入到RoI pooling。
Loss Function
选最优的anchor为正样本;
当IoU>0.7的样本很少时,选取IoU>0.7的anchor为正样本;
选IoU<0.3的anchor为负样本;
损失函数大致同fast rcnn:
实验
-
在PASCAL VOC 2007测试集:
-
在PASCAL VOC 2007测试集上:
-
在PASCAL VOC 2012测试集上:
-
参数选择: