最先进的目标检测网络依赖于区域建议算法来假设物体的位置.像sppnet[1]和快速r-cnn[2]这样的进步减少了这些检测网络的运行时间,将区域提案计算暴露为瓶颈。在本文中,我们引入了一个区域提案网络(RPN),它与检测网络共享全图像卷积特征,从而实现了几乎免费的区域提案。RPN是一个完全卷积的网络,它同时预测每个位置的对象边界和对象性分数。RPN是经过端到端的训练,以产生高质量的区域提案,Faster r-cnn用于检测。通过共享RPN和FAST r-CNN的卷积特性,我们进一步将RPN和FAST r-CNN合并成一个网络-使用最近流行的具有“注意”机制的神经网络术语,RPN组件告诉统一网络在哪里查找。对于非常深的vgg-16模型[3],我们的检测系统在GPU上的帧速率为5 fps(包括所有步骤),同时在pascal voc 2007、2012和coco数据集上实现了最先进的对象检测精度,每幅图像只有300个提案。在ILSVRC和COCO 2015比赛中,速度更快的r-cnn和rpn是几个曲目中第一名获奖作品的基础。代码已公开提供。
关键字:目标检测,区域建议,卷积神经网络。
最近在目标检测方面的进展是由区域提议方法(例如[4])和基于区域的卷积神经网络(Rcnns)[5]的成功所推动的。虽然基于区域的CNN像[5]中最初开发的那样,在计算上是昂贵的,但由于提案[1]、[2]之间的共享卷积,它们的成本已大幅度降低。最新的形式,快速r-cnn[2],实现了几乎实时使用非常深的网络[3],当忽略花在在区域建议的时间。现在,在最先进的检测系统中,提案是测试时间计算的瓶颈.。
区域建议方法通常依赖廉价的特征和经济的推理方案。选择性搜索[4],最流行的方法之一,贪婪地合并了基于工程低水平特征的超像素。然而,与高效的检测网络[2]相比,选择性搜索速度要慢几个数量级,CPU实现中每幅图像的搜索速度为2秒。边缘框[6]目前在建议质量和速度之间提供了最好的折衷,每幅图像0.2秒。尽管如此,区域建议步骤仍然消耗了与检测网络一样多的运行时间。
人们可能会注意到,快速基于区域的CNN利用GPU,而在研究中使用的区域提案方法是在CPU上实现的,这使得这种运行时比较不公平。加速提案计算的一个显而易见的方法是为GPU重新实现它。这可能是一个有效的工程解决方案,但重新实现忽略了下游检测网络,因此错过了共享计算的重要机会。
在本文中,我们证明了一种算法的改变-使用深卷积神经网络的计算方案-在检测网络的计算几乎是免费的情况下,给出了一种优雅而有效的解决方案。为此,我们介绍了一种新的区域提议网络(RPN),它与最先进的物体检测网络共享卷积层[1],[2]。通过在测试时共享卷积,计算方案的边际成本很小(例如,每幅图像10毫秒)。
我们观察到,基于区域的检测器使用的卷积特征映射,如快速rcnn,也可以用于生成区域提案。在这些卷积特征的基础上,我们通过增加几个卷积层来构造一个RPN,它同时在规则网格上的每个位置恢复区域边界和客观分数。因此,RPN是一种全卷积网络(FCN)[7],可以针对产生检测方案的任务进行端到端的训练。
图1:解决多种规模和大小的不同方案。(A)建立了图像和特征层金字塔,并在所有尺度上运行分类器。(B)在特征层上运行多尺度/大小的滤波金字塔。(C)我们在回归函数中使用参考框金字塔。
RPN旨在有效地预测具有广泛尺度和纵横比的区域提案。相对于使用图像金字塔(图1,a)或滤波器金字塔(图1,b)的流行方法[8]、[9]、[1]、[2],我们引入了以多尺度和宽径比作为参考的新型“锚”盒。我们的方案可以被认为是一个金字塔的回归参考(图1,c),这避免了枚举图像或过滤器的多尺度或高宽比。该模型在使用单尺度图像进行训练和测试时表现良好,提高了运行速度.。
为了将RPN与快速的r-cnn[2]目标检测网络相结合,我们提出了一种训练方案,该方案在对区域提案任务进行微调和对目标检测进行细调的同时保持提案的固定性。该方案快速收敛,产生一个具有两个任务之间共享的卷积特性的统一网络。
我们对Pascal voc检测基准[11]进行了综合评价,其中具有快速r-CNN的RPNs比具有快速r-CNNs的强选择性搜索基线具有更好的检测精度。同时,我们的方法在测试时几乎免除了选择性搜索的所有计算,测试时间-有效运行时间仅为10毫秒。利用文献[3]中昂贵的深度模型,我们的检测方法在GPU上仍然具有5 fps的帧速率(包括所有步骤),因此在速度和精度上都是一个实用的目标检测系统。我们还报告了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和更快的r-cnn框架被采用并推广到其他方法,如3D对象检测[13]、基于部分的检测[14]、实例分割[15]和图像标题[16]。我们的快速和有效的对象检测系统也是在商业系统中建立的,例如Pinterest[17],并报告了用户参与改进的情况。
在ILSVRC和COCO 2015竞赛中,更快的r-cnn和rpn是几个排名第一的条目[18]在ImageNet检测、ImageNet定位、coco检测和coco分割的轨道上的基础。RPN完全学会从数据中提出区域,因此可以很容易地受益于更深层次和更有表现力的特性(例如[18]中采用的101层残差网)。更快的r-cnn和rpn也被其他几个领先的参赛选手在这些比赛中使用。这些结果表明,该方法不仅具有较高的实用成本,而且是提高目标检测精度的有效方法。
目标提案:关于对象建议方法的研究文献很多。对目标提案方法的全面调查和比较见[19]、[20]、[21]。广泛使用的对象提议方法包括基于分组超像素的方法(例如,选择性搜索[4]、CPMC[22]、MCG[23])和基于滑动窗口的方法(例如窗口中的对象性[24]、边缘框[6])。对象提议方法作为独立于检测器的外部模块(例如,选择性搜索[4]对象检测器、Rcnn[5]和FAST r-CNN[2])。
用于目标检测的深度网络 :r-cnn方法[5]对CNN进行端到端的训练,将提案区域划分为对象、类别或背景。R-CNN主要用作分类器,它不预测对象的边界(除了通过bounding boxes回归进行细化)。其准确性取决于区域提案模块的性能(见[20]中的比较)。有几篇论文提出了利用深度网络预测对象bounding boxes[25]、[9]、[26]、[27]的方法。在Overfeat方法[9]中,训练一个全连接层来预测假定单个对象的定位任务的盒坐标。然后,将所述全连接层转换为用于检测多个特定于类的对象的卷积层。多盒方法[26]、[27]从一个网络中生成区域提案,该网络的最后一个全连接层同时预测多个类无关的盒子,从而推广了“单盒”的超值模式。这些阶级不可知论的盒子被用作建议的r-cnn[5]。多盒提议网络应用于单个图像crop或多个大图像crop(例如224×224),与我们的全卷积方案相反。多盒在提案和检测网络之间不共享特性。我们在后面的方法中更深入地讨论了超限和多盒问题。在我们的工作的同时,深度掩码法[28]是为了学习分割方案而发展起来的。
图2:速度更快的R-CNN是一个单一的、统一的对象检测网络。RPN模块作为这个统一网络的“关注点”。
卷积的共享计算[9]、[1]、[29]、[7]、[2]因其高效、准确的视觉识别而受到越来越多的关注。本论文[9]从图像金字塔中计算卷积特征以进行分类、定位和检测。在共享卷积特征映射上开发了自适应大小池(Spp)[1],用于有效的基于区域的对象检测[1]、[30]和语义分割[29]。快速r-cnn[2]支持端到端检测器关于共享卷积特征的训练,并显示出引人注目的准确性和速度。
我们的目标检测系统,称为更快的r-cnn,由两个模块组成:第一个模块是提出区域的深度全卷积网络,第二个模块是使用所提出区域的快速r-CNN检测器[2]。整个系统是一个单一的、统一的对象检测网络(图2)。RPN模块使用最近流行的“注意”[31]机制的神经网络术语,告诉快速的r-CNN模块在哪里查找。在第3.1节中,我们介绍了区域提案网络的设计和特性。在第3.2节中,我们开发了用于训练两个具有共享特征的模块的算法。
区域提议网络(RPN)以一幅图像(任意大小)作为输入,输出一组矩形对象提案,每一项都有一个客观评分。我们用一个全卷积网络[7]来建模这个过程,我们在本节中对此进行了描述。由于我们的最终目标是与快速的r-cnn目标检测网络共享计算[2],我们假设这两个网络共享一组公共的卷积层。在实验中,我们研究了泽勒和费格斯模型[32](ZF),它有5个可共享卷积层,Simonyan和Zisserman模型[3](vgg-16)有13个共享卷积层。
为了产生区域建议,我们在最后一个共享卷积层输出的卷积特征图上滑动了一个小网络。该小网络采用输入卷积特征映射的n×n空间窗口作为输入。每个滑动窗口映射到一个低维特征(zf为256-d,vgg为512-d,以下为relu[33])。这个特性被输入到两个全连接的同级层-一个box-回归层(Reg)和一个box-分类层(CLS)。本文使用n=3,指出输入图像上的有效接收场较大(ZF和vgg分别为171和228像素)。图3中的一个位置显示了这个迷你网络(左)。请注意,由于迷你网络以滑动窗口的方式工作,完全连接的层是在所有空间位置共享的。该体系结构自然由n×n卷积层和两个1×1卷积层(分别用于REG和CLS)实现。
图3:左:区域提案网络(RPN)。右:在Pascal voc 2007测试中使用RPN提案的示例检测。我们的方法在广泛的尺度和高宽比中检测物体。
在每个滑动窗口位置,我们同时预测多个区域提案,其中每个位置的最大可能方案的数目表示为k。因此,reg层具有4k输出,编码k盒的坐标,而CLS层输出2k分数,该分数估计每个提议的对象概率或非对象概率。k个方案是相对于k个参考箱的参数化的,我们称之为锚。锚位于所述滑动窗口的中心,并与比例和纵横比相关联(图3,左)。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置产生k=9个锚。对于大小为w×h的卷积特征图(通常为∼2,400),共有w个Hk锚。
平移不变锚
我们的方法的一个重要性质是它是平移不变的,无论是从锚和计算建议相对于锚的函数。如果一个人在图像中被转化为一个对象,那么建议框应该被转换,并且相同的功能应该能够预测在任何一个位置的提案。我们的方法5保证了这种平移不变性质。作为比较,MultiBox方法[27]使用k-均值生成800个锚点,这些锚点不是平移不变的。因此,如果转化为了一个对象,Multibox并不能保证生成相同的建议框。
平移不变性也减小了模型的大小。在k=9个锚的情况下,多盒具有(4+1)×800维全连通输出层,而我们的方法有(4+2)×9维卷积输出层。结果表明,我们的输出层有个参数(vgg-16为512×(4+2)×9),比MultiBox输出层的输出层少两个数量级(在MultiBox[27]中,GoogleNet[34]为1536×(4+1)×800),MultiBox输出层为6.1×106个参数(1536×(41)×800)。如果考虑到特征映射层,我们的建议层的参数仍然比多盒6少一个数量级。我们期望我们的方法在小型数据集(如Pascalvoc)上有较小的过拟合风险。
多尺度锚作为回归参考
我们锚的设计提出了一种新的方案,以解决多尺度(和高宽比)。如图1所示,有两种常用的多尺度预测方法。第一种方法是基于图像/特征金字塔,例如DPM[8]和基于cnn的方法[9]、[1]、[2]。图像按多尺度调整大小,并为每个比例尺计算特征图(HOG[8]或深卷积特征[9]、[1]、[2])(图1(A)。这种方式通常是有用的,但却很费时。第二种方法是在特征映射上使用多尺度(和/或高宽比)的滑动窗口。例如,在DPM[8]中,使用不同的滤波器尺寸(如5×7和7×5)分别训练不同长宽比的模型。如果使用这种方法来处理多个尺度,则可以将其视为“滤波器金字塔”(图1(B)。第二种方式通常与第一种方式共同采用[8]。
作为比较,我们基于锚的方法是建立在一个金字塔的锚,这是更高的成本效益。我们的方法根据多尺度和高宽比的锚盒对包围盒进行分类和回归。它只依赖于单一尺度的图像和特征映射,并且使用单个大小的滤波器(功能地图上的滑动窗口)。我们通过实验证明了该方案在解决多尺度和多尺度问题方面的效果(表8)。
由于这种基于锚的多尺度设计,我们可以简单地使用单尺度图像上计算的卷积特征,快速r-cnn检测器[2]也是这样做的。多尺度锚的设计是在不增加寻址代价的情况下实现特征共享的关键部件。
为了训练RPN,我们给每个锚分配一个二进制类标签(不管是否是一个对象)。我们为两种锚指定了一个正标签:(一)与地面真相盒重叠的具有最高交叉度(IOU)的锚/锚(IOU),或者(Ii)与任何地面真相盒的IOU重叠超过0.7的锚。请注意,一个单一的地面真相框可以为多个锚指定正标签。通常第二个条件足以确定正样本,但我们仍然采用第一个条件,因为在一些罕见的情况下,第二个条件可能找不到正样本。如果一个非正锚的IOU比率低于0.3,则我们为一个非正锚指定一个负标签。既不积极也不消极的锚对训练目标没有帮助。
利用这些定义,我们将FAST r-CNN[2]中的多任务损失后的目标函数最小化。我们对图像的损失函数定义为:
这里的i是一个小批中锚的索引,pi是锚i作为一个对象的预测概率。如果锚点为正,则地面真值标签p∗i为1,如果锚点为负值,则为0。ti是一个向量,表示预测边界盒的4个参数化坐标,是与正锚相关的地面真相盒的坐标。分类损失LCLS是两个类(对象与非对象)上的日志丢失。对于回归损失,我们使用Lreg(ti,t∗i)=r(ti−),其中r是文[2]中定义的稳健损失函数(光滑L1)。术语Lreg意味着回归损失仅对正锚激活(p∗i=1),否则被禁用(p∗i=0)。CLS和REG层的输出分别由{pi}和{ti}组成。
这两个项由Ncls和Nreg标准化,并由一个平衡参数λ加权。在我们当前的实现中(在发布的代码中),eqn中的CLS项。(1)通过最小批处理大小(即ncls=256)规范化,reg项由锚位置数(即nreg∼2,400)标准化。默认情况下,我们设置λ=10,因此CLS和REG项的权重大致相等。实验表明,在较宽的范围内,结果对λ值不敏感(表9)。我们还注意到,上面提到的标准化并不是必需的,可以简化。
对于bounding box回归,我们采用以下4个坐标的参数化[5]:
其中x,y,w和h表示box的中心坐标及其宽度和高度。变量x、xa和分别用于预测盒、锚盒和地面真相盒(y、w、h也是如此)。这可以被认为是从锚盒到附近的ground-truth盒的bounding box回归。
然而,我们的方法实现了bounding box回归与以往的基于区域的方法[1],[2]不同的方式。在[1],[2]中,对任意大小的ROI集合的特征执行bounding box回归,回归权重由所有区域大小共享。在我们的公式中,用于回归的特征在特征地图上具有相同的空间大小(3×3)。为了解释不同的大小,学习了一组k界盒回归器。每个回归者负责一个尺度和一个纵横比,而k回归者不共享权重。因此,由于锚的设计,即使功能是固定的大小/规模,也仍然可以预测各种大小的盒子。
RPN可以通过反向传播和随机梯度下降(SGD)[35]对端到端进行训练。我们遵循[2]的“以图像为中心”的抽样策略来训练这个网络。每一小批产生的单一图像,其中包含许多正面和负面的例子锚。可以对所有锚的损耗函数进行优化,但这将偏向负样本,因为它们占主导地位。相反,我们在图像中随机抽样256个锚,以计算小批量的丢失函数,其中采样的正锚和负锚的比率高达1:1。如果一幅图像中的正样本少于128个,我们用负片填充小批次。
我们随机初始化所有新的层,从零均值高斯分布中提取权重,标准差为0.01。所有其他层(即共享卷积层)都是通过预先训练ImageNet分类模型[36]来初始化的,这是标准实践[5]。我们对ZF网的所有层进行调优,并对vgg网进行卷积1和向上以节省内存[2]。在Pascal voc数据集上,我们对60000个小批使用了0.001的学习速率,对于下一个20k的小批使用了0.0001。我们使用的动量为0.9,重量衰减为0.0005[37]。我们的实施使用CAFIE[38]。
到目前为止,我们已经描述了如何训练一个区域提案生成网络,而不考虑将利用这些建议的基于区域的目标检测cnn。对于检测网络,我们采用了快速r-cnn[2]。接下来,我们描述了学习由RPN和具有共享卷积层的快速R-CNN组成的统一网络的算法(图2)。
RPN和快速r-cnn都是独立训练的,它们将以不同的方式修改它们的卷积层。因此,我们需要开发一种技术,允许在两个网络之间共享卷积层,而不是学习两个独立的网络。我们讨论了具有共享功能的训练网络的三种方法:
(I)交替训练。在这个解决方案中,我们首先训练RPN,并利用这些建议来训练FAST R-CNN.然后使用由FAST R-CNN调整的网络来初始化RPN,然后迭代这个过程。这是本文所有实验中使用的解决方案。
(2)近似联合训练。在此解决方案中,RPN和快速R-CNN网络在训练期间合并成一个网络,如图2所示。在每一次SGD迭代中,前通过产生的区域提案就像训练快速r-cnn检测器时的固定、预先计算的建议一样。反向传播通常发生在共享层上,将来自RPN损耗和快速R-CNN损失的后向传播信号组合在一起。该解决方案易于实现。但是这个解忽略了导数w.r.t。建议框的坐标也是网络响应,所以也是近似的。在我们的实验中,我们经验性地发现,这种求解器产生了接近的结果,但与交替训练相比,训练时间减少了25%-50%。此解决程序包含在我们发布的python代码中。
(3)非近似的联合训练。如上所述,RPN预测的边框也是输入的函数。快速r-cnn中的ROI池化层[2]接受卷积特征和预测的bounding box作为输入,因此理论上有效的反向传播求解器也应该包含梯度w.r.t。盒坐标。在上述近似的联合训练中忽略了这些梯度。在一个非近似的联合训练解决方案中,我们需要一个可微分的ROI池化层。盒坐标。这是一个非平凡的问题,可以用文[15]中提出的“ROI翘曲”层来解决,这超出了本文的范围。
4步交替训练:本文采用一种实用的四步训练算法,通过交替优化学习共享特征。在第一步,我们训练RPN,如第3.1.3节所述。该网络由ImageNet预先训练的模型初始化,并为区域提案任务进行精确的端到端调整。在第二步中,我们使用步骤-1 RPN产生的建议,通过快速r-cnn来训练一个单独的检测网络。该检测网络也由ImageNet-预训练模型初始化。此时,这两个网络不共享卷积层。在第三步中,我们使用检测器网络来初始化RPN训练,但是我们修复了共享的卷积层,并且只对RPN特有的层进行了微调。现在,这两个网络共享卷积层。最后,保持共享卷积层的固定,我们微调快速r-cnn的独特层。因此,两个网络共享相同的卷积层,形成统一的网络。类似的交替训练可以进行更多的迭代,但我们已经观察到了微不足道的改进。
我们在单尺度[1]、[2]的图像上训练和测试区域提案和目标检测网络。我们对图像进行缩放,使其较短的边为s=600像素[2]。多尺度特征提取(使用图像金字塔)可以提高精度,但没有表现出良好的速度精度权衡[2]。在重比例尺图像上,ZF和VGGNet在最后一个卷积层上的总步长为16像素,因此在一个典型的PASCAL图像(∼500×375)上是10像素。即使是这么大的步幅也能带来很好的效果,尽管随着步幅的减小,精度可能会进一步提高。
对于锚,我们使用3个比例尺,盒子面积为,和像素,3宽比为1:1,1:2和2:1。对于特定的数据集,这些超参数并没有被仔细地选择,我们在下一节中提供了它们的烧蚀实验。正如我们所讨论的,我们的解决方案不需要图像金字塔或滤波器金字塔来预测多尺度区域,从而节省了相当长的运行时间。图3(右)显示了我们的方法对于范围广泛的尺度和高宽比的能力。表1显示了使用ZF网学习的每个锚点的平均建议大小。我们注意到,我们的算法允许比底层接受字段更大的预测。这样的预测并不是不可能的-如果只有物体的中间是可见的,人们仍然可以粗略地推断出物体的范围。
跨越图像边界的锚盒需要小心处理。在训练过程中,我们忽略了所有的跨界锚,这样他们就不会造成损失.对于一个典型的1000×600图像,大约有20000个(≈60×40×9)锚。在忽略跨界锚的情况下,每幅图像大约有6000多个锚进行训练。如果在训练中不忽略跨越边界的异常值,就会在目标上引入较大的、难以纠正的错误项,并且训练不会收敛。然而,在测试期间,我们仍然将全卷积的RPN应用于整个图像。这可能会产生跨界提案框,我们将其剪辑到图像边界。
一些RPN提案彼此高度重叠。为了减少冗余,我们根据建议区域的CLS分数,采用非最大抑制(NMS)方法。我们将NMS的IOU阈值定为0.7,这使得我们每幅图像大约有2000个提议区域。正如我们将要展示的,NMS不会损害最终检测的准确性,但会大大减少提案的数量。在nms之后,我们使用顶级的n个建议区域进行检测。在下面,我们使用2000年RPN提案快速训练r-cnn,但在测试时评估不同数量的建议。
我们对我们的方法在Pascal voc 2007检测基准[11]上进行了全面的评估。该数据集由20多个对象类别的大约5k图和5k测试图像组成。我们还提供了一些模型的Pascalvoc 2012基准的结果。对于ImageNet预训练网络,我们使用ZF网[32]的“快速”版本,它有5个卷积层和3个完全连接层,而公共vgg-16模型7[3]有13个卷积层和3个全连接层。我们主要评估检测的平均精度(MAP),因为这是用于对象检测的实际度量(而不是关注对象提案代理度量)。
表2:Pascal voc 2007测试集的检测结果(对voc 2007 trainval进行了训练)。该探测器是快速r-CNN与ZF,但使用各种建议的方法进行训练和测试.
表2(上图)显示了使用各种区域提案方法训练和测试的快速r-cnn结果。这些结果使用ZF网。对于选择性搜索(Ss)[4],我们以“快速”模式生成了大约2000份提案。对于EDGEBOX(EB)[6],我们通过为0.7IOU进行调优的缺省EB设置生成提案。在快速R-CNN框架下,SS的地图为58.7%,EB的地图为58.6%。RPN与快速r-cnn取得了竞争性的结果,地图为59.9%,同时使用多达300项建议8。由于共享的卷积计算,使用rpn产生的检测系统比使用ss或EB都快得多;更少的建议也降低了区域级全连接层的成本(表5)。
RPN消融实验:为了研究RPNS作为一种提议方法的行为,我们进行了几项消融研究。首先,我们说明了RPN与快速R-CNN检测网络之间共享卷积层的效果。为了做到这一点,我们在4步训练过程中的第二步之后就停止了。使用单独的网络将结果稍微减少到58.7%(RPNZF,未共享,表2)。我们观察到,这是因为在第三步,当探测器调谐的特征被用于微调RPN时,提案质量得到了改善。
其次,分析了RPN对快速R-CNN检测网络训练的影响.为此,我们利用2000年的建议和ZF网训练了一个快速的r-cnn模型。我们修复这个检测器,并通过改变测试时使用的提案区域来评估检测地图。在这些烧蚀实验中,rpn与探测器不具有相同的特性。
在测试时间用300个RPN方案取代SS,将得到56.8%的地图。地图的损失是由于训练/测试结果之间的不一致。此结果可作为以下比较的基准。
有点令人惊讶的是,RPN仍然会在测试时使用排名最高的100份建议书时获得竞争性的结果(55.1%),这表明排名最高的RPN提案是准确的。另一方面,使用排名最高的6000个rpn提案(没有nms)有一个可比较的地图(55.2%),表明nms不会损害检测地图,并可能减少错误警报。
接下来,我们分别通过在测试时关闭RPN的CLS和REG输出来研究RPN的CLS和REG输出的作用。当CLS层在测试时被移除时(因此不使用nms/排名),我们从未得分区域随机抽样n个提案。当n=1000时,MAP几乎没有变化(55.8%),但当n=100时,则降解到44.6%。这表明CLS分数占了排名最高的提案的准确性。
另一方面,当reg层在测试时被移除时(因此建议成为锚盒),地图下降到52.1%。这表明,高质量的建议主要是由于倒退的框界。锚盒虽然具有多尺度和纵横比,但不足以准确检测。
我们还评估了更强大的网络对RPN方案质量的影响。我们使用vgg-16来训练RPN,并且仍然使用ss ZF的上述检测器。MAP由56.8%(RPN ZF)提高到59.2%(RPN Vgg)。这是一个很有前途的结果,因为它表明RPN vgg的提案质量优于RPN ZF。由于RPNZF的建议与SS具有竞争力(在训练和测试中都有58.7%),我们可以期望RPNVGG优于SS。以下实验证实了这一假设。
vgg-16的性能:表3显示了vgg-16对提案和检测的结果。使用RPN vgg,未共享特性的结果为68.5%,略高于ss基线。如上文所示,这是因为RPN vgg生成的建议比ss更精确。与预先定义的ss不同,RPN受到了积极的训练,并从更好的网络中受益。对于特性共享变体,结果是69.9%-优于强大的ss基线,但几乎免费的建议。我们还对RPN和检测网络进行了Pascal voc 2007 trainval和2012 trainval联合集的训练。地图为73.2%。图5显示了Pascalvoc 2007测试集上的一些结果。在Pascal voc 2012测试集(表4)上,我们的方法有一个70.4%的地图在voc 2007 trainval测试和voc 2012 trainval联合集上进行训练。表6和表7显示了详细的数字。
在表5中,我们总结了整个对象检测系统的运行时间。SS根据内容需要1-2秒(平均约1.5s),使用vgg-16的快速r-cnn在2000 ss建议上需要320 ms(如果在全连接的层上使用svD则为223 ms[2])。我们的vgg-16系统共接收198 ms的建议和检测。在共享卷积特性的情况下,仅RPN就只需10 ms计算额外的层。我们的区域计算也较低,这要归功于较少的提案(每幅图像300份)。我们的系统与ZF网的帧率为17 fps。
对超参数的敏感性:在表8中,我们调查了锚的设置。默认情况下,我们使用3个尺度和3个纵横比(表8中的地图为69.9%)。如果在每个位置只使用一个锚,地图就会下降3-4%。如果使用3个尺度(1宽比)或3宽比(1比例尺),则MAP较高,这表明使用多个尺寸的锚作为回归参考是一种有效的解决方案。在该数据集上,仅使用3个长径比为1的尺度(69.8%),与在该数据集上使用3个纵横比的尺度相同,表明尺度和纵横比对检测精度没有影响。但我们仍然采用这两个方面的设计,以保持我们的系统的灵活性。
在表9中,我们比较了方程(1)中λ的不同值。默认情况下,我们使用λ=10,使方程(1)中的两个项在归一化后的权重大致相等。表9显示,当(by ∼ 1%)在大约两个数量级(1到100)的范围内时,我们的结果受到轻微的影响(受λ1%的影响)。这表明该结果在很大范围内对λ不敏感。
对Recall-to-IoU的分析:接下来,我们用地面真相盒计算不同IOU比率下提案的召回情况。值得注意的是,召回到IOU的度量只是松散的[19],[20],[21]与最终的检测精度有关。使用这个度量来诊断建议方法比评估它更合适。
在图4中,我们展示了使用300、1000和2000提案的结果。我们与ss和EB进行了比较,基于这些方法产生的置信度,n个方案是最高的n个。图表显示,RPN方法在提案数量从2000年下降到300个时表现良好。这解释了为什么RPN有一个良好的最终检测地图时,使用多达300份提案。正如我们前面所分析的,这一性质主要归因于RPN的CLS项。当提案较少时,SS和EB的召回速度要快于RPN。
一步检测与两阶段提案检测:本文[9]提出了一种在卷积特征映射的滑动窗口上使用回归器和分类器的检测方法。超额任务是一个一级的、特定于阶级的检测管道,而我们的是一个两阶段的级联,由不可知类的建议和特定类别的检测组成。在超常中,区域上的特征来自于比例金字塔上一个纵横比的滑动窗口。这些特征用于同时确定对象的位置和类别。在RPN中,这些特征来自于方形(3×3)滑动窗口,并预测了相对于不同尺度和宽径比的锚的建议。虽然这两种方法都使用滑动窗口,但区域建议任务只是快速rcnn的第一阶段-下游快速r-cnn检测器关注这些建议以改进它们。在我们的梯级的第二阶段,区域方面的特征被自适应地汇集[1],[2]从更忠实地涵盖区域特征的提案框中。我们相信这些特征会导致更精确的检测。
为了比较一级和二级系统,我们采用一级快速r-cnn模拟超额系统(从而避免了其他实现细节上的差异)。在该系统中,“方案”是3个尺度(128、256、512)和3个高宽比(1:1、1:2、2:1)的密集滑动窗口。快速r-cnn是训练来预测特定类别的分数和从这些滑动窗口的倒退框位置。由于超视距系统采用了图像金字塔,我们还使用从5个尺度中提取的卷积特征进行评价。我们使用这5个尺度,如[1],[2]。
表10比较了两级制和两种一级制。采用ZF模型,一级系统的MAP为53.9%。这比两级制(58.7%)低4.8%。实验证明了级联区域方案和目标检测的有效性。在[2],[39]中也有类似的观察,在这两篇论文中,用滑动窗口代替ss区域提案会导致∼6%的退化。我们还注意到,单一住房制度速度较慢,因为它有相当多的建议要处理。
我们在Microsoft Coco对象检测数据集上展示了更多的结果[12]。此数据集涉及80个对象类别。我们对训练集上的80k图像、验证集上的40k图像和测试开发集上的20k图像进行了实验。我们评估IOU∈[0.5:0.05:0.95](coco的标准度量,简单表示为map@[.5,.95]和[email protected](PASCAL voc‘s度量)的平均地图。
对于这个数据集,我们的系统做了一些小的修改。我们在8-GPU实现上训练我们的模型,RPN(1/GPU)和快速r-CNN(2/GPU)的有效小批处理大小分别为8(1/GPU)和16(2/GPU)。rpn步骤和快速rcnn步骤都被训练为240 k迭代,学习速率为0.003,然后训练80k迭代(0.0003)。我们修改学习率(从0.003开始,而不是从0.001开始),因为小批量大小被改变了。对于锚,我们使用3个纵横比和4个尺度(增加642),主要动机是处理这个数据集上的小对象。此外,在我们的快速r-CNN步骤中,负样本被定义为在[0,0.5]区间内,而不是在[1],[2]中使用[0.1,0.5]的最大IOU的负样本。我们注意到,在sppnet系统[1]中,[0.1,0.5)中的负样本被用于网络微调,而[0,0.5)中的负样本仍然在svm步骤中访问硬负挖掘。但快速r-cnn系统[2]放弃了svm步骤,因此[0,0.1]中的负样本从未被访问过。包括这些[0,0.1]样本改进了coco数据集上的[email protected],用于快速的r-CNN和更快的r-CNN系统(但对PASCAL VOC的影响可以忽略不计)。
其余实现细节与Pascal voc上的实现细节相同。特别是,我们继续使用300项提案和单尺度(s=600)测试。在coco数据集上,每幅图像的测试时间仍然是200 ms左右。
在表11中,我们首先报告了使用本文实现的FAST r-CNN系统[2]的结果。我们快速的r-cnn基线在测试开发集上有39.3%的[email protected],高于[2]中的报道。我们推测,造成这一差距的主要原因是负样品的定义和小批量尺寸的变化。我们还注意到,地图@[.5,.95]只是可比较的。
接下来,我们评估我们更快的r-cnn系统。使用coco训练集训练,更快的r-cnn在coco测试开发集上有42.1%的[email protected]和21.5%的map@[.5,.95]。在同一协议下,[email protected]和MAP@[.5,.95]比快速rcnn高2.8%和2.2%(表11)。这表明RPN对提高IOU阈值的定位精度有很好的效果。使用coco trainval集进行训练,在coco测试开发集上,更快的rcnn有42.7%的[email protected]和21.9%的map@[.5,.95]。图6显示了ms coco测试-dev集上的一些结果。
更快的r-cnn在ILSVRC和COCO 2015比赛中:我们已经证明,更快的r-cnn更多地受益于更好的特征,这要归功于RPN完全学会了通过神经网络来提出区域。即使将深度大幅度增加到100层[18],这一观察仍然有效。只有用101层剩余网(RESNET-101)[18]取代vgg-16,才能使COCO Val集上的MAP从41.5%/21.2%(Vg 16)提高到48.4%/27.2%(RESNET-101)。与其他改进正交更快的rcnn,他等。[18]在COCO测试开发集上获得了55.7%/34.9%的单模型结果和59.0%/37.4%的集成结果,在COCO 2015目标检测竞赛中获得了第一名。同样的系统[18]在ILSVRC 2015目标检测竞赛中也获得了第一名,以8.5%的绝对优势超过了第二名。rpn也是ILSVRC 2015本地化和coco 2015细分比赛第一名获奖作品的组成部分,详情分别见[18]和[15]。
大规模数据对改进深层神经网络具有重要意义。接下来,我们将研究MS coco数据集如何帮助Pascal voc上的检测性能。作为一个简单的基线,我们直接评估Pascal voc数据集上的coco检测模型,而不对任何pascal voc数据进行微调。这种评估是可能的,因为coco上的类别是Pascal voc上的超集。在本实验中忽略了coco上唯一的类别,而Softmax层仅在20个类别加上背景上执行。在Pascalvoc 2007测试集上,此设置下的映射为76.1%(表12)。尽管Pascal voc数据没有被利用,但这一结果比在vo0712上训练的结果要好得多(73.2%)。然后对VOC数据集上的coco检测模型进行微调.在本实验中,coco模型取代了ImageNet-预训练模型(用于初始化网络权重),而且更快的r-cnn系统被微调,如第3.2节所述。这样做将导致Pascalvoc 2007测试集上78.8%的地图。来自coco集的额外数据使地图增加了5.6%。表6显示,在COCO VOC上培训的模型对于Pascal voc 2007的每一个类别都具有最佳的AP。Pascal voc 2012测试集也有类似的改进(表12和表7)。我们注意到,获得这些强结果的测试时间速度仍然是每幅图像200 ms左右。
我们已经提出了高效和准确的区域提案生成的RPN。通过与下游检测网络共享卷积特征,区域建议步骤几乎是免费的。我们的方法使一个统一的、基于深入学习的对象检测系统能够以近乎实时的帧速率运行.所学习的RPN还提高了区域方案的质量,从而提高了目标的整体检测精度。
图5:使用更快的R-CNN系统在Pascal voc 2007测试集上选择的对象检测结果示例。模型为vgg-16,训练数据为07 12次,占2007年测试集的73.2%。我们的方法检测的对象范围很广,尺度和高宽比。每个输出框都与[0,1]中的类别标签和Softmax分数相关联。使用分数阈值0.6来显示这些图像。获得这些结果的运行时间为每幅图像198 ms,包括所有步骤。
图6:使用更快的r-cnn系统在ms coco测试-dev集上选择对象检测结果的示例。该模型为vgg-16,训练数据为coco trainval(42.7%[email protected])。每个输出框都与[0,1]中的类别标签和Softmax分数相关联。使用分数阈值0.6来显示这些图像。对于每个图像,一种颜色表示该图像中的一个对象类别。
REFERENCES [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 14 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: Com- ´ mon 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.