论文连接
https://arxiv.org/abs/1506.01497
相关论文翻译链接
R-CNN:https://blog.csdn.net/itlilyer/article/details/107190083
Fast R-CNN:https://blog.csdn.net/itlilyer/article/details/107764472
Mask R-CNN:https://blog.csdn.net/itlilyer/article/details/108441734
Faster R-CNN: 基于区域建议网络的实时目标检测
0. 摘要
目前最先进的目标检测网络都依赖区域建议(也称候选框)算法来假设目录的位置。SPPnet和Fast RCNN网络的改进主要是减少了检测网络的运行时间,但是暴露出了 计算候选框的瓶颈 问题。在本文中,我们介绍一个候选区域网络(RPN),该网络与检测网络共享整图的卷积特征,使生成候选区域的开销几乎为0。RPN是一个完完全全的卷积网络,它同时预测每个位置的目标边界和目标得分。RPN通过端到端的训练来生成高质量的候选框,这些候选框被Fast R-CNN用来做检测。通过共享卷积特征,我们进一步将RPN和Fast R-CNN融合成了一个网络——使用最近流行的神经网络术语“注意力”机制,RPN模块告诉融合后的检测网络要看向哪里。对于非常深的VGG16模型[3],我们在一个GPU上的检测帧率为5fps(包含所有的步骤),而且每张图片300个候选框可以在PASCAL VOC 2007,2012和MS COCO数据集上取得了最高的目标检测精度。在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是在多个赛道中获得第一名的作品的基础。代码已公开可获取。https://github.com/ShaoqingRen/faster_rcnn
1. 介绍
区域建议方法和基于区域的卷积神经网络(R-CNN)的成功应用推动了目标检测的最新进展。虽然的最初在[5]中提出的基于区域的CNN网络最初版本计算代价昂贵,但是得益于候选框之间共享卷积[1][2]使计算开销已大大降低。该方式的最新代表作,Fast R-CNN使用非常深的网络几乎达到了实时检测速率,当然需要忽略掉生成候选框所占用的时间。 现在生成候选框已经成了最新检测系统中测试阶段的计算瓶颈。
区域推荐方法通常依赖计算开销少的特征和经济的推理方案(个人理解:这里指候选框多的时候要能够用最小的开销获取对应的特征值,经济性应该是不会在占用硬盘空间吧)。选择性搜索(Selective Search)[4],最受欢迎的候选框生成方法之一,基于人工设计的低级别特征通过贪婪方式合并超级像素来生成候选框。但是与高效的检测网络[2]相比,选择性搜索慢了一个数量级,在一个CPU上处理一张图片需要2秒。EdgeBoxes[6]提供了目前候选框质量和速度最好的折中方案,0.2秒处理一张图片。然而,生成候选框的步骤仍然花费了与检测网络相同的时间。
我们应该注意到了,基于区域的CNN网络运行在GPU上,但是生成候选框却在CPU上实现,使得这样比较运行时间会不公平。很明显,一个加快生成候选框计算的方法就是在GPU上重新实现。这可能是一种有效的设计方案,但是重新实现忽略了下游的检测网络,因而也错过了共享计算的重要机会。
在本文中我们展示一个算法上的变化——使用深度卷积神经网络来生成候选框——根据新的算法可以设计出优雅而且高效的解决方案,候选框的计算几乎不会为检测网络添加额外的开销。为此,我们引入了新颖的区域建议网络(RPNs),与最新的目标检测网络[1][2]共享卷积层。通过在测试阶段共享卷积,计算候选框的边际成本非常小(差不多10ms一张图片。)
边际成本指的是每一单位新增生产的产品(或者购买的产品)带来的总成本的增量。 这个概念表明每一单位的产品的成本与总产品量有关。这里指的添加RPN网络后对整个检测网络的影响。
据我们的观察,像Fast R-CNN这种基于区域的检测器使用的卷积特征图,同样可以用来生成候选框。在这些卷积特征的基础上,我们创建了一个RPN网络,是由额外的几个卷基层构成并且可以同时为网格的每一个位置同时进行区域边框回归和目标打分。(这里的网格是不是指讲原始的图片进行分割出来的??继续往下读)。RPN是一种完完全全的卷积网络(FCN:fully convolutional network),可以针对生成检测候选框进行端到端的训练(个人理解:RPN是卷积网络,将其与之前的检测网络融合到一起,可以进行端到端的训练)。
FPN旨在高效的预测不同尺度和纵横比的候选框。与当前流行的使用图像金字塔(图1,a)和滤波器金字塔(图1,b,用来提取特征值)的方法相比,我们引入了一个新概念**"锚定"框(anchor box)作为多种尺度和纵横比的参照物**。我们的方案可以认为是参照物的回归金字塔(图1,c),这样可以避免将不同尺度和纵横比的图像和滤波器都枚举出来。该模型在使用单尺度图片进行训练和测试时表现良好,单尺度同样有利于加快运行速度。
为了将RPN和目标检测网络Fast R-CNN整合到一起,我们提出了一个训练方案,该方案对生成候选框任务和目标检测任务交替进行微调(fine tuning),任务交替但是候选框保持不变。该方案收敛快并且创造了一个融合的网络,两个任务可以共享卷积特征。(个人理解:训练时使用一组候选框分别对生成候选框和目标检测进行微调,然后换下一组)
我们使用PASCAL VOC检测基准对我们的方法进行了全面的评估,结果显示RPN + Fast R-CNN的检测精度比选择性搜索+faste R-CNN的精度更好。同时,我们的方法几乎消除了选择性搜索(下面开始简称SS)给测试阶段带来的计算负担——生成候选框的有效运行时长仅为10ms。使用计算开销很大的非常深的模型[3],我们的方法在一个GPU的帧率仍然可以达到5fps(包含所有步骤),因此该模型从精度和性能上看都是可以实际应用的目标检测系统。我们同样发布了在MS COCO数据集[12]上的结果,并研究了使用COCO数据给PASCAL VOC带来的提升。公开代码地址:https://github.com/shaoqingren/faster_rcnn (in MATLAB), https://github.com/rbgirshick/py-faster-rcnn (in Python)。
先前已经发布了本文的一个早期版本[10]。从那以后,RPN和Fast R-CNN组成的框架被采用并且推广到了其他的场景中,例如3D目标检测[13],基于部分的检测[14],实例分割[15],图像字幕[16]。我们的检测系统快速有效,并且已经集成到商业系统中,例如Printrests,据说客户的参与度得到了提升。
在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN的组合是ImageNet检测、ImageNet定位、COCO检测、COCO分割等几个项目第一名的基础。RPN完全是通过学习从数据中提取候选区域,因此可以更容易的从更深的网络和更有表达力的特征中受益 (例如[18]中采用的101层的残差网络)。Faster R-CNN和RPN也被其他一些领先的参赛者所使用。这些结果表明,该方法不仅在实际应用中是一种经济有效的解决方案,而且是提高目标检测精度的有效途径。
2. 相关工作
目标建议。 有大量的生成目标建议方法(生成候选框)的资料。 [19], [20], [21]中是对这些方法的全面的介绍和比较。广泛应用的目标建议方法包括基于超像素分组(例如,选择性搜索[4]、CPMC[22]、MCG[23])和基于滑动窗口(例如,窗口的物体性 objectness in window[24]、EdgeBoxes[6])。目标建议方法通常作为独立于检测器的外部模块来应用(例如,使用选择性搜索的目标检测、RCNN、Fast RCNN)。
目标检测中使用的深度网络。 R-CNN通过端到端的训练CNN实现将候选框分为目标类别和背景。R-CNN主要功能是一个分类器,不能够预测目标的边框(除非使用边框回归进行优化)。它的精度取决于生成候选框模块的性能,能够选出优质的候选框(参考[20]中的对比)。一些论文中提出了使用深度网络来预测物体边框的一些方法[25][9][26][27]。在OverFeat方法中[9],训练一个全连接层来为只有一个目标(假定只有一个)的定位任务预测框的坐标。随后该全连接层替换为卷积层来检测多类别的目标。MultiBox多框方法[26][27]使用网络来构造候选框,该网络最后的全连接层同时预测多个不知类别的框,扩展了OverFeat的"单框"模式的应用。这些不同类别的框等同于R-CNN[5]中的候选框。与我们的全卷积方案不同,MultiBox应用在单张图片的裁剪或者对一张大图片进行多次裁剪(例如,224x224)。MultiBox方法的候选框与检测网络之间并不共享特征。我们将在后面介绍我们的方法的上下文中更深入的讨论OverFeat和MultiBox。在我们开展工作的同时,开发出了DeepMask方法用于候选框的分割学习。
卷积共享计算以其高效准确的视觉识别得到了越来越多的关注。在OverFeat论文中[9]会计算图像金字塔的卷积特征进行分类、定位和检测。基于共享卷积特征图的自适应大小池化(SPP)[1]用于基于区域的目标检测[1][30]和语义分割[29]。Fast R-CNN[2]实现了使用共享特征完成端到端训练,并且展示了令人信服的精度和速度。
3. Faster R-CNN
我们的目标检测系统——Faster R-CNN,由两个模块组成:第一个模块是深度卷积网络,用来生成候选框;第二个模块是Fast R-CNN检测器[2],使用候选框实现检测。整个系统是单一并且是统一的目标检测网络(图2)(一句话:从头到尾是一个整体)。用最近流行的神经网络术语"注意力"机制来说,RPN模块告诉Fast R-CNN要往图片的哪里看。在3.1章节我们讲介绍生成候选框网络的设计的特性。在3.2章节我们开发了使用共享特征训练两个模块的算法。
3.1 Region Proposal Network
Region Proposal Network(RPN)接收一张任意大小的图片作为输入,输出一组矩形候选框,每个候选框还有一个目标得分。我们使用一个全是卷积的网络对该过程进行抽象建模,也是本章节将要讲的。因为我们的最终目标是RPN与Fast R-CNN检测网络共享计算,我们假设两个网络共享一组卷积层。在实验中,我们研究了拥有5个共享卷积层的Zeiler and Fergus模型[32](ZF)和拥有13个共享卷基层的Simonyan and Zisserman模型[3] (VGG6)。
为了生成候选框,我们在最后一个共享卷基层的输出特征图上加了一个小的滑动网络。(好好理解一下这里生成proposal的过程)这个小网络将输入的卷积特征图中的一个nxn的空间窗口作为输入(