Faster R-CNN译文

原论文地址

源代码地址

 

摘要:最先进的目标检测网络是依赖候选区域算法来预测目标位置。像SPPnet[1]和Fast R-CNN[2]性能较好的网络减少了检测网络的运行时间,将候选区域的建议作为bottleneck。在这项工作中,引入了RPN,与检测网络共享完整图像的卷积特征,从而不消耗任何资源就可以实现RPN。RPN是一个完全卷积的网络,它同时预测每个位置的目标边界框和目标得分。RPN采用端到端的训练方法,生成高质量的候选区域,在Fast R-CNN模型中用于检测。本文进一步通过采用最近流行的神经网络术语“注意力”机制来共享RPN和Fast R-CNN的卷积特征,从而将将RPN和Fast R-CNN合并成一个网络,RPN告诉整个网络应检测给定图像的哪一部分。对于网络层次很深的VGG-16模型[3],运用本文检测系统在GPU上的帧速率为5fps(包括所有步骤),当每个图像上的proposals(候选框的个数)设为300时,在PASCAL VOC 2007、2012和MS COCO数据集上的目标检测精度达到了最优。在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是多项比赛冠军的候选者。代码已开源。

关键词:目标检测,候选区域,卷积神经网络

1 引言

最近目标检测取得的进步要归功于候选区域生成的方法(比如文献[4])以及基于区域的卷积神经网络(R_CNN[5])。尽管初始R_CNN的计算复杂度非常大,但通过和候选区域共享卷积层,大大减小了计算量 [1], [2]。最近改进模型Fast R-CNN [2], 运用了非常深的网络层[3],忽略了候选区域生成步骤,从而可以接近实时检测速率。目前,proposals 是最先进检测系统的测试时间计算性能的bottleneck。(个人理解:导致计算量增大,急需解决的问题)

Region proposal 方法主要是依赖特征和模型推算过程。Selective Search [4], 是最常用的方法之一,主要是将低层网络特征合并成超高像素的特征。当和高效的检测网络相比[2], Selective Search检测速率慢的多,在GPU上运行速度是每秒两张图片。目前EdgeBoxes [6]可以兼顾proposal的质量以及速度,每秒检测的图片可提高到5张。但是呀,region proposal过程消耗的时间还是和检测模块一样多。

注意哦,fast R_CNN是在GPU上运行的,但是region proposal(下文用RP表示)方法是在CPU上运行的,这非常不公平,所以region proposal在GPU上运行可以有效地提高运行速度。从工程方面考虑可能是有效的,但是重新单独运行RP会忽略位于RP结构下面的检测模块,从而不能够共享卷积参数。本文用深层神经卷积网络改善算法,从而有效地解决了问题。当给定检测网络的计算量时,proposal几乎不需要消耗任何计算量。(没懂)

最后,将Region Proposal Networks (RPNs)和最先进的目标检测网络共享卷积层[1], [2]。通过在测试时间阶段分享卷积层,proposal的计算量非常小(因此检测速度就快了,每秒可检测6张图片)。本研究的观察结果是采用基于候选区域的卷积特征图也可以生成候选区域,就像Fast R_CNN一样。基于卷积层特征,本文通过添加几层卷积层搭建RPN,这些卷积层将每个网格中对应的每个位置的区域边界和分类得分进行回归。因此可知RPN实质上是全卷积网络 (FCN) [7] ,对生成检测proposal任务,可以通过端到端的方式进行训练。

RPN是用来有效地预测具有大尺度和宽高比的区域概率。与使用图像金字塔(如图1a所示)或滤波器金字塔(如图1b所示)的热门方法[8]、[9]、[1]、[2]相比,本文引入了“锚”框(由本文首次提出),作为多尺度和宽高比的参考。可以认为本文方案是一个回归的金字塔(如图1c所示),避免生成无用的多个尺度或不同宽高比的图像或过滤器。该模型在使用单尺度图像进行训练和测试时表现良好,因此有利于提高运行速度。

Faster R-CNN译文

为了将RPN和Fast R-CNN目标检测网络相结合,本文提出了一个全新的训练方法:在保持proposals不变的前提下,交替微调对proposal任务和目标检测。此方法能够加快收敛速度而且生成了一个两个任务共享卷积特征的网络。

本文在PASCAL VOC数据集评估网络性能,RPNs和Fast R-CNN结合的网络比SS和Fast R-CNN结合的网络检测精度要高。同时,本文方法几乎不需要像SS在测试阶段花费的时间,proposal阶段仅需要10毫秒。采用文献[3]中非常深的网络,本文检测方法在GPU上的运行速度也能够达到5FPS(包括所有步骤),因此本文方法在速度和精度方面可以运用在实际目标检测操作中。本文还在MS COCO数据集[12]上进行了实验,并用COCO数据测试在PASCAL VOC取得的性能提高。代码已开源( https://github.com/shaoqingren/faster_rcnn (in MATLAB) and https://github.com/rbgirshick/py-faster-rcnn (in Python).)

本文的初稿见文献[10]。此后,RPN和Faster R-CNN结合的网络框架广泛应用到其他方法,如3D对象检测[13]、part_based的检测[14]、实例分割[15]和图像说明[16]。本文快速且高效的目标检测系统也运用到了商业领域,如Pinterests[17],说明本文网络的应用领域得到了进一步发展。

在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是多个项目(ImageNet detection, ImageNet localization, COCO detection, COCO segmentation)中的冠军候选者。 RPNs 可以从数据中完全学会怎样生成候选区域,因此可以从更深层特征中受益(比如文献[18]中采用的101层残差网络)。在这次比赛的前几名网络模型还采用了Faster R-CNN和RPN。结果表明本文方法不仅计算量小而且检测精度高。

2 相关工作

Object Proposals已有大量关于Object Proposal方法的文献。Object proposal的综合研究和性能比较可参考文献[19], [20], [21]。Object proposal主要应用到超像素分组的方法(比如Selective Search [4], CPMC [22], MCG [23])以及基于滑动窗口的方法(比如窗口内的目标检测[24], 边界框[6])。Object proposal其实是独立于检测网络可单独运行的模块(比如Selective Search [4] 目标检测, RCNN [5], and Fast R-CNN [2])

目标检测的深度网络。 R-CNN[5]对CNNs进行端到端的训练模式,区分候选区域中的目标和背景。R-CNN主要是完成分类工作,并不预测目标的边界(但是会通过边界框回归对网络进行优化)。分类网络的精度取决于region proposal 模块的性能(可参考文献[20]中的比较结果).。一些论文提出了用深度网络预测目标边界框(如文献[25], [9], [26], [27])。在OverFeat方法中 [9],通过训练一个全连接层预测单个目标的边界框坐标。然后将全连接层转化为卷积层中用来实现多目标检测任务。MultiBox方法[26],[27]从最后一个全连接层生成候选区域(region proposal)同时预测多类别目标,推广了OverFeat的“单框”模式。这些边界框就是R-CNN[5]的候选框。与本文的全卷积模型相比,MultiBox proposal 网络适用于单个图像或多张大尺寸图像(如224×224)。MultiBox并不在proposal和检测网络之间共享参数。下文会更深入地讨论OverFeat和MultiBox与本文方法结合的效果。本文工作开展同时,也在研究将DeepMask方法[28]用于学习分割proposals。

因为共享卷积参数的方法(可参考文献[9]、[1]、[29]、[7]、[2])可以高效地运用在视觉识别任务中,受到更广泛关注。OverFeat [9]从图像金字塔计算卷积特征,用于分类、定位和检测。基于共享卷积特征图的自适应池化层(SPP)[1]应用在region-based目标检测[1]、[30]和语义分割中[29]。Fast R-CNN[2]使共享卷积特征进行端到端的目标训练,其检测速度和精度都非常好。

3 Faster R-CNN

本文目标检测模型称Faster R-CNN,包含两个模块。第一个模块是深度全卷积网络,用来获取候选区域;第二个模块是Fast R-CNN,用上一个模块生成的候选区域进行目标检测。整个模型是一个整体的目标监测网络(见图2)。RPN模块使用最近热门的“注意力”机制神经网络,告诉Fast R-CNN模块目标在哪里。3.1节介绍region proposal网络框架和特性。3.2节介绍了用于训练共享特征的两个模块的算法。

Faster R-CNN译文

3.1 Region Proposal 网络

RPN将图像(任何大小)作为输入,输出一组矩形object proposals,对每个proposal进行评分。此模块采用了一个全卷积网络[7]。因为本文最终目标是和Fast R-CNN目标检测网络共享计算[2],因此假设两个网络共享一组卷积层。在本文实验中,研究了Zeiler和Fergus(ZF)模型 [32],它共享了5层卷积层,Simonyan和Zisserman模型[3](VGG-16),共享了13层的卷积层。

为了生成region proposal,本文在最后一层共享卷积层上用一个小的滑动窗口进行卷积运算。这个小小的网络用n*n大小的滑动窗口得到的卷积特征图作为输入。每一个滑动窗口映射到更低维度的特征(ZF为256维度;VGG为512维度,都采用了ReLU[33]激活函数)。将得到的特征送入两个同等级的全连接层中:框回归层(reg)和框匪类层(cls)。本文令n=3,发现在输入图像的有效感受野非常大(ZF和VGG分别为171、228像素)。此迷你网络见图三左侧。注意,由于此迷你网络实在滑动窗口中运行的,那么全连接层是通过空间共享的。整体结构就是n*n的卷积层+两个同等级1*1的卷积层(reg和cls)组成的。

3.1.1 锚(anchor)

在每个滑动窗口中,同时预测多个区域建议,其中每个位置的proposal的最大值用k表示。因此,reg层有4k个输出,对应k个框的坐标,cls层输出2k个得分,为每个proposal包含和不包含目标的概率。k个proposals是相对于k个参考框参数化的,称之为锚(anchor)。锚位于所讨论的滑动窗口的中心,和框的尺寸和纵横比相关(图3左侧)。默认情况下使用3个尺寸和3个纵横比,即在每个滑动窗口中产生k=9个锚。对于尺寸为W×H(通常为∼2400)的卷积特征地图,总共有W*H*k个anchors。

Faster R-CNN译文

Anchor平移不变性。本文方法最大的特点是平移不变性,anchor和计算和anchor相关的proposal都具有这种性质。如果识别图像中的一个对象,则proposal应该进行实现,并且同一个函数应该能够在任一位置预测该proposal。本文方法具备平移不变性。作为比较,MultiBox方法[27]使用k-mean生成800个anchors,这些anchors不是平移不变的。因此,MultiBox不能保证在转换对象时生成相同的proposal。

平移不变性也减小了模型的尺寸。MultiBox有一个(4+1)×800维全连接的输出层,而本文方法在k=9 anchors时有一个(4+2)×9维卷积输出层。因此,本文输出层有2.8×104个参数(VGG-16参数个数为512×(4+2)×9),比MultiBox输出层的6.1 × 106个参数(MultiBox[27]中GoogleNet[34]的参数个数为1536×(4+1)×800(MultiBox[27])少了两个数量级。如果考虑特征投影层,本文的proposal层仍然比MultiBox少一个数量级的参数。我们希望本文方法在小数据集(如PASCAL VOC)上的过拟合问题不严重。

作为回归参考的多尺度anchors。我们设计的anchor可以解决多尺度(和纵横比)的新方案。如图1所示,有两种常用的多尺度预测方法。第一种方法是基于图像/特征金字塔,例如DPM[8]和基于CNN的方法[9]、[1]、[2]。在多个尺度上调整图像大小,并为每个尺度计算特征映射(HOG[8]或深卷积特征[9]、[1]、[2])(见图1(a))。这种方法通常很有用,但很耗时。第二种方法是在特征地图上使用多尺度(和/或纵横比)的滑动窗口。例如,在DPM[8]中,使用不同的滤波器尺寸(如5×7和7×5)分别训练不同纵横比的模型。如果这种方法用于处理多个尺度,则可以将其视为“过滤器金字塔”(图1(b))。第二种方法通常与第一种方法一起用[8]。

作为比较,我们的anchor-based方法是建立在一个金字塔anchor,这样更节省成本。此方法是参照多尺度和高宽比的anchor对边界框进行分类和回归。它只依赖单一比例的图像和特征图,并使用单一尺寸的过滤器(特征图上的滑动窗口)。通过实验展示了本文方法解决多尺度和多高宽比问题的性能(见表8)。

由于这种基于anchor的多尺度设计,可以简单地使用在单尺度图像上卷积得到的特征,此部分是Fast R-CNN检测网络实现的[2]。为了解决尺度问题且不增加多余消耗,多尺度anchors的设计是一个关键的部分。

3.1.2 损失函数

为了训练RPNs,本文将anchors分为两类(是目标,不是目标)。两种anchor归为正标签:(i)和ground-truth box具有最高交并比(IoU)的anchor,或(ii)IoU高于0.7的anchor。请注意,一个ground-truth box可能会将多个anchors归为正标签。通常第二个条件能够确定足够正样本,但仍然采用第一个条件,因为在某些特殊情况下,第二个条件可能找不到正样本。如果一个anchor的IoU低于0.3,把它归为负样本。其余anchors对目标没有用。

根据以上定义,我们在Fast R-CNN[2]中最小化了多任务损失后的目标函数。图像的损失函数定义为:

Faster R-CNN译文

 

上式中,i是在一个mini-batch中一个anchor的索引;Faster R-CNN译文 是anchor i为目标的预测概率。如果anchor是正样本,那么ground-truth标签Faster R-CNN译文 值为1,否则为0。Faster R-CNN译文 是一个向量,代表预测边界框的四个坐标;Faster R-CNN译文 是与正样本anchor相关的ground-truth box的值。分类损失是两个类别的log损失(目标vs非目标)。对于回归损失,我们用Faster R-CNN译文 计算,其中R是文献[2]中定义的鲁棒性损失函数(平滑L1)。Faster R-CNN译文 是回归损失,当anchor为正样本时,取1,否则为0。Cls和reg层输出分别由{pi}和{ti}组成。

这两个项用Ncls和Nreg进行归一化,并用平衡参数λ加权。实验过程中,等式(1)中的cls通过mini-batch大小(即Ncls=256)进行归一化,reg通过anchor位置的数量进行归一化(即Nreg∼2400)。默认情况下,令λ=10,因此cls和reg项的权重大致相等。通过实验表明,在很大范围内,λ对结果影响不大(见表9)。我们还注意到,上述规范化(归一化)不是必需的,可以省略。

对于bounding box回归,本文对以下4个坐标参数回归:

Faster R-CNN译文

上式中x,y,w,h表示边界框的中心坐标以及边界框的宽和高。变量x,xa和x*分别表示预测边界框、anchor框和ground-truth框(y,w,h亦是如此)。可以认为是接近ground-truth框的anchor框的bounding-box回归。

然而,本文模型回归bounding-box的方法不同于以前基于ROI(感兴趣区域)的方法[1],[2]。在文献[1]、[2]中,边界框回归是对任意大小roi集合的特征进行的,回归权值由所有区域大小共享。在我们的公式中,用于回归的特征在特征图上具有相同的空间大小(3×3)。由于尺寸不一,我们学习了一组k个边界框回归函数。每个回归因子对应一个尺寸和一个长宽比,k个回归因子不共享权重。因此,由于anchor的加入,即使特征具有固定的尺寸/比例,仍然可以预测各种尺寸的边界框。

3.1.3 RPN的训练过程

RPN可以通过反向传播和随机梯度下降(SGD)进行端到端的训练[35]。我们参考文献[2]中的“以图像为中心”的采样策略来训练这个网络。每个包含许多正负anchors的图像为一个mini-batch。可能会主要对负样本的所有anchor的损失函数进行优化,因为它们占主导地位(可能是因为负样本anchor权重大吧)。但是,我们随机在一个图像中设置256个anchor来计算一个小批量的损失函数,其中正负anchor比为1:1。如果一个图像中的正样本少于128个,我们就用负样本填充小批量。

我们通过从标准偏差为0.01的零均值高斯分布中提取权重,随机初始化所有新的网络层。所有其他层(即共享卷积层)通过预先训练ImageNet分类模型来初始化[36],一般都采用此方法 [5]。为了节省内存[2],调整ZF所有网络层,并调整VGG网络的conv3_1层以及更高的层。用PASCAL VOC数据集进行训练测试,在前60k个mini-batch设置0.001的学习率,后面20k个mini-batch设置0.0001的学习率。动量设为0.9,权重衰减设为0.0005[37]。本文模型在Caffe(Convolutional Architecture for Fast Feature Embedding,卷积神经网络框架)上实现[38]。

3.2 在RPN和Fast R-CNN上共享特征

到目前为止已经介绍了region proposal生成网络的训练过程,并不考虑利用这些proposals的region-based目标检测。对于目标监测网络,本文采用Fast R-CNN[2]。下面介绍学习一个整体网络的算法,该网络由RPN和Fast R-CNN组成,这两个子网络共享卷积层。

RPN和Fast R-CNN分别单独训练,用不同的方法更新他们自己的卷积层。因此需要设置一种机制可以使这两个子网络共享卷积层,而不是分开训练。本文介绍三个共享训练网络的方法:

(1)交替训练。首先训练RPN,然后用得到的proposals训练Fast R-CNN。Fast R-CNN调整网络后又去初始化RPN,然后重复交替。此方法是本文所有实验中使用的解决方案。

(ii)近似联合训练。RPN和Fast R-CNN网络在训练期间合并为一个网络,如图2所示。在每一次SGD迭代中,前向传播过程生成region proposals,当训练Fast R-CNN检测模块时,将这些region proposal视为固定的、预先计算的proposals。反向传播过程和往常一样,但在共享层,反向传播的参数是RPN损失和Fast R-CNN损失之和。这个解决方案很容易实现。但是这个解决方案忽略了有关proposal框的坐标的导数,这些框坐标也是网络响应,因此是‘近似’的。在实验中发现该方法产生的是近似结果,与交替训练相比,训练时间减少了约25-50%。该方法也在Python代码中。

(iii)非近似联合训练。如上所述,由RPN预测的边界框也是输入的函数。Fast R-CNN中的RoI池化层[2]将卷积特征和RPN预测的边界框作为输入,因此理论上有效的反向传播还应该包含与边界框坐标相关的梯度。上述‘近似联合训练’方法在反向传播过程中忽略了这些梯度。在一个非近似的联合训练解决方案中,我们需要一个RoI池化层,该层可以将边界框坐标进行微分。这是一个非常重要的问题,解决方法可以参考文献[15]中提出的“RoI warping”,但这不是本文的研究范围。

4步交替训练。本文采用一种实用的4步训练算法,通过交替优化来学习共享特征。第一步,按照3.1.3节的描述训练RPN。用‘ImageNet预训练’模型以及采用端到端的方式对region proposal 任务进行微调,从而对网络进行初始化。第二步,用RPN模块生成的proposal,通过Fast-R-CNN训练独立的检测网络,该检测网络也由ImageNet预训练模型初始化。最后一步两个网络还没有共享卷积层。第三步,使用检测网络对RPN训练进行初始化,但是我们固定了共享卷积层,并且只对RPN网络层进行微调。这一步开始共享卷积层。第四步,共享卷积层依然不变,只微调Fast R-CNN的网络层。因此,两个网络共享相同的卷积层并组成一个整体网络。类似的交替训练的迭代步骤可以设置得大些,但性能改进微不足道。

3.3 参数设置

本文用单一尺度的图像训练和测试region proposal和目标检测网络[1],[2]。Resize图像,使其宽为s=600像素[2]。多尺度特征提取(使用图像金字塔)可能会提高精度,但减慢了训练速度[2]。在resize后的图像上,最后一个卷积层上的ZF和VGG网络的总步长为16像素,因此,在调整图像大小之前(原始大小约500×375),在PASCAL图像上的步长约10个像素。即使这样大的步长也能提供很好的效果,不过用较小的步长可以进一步提高训练精度。

本文用3个尺寸的anchor,像素大小为1282、2562和5122,3个纵横比分别为1:1、1:2和2:1。这些超参数并不是精心选择的,在下一节中介绍这些参数的影响,并进行消融实验。如上文所述,我们的解决方案不需要图像金字塔或过滤金字塔来预测多尺度区域,因此节省了大量的运行时间。本文方法在各种比例和宽高比下的表现如图3(右图)所示。表1统计了使用ZF网得到的每个anchor的平均建议大小。我们注意到,本文算法可以预测比感受野更大的图像。这样的情况并非不可能,如果只看到了目标的中心部分,人们仍然可以粗略地推断出物体的类别。

需要小心处理跨越图像边界的anchor框(一张图等分为几个矩形子图,一个子图内指定生成k个anchors,有些anchors会包含多个子图的像素,应该删除这些跨界anchors)。训练期间,忽略了所有的跨界的anchors,因此它们不会对结果产生不良影响。对于常用的1000×600输入图像,总共大约有20000个anchors(约60×40×9)。删除跨界anchors,每个图像大约有6000个anchors用于训练。如果训练中不忽略跨界anchors,则会在目标中引入较大的、难以修正的误差项,且训练结果不会收敛。然而,在测试阶段,仍然将全卷积的RPN应用于整个图像,这可能会生成跨边界的proposal框,我们将其剪辑到图像边界。

一些RPN生成的proposals彼此高度重叠,为了减少冗余,本文根据proposal regions的cls得分对其进行非极大值抑制(NMS)。将NMS的IoU阈值设置为0.7,这就为每个图像留下了大约2000个proposal regions。下文会说明,NMS不会对检测精度产生不良影响,而且还可以大大减少proposal的数量。在NMS之后,使用排名前N的proposal region进行检测。然后使用2000个RPN proposals来训练Fast R-CNN,但是在测试阶段对不同个proposals进行评估。

4 实验

4.1 基于PASCAL VOC数据集的实验内容

在PASCAL VOC 2007检测benchmark上对本文方法进行了综合评估[11]。该数据集包含20类目标,大约5k个trainval图像和5k个测试图像。还提供了一些基于PASCAL VOC 2012 benchmark的测试结果。对于ImageNet预先训练的网络,使用ZF网络[32]的“快速”版本,包含5个卷积层和3个全连接层,以及具有13个卷积层和3个全连接层的公共VGG-16 model[3]。主要比较平均精度(mAP),因为这是目标检测的实际指标(而不是关注目标proposal的代理指标)。

表2统计了用不同region proposal方法,训练和测试Fast R-CNN的结果。这些结果是使用ZF网络得到的。对于SS[4],我们通过“快速”模式生成大约2000个proposal。对于EdgeBox(EB)[6],我们通过IoU=0.7的默认EB生成proposal。SS的mAP为58.7%,EB的mAP为58.6%。Fast R-CNN和RPN结合的结果较好,当另proposal=300时,mAP为59.9%。因为RPN和Fast R-CNN共享卷积特征,因此RPN比SS和EB的检测速度都要快;更少的proposal也在一定程度上减少了全连接层的计算成本(见表5)。

RPN的消融实验。为了研究作为proposal方法的RPN的性能,本文进行了几个消融研究。首先,展示了RPN和Fast R-CNN检测网络共享卷积层的影响。因此我们在步骤二的4步训练过程之后停止训练。用分开的网络进行训练,最终结性能有微弱下降,mAP为58+7%(RPN+ZF,不共享网络,见图2)。是因为在第三步时经检测模块调整后的特征用于微调RPN,因此proposal的质量得到了提高。

然后分析RPN对训练Fast R-CNN检测网络的影响。通过采用2000和SS proposal和ZF网络训练Fast R-CNN。固定检测模块,通过改变测试阶段的proposal regions评估检测结果mAP。在这个消融实验中,RPN没有和检测模块共享卷积特征。

通过在测试阶段用300个RPN proposals代替SS算法,mAP提高到56.8%。mAP的损失是由于训练和测试阶段的proposal不一样导致的。该结果为下面比较提供了baseline。

注意哦,在测试阶段用前100个proposals时,RPN测试结果仍然挺好,其mAP为55.1%,说明排名靠前的RPN proposals精度是比较高的。另一个极端情况是当用排名前6000的RPN proposals(没有进行非极大值抑制)时,mAP为55.2%,结果也挺好,说明NMS对检测mAP没有产生负面影响,而且可能还会提高模型性能。

接下来分别讨论RPN 的cls和reg输出。当cls层在测试阶段删除时 (因此没有NMS或排名), 从未得分的区域随机设置N个proposals,N=1000的mAP=55.8%,但是当N=100时,mAP=44.4%。这表明cls得分说明了排名靠前的proposals的准确性。

另一方面,在测试阶段移除reg层(此时proposal变为anchor框),mAP下降为 52.1%。这表明高质量的proposals是由回归边界框得到的。尽管anchor框有不同的尺寸和高宽比,但对检测精度没有太大贡献。

我们还单独评估了RPN的proposal对更强网络的影响。用VGG-16训练RPN,用上述SS+ZF的检测网络 。mAP从56.8%(RPN+ZF) 提高到59.2% (RPN+VGG). 该结果大快人心,表明了RPN+VGG的proposal性能比RPN+ZF好!因为RPN+ZF的proposal性能和SS差不多(当作用在训练和测试阶段,两者的mAP为58.7%), 我们期望RPN+VGG性能可以比SS要好,下文会证明。

VGG-16的性能。表3统计了VGG-16的proposal和检测结果。RPN+VGG网络的非共享特征的结果为68.5%,略高于SS baseline。如上述所示,这是因为RPN+VGG生成的proposal比SS更精确。与预先定义的SS不同,RPN是经过有效训练并可以从更好的网络中获益。对于特性共享的网络,mAP为69.9%,比SS性能好,而且proposal阶段几乎没有消耗成本。我们用RPN和检测网络训练PASCAL VOC 2007的trainval和2012的trainval数据集,mAP为73.2%。PASCAL VOC2007测试集的测试结果见图5。在VOC 2007 trainval+test集合和VOC 2012 trainval的集合训练的模型,在PASCAL VOC 2012测试集(见表4)的结果mAP为70.4%。具体结果见表6和表7。

表5总结了整个目标检测系统的运行时间。根据检测内容的不同,SS需要1-2秒(平均约1.5秒);当生成2000个SS proposals时,使用VGG-16的Fast R-CNN需要320ms(如果在全连接的层上使用SVD,则需要223ms[2])。本文方法使用VGG-16用于proposal和检测总共需要198ms。在共享卷积特性的情况下,仅RPN只需10ms就可以计算其余(未共享)层。本文region计算量也很低,是因为最后只需要较少的proposal(每个图像300个proposals)。本文模型当和ZF网络结合时,检测速率可达17 fps。

超参数的贡献。在表8中,统计了anchor对模型性能的影响。默认情况下,使用3个比例和3个高宽比(mAP=69.9%)。如果在每个位置只用一个anchor,mAP会下降很多,大约3-4%。如果使用3个尺寸(1个纵横比)或3个纵横比(1个尺寸),mAP会更高,说明使用多个尺寸的anchor对回归效果有积极作用。在这个数据集上,使用3个尺寸*1个宽高比和使用3个尺寸*3个宽高比结果一样好(mAP=69.8%),这表明尺度和宽高比对于检测精度来说并不是分离的维度。但还是采用这两个参数进行实验。

在表9中,比较了式(1)中λ的不同值对模型性能的影响。默认情况下令λ=10,这使式(1)中的两个项在归一化后大致相等。从表9可以看出,当λ在大约两个数量级(1到100)的范围内时,本文结果受到的影响很小(波动幅度约1%)。这说明λ对结果影响不大。

召回率的IoU分析。本文用ground-truth框计算不同IoU比率下的proposal召回率。值得注意的是,召回率的IoU与最终检测准确度关系不大[19]、[20]、[21]。使用这个指标来诊断proposal比评估proposal更合适。

分别使用300、1000和2000个proposal的mAP,如图4所示。我们将本文方法与SS和EB进行了比较,根据这些方法的置信度,取排名前N的proposal。图中显示,当proposal数量从2000个下降到300个时,RPN方法性能更好。这解释了为什么RPN在使用少于300个proposal时具有良好的最终检测mAP。正如之前所分析的,这种特性主要归因于RPN的cls层。当proposal较少时,SS和EB的召回率下降得比RPN快。

一阶段检测网络vs两阶段proposal+检测网络。OverFeat论文[9]提出了一种在卷积特征图上使用滑动窗口上的回归器和分类器的检测方法。OverFeat是一个单阶段的分类的检测网络,而我们的是一个两阶段,由不分类的proposal和分类的检测网络组成。在OverFeat中,区域特征来自于一个aspect ration*一个scale的金字塔的滑动窗口。这些特征用于同时确定对象的位置和类别。在RPN中,特征来自于3×3种滑动窗口,并预测了不同尺度和长宽比的anchor的proposals。虽然这两种方法都使用滑动窗口,但区域proposal任务只是Faster R-CNN的第一阶段,位于RPN下方的Fast R-CNN检测网络会进一步处理proposals。在第二阶段中,proposal框会自适应的对区域特征进行池化,从而可以更好地包含区域特征[1]、[2]。我们相信这些特征会得到更精确的检测结果。

为了比较一阶段和两阶段网络,我们用一阶段Fast R-CNN作为OverFeat的主干网络(个人理解,有误请指出,谢谢)(从而也避免了其他细节的差异)。在实验中,“proposal”为3个尺寸(128、256、512)和3个宽高比(1:1、1:2、2:1)的滑动窗口。Fast R-CNN从这些滑动窗口预测目标类别分数,并回归得到方框的位置。由于OverFeat采用一个图像金字塔,所以我们也使用了从5个尺寸提取的卷积特征来进行评估。本文使用这5个尺寸,如文献[1],[2]。

两阶段网络和一阶段网络的变体的比较结果见表10。一阶段ZF的mAP为53.9%,比两阶段模型(58.7%)低4.8%,证明了结合区域proposal和目标检测的有效性。在[2],[39]中也有类似的观察结果,在这两篇论文中,用滑动窗口代替SS区域proposal会导致大约6%的性能退化。还注意到,一阶段模型速度较慢,因为它生成的proposals太多了。

4.2 基于MS COCO数据集的实验内容

(这一节就不翻译了,只是换了个法儿说RPN+检测网络的好处。。。。)

 

4.3 从MS COCO到Pascal VOC

大规模数据对于改进深度神经网络具有重要意义。下面,我们研究MS-COCO数据集如何帮助提高PASCAL VOC的检测性能。

作为一个简单的baseline,直接在PASCAL VOC数据集上评估基于COCO得到的检测模型,不需要对任何PASCAL VOC数据进行微调。这种评估是可行的,因为COCO上的类别包含PASCAL VOC中的类别。在本实验中,忽略了COCO上独有的类别,softmax层只在20个类别+背景(算一个类别)上进行。在PASCAL VOC 2007测试集上, mAP为76.1%(见表12)。尽管训练时没有用PASCAL VOC数据,但这一结果比VOC07+12训练的结果(73.2%)要好得多。

然后对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,用于高效准确地生成区域proposal。通过与检测网络共享卷积特征,区域proposal几乎不需要消耗任何资源。我们的方法使一个统一的,基于深度学习的目标检测系统能够以接近实时的帧速率运行。学习的RPN还提高了区域proposal质量,从而提高了整体目标检测精度。

 

红色字体是直译,没有明白,如有错误,欢迎指正,谢谢!

 

 

 

 

上一篇:大批量数据删除语句的优化


下一篇:删除win10无限嵌套文件夹