Faster R-CNN: Towards Real-Time Object Detectionwith Region Proposal Networks--文献笔记

摘要

目前最先进的物体检测网络依靠区域提议(proposal)算法来假设物体的位置。

SPPnet 和Fast R-CNN 之类的进步减少了这些检测网络的运行时间,但也揭示了区域提议计算存在瓶颈。

在这项工作中,我们引入了一个区域提议网络(RPN),该区域提议网络与检测网络共享全图像卷积特征,从而实现几乎免费(计算)的区域提议。RPN是一个全卷积的网络,可以同时预测每个位置的目标边界和目标得分。对RPN进行了端到端的训练,以生成高质量的区域建议,Fast R-CNN将这些区域提议用于检测。

通过共享RPN和Fast R-CNN的卷积特征,我们将RPN和Fast R-CNN进一步合并为一个网络-使用最近流行的神经网络术语:“注意力”机制,RPN组件告诉统一网络要看(注重)的地方。

对于非常深的VGG-16模型,我们的检测系统在GPU上具有5fps(包括所有步骤)的帧频。

同时在PASCAL VOC 2007、2012和MS COCO数据集上达到了最优(SOTA)的目标检测精度。每个图像仅包含300个建议。

code:https://github.com/ShaoqingRen/faster_rcnn

引言

在本文中,证明了算法的变化(使用深度卷积神经网络计算建议)导致了一种优雅而有效的解决方案,考虑到检测网络的计算,建议计算几乎是免费的。为此,我们引入了与最先进的目标检测网络,共享卷积层的新颖的区域提议网络(RPN)。通过在测试时共享卷积,计算建议的边际成本很小(例如,每张图片10毫秒)。
我们的观察结果是,基于区域的检测器(如Fast RCNN)使用的卷积特征图也可用于生成区域建议。在这些卷积特征之上,我们通过添加一些其他卷积层来构建RPN,这些卷积层同时回归规则网格上每个位置的区域边界和物体性得分。因此,RPN是一种全卷积网络(FCN),可以专门针对生成检测建议的任务进行端到端训练。

当使用单尺度图像进行训练和测试时,该模型表现良好,从而提高了运行速度。

为了将RPN与Fast R-CNN 目标检测网络统一起来,我们提出了一种训练方案,该方案在对区域建议任务进行微调与对目标检测进行微调之间交替,同时保持建议不变。该方案快速收敛,并产生具有两个任务之间共享的卷积特征的统一网络。

在PASCAL VOC检测基准上全面评估了我们的方法,其中使用RPN的Fast R-CNN产生的检测精度要优于使用选择性搜索的Fast R-CNN。同时,我们的方法在测试时几乎免除了“选择性搜索”的所有计算负担-proposal的有效运行时间仅为10毫秒。使用优质(expensive)的非常深的模型,我们的检测方法在GPU上的帧速率仍然为5fps(包括所有步骤),因此这是一个在速度和准确性方面都很实用的目标检测系统。

我们还报告了MS COCO数据集的结果,并使用COCO数据研究了PASCAL VOC的改进。

代码已在https://github.com/shaoqingren/faster_ rcnn(MATLAB代码)                        https://github.com/rbgirshick/py-faster-rcnn(Python代码)中公开提供。

相关工作

1、目标提议

目标建议方法用于作为独立于检测器的外部模块。

2、用于目标检测的深度网络

在OverFeat方法[9]中,训练了一个全连接层来预测假设单个目标的定位任务的框坐标。然后将全连接层转换为卷积层,以检测多个类特定的物体。MultiBox方法[26],[27]从网络中生成区域提议,该网络的最后一个全连接层同时预测多个与类无关的boxes,从而概括(generalizing)了OverFeat的“single-box”方式。这些与类无关的boxes用作R-CNN的建议[5]。与我们的全卷积方案相比,MultiBox建议网络适用于单个图片裁剪(crop)或多个大图片裁剪(crop)(例如224* 224)。MultiBox在提议和检测网络之间不共享特征。我们稍后将在我们的方法中更深入地讨论OverFeat和MultiBox。与我们的工作同时开发的DeepMask方法[28],用于学习分割建议。

Faster R-CNN

Faster R-CNN,它由两个模块组成。

第一个模块是提出区域的深层全卷积网络;第二个模块是使用提出的区域的Fast R-CNN检测器[2]

整个系统是用于目标检测的单个统一网络。RPN模块相当于这个统一网络的‘注意力’。

在这里插入图片描述

 1、区域提议网络

区域提提议网络(RPN)接收(任意大小的)图像作为输入,并输出一组矩形的目标提议,每个提议均具有物体性得分(“Region” is a generic term and in this paper we only consider rectangular regions, as is common for many methods (e.g., [27], [4],[6]). “Objectness” measures membership to a set of object classes
vs. background.)。我们使用全卷积网络对该过程进行建模[7],我们将在下文中对此进行描述这个部分。因为我们的最终目标是与Fast R-CNN目标检测网络共享计算[2],所以我们假设两个网络共享一组共同的卷积层。在我们的实验中,我们研究了具有5个可共享卷积层的Zeiler和Fergus模型[32](ZF)以及具有13个可共享卷积层的Simonyan和Zisserman模型[3](VGG-16)。
为了生成区域建议,我们在最后共享的卷积层输出的卷积特征图上滑动一个小型网络。这个小网络将输入卷积特征图的n×n空间窗口作为输入。每个滑动窗口都映射到一个较低维的特征(ZF为256-d,VGG为512-d,后面是ReLU [33])。此特征被馈入(fed into)两个同级(sibling)的全连接层—框回归层(reg)和框分类层(cls)。在本文中,我们使用n = 3,注意输入图像上的有效感受野很大(ZF和VGG分别为171和228像素)。在图3的单个位置(左)显示了此微型网络。请注意,由于微型网络以滑动窗口的方式运行,因此全连接层将在所有空间位置上共享。该体系结构自然是由n×n卷积层和两个同级1×1卷积层(分别用于reg和cls)实现的。

在这里插入图片描述

 左:区域提议网络(RPN)。右:在PASCAL VOC 2007测试中使用RPN建议的检测示例。我们的方法可以检测各种比例和宽高比的物体。

2、Anachor


在每个滑动窗口位置,我们同时预测多个区域提议,其中每个位置的最大可能提议数目表示为k。因此,reg层有4k个输出,对k个框的坐标进行编码,而cls层则输出2k个分数,这些分数估计每个提议(For simplicity we implement the cls layer as a two-class softmax layer. Alternatively, one may use logistic regression to
produce k scores.)的物体或非物体的概率。相对于k个参考框(称为anchors),对k个建议进行了参数化。anchor位于相关滑动窗口的中心,并与比例和宽高比相关联(图3,左)。默认情况下,我们使用3个尺度和3个宽高比,在每个滑动位置产生k = 9个anchors。对于大小为W×H(通常为2,400)的卷积特征图,总共有W×H×k个anchors。
平移不变的anchors
我们方法的一个重要特性是,就anchors和计算相对于anchors的提议的函数而言,它是平移不变的。如果平移(translate)了图像中的一个目标,则该提议也应进行平移,并且相同的特征应能够在任一位置预测该提议。此平移不变属性由我们的方法(As is the case of FCNs [7], our network is translation invariant up to the network’s total stride.)保证。作为比较,MultiBox方法[27]使用k均值生成800个anchors,这些anchors不是平移不变的。因此,MultiBox不保证平移目标时会生成相同的建议。
平移不变属性还减小了模型大小。MultiBox具有(4 +1)× 800维 的全连接输出层,而在k = 9个anchors的情况下,我们的方法具有一个(4 + 2)×9维 的卷积输出层。最终,我们的输出层具有2.8 ×10的4次方个参数(VGG-16为512×(4 + 2)×9个),比具有6.1 ×10的6次方个参数(MultiBox里的GoogleNet为1536×(4 + 1)×800个)的MultiBox输出层少了两个数量级。如果考虑特征投影层,我们的建议层的参数仍然比MultiBox(Considering the feature projection layers, our proposal layers’ parameter count is 3 × 3 × 512 × 512 + 512 × 6 × 9 = 2.4 × 10^6;MultiBox’s proposal layers’ parameter count is 7 × 7 × (64 + 96 +64 + 64) × 1536 + 1536 × 5 × 800 = 27 × 10的6次方)少一个数量级。我们希望我们的方法在较小的数据集(如PASCAL VOC)上过拟合的风险较小。
多尺度anchors作为回归参考
我们的anchor设计提出了解决多种尺度(和宽高比)的新颖方案。如图1所示,有两种流行的多尺度预测方法。第一种方法是例如在DPM中 [8]使用的基于图像/特征金字塔和[9],[1],[2]中基于CNN的方法。在多个尺度上调整图像大小,并为每个尺度计算特征图(HOG [8]或深度卷积特征[9],[1],[2])(图1(a))。这种方法通常是有用的但是很费时。第二种方法是在特征图上使用多个尺度(和/或宽高比)的滑动窗口。例如,在DPM [8]中,使用不同的过滤器(卷积)大小(例如5×7和7×5)分别训练不同长宽比的模型。如果使用这种方法处理多个尺度,则可以将其视为“过滤器金字塔”(图1(b))。第二种方法通常与第一种方法结合使用[8]。
相比之下,我们的基于anchor的方法是基于锚点金字塔构建的,这种方法更具成本效益。我们的方法参照多个尺度和宽高比的anchor对边界框进行分类和回归。它仅依赖于单一尺度的图像和特征图,并使用单一大小的过滤器(在特征图上滑动窗口)。我们通过实验证明了该方案对解决多种尺度和size的影响(表8)。
由于基于anchor的这种多尺度设计,我们可以简单地使用在单尺度图像上计算出的卷积特征,就像Fast R-CNN检测器所做的一样[2]。多尺度锚点的设计是共享特征同时无需花费额外成本处理尺度的关键组成部分

3、训练RPNS

可以通过反向传播和随机梯度下降(SGD)端对端地训练RPN [35]。

我们在图像中随机采样256个anchor,以计算mini-batch的损失函数,其中采样的正和负anchor的比例最高为1:1。如果图像中的正样本少于128个,则用负样本填充mini-batch。
我们通过从零均值高斯分布中提取权重(标准偏差为0.01)来随机初始化所有新层。所有其他层(即共享卷积层)都通过预先训练ImageNet分类模型来初始化[36],这是标准做法[5]。我们调整ZF网络的所有层,并调整conv3_1以及VGG网络以节省内存[2]。对于PASCAL VOC数据集,我们对60k个小批量使用0.001的学习率,对接下来的20k个mini-batch使用0.0001的学习率。我们使用0.9的动量和0.0005的权重衰减[37]。我们的实现使用Caffe [38]。

 

4、 RPN和Fast R-CNN共享卷积层
到目前为止,我们已经描述了如何训练用于区域提议生成的网络,而没有考虑将利用这些proposal的基于区域的目标检测CNN。对于检测网络,我们采用Fast R-CNN [2]。接下来,我们描述学习具有RPN和Fast R-CNN并具有共享卷积层的统一网络的算法(图2)。
RPN和Fast R-CNN均经过独立训练,将以不同方式修改其卷积层。因此,我们需要开发一种技术,允许在两个网络之间共享卷积层,而不是学习两个单独的网络。我们讨论了三种共享特征的网络训练方法:
(1)交替训练。在此解决方案中,我们首先训练RPN,然后使用这些proposal来训练Fast R-CNN。然后,使用由Fast R-CNN微调的网络初始化RPN,然后重复此过程。这是本文所有实验中使用的解决方案。
(2)近似联合训练(Approximate joint training)。在此解决方案中,如图2所示,在训练过程中将RPN和Fast R-CNN网络合并为一个网络。在每次SGD迭代中,前向传递都会生成区域proposal,就像Fast R-CNN检测器对待固定的,预先计算的proposal一样。反向传播照常进行,对于共享层,来自RPN Loss和Fast R-CNN Loss的反向传播信号被组合在一起。该解决方案易于实现。但是此解决方案忽略了导数w.r.t. proposal boxes的坐标也是网络响应,因此是近似值。在我们的实验中,我们凭经验发现此求解器产生的结果接近,但与交替训练相比,训练时间减少了约25-50%。这个解决方案包含在我们发布的Python代码中。
(3)非近似联合训练(Non-approximate joint training)。
如上所述,RPN预测的边界框也是输入的函数。Fast R-CNN中的RoI 池化层[2]接受卷积特征,并接受预测的边界框作为输入,因此,理论上有效的反向传播求解器也应包含梯度w.r.t.,框坐标。这些梯度在上面的近似联合训练中被忽略。在一个非近似的联合训练解决方案中,我们需要一个ROI 池化层的可微的(differentiable)w.r.t.框坐标。这是一个不平凡的问题,可以通过[15]中开发的“ RoI warping”层来提供解决方案,这超出了本文的范围。
4步交替训练。
在本文中,我们采用务实的4步训练算法通过交替优化来学习共享特征。第一步,我们按照3.1.3节所述训练RPN。该网络使用ImageNet预训练的模型初始化,并针对区域建议任务端到端进行了微调。在第二步中,我们使用步骤1 RPN生成的proposal,通过Fast R-CNN训练一个单独的检测网络。该检测网络也由ImageNet预训练模型初始化。此时,两个网络不共享卷积层。在第三步中,我们使用检测器网络初始化RPN训练,但是我们调整了共享卷积层,并且仅微调了RPN唯一的层。现在,这两个网络共享卷积层。最后,保持共享卷积层固定不变,我们对Fast R-CNN的唯一层进行微调。这样,两个网络共享相同的卷积层并形成统一的网络。可以进行类似的交替训练进行更多迭代,但是我们观察到提升很小。

5、 实现细节
我们在单一尺度的图像上训练和测试区域提议和目标检测网络[1],[2]。我们重新缩放图像,使它们的短边为s = 600像素[2]。多尺度特征提取(使用图像金字塔)可能会提高准确性,但并不能表现出良好的速度精度折衷[2]。在重新缩放的图像上,最后一个卷积层上的ZF和VGG网络的总跨度为16像素,因此在调整大小(~500×375)之前,在典型的PASCAL图像上为~10像素。即使跨度较大,也可以提供良好的结果,尽管跨度较小时可以进一步提高精度。
对于anchor,我们使用3个尺度,框区域分别为128^2、 256^2和 512^2像素,以及3个宽高比为1:1、1:2和2:1。这些超参数不是为特定数据集精心选择的,我们将在下一部分中提供有关其影响的消融实验。如前所述,我们的解决方案不需要图像金字塔或过滤器(卷积)金字塔即可预测多个尺度的区域,从而节省了可观的运行时间。图3(右)显示了我们的方法在各种尺度和纵横比下的功能。表1显示了使用ZF网络为每个锚点学习的平均建议大小。我们注意到,我们的算法所允许的预测大于潜在的感受野。这样的预测并非没有可能-即使只有object的中间可见,则仍可以粗略地推断出object的范围。
跨越图像边界的anchor需要小心处理。在训练期间,我们将忽略所有跨边界anchor,因此它们不会造成损失。对于典型的1000×600图像,总共将有大约20000(≈60×40×9)个anchor。忽略跨边界anchor,每个图像大约有6000个anchor用于训练。如果在训练中不忽略跨边界的异常值,则会在目标中引入较大且难以校正的误差项,并且训练不会收敛。但是,在测试过程中,我们仍将全卷积RPN应用于整个图像。这可能会生成跨边界建议框,我们会将其裁剪到图像边界。
一些RPN proposal彼此高度重叠。为了减少冗余,我们根据proposal区域的cls分数采用非最大抑制(NMS)。我们将NMS的IoU阈值固定为0.7,这使得每个图像有大约2000个建议区域。正如我们将显示的那样,NMS不会损害最终的检测准确性,但是会大大减少proposal的数量。在NMS之后,我们使用排名前N位的proposal区域进行检测。在下文中,我们使用2000个 RPN proposal训练Fast R-CNN,但是在测试时评估不同数量的proposal。

实验

 

 

 

总结

提出了区域提议网络(RPN),用于高效和准确地生成区域提议。

通过与下游检测网络共享卷积特征,区域提议步骤几乎是免费的。我们的方法使统一的、基于深度学习的对象检测系统能够以 5-17 fps 的速度运行。学习到的 RPN 还提高了区域建议的质量,从而提高了整体目标检测的准确性。

参考文献

[1] K. He, X. Zhang, S. Ren, and J. Sun, “Spatial pyramid pooling in deep convolutional networks for visual recognition,” in European Conference on Computer Vision (ECCV), 2014.
[2] R. Girshick, “Fast R-CNN,” in IEEE International Conference on Computer Vision (ICCV), 2015.
[3] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in International Conference on Learning Representations (ICLR), 2015.
[4] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A. W. Smeulders, “Selective search for object recognition,” International Journal of Computer Vision (IJCV), 2013.
[5] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” in IEEE Conference on Computer Vision and Pattern
Recognition (CVPR), 2014.
[6] C. L. Zitnick and P. Doll´ar, “Edge boxes: Locating object proposals from edges,” in European Conference on Computer Vision (ECCV), 2014.
[7] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
[8] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detection with discriminatively trained partbased models,” IEEE Transactions on Pattern Analysis and Machine
Intelligence (TPAMI), 2010.
[9] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun, “Overfeat: Integrated recognition, localization and detection using convolutional networks,” in International Conference on Learning Representations (ICLR), 2014.
[10] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards real-time object detection with region proposal networks,” in Neural Information Processing Systems (NIPS), 2015.
[11] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman, “The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Results,” 2007.
[12] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan,P. Doll´ar, and C. L. Zitnick, “Microsoft COCO: Common Objects in Context,” in European Conference on Computer
Vision (ECCV), 2014.
[13] S. Song and J. Xiao, “Deep sliding shapes for amodal 3d object detection in rgb-d images,” arXiv:1511.02300, 2015.
[14] J. Zhu, X. Chen, and A. L. Yuille, “DeePM: A deep part-based model for object detection and semantic part localization,” arXiv:1511.07131, 2015.
[15] J. Dai, K. He, and J. Sun, “Instance-aware semantic segmentation via multi-task network cascades,” arXiv:1512.04412, 2015.
[16] J. Johnson, A. Karpathy, and L. Fei-Fei, “Densecap: Fully convolutional localization networks for dense captioning,”arXiv:1511.07571, 2015.
[17] D. Kislyuk, Y. Liu, D. Liu, E. Tzeng, and Y. Jing, “Human curation and convnets: Powering item-to-item recommendations on pinterest,” arXiv:1511.04003, 2015.
[18] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” arXiv:1512.03385, 2015.
[19] J. Hosang, R. Benenson, and B. Schiele, “How good are detection proposals, really?” in British Machine Vision Conference (BMVC), 2014.
[20] J. Hosang, R. Benenson, P. Doll´ar, and B. Schiele, “What makes for effective detection proposals?” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2015.
[21] N. Chavali, H. Agrawal, A. Mahendru, and D. Batra, “Object-Proposal Evaluation Protocol is ’Gameable’,” arXiv:1505.05836, 2015.
[22] J. Carreira and C. Sminchisescu, “CPMC: Automatic object segmentation using constrained parametric min-cuts,”IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012.
[23] P. Arbel´aez, J. Pont-Tuset, J. T. Barron, F. Marques, and J. Malik, “Multiscale combinatorial grouping,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.
[24] B. Alexe, T. Deselaers, and V. Ferrari, “Measuring the objectness of image windows,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012.
[25] C. Szegedy, A. Toshev, and D. Erhan, “Deep neural networks for object detection,” in Neural Information Processing Systems (NIPS), 2013.
[26] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov, “Scalable object detection using deep neural networks,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.
[27] C. Szegedy, S. Reed, D. Erhan, and D. Anguelov, “Scalable,high-quality object detection,” arXiv:1412.1441 (v1), 2015.
[28] P. O. Pinheiro, R. Collobert, and P. Dollar, “Learning to segment object candidates,” in Neural Information Processing Systems (NIPS), 2015.
[29] J. Dai, K. He, and J. Sun, “Convolutional feature masking for joint object and stuff segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
[30] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun, “Object detection networks on convolutional feature maps,”arXiv:1504.06066, 2015.
[31] J. K. Chorowski, D. Bahdanau, D. Serdyuk, K. Cho, and Y. Bengio, “Attention-based models for speech recognition,”in Neural Information Processing Systems (NIPS), 2015.
[32] M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” in European Conference on Computer Vision (ECCV), 2014.
[33] V. Nair and G. E. Hinton, “Rectified linear units improve restricted boltzmann machines,” in International Conference on Machine Learning (ICML), 2010.
[34] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov,D. Erhan, and A. Rabinovich, “Going deeper with convolutions,” in IEEE Conference on Computer Vision and Pattern
Recognition (CVPR), 2015.
[35] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard,W. Hubbard, and L. D. Jackel, “Backpropagation applied to handwritten zip code recognition,” Neural computation, 1989.
[36] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma,Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg,and L. Fei-Fei, “ImageNet Large Scale Visual Recognition
Challenge,” in International Journal of Computer Vision (IJCV),2015.
[37] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classificationwith deep convolutional neural networks,” in Neural Information Processing Systems (NIPS), 2012.
[38] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick,S. Guadarrama, and T. Darrell, “Caffe: Convolutional architecture for fast feature embedding,” arXiv:1408.5093, 2014.
[39] K. Lenc and A. Vedaldi, “R-CNN minus R,” in British Machine Vision Conference (BMVC), 2015

参考:

(22条消息) 论文翻译之Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_加油-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值