Faster R-CNN :Towards Real-Time Object Detection with Region Proposal Networks
0.论文摘要
最先进的目标检测网络依赖于候选框算法来假设目标位置。像SPPnet[7]和Fast R-CNN[5]这样的进步已经减少了这些检测网络的运行时间,暴露了候选框计算作为一个瓶颈。在这项工作中,我们介绍了一个候选框网络(RPN),它与检测网络共享全图像卷积特征,从而实现几乎免费的候选框。RPN是一个完全卷积的网络,它同时预测每个位置的目标边界和目标分数。RPN被端到端训练以生成高质量的候选框,这些建议被Fast R-CNN用于检测。通过简单的交替优化,可以训练RPN和Fast R-CNN共享卷积特征。对于非常深的VGG-16模型[19],我们的检测系统在GPU上的帧速率为5fps(包括所有步骤),同时在PASCAL VOC 2007(73.2%mAP)和2012(70.4%mAP)上使用每张图像300个候选框实现了最先进的目标检测精度。
1.研究背景
目标检测的最新进展是由候选框方法(例如[22])和基于区域的卷积神经网络(R-CNN)[6]的成功推动的。尽管最初在[6]中开发的基于区域的CNN在计算上非常昂贵,但由于在候选框之间共享卷积,它们的成本已经大大降低[7,5]。最新的化身,Fast R-CNN[5],使用非常深的网络[19]实现了接近实时的速率,同时忽略了花费在候选框上的时间。现在,候选框是最先进的检测系统中的计算瓶颈。候选框方法通常依赖于廉价的特征和经济的推理方案。选择性搜索(SS)[22]是最流行的方法之一,它基于设计的低级特征贪婪地合并超像素。然而,与高效检测网络[5]相比,选择性搜索要慢一个数量级,在CPU实现中每个图像2秒。EdgeBoxes[24]目前提供了候选框质量和速度之间的最佳权衡,每张图像0.2秒。然而,候选框步骤仍然消耗与检测网络一样多的运行时间。
人们可能会注意到,快速的基于区域的CNN利用了GPU,而研究中使用的候选框方法是在CPU上实现的,这使得这种运行时比较不公平。加速候选框计算的一个显而易见的方法是为GPU重新实现它。这可能是一个有效的工程解决方案,但重新实现忽略了下游检测网络,因此错过了共享计算的重要机会。
为此,我们引入了新的候选框网络(RPNs),它与最先进的目标检测网络共享卷积层[7,5]。通过在测试时共享卷积,计算方案的边际成本很小(例如,每个图像10毫秒)。
我们的观察是,基于区域的检测器使用的卷积(conv)特征图,如 Fast R-CNN,也可以用于生成候选框。在这些conv特征之上,我们通过添加两个额外的conv层来构建rpn:一个层将每个convmAP位置编码成一个短的(例如,256-d)特征向量,另一个层在每个convmAP位置输出相对于该位置的各种比例和纵横比的k个候选框的客观性分数和回归边界(k=9是典型值)。
因此,我们的rpn是一种全卷积网络(FCN)[14],它们可以被端到端地训练,专门用于生成检测建议的任务。为了将RPNs与Fast R-CNN[5]目标检测网络统一起来,我们提出了一种简单的训练方案,该方案在候选框任务的微调和目标检测的微调之间交替,同时保持候选框固定。这种方案收敛速度快,并产生一个统一的网络,具有两个任务之间共享的卷积特征。
我们在PASCAL VOC检测基准[4]上评估了我们的方法,其中具有Fast R-CNN的RPNs比具有Fast R-CNN的选择性搜索的强基线产生更好的检测准确性。同时,我们的方法在测试时几乎免除了SS的所有计算负担——候选框的有效运行时间仅为10毫秒。使用[19]昂贵的非常深的模型,我们的检测方法在GPU上仍然具有5fps的帧速率(包括所有步骤),因此在速度和准确性方面都是实用的目标检测系统(PASCAL VOC 2007上的mAP为73.2%,2012上的mAP为70.4%)。
2.相关工作
最近的几篇论文提出了使用深度网络定位特定类别或类别不可知的边界框的方法[21,18,3,20]。在OverFeat方法[18]中,全连接(fc)层被训练来预测假设单个目标的定位任务的方框坐标。然后,fc层变成conv层,用于检测多个特定于类的目标。多盒方法[3,20]从其最后fc层同时预测多个(例如800个)框的网络生成候选框,其用于R-CNN[6]目标检测。他们的建议网络应用于单个图像或多个大型图像裁剪(例如,224 × 224)[20]。我们将在后面用我们的方法更深入地讨论OverFeat和MultiBox。卷积的共享计算[18, 7, 2, 5]已经吸引了越来越多的关注,以实现高效而准确的视觉识别。OverFeat论文[18]从图像金字塔计算conv特征,用于分类、定位和检测。共享卷积特征图上的自适应大小池化(SPP)[7]被提出用于有效的基于区域的目标检测[7,16]和语义分割[2]。Fast R-CNN[5]支持对共享卷积特征进行端到端检测器训练,并显示出引人注目的准确性和速度。
3. Region Proposal Networks
候选框网络(RPN)将图像(任何大小)作为输入,并输出一组矩形目标建议,每个建议都有一个客观性得分。我们使用全卷积网络[14]对该过程进行建模,我们将在本节中进行描述。因为我们的最终目标是与Fast R-CNN目标检测网络共享计算[5],我们假设两个网络共享一组公共的卷积层。在我们的实验中,我们研究了Zeiler和Fergus模型[23](ZF),它有5个可共享的卷积层,以及Simonyan和Zisserman模型[19](VGG),它有13个可共享的卷积层。
为了生成候选框,我们在最后一个共享卷积层输出的卷积特征图上滑动一个小网络。
每个滑动窗口被映射到一个低维向量(ZF为256-d,VGG为512-d)。这个向量被输入到两个完全连接的兄弟层中——一个边界框回归层(reg)和一个边界框分类层(cls)。我们在本文中使用n=3,注意到输入图像上的有效感受野很大(ZF和VGG分别为171和228像素)。该微型网络在图1(左)中的单个位置示出。请注意,因为微型网络以滑动窗口方式运行,所以完全连接的层在所有空间位置共享。这种架构自然是用一个n × n 卷积层和两个同级1 × 1 卷积层(分别用于reg和cls)来实现的。ReLUs[15]应用于n × n 卷积层的输出。
图1:左图:区域建议网络(RPN)。右图:在PASCAL VOC 2007测试中使用RPN候选框的检测示例。我们的方法可以检测各种比例和长宽比的物体。
3.1 平移不变性的Anchors
在每个滑动窗口位置,我们同时预测k个候选框,因此reg回归层具有编码k个框的坐标的4k输出。cls分类层输出2k个分数,用于估计每个候选框的目标/非目标概率。这k个候选框相对于k个参考框(称为锚)进行参数化。每个锚点都位于所讨论的滑动窗口的中心,并与比例和纵横比相关联。我们使用3个比例和3个纵横比,在每个滑动位置产生k=9个锚。对于尺寸为W × H(通常为2,400)的卷积特征图,总共有W×HW ×HW×H一般为2400个锚点。我们的方法的一个重要性质是,它是平移不变的,无论是就锚还是计算相对于锚的候选框的函数而言。
作为比较,多检测框方法[20]使用k-means来生成800个锚,它们不是平移不变的。如果一个人变换图像中的一个目标,候选框也应该变换,并且相同的函数应该能够预测任一位置的候选框。此外,因为多盒锚不是平移不变的,所以它需要(4+1)× 800维输出层,而我们的方法需要(4+2)× 9维输出层。我们的候选框层的参数少了一个数量级(使用GoogLeNet[20]的MultiBox为2700万,而使用VGG-16的RPN为240万),因此在小数据集(如PASCAL VOC)上过拟合的风险更小。
3.2 学习候选框的损失函数
为了训练RPNs,我们为每个锚点分配一个二进制类标签(是否是目标)。我们给两种锚点分配一个正样本标签:(i)与真实目标具有最高交并比(IoU)重叠的锚点,或(ii)与任何真实目标具有高于0.7的IoU重叠的锚点。请注意,单个真实目标可能会将正标签分配给多个锚。对于所有真实目标,如果非正锚点的IoU比率低于0.3,我们将负标签分配给非正锚点。既不是正样本也不是负样本的锚对训练目标没有贡献。
根据这些定义,我们最小化了Fast RCNN中多任务损失后的目标函数[5]。我们对图像的损失函数定义为:
这里,iii是小批量锚的索引,pip_ipi是锚iii成为目标的预测概率。如果锚定为正样本,则地面真实标签pi∗p_i^*