论文标题 | Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks |
---|---|
论文作者 | Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun |
发表日期 | 2016年02月01日 |
GB引用 | > Ren Shaoqing, He Kaiming, Girshick Ross, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. |
DOI |
论文地址:https://arxiv.org/pdf/1506.01497v3
摘要
本文提出了一种区域提议网络(RPN),与目标检测网络共享全图像卷积特征,使得区域提议计算几乎无成本。RPN是一种全卷积网络,在每个位置同时预测目标边界和目标得分。通过端到端训练,RPN生成高质量的区域提议,供Fast R-CNN进行检测。实验表明,使用VGG-16模型时,检测系统在GPU上的帧率为5fps,且在PASCAL VOC和MS COCO数据集上达到最先进的检测精度。此外,在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是多个赛道冠军的基础。代码已公开发布。
全文摘要
这篇论文的主要内容包括以下几个方面:
- 问题背景:当前的目标检测网络依赖于区域提议算法来确定目标位置,但现有的区域提议方法如Selective Search和EdgeBoxes在计算上存在瓶颈。
- Faster R-CNN:论文提出了一种名为Faster R-CNN的目标检测系统,该系统包含两个模块:Region Proposal Network (RPN)和Fast R-CNN检测器。RPN是一个全卷积网络,能够时预测对象的边界和对象性得分。
- 区域提议网络(RPN):RPN与检测网络共享全图像的卷积特征,几乎不需要额外的计算成本。RPN通过在每个位置预测多个区域提议,并为每个提议生成一个对象性得分。
- 共享卷积特征:通过共享卷积层,RPN和Fast R-CNN可以联合训练,形成一个统一的网络,其中RPN指导检测网络关注图像的哪些区域。
- 实验结果:使用VGG-16模型,Faster R-CNN在GPU上实现了5fps的帧率,并在PASCAL VOC 2007、2012和MS COCO数据集上达到了最先进的目标检测精度。
- 竞赛成绩:Faster R-CNN和RPN在ILSVRC和COCO 2015比赛中作为多个第一名获奖参赛作品的基础。
- 代码开源:论文还提到了相关代码已经公开提供,以便研究社区使用和进一步研究。
- 结论:RPN通过与下游检测网络共享卷积特征,实现了高效准确的区域提议生成,显著提升了目标检测的速度和准确性。
这篇论文的主要贡献是提出了一种新的区域提议网络,该网络可以高效生成高质量的区域提议,并且与现有的目标检测网络紧密结合,提高了目标检测的速度和准确性。
研究问题
- 如何在保持检测精度的同时减少目标检测网络中区域建议步骤的计算瓶颈?
- 是否可以通过使用深度卷积神经网络来实现快速且高效的区域建议计算?
- 区域提议网络(RPN)如何与现有的目标检测网络共享卷积特征以降低成本?
- RPN 如何在单个网络中与 Fast R-CNN 结合,实现端到端的训练和检测?
- 使用 RPN 和 Faster R-CNN 的检测系统在处理非常深的 VGG-16 模型时能达到怎样的帧率和检测精度?
研究方法
实验研究: 提出了一种新的区域建议网络(RPN),并通过将其与Fast R-CNN合并为一个统一的网络来实现目标检测系统的加速,同时在PASCAL VOC和MS COCO数据集上验证了检测精度。
模拟研究: 通过深度卷积神经网络(CNN)计算区域建议,模拟结果显示,在使用VGG-16模型时,检测系统在GPU上的帧率为5fps,且仅需每张图像300个建议框即可达到最先进的检测精度。
混合方法研究: 结合了区域建议网络(RPN)和Fast R-CNN的优势,通过共享卷积特征实现了端到端的训练,并在多个数据集上进行了性能测试和比较。
系统分析: 对现有区域提议方法(如Selective Search和EdgeBoxes)与所提出的RPN进行了分析和对比,证明了RPN在计算效率和提议质量方面的优越性。
纵向研究: 通过在ILSVRC和COCO 2015竞赛中追踪Faster R-CNN和RPN的表现,展示了它们在多个赛道中获得第一名的基础作用。
研究思路
论文通过提出Faster R-CNN系统解决了目标检测中的效率和准确性问题,具体方法包括:
- 引入Region Proposal Network (RPN):RPN是一个全卷积网络,能够同时预测候选区域的边界和对象性得分。它通过在特征图上的滑动窗口位置生成多个区域提议,每个提议相对于预定义的“锚点”框进行调整。
- 共享卷积特征:RPN与Fast R-CNN检测网络共享卷积层,这意味着用于生成区域提议的计算可以与检测网络的计算共享,从而减少了重复计算,提高了效率。
- 端到端的训练:RPN和Fast R-CNN作为一个统一的网络进行端到端的训练。这种训练方式允许网络在学习区域提议的同时,也学习如何进行有效的目标检测。
- 使用“锚点”框:为了处理多尺度和多长宽比的对象,论文引入了“锚点”框的概念。这些锚点框在不同的尺度和长宽比上作为参考,帮助网络预测各种尺寸的区域提议。
- 交替训练策略:论文提出了一个四步交替训练算法,首先单独训练RPN,然后使用RPN生成的提议训练Fast R-CNN,接着固定共享的卷积层并分别微调两个网络中不共享的部分,最终形成一个统一的、共享卷积特征的网络。
- 非极大值抑制(NMS):为了减少冗余提议并提高检测精度,论文在RPN生成的提议上应用了NMS,根据对象性得分对提议区域进行筛选。
- 损失函数设计:为了训练RPN,论文定义了一个损失函数,结合了分类损失和边界框回归损失,并通过锚点的标签分配策略来优化。
- 实验验证:论文通过在PASCAL VOC和MS COCO等公共数据集上的实验,验证了Faster R-CNN在速度和准确性上的提升。
Faster R-CNN
Region Proposal Networks
区域建议网络(RPN)以任意尺寸的图像作为输入,并输出一组带有一个物体性得分的矩形目标建议。我们使用全卷积网络[7]来建模这一过程,我们在本节中进行了描述。因为我们的最终目标是与 Fast R-CNN 目标检测网络共享计算,所以我们假设两个网络共享一组卷积层。在我们的实验中,我们研究了 Zeiler 和 Fergus 模型 32,它有 5 个可共享的卷积层,以及 Simonyan 和 Zisserman 模型 3,它有 13 个可共享的卷积层。
为了生成区域建议,我们在最后共享卷积层输出的特征图上滑动一个小网络。这个小网络输入一个大小为 n × n n \times n n×n 的空间窗口(其中 n = 3 n = 3 n=3),对应于输入的卷积特征图。每个滑动窗口映射到一个低维特征,对于 ZF 为 256 维,而对于 VGG 则为 512 维,并且后面跟着 ReLU[33]。该特征被馈入两个全连接层——回归层(reg)和分类层(cls)。需要注意的是,由于小网络以滑动窗口的方式进行操作,所以全连接层在所有空间位置都是共享的。这种架构很自然地使用了一个 a × a a \times a a×a 卷积层后接两个相邻的 1 × 1 1 \times 1 1×1 卷积层(用于回归层和分类层)。
锚点 在每个滑动窗口位置,我们同时预测多个区域建议,其中每个位置可能建议的最大数量用 k 表示。因此,reg 层有 4k 个输出,用于编码 k 个框的坐标,而 cls 层则输出 2k 个分数,估计每个建议是否为对象或非对象的概率。这 k 个建议相对于 k 个参考框进行参数化,我们称之为锚。锚位于所讨论的滑动窗口中心,并与缩放比例和宽高比相关联(图3,左)。默认情况下,我们使用 3 个缩放比例和 3 个宽高比,每个位置有 k = 9 个锚。对于大小为 W × H(通常约为 2400)的卷积特征图,总共有 WHk 个锚。
平移不变性锚点(Translation-Invariant Anchors) 我们的方法的一个重要特性是它在锚点以及计算相对于锚点的提议函数方面都具有平移不变性。如果图像中的一个对象被平移,建议应该也进行平移,并且相同的功能能够预测位于不同位置的建议。这种平移不变性由我们的方法保证。相比之下,多尺度单阶段检测器使用 k 均值来生成 800 个不具有平移不变性的锚框。因此,多尺度单阶段检测器不能保证当一个对象被平移时会生成相同的建议。
这种不变性也减少了模型大小。 MultiBox 有一个 (4 + 1) × 800 维的全连接输出层,而我们的方法在 k = 9 个锚的情况下有一个 (4 + 2) × 9 维的卷积输出层。 因此,我们的输出层有 2.8 × 1 0 4 2.8×10^4 2.8×104 个参数(在 VGG-16 中有 512×(4+ 2) × 9 个参数),比 MultiBox 的输出层少两个数量级,后者有 6.1 × 1 0 6 6.1 × 10^6 6.1×106 个参数(对于GoogleNet [34]在MultiBox [27]中为1536 × (4 + 1) × 800)。 如果考虑特征投影层,我们的提议层仍然比 MultiBox6 少一个数量级的参数。我们期望我们的方法在小数据集上,如PASCAL VOC,过拟合的风险会更小。
多尺度锚作为回归参考 我们的锚框设计为解决多尺度(及宽高比)提供了一种新颖的方法。如图 1 所示,有两种流行的多尺度预测方法。第一种方法基于图像金字塔或特征金字塔,比如在 DPM [8] 和基于卷积神经网络的方法[9][1][2]中。图像被缩放到多个尺度,并且针对每个尺度计算 HOG 特征[8] 或深度卷积特征[9][1][2] (见图 1(a))。这种方法通常是有用的,但代价昂贵。第二种方法是在特征图上使用具有不同尺度(及宽高比)的滑动窗口。例如,在 DPM[8] 中,通过使用不同的滤波器大小(如 5 × 7 和 7 × 5)来分别训练具有不同宽高比的模型。如果采用这种方式来进行多尺度检测,可以将其视为一种“滤波金字塔”(见图 1(b))。第二种方法通常与第一种方法结合使用 [8]。
相比之下,我们的基于锚点的方法建立在多尺度、不同宽高比的锚点金字塔上,成本效益更高。我们使用参考多个尺度和宽高比的锚框来对边界框进行分类和回归。它只依赖于单个尺度的图像和特征图,并且使用单个大小的滤波器(在特征图上的滑动窗口)。实验表明了这种方案处理多尺度和大小的效果 (表8)。
由于这种基于锚点的多尺度设计,我们可以简单地使用单尺度图像上计算出的卷积特征,就像 Fast R-CNN 检测器所做的那样。多尺度锚点的设计对于在不增加额外成本的情况下共享特征以解决尺度问题是一个关键组件。
损失函数
在训练 RPN 的时候,我们为每个锚框分配一个二元类标签(即是否为目标)。我们将正样本标记分配给两种类型的锚框:(i) 与某个真实框有最高交并比 (IoU) 的锚框,或 (ii) 与任何真实框的 IoU 值大于 0.7 的锚框。注意,一个真实框可以分配给多个锚定框正标签。通常情况下,第二个条件足以确定正样本;但由于某些罕见的情况下,第二个条件可能无法找到正样本,因此我们仍然采用第一个条件。如果所有真实框的 IoU 都低于 0.3,则为非正锚定框分配负标签。既不是正也不是负的锚定框不会对训练目标做出贡献。
有了这些定义,我们在遵循 Fast R-CNN [2] 中的多任务损失的情况下最小化目标函数。我们为图像定义的损失函数如下:
L ( { p i } , { t i } ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ ) ( 1 ) \begin{aligned}L(\{p_{i}\},\{t_{i}\})&=\frac{1}{N_{cls}}\sum_iL_{cls}(p_i,p_i^*)+\lambda\frac{1}{N_{reg}}\sum_ip_i^*L_{reg}(t_i,t_i^*)&&\mathrm{(1)}&\end{aligned} L({ pi},{ ti})=Ncls1</