Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

来源:互联网 发布:远景能源 张雷 知乎 编辑:程序博客网 时间:2024/06/07 10:24

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun


http://ieeexplore.ieee.org/document/7485869/


摘要

目前最先进的目标检测网络需要先用区域建议算法推测目标位置,像SPPnet[1]和Fast R-CNN[2]这些网络已经减少了检测网络的运行时间,这时计算区域建议就成了瓶颈问题。本文中,我们介绍一种区域建议网络(Region Proposal Network, RPN),它和检测网络共享全图的卷积特征,从而实现无时间成本的区域建议。RPN是一个全卷积网络,在每个位置同时预测目标边界和objectness得分。RPN是端到端训练生成高质量的区域建议框,用于Fast R-CNN检测。通过一种简单的交替运行优化方法,RPN和Fast R-CNN可以在训练时共享卷积特征。对于非常深的VGG-16模型[3],我们的检测系统在GPU上具有5fps(包括所有步骤)的帧速率,同时在PASCAL VOC 2007年,2012年和MS COCO数据集上实现了最先进的对象检测精度,每个图像用了300个建议框。在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是几个赛道中第一名获奖作品的基础。代码已公开。


关键词:对象检测,区域提案,卷积神经网络


1 引言

最近目标检测的最新进展是由区域建议方法(例如[4])和基于区域的卷积神经网络(R-CNN)[5]取得的成功来推动的。虽然基于区域的CNN在[5]中刚提出时在计算上消耗很大,好在后来这个消耗通过建议框之间卷积共享[1,2]大大降低了。最近的Fast R-CNN[2]使用非常深的网络[3]实现了近实时检测的速率(忽略生成区域建议框的时间)。现在,建议框是最先进的检测系统中的计算瓶颈。

区域建议方法通常依赖于消耗小的特征和经济的获取方案。选择性搜索[4]是最流行的方法之一,它基于设计好的低级特征贪婪地融合超级像素。然而与高效率检测网络[2]相比,选择性搜索要慢一个数量级,在使用CPU时大约每个图像需要2s。EdgeBoxes[6]在建议框质量和速度之间做出了目前最好的权衡,每个图像0.2s。不过,区域建议步骤仍消耗了和检测网络相当多的时间。

可以注意到,Fast R-CNN利用了GPU,而区域建议方法是在CPU上实现的,运行时间的比较是不公平的。一种明显提速生成建议框的方法是在GPU上重新实现,这是一个很有效的工程解决方案,但重新实现忽略了其后的检测网络,因而也忽略了共享计算的重要机会。

在本文中,我们展示了算法的改变–用深度卷积网络计算建议框–这是一种简洁有效的解决方案,其中提出的计算几乎是无损检测网络的。为此,我们引入了与最先进的目标检测网络共享卷积层的新的区域建议网络(Region Proposal Networks, RPN)[1,2]。在测试时通过共享卷积,计算建议框的边际成本很小(例如每个图像10ms)。

我们观察发现,基于区域的检测器(如Fast R-CNN)所使用的卷积特征映射也可以用于生成区域建议。在这些卷积特征之上我们增加两个额外的卷积层来构建RPN,同时回归常规网格上每个位置的区域边界和objectness得分。因此RPN是一种全卷积网络(FRN)[7],可以专门针对生成检测建议框的任务端到端地训练。

RPN旨在有效地预测具有广泛尺度和纵横比的区域建议。与使用图像(图1,a)或过滤器金字塔(图1,b)的流行方法[8],[9],[1],[2]相比,我们引入了新的“锚” 作为多尺度和纵横比的参考。我们的方案可以被认为是一个回归参考金字塔(图1,c),它避免了枚举多个尺度或纵横比的图像或滤镜。当使用单尺寸图像进行训练和测试时,该模型表现良好,从而有利于运行速度。

这里写图片描述
(a)构建了金字塔的图像和特征图,分类器在所有尺度上运行
这里写图片描述
(b)运行多个尺度/尺寸的过滤器金字塔功能图
这里写图片描述
(c)我们在回归函数中使用参考框的金字塔
图1 解决多种尺度和尺寸的不同方案

为了将RPN和Fast R-CNN[2]目标检测网络统一起来,我们提出了一种训练方案,在区域建议和目标检测之间交替进行微调,同时保持建议框固定。该方案收敛很快,最后形成可让两个任务共享卷积特征的标准网络。(1.自本文发行会议版本以来[10]我们也发现RPN可以与Fast R-CNN网络联合训练使得训练时间减少。)

我们在PASCAL VOC检测标准集[11]上全面评估了我们的方法,fast R-CNN结合RPN的检测准确率优于使用Fast R-CNN结合选择性搜索的方法。同时,我们的方法几乎没有了选择性搜索测试时的所有计算负担,生成建议框的有效运行时间只有10ms。使用[3]中网络非常深的模型,我们的检测方法在GPU上仍然具有5fps的帧速率(包括所有步骤),因此就速度和准确率而言,这是一个实用的目标检测系统。我们还在MS COCO数据集[12]上报告结果,并使用COCO数据调查PASCAL VOC的改进。 代码已经在https://github.com/shaoqingren/faster_rcnn(MATLAB版本)和https://github.com/rbgirshick/py-faster-rcnn(Python版本)公开提供。

这份手稿的初步版本以前已发表[10]。从那时起,RPN和Fast R-CNN的框架已经被采用并推广到其他方法,如3D对象检测[13],部分检测[14],实例分割[15]和图像字幕[16] 。我们的快速有效的物体检测系统也已经在诸如Pinterest [17]等商业系统中建立,用户参与度提高了。在ILSVRC和COCO 2015比赛中,Fast R-CNN和RPN是ImageNet检测,ImageNet定位,COCO检测和COCO分割的几个第一名。 RPN完全学会从数据中提出区域,从而可以从更深层次和更具表现力的特征(如[18]中采用的101层残留网络)中轻松获益。Fast R-CNN和RPN也被这些比赛的其他几个主要参赛作品使用(2.http://image-net.org/challenges/LSVRC/2015/results)。这些结果表明,我们的方法不仅是实用的成本效益的解决方案,而且是提高对象检测精度的有效方法。


2 相关工作

对象建议。有关于对象建议方法的大量文献。对象建议方法的综合调查和比较可以在[19],[20],[21]中找到。广泛使用的对象建议方法包括基于分组超像素(例如Selective Search[4],CPMC[22],MCG[23])和基于滑动窗口的对象建议方法(例如,Windows[24],EdgeBoxes[ 6])。采用对象建议方法作为独立于检测器的外部模块(例如,Selective Search[4]对象检测器,RCNN[5]和Fast R-CNN[2])。深度网络对象检测。R-CNN方法[5]将CNN以端到端的方式进行训练,将建议区域分类为对象类别或背景。R-CNN主要作为分类器,它不预测对象边界(除了通过边界框回归进行细化)。其准确性取决于区域建议模块的性能(参见[20]中的比较)。几篇论文提出了使用深层网络预测物体边界盒的方法[25],[9],[26],[27]。在OverFeat方法[9]中,训练完全连接的层以预测假定单个对象的定位任务的框坐标。然后,完全连接的层被变成用于检测多个类特定对象的卷积层。MultiBox方法[26],[27]从网络生成区域建议,其最后一个完全连接的层同时预测了多个不相关的框,概括了OverFeat的“单盒”方式。这些类不知情的盒子被用作R-CNN的建议[5]。与我们的完全卷积方案相反,MultiBox提议网络应用于单个图像裁剪或多个大图像作物(例如,224×224)。 MultiBox不共享建议和检测网络之间的功能。我们稍后在我们的方法的上下文中讨论OverFeat和MultiBox。与我们的工作同步,DeepMask方法[28]被开发用于学习分段建议。

卷积[9],[1],[29],[7],[2]的共享计算已经引起越来越多的关注,以获得高效准确的视觉识别。OverFeat纸[9]计算图像金字塔的卷积特征,用于分类,定位和检测。为了有效的基于区域的对象检测[1],[30]和语义分割[29],开发了适用于大小合并(SPP)[1]的共享卷积特征图。Fast R-CNN [2]可实现对共享卷积特征的端到端检测器训练,并展现出令人信服的精度和速度。


3 FASTER R-CNN

我们的对象检测系统称为Faster R-CNN,由两个模块组成。第一个模块是深度完全卷积网络的建议区域,第二个模块是使用Fast R-CNN[2]的建议区域。整个系统是一个统一的物体检测网络(图2)。 使用最近流行的神经网络术语“注意”[31]机制,RPN模块告诉Fast R-CNN模块在哪里看。在3.1节中,我们介绍了区域提案网络的设计和属性。 在第3.2节中,我们开发了用于训练具有共享功能的两个模块的算法。
这里写图片描述
图2 Faster R-CNN是用于对象检测的单一统一网络,RPN作为统一网络“注意”


3.1 区域建议网络

区域建议网络(RPN)将一个任意大小图像作为输入,并输出一组矩形目标建议框,每个框有一个objectness得分。我们用全卷积网络[7]对这个过程构建模型,本节会详细描述。因为我们的最终目标是与Fast R-CNN目标检测网络共享计算[2],假设这两个网络共享一组卷积层。在我们的实验中,我们研究了具有5个可共享卷积层的Zeiler和Fergus的模型[32](ZF),以及具有13个可共享卷积层的Simonyan和Zisserman的模型[3](VGG-16)。

为了生成区域建议框,我们在最后一个共享的卷积层输出的卷积特征映射上滑动一个小型网络,该小型网络将输入卷积特征图的nxn空间窗口作为输入。每个滑动窗口映射到一个较低维特征向量上(ZF为256-d,VGG为512-d,后面为ReLU[33])。该特征被输出给两个同级的全连接的层—框回归层(reg)和框分类层(cls)。我们在本文中使用n=3,注意到图像的有效感受野很大(ZF和VGG分别为171和228像素)。这个迷你网络在图3(左图)某个位置的情况示例。注意,由于迷你网络以滑动窗口的方式运行,因此全连接的层在所有空间位置之间共享。该结构实现为nxn的卷积层,接着是两个同级的1x1的卷积层(分别对应reg和cls)。

这里写图片描述
图3 左:区域建议网络(RPN)。右:用RPN建议框在PASCAL VOC 2007测试集上的检测实例。我们的方法可以在很大范围的尺度和长宽比中检测目标。


3.1.1 Anchors

在每个滑动窗口位置,我们同时预测多个区域建议,其中每个位置的最大可能建议数量表示为k。因此,reg层具有4k个输出,即k个box的坐标编码。并且cls层输出2k个得分,即对每个建议框是目标或非目标的估计概率。 k个建议参数化相对于k个参考框,我们称之为anchor。 anchor位于所讨论的滑动窗口的中心,并与尺度和长宽比相关联(图3左侧)。默认情况下,我们使用3个尺度和3个长宽比,在每个滑动位置产生k = 9个锚点。 对于尺寸为W×H(典型值约为2,400)的卷积特征图,总共有W Hk个anchor。

平移不变性

我们的方法的一个重要特性是它是平移不变的,无论是anchor还是计算相对于anchor的建议的功能。如果翻译图像中的对象,则建议应该进行翻译,并且相同的功能应该能够在任一位置预测建议。该翻译不变属性由我们的方法5保证。作为比较,MultiBox方法[27]使用k-means生成800个锚点,这不是平移不变量。因此,MultiBox不保证在翻译对象时生成相同的建议。翻译不变属性也减少了模型大小。 MultiBox具有(4+1)×800维全连接输出层,而在k=9个锚的情况下,我们的方法具有(4+2)×9维卷积输出层。结果,我们的输出层具有(2×8×104)参数(VGG-16的512×(4+2)×9,比具有6:1×106参数的多框输出层少了两个数量级1536×(4+1)为GoogleNet[34]在MultiBox[27])。如果考虑特征投影层,我们的提案层的参数比MultiBox6的参数还要小一个数量级。我们预计我们的方法对小数据集(如PASCAL VOC)具有较少的过拟合风险。

多尺度Anchors作为回归参考

我们的anchors设计提出了解决多个尺度(和长宽比)的新方案。如图1所示,已有两种流行的多尺度预测方式。第一种方法是基于图像/特征金字塔,例如在DPM [8]和CNN基方法[9],[1],[2]中。图像以多个尺度调整大小,并且为每个刻度计算特征图(HOG [8]或深卷积特征[9],[1],[2])(图1(a))。这种方式通常是有用的,但是耗时。第二种方法是在特征图上使用多个刻度(和/或宽高比)的滑动窗口。例如,在DPM [8]中,使用不同的滤波器尺寸(如5×7和7×5)分别对不同宽高比的模型进行了训练。如果用这种方式来处理多个尺度,就可以将其视为“金字塔过滤器”(图1(b))。第二种方式通常采用第一种方式[8]。作为比较,我们的anchors方法建立在一个金字塔的anchors点上,这更具成本效益。我们的方法参照多个尺度和长宽比的anchors框对分界框进行分类和回归。它仅依赖于单个尺度的图像和特征图,并使用单个尺寸的滤镜(特征图上的滑动窗口)。我们通过实验显示了该方案对多尺度和尺寸的影响(表8)。由于这种基于anchors的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征,如Fast R-CNN检测器[2]所完成的。多尺度anchors的设计是共享功能的关键组件,无需额外的成本来缩放尺寸。


3.1.2 损失函数

为了训练RPN,我们为每个anchor分配一个二进制类标签(是或不是目标)。我们为两类anchor分配正标签:(i)具有最高交点超越(IoU)的anchor与ground-truth框重叠,或者(ii)具有高于0.7的IoU重叠的anchor,任何ground-truth框。注意,单个ground-truth可以为多个anchor分配正面标签。通常第二个条件足以确定正样本;但是我们仍然采取第一个条件,原因是在极少数情况下,第二个条件可能没有发现正面的样本。 如果所有ground-truth的IoU比低于0.3,我们为非正性锚定分配负标签。既不积极也不负面的anchor,无助于培训目标。 通过这些定义,我们最小化Fast R-CNN中多任务丢失后的目标函数[2]。我们对图像的损失函数定义为:
这里写图片描述

这里,i是一个mini-batch中anchor的索引,Pi是anchor i是目标的预测概率。如果anchor为正,则ground-truth标签p_i^为1,如果anchor为负,p_i^则为0。t_i是表示预测边界框的4个参数化坐标的向量,t_i^是与正anchor对应的ground-truth框的向量。分类损失L_cls是两个类别(目标vs.非目标)的对数损失。对于回归损失,我们使用L_reg (t_i,t_i^ )=R(t_i-t_i^* )来计算,其中R是[2]中定义的鲁棒的损失函数(smooth L_1)。 p_i^* L_reg这一项意味着只有正anchor(p_i^=1)才有回归损失,其他情况没有(p_i^=0)。cls层和reg层的输出分别由{p_i }和{t_i }组成。

这两项分别由N_cls和N_reg归一化,并由平衡参数λ加权。在我们目前的实现(如发布的代码中)中,方程(1)中的cls项通过mini-batch的小(即N_cls=256)进行归一化,reg项的归一化值为anchor位置的数量(即N_reg~2,400)。 默认情况下,我们设置λ=10,因此cls和reg项差不多是等权重的。我们通过实验显示,结果对于宽范围内的λ的值不敏感(表9)。我们还注意到,不需要上述的归一化,可以简化。

对于边界框回归,我们采用[5]的4个坐标:
这里写图片描述

其中x,y,w,h表示框的中心的坐标及其宽度和高度。变量x,x_a,x^*分别指预测框、anchor的框、ground-truth的框。可以认为从anchor框到附近的ground-truth框的边界框回归。然而,我们的方法通过与以前基于RoI-based(感兴趣的区域)方法不同的方式实现边界框回归[1],[2]。在[1],[2]中,对来自任意大小的RoIs的特征进行边界框回归,并且所有区域大小共享回归权重。在我们的公式中,用于回归的特征在特征图上具有相同的空间大小(3×3)。为了考虑不同的大小,学习了一系列k边界框回归量。每个回归量对应一个尺寸和长宽比,k个回归量之间不共享权重。因此,由于anchor的设计,即使特征是固定尺寸/尺度,仍然可以预测各种尺寸的框。


3.1.3 训练RPN

RPN可以通过反向传播和随机梯度下降(SGD)进行端到端的训练[35]。我们按照[2]的“image-centric”的抽样策略来训练这个网络。每个mini-batch都是由包含了许多正负样本的单个图像组成。我们可以对所有anchor的损失函数进行优化,但是会偏向于负样本,因为它们是主要的。因此,我们在图像中随机地抽取256个anchor来计算mini-batch的损失函数,其中采样的正负anchor的比例是1:1。如果图像中的正样本数小于128,我们就用负样本填补这个mini-batch。
我们通过从零均值标准差为0.01的高斯分布中获取的权重来随机初始化所有新层。所有其他层(即共享卷积层)通过对ImageNet分类预训练的模型来初始化[36],如标准实践[5]。我们调整ZF网络的所有层,以及conv3_1及以上的VGG网络以节省内存[5]。我们在PASCAL VOC数据集上对于60k个mini-batch,使用0.001的学习率,对于下一个20k mini-batch学习率为0.0001。我们的动量是0.9,权重衰减为0.0005[37]。我们的实现使用Caffe[38]。


3.2 共享RPN和Fast R-CNN的功能

到目前为止,我们已经描述了如何为生成区域建议训练网络,而没有考虑基于区域的目标检测CNN如何利用这些建议框。对于检测网络,我们采用Fast R-CNN[2],接下来我,我们描述一种算法,学习由具有共享卷积层的RPN和Fast R-CNN组成的统一网络的算法(图2)。RPN和Fast R-CNN都是独立训练的,要用不同方式修改它们的卷积层。因此,我们需要开发一种允许两个网络间共享卷积层的技术,而不是分别学习两个网络。我们讨论三种训练具有共享功能的网络的方法:

(1)交替训练。在这个解决方案中,我们首先训练RPN,并使用这些建议训练Fast R-CNN。然后使用Fast R-CNN调谐的网络初始化RPN,并重复此过程。这是本文所有实验中使用的解决方案。

(2)大致的联合训练。在这个解决方案中,RPN和Fast R-CNN网络在训练过程中被合并到一个网络中,如图2所示。在每个SGD迭代中,前向传递产生区域建议,这些建议在训练快速时被视为固定的,预先计算的提议R-CNN检测器。反向传播像往常一样发生,其中对于共享层,来自RPN丢失和Fast R-CNN丢失的反向传播信号被组合。这个解决方案很容易实现。但是这个解决方案忽略了衍生词关于建议框的坐标也是网络响应,所以是近似值。在我们的实验中,我们通过实证发现,该求解器产生了较为接近的结果,与交替训练相比,训练时间减少了约25-50%。该解决方案包含在我们发布的Python代码中。

(3)非近似联合训练。如上所述,由RPN预测的边界框也是输入的函数。Fast R-CNN中的RoI池化层[2]接受卷积特征以及预测的边界框作为输入,因此理论上有效的反向传播解算器也应该涉及梯度关于框坐标。 这些梯度在上述近似联合训练中被忽略。 在非近似联合训练解决方案中,我们需要一个与框坐标不同的RoI池化层。这是一个非常重要的问题,解决方案可以由[15]中开发的“RoI warping”层给出,这超出了本文的范围。

表1 使用ZF网络的每个anchor的学习平均建议大小(s = 600)
这里写图片描述

(4)步交替训练。在本文中,我们采用实用的4步训练算法,通过交替优化来学习共享特征。在第一步,我们训练RPN,如3.1.3节所述。该网络使用ImageNet预先训练的模型进行初始化,并针对区域建议任务进行端到端的微调。在第二步,我们使用第一步RPN生成的建议框,通过Fast R-CNN训练单独的检测网络。该检测网络也由ImageNet预先训练的模型初始化。在这一点上,两个网络不共享卷积层。在第三步,我们使用检测器网络来初始化RPN训练,但是我们固定共享的卷积层,并且仅微调RPN独有的层。现在这两个网络共享卷积层了。最后,保持共享的卷积层,我们可以调整Fast R-CNN的独特层。因此,两个网络共享相同的卷积层并形成统一的网络。可以运行类似的交替训练来进行更多迭代,但是我们已经观察到可以忽略的改进。


3.3 实施细节

我们对单个尺度图像的区域建议和对象检测网络进行训练和测试[1],[2]。我们重新缩放图像,使得它们的短边s=600像素[2]。多尺度特征提取(使用图像金字塔)可以提高精度,但不能表现出良好的速度精度权衡[2]。在重新缩放的图像上,最后一个卷积层上的ZF和VGG网络的总步长为16像素,因此在调整大小(~500x375)之前,典型的PASCAL图像约为10个像素。 即使如此大的步长也取得了良好的效果,尽管以较小的步幅可以进一步提高精度。

对于anchor,我们使用3个尺度,128x128,256x256,512x512像素的框以及1:1,1:2,2:1的3个长宽比。对于特定的数据集,这些超参数没有被仔细选择,并且我们在下一节提供了它们的影响的实验。如所讨论的,我们的解决方案不需要图像金字塔或过滤器金字塔来预测多个尺度的区域,从而节省大量的运行时间。图3(右图)显示了我们的方法在广泛的尺度和长宽比上的能力。表1显示了使用ZF网络的每个anchor的学习平均建议大小。我们注意到,我们的算法允许大于底层接受域的预测。 这样的预测并不是不可能的–如果只有对象的中间是可见的,那么仍然可以粗略地推断目标的范围。

跨越图像边界的anchor框要小心处理。在训练过程中,我们忽略所有跨越图像边界的anchor,以免造成损失。对于典型的1000x600的图像,总共将有大约20000(≈60×40×9)个anchor。忽略了跨越边界的anchor以后,每个图像大约有6000个anchor用于训练。如果在训练中不考虑边界离群值,那么将引入大量难以纠正的误差项,训练不会收敛。然而,在测试期间,我们仍然将完整的卷积RPN应用于整个图像中,这可能生成跨越边界的建议框,我们将其裁剪到图像边缘位置。

一些RPN建议框相互重叠。为了减少冗余,我们根据建议区域的cls得分,对其采用非极大值抑制(NMS)。我们固定对NMS的IoU阈值为0.7,这使得我们每个图像大约有2000个建议区域。正如我们将展示的,NMS不会影响最终的检测准确率,但是大幅减少了建议框的数量。在NMS之后,我们使用排名前十的提案区进行检测。在下文中,我们用2000个RPN建议框对Fast R-CNN进行训练,但是在测试时会对不同数量的建议框进行评价。


4 实验


4.1 PASCAL VOC实验

我们在PASCAL VOC2007检测基准[11]上综合评价我们的方法。该数据集由20多个目标类别组成,约5000个训练图像和5000个测试图像。我们还提供了几个模型在PASCAL VOC2012基准测试的结果。对于ImageNet预训练的网络,我们使用具有5个卷积层和3个全连接层的ZF网络[32]的“fast”版本,以及具有13个卷积层和3个全连接层的VGG-16模型[3]。我们主要评估检测的平均精度(mAP),因为这是目标检测的实际指标(而不是专注于目标建议框的代理指标)。

表2 PASCAL VOC 2007测试组的检测结果。检测器是具有ZF的Fast R-CNN,但使用各种建议方法进行训练和测试
这里写图片描述

表2(上图)显示了使用各种区域建议的方法训练和测试时Fast R-CNN的结果。这些结果使用ZF网络。对于选择性搜索(SS)[4],我们通过“fast”模式生成月2000个建议。对于EdgeBoxes(EB)[6],我们生成默认的EB设置调整为0.7IoU。SS的mAP 为58.7%,EB在Fast R-CNN框架下的mAP为58.6%。RPN与Fast R-CNN实现了有竞争力的结果,当使用300个建议框时的mAP就有59.9%(对于RPN,建议框数量,如300,是一个图像产生建议框的最大数量。由于共享卷积计算,使用RPN实现了一个比用SS或EB更快的检测系统, 较少的建议也减少了区域上完全连接的层的成本(表5)。

RPN消融实验。为了研究RPN作为建议框方法的表现,我们进行了多次消融研究。首先,我们展示了在RPN和Fast R-CNN检测网络之间共享卷积层的效果。为了做到这一点,我们在4步训练过程中的第2步后停止。使用单独的网络将结果略微减少到58.7%(RPN + ZF,未共享,表2)。我们观察到这是因为在第3步中,当调整过的检测器特征用于微调RPN时,建议框质量得到改善。

接下来,我们解决RPN对训练Fast R-CNN检测网络的影响。为此,我们通过用2000个SS建议框和ZF网络训练了一个Fast R-CNN模型。我们固定该检测器并通过改变测试时使用的建议区域来评估检测mAP。在这些消融实验中,RPN不与检测器共享特征。

在测试时用300个RPN建议框替换SS,mAP为56.8%。mAP的损失是因为训练/测试建议框之间的不一致。此结果作为以下比较的基准。

令人惊讶的是,RPN在测试时使用排名前100位的建议框仍然导致有竞争力的结果(55.1%),表明这种高低排名的RPN建议框是准确的。另一方面,使用排名最高的6000个RPN建议框(不含NMS)具有可比性的mAP(55.2%),这表明NMS不会对检测mAP造成损害,并可能减少虚假警报。

接下来,我们通过在测试时移除其中任何一个来分别研究RPN的cls和reg输出的作用。当在测试时(因此不使用NMS/排名)移除cls层,我们从未计算得分的区域随机抽取N个建议框。N =1000(55.8%)时mAP几乎没有变化,但当N=100时,mAP显著降低到44.6%。这表明cls得分是排名最高的建议框准确的原因。

另一方面,当在测试时移除reg层(所以建议框为anchor框了),mAP下降到52.1%。这表明,高品质的建议框主要归功于回归后的位置。尽管具有多个尺度和长宽比,anchor框不足以进行精确的检测。

我们还评估更强大的网络对RPN的建议框质量的影响。我们使用VGG-16训练RPN,并仍然使用上述SS+ZF检测器。mAP从56.8%(使用RPN+ZF)提高到59.2%(使用RPN+VGG)。这是一个令人满意的结果,因为它表明RPN+VGG的建议框质量优于RPN+ZF。因为RPN+ZF的建议框是可与SS竞争的(训练和测试一致使用时都是58.7%),我们可能希望RPN+VGG要好于SS。下面的实验证明了这一假设。

VGG-16的性能。表3展示了VGG-16对建议框与检测结果。使用RPN+VGG,Fast R-CNN非共享特征的结果为68.5%,略高于SS基线。如上图所示,这是因为由RPN+VGG生成的建议框比SS更准确。与预定义的SS不同,RPN是实时训练的,能从更好的网络中获益。对特征共享的变型,结果是69.9%–比强大的SS基准更好,建议框几乎无损耗。我们进一步在PASCAL VOC 2007 trainval和2012 trainval的并集上训练RPN,mAP为73.2%。图5显示了PASCAL VOC 2007测试集的一些结果。在PASCAL VOC 2012测试集(表4)中,我们的方法具有70.4%的MAP,在VOC 2007训练和测试以及在VOC 2012的训练。表6和表7显示了详细数字。

表3 在PASCAL VOC 2007测试集上的检测结果,检测器是Fast R-CNN和VGG16。训练数据:“07”:VOC2007 trainval,“07+12”:VOC 2007 trainval和VOC 2012 trainval的并集。对RPN,用于Fast R-CNN训练时的建议框是2k。这在[2]中有报告;利用本文所提供的仓库(repository),这个数字更高(68.0±0.3在6次运行中)。
这里写图片描述

表4 PASCAL VOC 2012测试集检测结果。检测器是Fast R-CNN和VGG16。训练数据:“07”:VOC 2007 trainval,“07++12”: VOC 2007 trainval+test和VOC 2012 trainval的并集。对RPN,用于Fast R-CNN训练时的建议框是2k。
这里写图片描述

表5 K40 GPU上的用时(ms),除了SS建议框是在CPU中进行评价的。“区域方面”包括NMS,pooling,fc和softmax。请参阅我们发布的代码运行时间的分析。
这里写图片描述

表6 Fast R-CNN检测器和VGG16在PASCAL VOC 2007测试集的结果。对于RPN,Fast R-CNN训练时的建议框是2000个。RPN*表示非共享特征的版本。
这里写图片描述

表7 Fast R-CNN检测器和VGG16在PASCAL VOC 2012测试集的结果。对于RPN,Fast R-CNN训练时的建议框是2000个。
这里写图片描述

表8 使用不同的anchors设置,在PASCAL VOC 2007测试集上Faster R-CNN的检测结果。网络是VGG-16。训练数据是VOC 2007 trainval。使用3个尺度和3个长宽比(69.9%)的默认设置与表3中相同。
这里写图片描述

表9 在等式(1)中使用不同的λ值,在PASCAL VOC 2007测试集上Faster R-CNN的检测结果。网络是VGG-16。训练数据是VOC 2007 trainval。使用λ= 10(69.9%)的默认设置与表3中相同
这里写图片描述

表10 单级检测vs.两级建议+检测。检测结果都是在PASCAL VOC2007测试集使用ZF模型和Fast R-CNN。RPN使用非共享的特征。
这里写图片描述

在表5中,我们总结了整个目标检测系统的运行时间。取决于图像内容(平均约1.5s),SS需要1-2秒,而使用VGG-16的Fast R-CNN在2000个SS提案上需要320ms(如果在完全连接的层上使用SVD,则为223ms [2])。我们采用VGG-16的系统生成建议框和检测一共只需要198ms。卷积层共享时,RPN只用10ms来计算附加层。由于建议框少(每张图片300个),我们的区域计算花费也很低。我们的系统采用ZF网络时的帧速率为17fps。

对超参数的敏感性。在表8中,我们调查了anchors的设置。默认情况下,我们使用3个尺度和3个长宽比(表8中为69.9%mAP)。如果在每个位置只使用一个anchors,则mAP将以相当大的差距下降3-4%。如果使用3个尺度(1个长宽比)或3个长宽比(1个刻度),则mAP更高,表明使用多个尺寸的anchors作为回归参考是一个有效的解决方案。使用1个长宽比(69.8%)的3个尺度与在该数据集上使用3个长宽比的3个尺度一样好,表明尺度和长宽比不是检测精度的解开尺寸。但是我们仍然在设计中采用这两个维度来保持系统的灵活性。

在表9中,我们比较了方程(1)中λ的不同值。默认情况下,我们使用λ= 10,这使得等式(1)中的两个项在归一化后大致相等地加权。表9显示,当λ在约两个数量级(1至100)的范围内时,我们的结果仅略微受到影响(约1%)。这表明结果对λ在很大范围内不敏感。

IoU召回率的分析。接下来,我们计算建议框与groundtruth框在不同的IoU比例时的召回率。值得注意的是,该IoU召回率度量标准与最终的检测准确率只是松散[19],[20],[21]。使用此度量标准来诊断建议方法比评估它更为合适。

在图4中,我们展示使用300、1000和2000个建议框的结果。我们将SS和EB进行比较,N个建议框是基于用这些方法生成的按置信度排名的前N个。曲线图显示,当建议框数量由2000降到300时,RPN方法的表现很好。这就解释了使用少至300个建议框时,为什么RPN有良好的最终检测mAP。正如我们前面分析的,这个属性主要是归因于RPN的cls项。当建议框较少时,SS和EB的召回率下降的速度快于RPN。

这里写图片描述
图4:PASCAL VOC 2007测试集上的召回率 vs. IoU重叠率

单级的检测vs.两级的建议框+检测。OverFeat论文[9] 提出了一种检测方法,在卷积特征图的滑动窗口上使用回归和分类器。OverFeat是一个单级的,类特定的检测流程,我们的是一个两级级联,由类无关的建议框方法和类特定的检测组成的级联方法。在OverFeat中,区域特征来自一个滑动窗口,对应一个尺度金字塔的一个长宽比。这些特征被用于同时确定物体的位置和类别。在RPN中,特征都来自相对于anchor的方形(3*3)滑动窗口和预测建议框,是不同的尺度和长宽比。虽然这两种方法都使用滑动窗口,但区域建议任务只是Faster R-CNN的第一级–下游的Fast R-CNN检测器参与了对其进行优化的建议。在我们级联的第二级,区域一级的特征自适应地从建议框进行pooling [1],[2],更如实地覆盖区域的特征。我们相信这些特征带来更准确的检测。

为了比较单级和两级系统,我们通过单级的Fast R-CNN模拟OverFeat系统(因而也可以规避实现细节的其他差异)。在这个系统中,“建议框”是稠密滑动的,有3个尺度(128,256,512)和3个长宽比(1:1,1:2,2:1)。Fast R-CNN被训练来从这些滑动窗口预测特定类的得分和回归盒的位置。因为OverFeat系统采用图像金字塔,我们还使用从5个尺度提取的卷积特征进行评估。 我们使用这5个量表,如[1],[2]。

表10比较了两级系统和两个单级系统的变体。使用ZF模型,单级系统具有53.9%的mAP。这比两级系统(58.7%)低4.8%。这个实验证明级联区域建议方法和目标检测的有效性。类似的观察报告在[2],[39]中,起中用滑动窗口取代SS区域建议都导致了约6%的下降。我们还注意到,单级系统比较慢,因为它有相当多的建议框要处理。
4.2 MS COCO实验

我们在Microsoft COCO目标检测数据集上提供更多的结果[12]。此数据集涉及80个目标类别。我们对训练集上的80k图像,验证集上的40k图像和测试开发集上的20k图像进行了实验。我们评估对于IoU 2 [0:5:0:05:0:95](COCO的标准度量,简称为mAP @ [.5,.95])和mAP@0.5(PASCAL VOC度量)的平均值。

我们的系统为这个数据集做了一些细微的变化。我们在8-GPU实现上训练我们的模型,RPN的有效小批量大小为8(每个GPU为1个),快速R-CNN为16个(每个GPU 2个)。 RPN步骤和快速R-CNN步骤都训练了240k次迭代,学习率为0.003,然后用0.0003进行80k次迭代。我们修改学习率(从0.003开始,而不是0.001),因为小批量大小改变了。对于anchors,我们使用3个长宽比和4个尺度(添加642),主要是通过处理该数据集上的小对象。此外,在我们的Fast R-CNN步骤中,负样本被定义为具有最大IoU值的区域[0; 0:5),而不是[0:1; 0:5)在[1],[2]中使用。我们注意到,在SPPnet系统[1]中,[0:1; 0:5)用于网络微调,但[0; 0:5)仍然在SVM步骤中进行硬负采矿。但是Fast R-CNN系统[2]放弃了SVM步骤,所以在[0; 0:1)从未访问过。包括这些[0; 0:1)样本在COCO数据集上为Fast R-CNN和Faster R-CNN系统提供了mAP@0.5(但PASCAL VOC的影响可以忽略不计)。

表11 MS COCO数据集上的目标检测结果(%)。该模型为VGG-16。
这里写图片描述

其余的实施细节与PASCAL VOC相同。特别是,我们继续使用300个建议和单一(s = 600)测试。COCO数据集上的每个图像的测试时间大约是200ms。

在表11中,我们首先使用本文的实现报告了Fast R-CNN系统的结果[2]。我们的Fast R-CNN基线在测试开发集上具有39.3%的mAP@0.5,高于[2]中介绍的。我们推测,这个差距的原因主要是由于负样本的定义以及小批量大小的变化。我们还注意到,mAP @ [.5,.95]只是可比的。

接下来我们评估我们Faster R-CNN系统。使用COCO训练集进行训练,Faster R-CNN在COCO测试开发集上具有42.1%的mAP@0.5和21.5%的mAP @ [.5,.95]。对于mAP@0.5,这比mAP @ [.5,.95]高出2.8%,而相同协议下的Fast RCNN对应(表11)。这表明RPN对于在较高的IoU阈值下提高定位精度表现出色。使用COCO trainval训练,Faster R-CNN在COCO测试开发集上具有42.7%的mAP@0.5和21.9%的mAP @ [.5,.95]。图6显示了MS COCO测试开发套件的一些结果。

ILSVRC和COCO 2015比赛Faster R-CNN。我们已经证明,Faster R-CNN从更好的功能中获益更多,这得益于RPN完全通过神经网络学习提出地区的事实。即使将深度大致增加到100多层,这一观察仍然有效[18]。只有通过用101层剩余网(ResNet-101)替换VGG-16 [18],Faster R-CNN系统将mAP从41.5%/ 21.2%(VGG-16)提高到了48.4%/ 27.2%(ResNet -101)在COCO阀组上。与其他改进正交于Faster RCNN,He et al。 [18]获得了55.7%/ 34.9%的单一模型结果,COCO测试设置的综合成绩为59.0%/ 37.4%,在COCO 2015对象检测竞赛中排名第一。同样的系统[18]也在ILSVRC 2015对象检测比赛中荣获第一名,超过了绝对8.5%的第二名。RPN也是ILSVRC 2015本地化和COCO 2015细分竞赛中第一名获奖作品的组成部分,分别在[18]和[15]中提供了细节。

表12 在PASCAL VOC 2007测试集和2012年测试集上使用不同的训练数据检测Faster R-CNN的mAP(%)。该模型为VGG-16。“COCO”表示COCO训练集用于训练。另见表6和表7。
这里写图片描述


4.3从MS COCO到PASCAL VOC

大规模数据对于改进深层神经网络至关重要。接下来,我们调查MS COCO数据集如何帮助PASCAL VOC的检测性能。

作为一个简单的基线,我们直接评估了PASCAL VOC数据集上的COCO检测模型,而不对任何PASCAL VOC数据进行微调。这种评估是可能的,因为COCO的类别是PASCAL VOC上的类别。在COCO中排除的类别在本实验中被忽略,softmax层仅在20个类别和背景上执行。PASCAL VOC 2007测试组下的mAP为76.1%(表12)。尽管PASCAL VOC数据没有被利用,但是这个结果比VOC07+12(73.2%)得到了很好的改善。

然后我们对VOC数据集上的COCO检测模型进行微调。在本实验中,COCO模型代替了ImageNet预先训练的模型(用于初始化网络权重),并且Faster R-CNN系统如3.2节所述进行了微调。这样做导致PASCAL VOC 2007测试集上的78.8%的mAP。 COCO集合的额外数据使mAP增加了5.6%。表6显示,在PASCAL VOC 2007上,COCO + VOC培训的模型对于每个类别都具有最佳的AP。在PASCAL VOC 2012测试集上,观察到类似的改进(表12和表7)。我们注意到,获得这些强劲结果的测试时间速度仍然是每个图像大约200ms。

这里写图片描述
图5 对最终的检测结果使用具有共享特征的RPN + FastR-CNN在PASCAL VOC 2007测试集上的例子。模型是VGG16,训练数据是07 + 12trainval。我们的方法检测的对象具有范围广泛的尺度和长宽比。每个输出框与一个类别标签和一个范围在[0,1]的softmax得分相关联。显示这些图像的得分阈值是0.6。取得这些结果的运行时间是每幅图像198ms,包括所有步骤。

这里写图片描述
图6 使用Faster R-CNN系统在MS COCO测试开发集上选择的对象检测结果示例。该模型为VGG-16,训练数据为COCO trainval(在测试开发套件上为42.7%mAP@0.5)。每个输出框与[0; 0]中的类别标签和softmax分数相关联[0;1]。分数阈值为0.6用于显示这些图像。对于每个图像,一种颜色表示该图像中的一个对象类别。


5 结论

我们对高效和准确的区域建议的生成提出了区域建议建议网络(RPN)。通过与后面检测网络共享卷积特征,区域建议步骤几乎是无损耗的。我们的方法使一个统一的,基于深度学习的目标检测系统能够以近乎实时的帧速率运行。学习的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. Dollar, “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. Dollar, 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. Dollar, 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. Arbelaez, 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 classification with 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.

阅读全文
2 0