Faster R-CNN论文翻译

摘要最先进的目标检测网络依赖于区域建议算法来假设目标位置。像SPPnet[1]和Fast R-CNN[2]这样的进步已经减少了这些检测网络的运行时间,暴露了区域提议计算作为一个瓶颈。在本工作中,我们引入了一个区域建议网络(RPN),它与检测网络共享全图像卷积特征,从而实现几乎免费的区域建议。RPN是一个完全卷积的网络,它可以同时预测每个位置上的对象界限和对象评分。对RPN进行端到端训练以生成高质量的区域建议,Fast R-CNN使用这些区域建议进行检测。通过共享它们的卷积特征,我们进一步将RPN和Fast R-CNN合并成一个单独的网络——使用最近流行的带有“注意”机制的神经网络术语,RPN组件告诉统一的网络去哪里寻找。对于非常深的vg -16模型[3],我们的检测系统在GPU上的帧率为5fps(包括所有步骤),同时在P ASCAL VOC 2007、2012和MS COCO数据集上实现了最先进的目标检测精度,每张图像只有300个建议。在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是在几条赛道上获得第一名的参赛作品的基础。代码已经公开。

1介绍

区域建议方法(例如[4])和基于区域的卷积神经网络(RCNNs)[5]的成功推动了目标检测的最新进展。虽然在[5]中开发的基于区域的cnn在计算上很昂贵,但由于在提案[1]和[2]中共享卷积,它们的成本已经大大降低。最新的版本,Fast R-CNN[2],在忽略花费在区域提议上的时间时,使用非常深的网络[3]实现了接近实时的速率。现在,建议是最先进的检测系统的测试时间计算瓶颈。

区域建议方法通常依赖于廉价的特性和经济的推理方案。选择性搜索[4]是目前最流行的一种基于设计低级特征的超像素融合方法。然而,与高效的检测网络[2]相比,选择性搜索速度要慢一个数量级,在CPU实现中每幅图像只需要2秒。EdgeBoxes[6]目前提供了建议质量和速度之间的最佳权衡,每幅图像0.2秒。然而,区域提议步骤仍然消耗与检测网络相同的运行时间。

人们可能会注意到,快速的基于区域的cnn利用gpu,而研究中使用的区域建议方法是在CPU上实现的,这使得这种运行时比较不公平。加速提议计算的一个显而易见的方法是为GPU重新实现它。这可能是一个有效的工程解决方案,但重新实现忽略了下游检测网络,因此错过了共享计算的重要机会。

在这篇论文中,我们证明了一种算法的改变-使用深度卷积神经网络计算建议-导致了一种优雅和有效的解决方案,在给定检测网络的计算的情况下,建议计算几乎是免费的。为此,我们引入了新的区域提议网络(RPNs),它与最先进的目标检测网络[1],[2]共享卷积层。通过在测试时共享卷积,计算方案的边际成本很小(例如,每幅图像10毫秒)。

我们的观察是,基于区域的检测器使用的卷积特征地图,如Fast RCNN,也可以用于生成区域建议。在这些卷积特征的基础上,我们通过添加几个额外的卷积层来构建RPN,这些卷积层同时回归正则网格上每个位置的区域边界和目标度得分。因此,RPN是一种完全卷积网络(FCN)[7],可以针对生成检测方案的任务进行端到端训练。

rpn被设计用来有效地预测具有广泛尺度和宽高比的区域提案。与流行的[8]、[9]、[1]、[2]方法相比图像金字塔(图1,a)或过滤器金字塔(图1,b),我们引入了新颖的“锚”框,在多个尺度和宽高比下作为参考。我们的方案可以看作是一个回归参考的金字塔(图1,c),它避免了枚举多个尺度或长宽比的图像或过滤器。该模型在使用单尺度图像进行训练和测试时表现良好,因此有利于提高运行速度。

Faster R-CNN论文翻译_第1张图片

 图1:针对多个规模和规模的不同方案。(a)建立图像和地形图的金字塔,分类器在所有比例尺上运行。(b)在地形图上运行多比例尺/大小的滤波器金字塔。(c)我们在回归函数中使用参考框金字塔。

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

我们在PASCAL VOC检测基准[11]上综合评估了我们的方法,其中带有Fast r - cnn的RPNs产生的检测精度优于带有Fast r - cnn的强基线选择性搜索。同时,我们的方法在测试时几乎免除了选择性搜索的所有计算负担——提案的有效运行时间仅为10毫秒。使用昂贵的非常深入的模型[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和Faster R-CNN框架被采用并推广到其他方法,如3D物体检测[13],基于部分的检测[14],实例分割[15],图像字幕[16]。我们的快速有效的目标检测系统也已经建成比如pinterest[17]的商业系统,据报道用户参与度有所提高。

在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是[18]在ImageNet检测、ImageNet定位、COCO检测和COCO分割方面获得的几项第一名的基础。rpn完全学会从数据中提出区域,因此可以很容易地受益于更深层次和更有表现力的特征(如[18]中采用的101层残余网)。更快的R-CNN和RPN在这些比赛中也被其他几个领先的参赛者使用。这些结果表明,我们的方法不仅是一种性价比高的解决方案,而且是一种提高目标检测精度的有效方法。

2相关工作

对象的建议。有大量关于对象提议方法的文献。对象提议方法的全面调查和比较可以在[19],[20],[21]中找到。广泛使用的对象建议方法包括基于分组超像素的方法(如Selective Search[4]、CPMC[22]、MCG[23])和基于滑动窗口的方法(如windows[24]、EdgeBoxes[6]中的objectness)。对象建议方法作为独立于检测器的外部模块(如Selective Search [4] Object detector, 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]。快速R-CNN[2]使端到端检测器训练共享卷积特征,并显示引人注目的准确性和速度。

3 FASTER R-CNN

我们的目标检测系统叫做Faster R-CNN,由两个模块组成。第一个模块是提出区域的深度全卷积网络,第二个模块是使用提出的区域的Fast R-CNN检测器[2]。整个系统是一个用于目标检测的单一、统一的网络(图2)。RPN模块使用了最近流行的神经网络术语“注意”[31]机制,告诉Fast R-CNN模块去哪里寻找。在3.1节中,我们介绍了区域方案的网络设计和特性。在第3.2节中,我们开发了用于训练具有共享特性的两个模块的算法。

Faster R-CNN论文翻译_第2张图片

图2;R-CNN是一个单一的、统一的目标检测网络。RPN模块作为这个统一网络的“注意力”。 

 3.1区域提议网络

一个区域建议网络(RPN)以一幅(任何大小)的图像作为输入,并输出一组矩形对象建议,每个建议都有一个对象性评分。3我们用一个完全卷积网络[7]对这个过程进行建模,在本节中我们将对此进行描述。因为我们的最终目标是与Fast R-CNN对象检测网络[2]共享计算,我们假设这两个网络共享一个共同的卷积层集。在我们的实验中,我们研究了Zeiler and Fergus模型[32](ZF),它有5个可共享的卷积层,以及Simonyan and Zisserman模型[3](vg -16),它有13个可共享的卷积层

为了生成区域建议,我们在最后一个共享卷积层输出的卷积特征地图上滑动一个小网络。这个小网络以输入的卷积特征图的n × n空间窗口作为输入。每个滑动窗口映射到一个低维特征(ZF为256-d, VGG为512-d,下面是ReLU[33])。这个特性被输入到两个同级的完全连接的层—盒子回归层(reg)和盒子分类层(cls)。在本文中,我们使用n = 3,注意到输入图像上的有效接受场很大(ZF和VGG分别为171和228像素)。这个微型网络在图3(左)的一个位置上进行了说明。请注意,由于微型网络以滑动窗口方式运行,完全连接的层在所有空间位置上共享。这个体系结构自然是通过n×n卷积层和两个同胞的1× 1卷积层(分别用于reg和cls)来实现的

3.1.1 Anchors

在每个滑动窗口的位置,我们同时预测多个地区的提议,在最大可能的提案的数量为每个位置表示为k。所以reg层4 k输出编码k框的坐标,和cls层输出2 k分数估计为每个proposal4对象或对象的概率。k个建议是相对于k个参考框参数化的,我们称之为anchors.锚点位于滑动窗口的中心,并与比例和长宽比相关联(图3,左)。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置产生k = 9个锚。对于大小为W × H(通常约为2400)的卷积特征图,总共有whk锚点。

Faster R-CNN论文翻译_第3张图片

图3:左:区域提议网络(RPN)。正确:在PASCAL VOC 2007测试中使用RPN方案的检测示例。我们的方法检测对象在一个广泛的尺度和长宽比。 

T ranslation-Invariant Anchors

我们的方法的一个重要特性是它是平移不变的,就锚和计算相对于锚的建议的函数而言都是如此。如果一个人翻译了图像中的一个对象,建议应该翻译,并且相同的功能应该能够预测任何位置的建议。我们的方法保证了这种平移不变的特性。作为比较,MultiBox方法[27]使用k-means生成800个锚,这些锚不是平移不变的。因此,MultiBox不能保证在翻译对象时会生成相同的建议。

平移不变属性还会减小模型大小。MultiBox具有(4 + 1)×800维全连接输出层,而我们的方法在k = 9锚的情况下具有(4 + 2) × 9维卷积输出层。因此,我们的输出层具有2.8×10^4个参数(对于VGG-16为512 × (4 + 2) × 9),比多盒的输出层具有6.1×10^6个参数(对于多盒[27]中的GoogleNet [34]为1536 × (4 + 1) × 800)少了两个数量级。如果考虑要素投影图层,我们的建议图层的参数仍然比MultiBox6少一个数量级。我们希望我们的方法在像PASCAL VOC这样的小数据集上具有较小的过度拟合风险。

作为回归参考的多尺度锚点

我们的锚的设计提出了一个解决多尺度(和长宽比)的新方案。如图1所示,多尺度预测有两种流行的方法。第一种方法基于图像/特征金字塔,例如在DPM [8]和CNNbased方法[9],[1],[2]中。在多个比例下调整图像的大小,并为每个比例计算特征图(HOG [8]或深度卷积特征[9],[1],[2])(图1(a))。这种方法通常很有用,但很耗时。第二种方法是在要素地图上使用多比例(和/或宽高比)的滑动窗口。例如,在DPM [8]中,使用不同的滤波器大小(如5×7和7×5)分别训练不同纵横比的模型。如果用这种方法来处理多个尺度,它可以被认为是一个“过滤器金字塔”(图1(b))。第二种方式通常与第一种方式联合采用[8]。

Faster R-CNN论文翻译_第4张图片

 相比之下,我们基于锚的方法是建立在锚的金字塔上的,这更具成本效益。我们的方法参考多尺度和宽高比的定位框对边界框进行分类和回归。它只依赖单一比例的图像和要素图,并使用单一大小的过滤器(要素图上的滑动窗口)。我们通过实验展示了该方案对解决多种规模和大小的影响(表8)。

由于这种基于锚的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征,快速R-CNN检测器也是这样做的[2]。多尺度锚的设计是共享特征的关键组成部分,而不需要额外的寻址尺度成本。

3.1.2 Loss Function

对于训练rpn,我们给每个锚点分配一个二进制类标签(是否是对象)。我们为两种锚指定了一个正标签:(I)具有最高交叉-重叠(IoU)的锚与一个地面真值框重叠,或者(ii)具有高于0.7的IoU的锚与5个地面真值框重叠。请注意,单个地面真相框可能会为多个锚点分配正标签。通常第二个条件足以确定阳性样本;但是我们仍然采用第一个条件,因为在一些罕见的情况下,第二个条件可能找不到阳性样本。如果所有基本事实框的IoU比都低于0.3,我们会将负标签分配给非正锚点。既不积极也不消极的主播对培训目标没有贡献。

有了这些定义,我们最小化了一个目标 Fast R-CNN 中的多任务损失函数 [2]。 我们对图像的损失函数定义为:

Faster R-CNN论文翻译_第5张图片

其中, ii是一个小批量数据中锚点的索引,pipi是锚点 ii作为目标的预测概率。如果锚点为正,真实标签p\*ipi\*为1,如果锚点为负,则为0。 titi是表示预测边界框4个参数化坐标的向量,而 t\*iti\*是与正锚点相关的真实边界框的向量。分类损失 LclsLcls是两个类别上(目标或不是目标)的对数损失。对于回归损失,我们使用 Lreg(ti,t\*i)=R(ti−t\*i)Lreg(ti,ti\*)=R(ti−ti\*),其中 RR是在[2]中定义的鲁棒损失函数(平滑L1L1)。项 p\*iLregpi\*Lreg表示回归损失仅对于正锚点激活,否则被禁用( p\*i=0pi\*=0)。 cls和 reg层的输出分别由 {pi}{pi}和 {ti}{ti}组成。

这两个项用NclsNcls和NregNreg进行标准化,并由一个平衡参数λλ加权。在我们目前的实现中(如在发布的代码中),方程(1)中的clscls项通过小批量数据的大小(即Ncls=256Ncls=256)进行归一化,regreg项根据锚点位置的数量(即,Nreg∼24000Nreg∼24000)进行归一化。默认情况下,我们设置λ=10λ=10,因此clsreg项的权重大致相等。我们通过实验显示,结果对宽范围的λλ值不敏感(表9)。我们还注意到,上面的归一化不是必需的,可以简化。

Faster R-CNN论文翻译_第6张图片

表9:Faster R-CNN使用方程(1)中不同的λλ值在PASCAL VOC 2007测试集上的检测结果。网络是VGG-16。训练数据是VOC 2007训练集。使用λ=10λ=10(69.9%69.9%)的默认设置与表3中的相同。

对于边界框回归,我们采用[5]中的4个坐标参数化:

Faster R-CNN论文翻译_第7张图片

其中, xx,yy, ww和hh表示边界框的中心坐标及其宽和高。变量 xx,xaxa和 x\*x\*分别表示预测边界框,锚盒和实际边界框(类似于 y,w,hy,w,h)。这可以被认为是从锚盒到邻近的实际边界框的回归。

然而,我们的方法通过与之前的基于RoI(感兴趣区域)方法[1],[2]不同的方式来实现边界框回归。在[1],[2]中,对任意大小的RoI池化的特征执行边界框回归,并且回归权重由所有区域大小共享。在我们的公式中,用于回归的特征在特征映射上具有相同的空间大小(3×3)。为了说明不同的大小,学习一组kk个边界框回归器。每个回归器负责一个尺度和一个长宽比,而kk个回归器不共享权重。因此,由于锚点的设计,即使特征具有固定的尺度/比例,仍然可以预测各种尺寸的边界框。

3.1.3 训练RPN

RPN可以通过反向传播和随机梯度下降(SGD)进行端对端训练[35]。我们遵循[2]的“以图像为中心”的采样策略来训练这个网络。每个小批量数据都从包含许多正面和负面示例锚点的单张图像中产生。对所有锚点的损失函数进行优化是可能的,但是这样会偏向于负样本,因为它们是占主导地位的。取而代之的是,我们在图像中随机采样256个锚点,计算一个小批量数据的损失函数,其中采样的正锚点和负锚点的比率可达1:1。如果图像中的正样本少于128个,我们使用负样本填充小批量数据。

我们通过从标准方差为0.01的零均值高斯分布中提取权重来随机初始化所有新层。所有其他层(即共享卷积层)通过预训练的ImageNet分类模型[36]来初始化,如同标准实践[5]。我们调整ZF网络的所有层,以及VGG网络的conv3_1及其之上的层以节省内存[2]。对于60k的小批量数据,我们使用0.001的学习率,对于PASCAL VOC数据集中的下一个20k小批量数据,使用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将以不同的方式修改卷积层。因此,我们需要开发一种允许在两个网络之间共享卷积层的技术,而不是学习两个独立的网络。我们讨论三个方法来训练具有共享特征的网络:

一、交替训练。在这个解决方案中,我们首先训练RPN,并使用这些提议来训练Fast R-CNN。由Fast R-CNN微调的网络然后被用于初始化RPN,并且重复这个过程。这是本文所有实验中使用的解决方案。

二、近似联合训练。在这个解决方案中,RPN和Fast R-CNN网络在训练期间合并成一个网络,如图2所示。在每次SGD迭代中,前向传递生成区域提议,在训练Fast R-CNN检测器将这看作是固定的、预计算的提议。反向传播像往常一样进行,其中对于共享层,组合来自RPN损失和Fast R-CNN损失的反向传播信号。这个解决方案很容易实现。但是这个解决方案忽略了关于提议边界框的坐标(也是网络响应)的导数,因此是近似的。在我们的实验中,我们实验发现这个求解器产生了相当的结果,与交替训练相比,训练时间减少了大约25−50%25−50%。这个求解器包含在我们发布的Python代码中。

三、非近似的联合训练。如上所述,由RPN预测的边界框也是输入的函数。Fast R-CNN中的RoI池化层[2]接受卷积特征以及预测的边界框作为输入,所以理论上有效的反向传播求解器也应该包括关于边界框坐标的梯度。在上述近似联合训练中,这些梯度被忽略。在一个非近似的联合训练解决方案中,我们需要一个关于边界框坐标可微分的RoI池化层。这是一个重要的问题,可以通过[15]中提出的“RoI扭曲”层给出解决方案,这超出了本文的范围。

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

3.3 实现细节

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

对于锚点,我们使用了3个尺度,边界框面积分别为128^2,256^2和512^2个像素,以及1:1,1:2和2:1的长宽比。这些超参数不是针对特定数据集仔细选择的,我们将在下一节中提供有关其作用的消融实验。如上所述,我们的解决方案不需要图像金字塔或滤波器金字塔来预测多个尺度的区域,节省了大量的运行时间。图3(右)显示了我们的方法在广泛的尺度和长宽比方面的能力。表1显示了使用ZF网络的每个锚点学习到的平均提议大小。我们注意到,我们的算法允许预测比基础感受野更大。这样的预测不是不可能的——如果只有目标的中间部分是可见的,那么仍然可以粗略地推断出目标的范围。

表1:使用ZF网络的每个锚点学习到的平均提议大小(s=600s=600的数字)。

跨越图像边界的锚盒需要小心处理。在训练过程中,我们忽略了所有的跨界锚点,所以不会造成损失。对于一个典型的1000×6001000×600的图片,总共将会有大约20000(≈60×40×9≈60×40×9)个锚点。跨界锚点被忽略,每张图像约有6000个锚点用于训练。如果跨界异常值在训练中不被忽略,则会在目标函数中引入大的,难以纠正的误差项,且训练不会收敛。但在测试过程中,我们仍然将全卷积RPN应用于整张图像。这可能会产生跨边界的提议边界框,我们剪切到图像边界。

一些RPN建议彼此高度重叠。为了减少冗余,我们基于CLS分数在提案区域上采用非最大抑制(NMS)。我们将IOO阈值固定为0.7的NMS,这使我们每张图片留下了大约2000个提案区域。正如我们将展示的那样,NMS不会损害最终的检测准确性,但大大减少了提案的数量。在NMS之后,我们使用TOP-N排名的提案区域进行检测。在下文中,我们使用2000 RPN提案培训Fast R-CNN,但在测试时间评估不同数量的提案。

4实验

4.1对P VOC的实验

我们全面评估我们在Pascal VOC 2007检测基准测试中的方法[11]。此数据集包含约5K的TrainVal图像和5K测试图像超过20个对象类别。我们还为几个型号提供了Pascal VOC 2012年基准的结果。对于ImageNet预训练的网络,我们使用具有5个卷积层和3个全连接层的“快速”版本,以及具有13层卷积层和3的公共VGG-16 Model7 [3]完全连接的图层。我们主要评估检测平均平均精度(MAP),因为这是对象检测的实际度量(而不是关注对象提案代理度量)。

Faster R-CNN论文翻译_第8张图片

表2:Pascal VOC 2007测试集的检测结果(在VOC 2007 TrainVal上培训)。探测器具有ZF的快速R-CNN,但使用各种提案方法进行培训和测试。

表2(顶部)在使用各种区域提案方法训练和测试时,显示快速R-CNN结果。这些结果使用ZF网。对于选择性搜索(SS)[4],我们通过“快速”模式生成大约2000个提案。对于EdgeBoxes(EB)[6],我们通过调整的默认EB设置生成0.7 7的提案。www.robots.ox.ac.uk/~vgg/research/very deep / iou。 SS的地图为58.7%,EB在快速R-CNN框架下有58.6%的地图。 RPN与Fast R-CNN实现了竞争力的结果,地图为59.9%,同时使用多达300个提案8。使用RPN的检测系统比使用SS或EB产生更快的速度计算;较少的建议也降低了区域明智的完全连接层的成本(表5)。

表5:在CPU中评估了K40 GPU上的定时(MS),除了SS提案。 “Region-Wise”包括NMS,汇集,完全连接和软MAX层。有关运行时间的分析,请参阅我们发布的代码。

rpn的消融实验。为了调查RPN作为提案方法的行为,我们进行了几项消融研究。首先,我们展示了在RPN和FAST R-CNN检测网络之间共享卷积层的效果。为此,我们在4步培训过程中第二步后停止。使用单独的网络将结果略微降低至58.7%(RPN + ZF,不共享,表2)。我们观察到这是因为在第三步骤时,检热特征用于微调RPN,提高提案质量。

接下来,我们解开RPN对训练快速R-CNN检测网络的影响。为此目的,我们通过使用2000年SS提案和ZF网培训快速R-CNN模型。我们修复了该检测器,并通过更改测试时间使用的提案区域来评估检测映射。在这些消融实验中,RPN不会与探测器共享特征。

在测试时间内用300 RPN建议替换SS,导致映射为56.8%。地图中的损失是因为培训/测试建议之间的不一致。该结果用作以下比较的基线。

有点令人惊讶的是,RPN仍然导致使用排名级别的竞争结果(55.1%)测试时间100个提案,表明顶部RPN提案是准确的。另一个极端,使用排名级别的6000 RPN提案(没有NMS)具有可比地图(55.2%),表明NMS不会损害检测映射,并可能减少误报。

接下来,我们通过在测试时间内关闭它们中的任何一个来分别调查RPN CLS和REG输出的角色。当在测试时间被移除CLS层(因此不使用NMS /排名)时,我们从未频繁的区域随机地采样N个提案。当n = 100时,地图几乎不变,但n = 1000(55.8%),但在n = 100时降低了44.6%。这表明CLS分数占最高排名提案的准确性。

另一方面,当在试验时间被移除REG层时(因此提出建议成为锚箱),地图下降到52.1%。这表明高度建议主要是由于回归的框限制。锚箱,但具有多种尺度和宽高比,不足以准确检测。

我们还评估了更强大的网络对单独RPN提案质量的影响。我们使用VGG-16训练RPN,仍然使用上面的SS + ZF检测器。地图从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,对于未共享的功能,结果为68.5%,略高于SS基线。如上所示,这是因为RPN + VGG产生的提议比SS更准确。与预定义的SS不同,RPN被主动培训并从更好的网络中受益。对于特征共享变体,结果比强大的SS基线为69.9%,但具有近乎不成本的建议。我们进一步在Pascal VOC 2007 Trainval和2012 Trainval的普斯卡尔VOC套装上培训RPN和检测网络。地图是73.2%。图5显示了Pascal VOC 2007测试集的一些结果。在Pascal VOC 2012年测试集(表4)中,我们的方法有一个70.4%的地图,培训了OFF 2007 Trainval +测试和VOC 2012 Trainval的CONG组。表6和表7显示了详细的数字。

表4:Pascal VOC 2012测试集的检测结果。探测器是快速的R-CNN和VGG-16。培训数据:“07”:VOC 2007 TrainVal,“07 ++ 12”:Union of Voc 2007 TrainVal +测试和VOC 2012 TrainVal。对于RPN,FAST R-CNN的火车时间提案是2000.†:http://host.robots.ox.ac.uk:8080/anonymous/hzjtqa.html.‡:http://host.robots。 ox.ac.uk:8080/anonymous/ynplxb.html.§:http://host.robots.ox.ac.uk:8080/anonymous/xedh10.html。

Faster R-CNN论文翻译_第9张图片

 表6:Pascal VOC 2007测试设置的结果用FAST R-CNN探测器和VGG-16。对于RPN,FAST R-CNN的列车时间提案是2000. RPN *表示不安全的功能版本。

Faster R-CNN论文翻译_第10张图片

 表7:Pascal VOC 2012年测试集的结果用FAST R-CNN探测器和VGG-16。对于RPN,FAST R-CNN的火车时间提案是2000。

图5:使用更快的R-CNN系统,所选对象检测结果的对象检测结果示例。该模型是VGG-16,训练数据是07 + 12 TrainVal(2007年测试集73.2%地图)。我们的方法检测各种尺度和宽高比的对象。每个输出框与[0,1]中的类别标签和softmax得分相关联。分数阈值为0.6用于显示这些图像。获取这些结果的运行时间是每张图像198ms,包括所有步骤。

Faster R-CNN论文翻译_第11张图片

表3:Pascal VOC 2007测试集的检测结果。探测器是快速的R-CNN和VGG-16。培训数据:“07”:VOC 2007 TrainVal,“07 + 12”:Union套VOC 2007 Trainval和VOC 2012 Trainval。对于RPN,FAST R-CNN的火车时间提案是2000.†:此数量在[2]中报告;使用本文提供的存储库,此结果更高(68.1)。

Faster R-CNN论文翻译_第12张图片

 在表5中,我们总结了整个物体检测系统的运行时间。 SS需要1-2秒,具体取决于内容(平均约1.5秒),并且使用VGG-16的FAST R-CNN在2000个SS提案中需要320ms(如果在完全连接的图层上使用SVD,则需要223ms [2])。我们具有VGG-16的系统总共需要198毫秒,适用于建议和检测。通过共享的卷积特征,仅RPN只需要10ms计算附加层。由于较少的建议(每张图片300),我们的区域计算也较低。我们的系统具有17 FPS的帧速率,具有ZF网。

对超参数的敏感性。在表8中,我们调查锚点的设置。默认情况下,我们使用3尺度和3个宽高比(表8中的69.9%地图)。如果在每个位置使用只使用一个锚,则地图下降到3-4%的相当数量。如果使用3刻度(具有1个宽高比)或3个纵横比(具有1个刻度),则映射更高,证明使用多种尺寸的锚点作为回归参考是有效的解决方案。使用具有1个宽高比(69.8%)的只使用3个刻度与在该数据集上的3个宽高量比使用3尺度,表明尺度和宽高比不是用于检测精度的尺寸。但我们仍然采用了我们设计中的这两种维度,以保持我们的系统灵活。

在表9中,我们比较了等式(1)中的λ的不同值。默认情况下,我们使用λ= 10,这使得等式(1)中的两个术语大致在归一化之后大致加权。表9表明,当λ在大约两个数量级(1到100)的等级范围内时,我们的结果刚刚略微影响(〜1%)。这表明结果在宽范围内对λ不敏感。

召回到iou分析。接下来,我们将在不同的IOU比率与地面盒计算的回忆回忆。值得注意的是,与最终检测精度有关的召回-IOU公制只是松散地[19],[20],[21]。使用此度量标准更合适地诊断提案方法而不是评估它。

在图4中,我们显示了使用300,1000和2000个提案的结果。我们与SS和EB进行比较,N个提案是基于这些方法产生的信心的Top-N等级。该图表明,当建议的数量从2000到300下降时,RPN方法正常。这解释了为什么RPN在使用少量提案时具有良好的最终检测映射。正如我们之前分析的那样,此属性主要归因于RPN的CLS项。当提案更少时,SS和EB的召回比RPN更快地下降。

Faster R-CNN论文翻译_第13张图片

 图4:召回Pascal VOC 2007测试集的VS.IO重叠比率。

一阶段检测与两阶段提案+检测。过度纸张[9]提出了一种检测方法,它在卷积特征映射上使用在滑动窗口上的回归和分类器。过度拍摄是一阶段,类特定的检测管道,我们是一个两级级联,由类别不可知的提案和特异性检测组成。在过污垢中,区域明智的特征来自一个宽高比的一个纵横比的滑动窗口。这些功能用于同时确定对象的位置和类别。在RPN中,特征来自正方形(3×3)滑动窗口,并预测相对于具有不同尺度和宽高比的锚点的提案。虽然这两种方法都使用滑动窗口,但区域提案任务只有更快的RCNN - 下游FAST R-CNN探测器的第一阶段参加提案以改进它们。在我们的级联的第二阶段,区域明智的特征是自适应地汇集的[1],[2],从提案盒中更忠实地覆盖区域的特征。我们认为这些功能导致更准确的检测。

为了比较单阶段和两级系统,我们通过单级快速R-CNN模拟过污染系统(因此也绕过了实施细节的其他差异)。在该系统中,“提议”是3刻度的致密滑动窗口(128,256,512)和3个纵横比(1:1,1:2,2:1)。快速R-CNN培训,以预测来自这些滑动窗口的类别特定的分数和回归框位置。由于过度污垢系统采用图像金字塔,因此我们还使用从5尺度提取的卷积特征进行评估。我们使用如[1],[2]中的5个尺度。

表10比较了两级系统和一级系统的两个变体。使用ZF模型,一级系统的地图为53.9%。这低于两阶段系统(58.7%)4.8%。该实验证明了级联区域提案和物体检测的有效性。在[2],[39]中报告了类似的观察结果,其中用滑动窗口替换SS区域提案导致两篇论文中的〜6%的降解。我们还要注意的是,OneStage系统较慢,因为它有很大的过程建议。

4.2 Coco MS的实验

我们在Microsoft Coco对象检测数据集中展示更多结果[12]。此数据集涉及80个对象类别。我们在验证集中的训练集中的80k图像上进行实验,在验证集中的40K图像上以及测试开发集上的20k图像。我们评估IOU的平均地图[0.5:0.05:0.95](Coco的标准指标,简单地表示为Map @ [。5,.95])和[email protected](Pascal VOC的指标)。

我们的系统为此数据集进行了一些微小的变化。我们在8 GPU实现上培训我们的模型,有效的小批量尺寸为RPN(GPU 1个)和16个用于快速R-CNN(每个GPU的2)。 RPN步骤和快速R-CNN步骤均培训240K迭代,学习率为0.003,然后用于0.0003的80K迭代。我们修改了学习率(从0.003开始而不是0.001),因为迷你批量大小发生了变化。对于锚点,我们使用3个纵横比和4刻度(添加642),主要是通过处理该数据集上的小对象来激励。此外,在我们的快速R-CNN步骤中,负样本被定义为具有在[0,0.5)的间隔中具有最大IOU的IOU的最大值的那些,而不是[1]中使用的[0.1,0.5),[2 ]。我们注意到,在SPPNet系统[1]中,[0.1,0.5)中的负样本用于网络微调,但在具有硬负挖掘的SVM步骤中仍访问[0,0.5)中的负样本。但快速的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数据集上,测试时间仍然是每张图像约为200ms。

在表11中,我们首先使用本文的实施方式报告FAST R-CNN系统[2]的结果。我们的FAST R-CNN基线有39.3%的[email protected]在测试开发套件上,高于[2]中报告的。我们猜想这种差距的原因主要是由于阴性样本的定义以及迷你批量尺寸的变化。我们还注意到地图@。[。5,.95]是可比的。

表11:MS Coco DataSet上的对象检测结果(%)。该模型是VGG-16。

接下来,我们评估我们更快的R-CNN系统。使用Coco R-CNN的COCO培训设定为培训,R-CNN更快地有42.1%[email protected]和21.5%地图@ [。5,.95]。对于Map @ [。5,.95]比同一协议下的FAST RCNN对应物更高,这比[email protected]和2.2%更高的2.8%。这表明RPN在较高IOU阈值下提高了本地化精度的优异。使用Coco TrainVal设置为培训,RCNN更快的RCNN有42.7%的地图@ [。5,.95]在Coco Test-Dev Set上的地图@ [。5,.95]。图6显示了MS Coco Test-DEV集的一些结果。

我们已经证明了ilsvrc和Coco 2015年竞赛中的R-CNN竞争中的竞争速度更快,因为RPN完全学会通过神经网络提出地区的促进区域,更快地获得更好的功能。即使当一个人基本上增加到超过100层[18]时,这种观察仍然是有效的。只有通过用101亚形剩余网(Reset-101)更换VGG-16 [18],速度的R-CNN系统才会增加41.5%/ 21.2%(VGG16)至48.4%/ 27.2%(Resnet-101)的地图Coco Val集。与其他改进正交到更快的rcnn,他。 [18]获得了55.7%/ 34.9%的单模结果,可可测试开发集59.0%/ 37.4%的集合结果赢得了Coco 2015对象检测竞赛的第1位。同样的系统[18]还赢得了ILSVRC 2015对象检测竞赛中的第1位,超出了绝对的第二名8.5%。 RPN也是ILSVRC 2015本地化的第一次获胜条目的构建块,并分别在[18]和[15]中提供了详细信息

4.3从MS COCO到P ascal VOC

大规模数据对于改善深层神经网络至关重要。接下来,我们调查MS Coco DataSet如何有助于Pascal VOC上的检测性能。

作为一个简单的基线,我们直接评估Pascal VOC数据集上的Coco检测模型,而不在任何Pascal VOC数据上进行微调。这种评估是可能的,因为Coco上的类别是Pascal VOC上的类别。在该实验中忽略了CoCo独家在Coco上的类别,并且Softmax层仅在20类加上背景上执行。 Pascal VOC 2007测试集下该设置下的地图为76.1%(表12)。这种结果优于VOV07 + 12(73.2%)在良好的边缘上训练,即使没有利用Pascal VOC数据。

表12:使用不同培训数据的Pascal VOC 2007测试集和2012年测试集的R-CNN的检测映射(%)。该模型是VGG-16。 “Coco”表示Coco TrainVal Set用于培训。另见表6和表7。

Faster R-CNN论文翻译_第14张图片

然后我们微调VOC数据集的COCO检测模型。在该实验中,可以通过第3.2节所述进行微调的R-CNN系统,代替Imageenet-Pre训练模型(用于初始化网络权重的模型),如第3.2节中所述,更快的R-CNN系统进行微调。在Pascal VOC 2007测试集上导致78.8%的地图。来自Coco Set的额外数据将地图增加了5.6%。表6显示,在Pascal VOC 2007上的每个单独类别培训的模型都有最好的AP。在Pascal VOC 2012测试集上观察到类似的改进(表12和表7)。我们注意到获得这些强度的测试时间速度仍然是每张图像约为200ms。

5结论

我们为RPN提供了高效和准确的区域提案生成。通过分享卷积具有下游检测网络的特点,该区域提案步骤几乎没有成本。我们的方法使基于深度学习的对象检测系统能够在近实时帧速率下运行。学习的RPN还提高了区域提案质量,从而提高了整体对象检测精度。

你可能感兴趣的:(R-CNN系列文章,深度学习,神经网络,机器学习)