Faster R-CNN论文翻译
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Shaoqing Ren, Kaiming He,Ross Girshick, Jian Sun 2016
MSRA
1. Introduction
近期在物体检测领域获得的进步主要来自region proposal方法和基于region的CNN的成功。尽管R-CNN在刚提出时$^{[5]}$计算量很大,近期已通过跨proposal共享卷积大幅下降$^{[1],[2]}$。最新的典型Fast R-CNN在极深的网络获得了近实时的处理率(忽略花在region proposal时间)。在目前最新的检测系统中,proposal成为了测试时计算瓶颈。
Region proposal方法通常依赖便宜的inexpensive特征和经济地推论方法economical inference schemes。Selective search是当前最流行的方法之一,基于设计好的低级特征,贪婪地合并超像素。不过与高效检测网络$^{[2]}$相比,SS要慢上一个量级。在CPU上需要两秒才能处理完一张图片。EdgeBoxes$^{[6]}$是目前将速度和proposal质量平衡得最好的,每0.2s处理一张图片。不过,region proposal步骤依然消耗了与检测网络一样的时间。
也许有人会注意到FRCN利用了GPU的优势,而研究中使用的region proposal方法仍在CPU上实现,让这样的运行时间对比不对等。一个加速proposal计算的明显方法是实现GPU版本。这也许是一个高效的工程解决方案,但重实现方案忽略了后续检测网络,从而失去了重要的共享计算的机会。
在本论文中,我们展示了算法的变化——用CNN计算proposal——引出的一个优雅高效的解决方案,proposal计算相比检测网络的计算量近似于无。为了这个目的,我们介绍最新的Region Proposal Networks(RPNs)来与最新物体检测网络共享卷积层。通过在测试时共享卷积,计算proposal的边际成本极低(10ms/image)。
我们发现用于基于region的检测器,如FRCN,所用的卷积特征,同样能用于生成region proposal。基于这些卷积特征,我们通过增加少量额外卷积层构建了一个RPN,同时地
对每个规则网格的位置进行region框回归和物体评分。因为RPN是一种全连接卷积网络(FCN),故能端到端地训练,特别是对于生成检测proposal的任务。
RPN被设计在大范围的尺度和长宽比上高效地预测region proposal。与流行的方法$^{[8],[9],[1],[2]}$使用图片金字塔(图1 a)或过滤器金字塔(图1 b)相反,我们提出了一个新的锚点框,用作不同尺度和长宽比的索引。可以把我们的方法想象为回归索引金字塔(图1 c),避免了为不同不同尺度和长宽比枚举图片。在用单尺度图片训练和测试时,这一模型表现良好,提供了更快的运行速度。
为了统一RPN和FRCN,我们提出了一个在为region proposal任务调优和为物体检测任务调优轮流间的训练方法,同时保持proposal固定。这一方法收敛迅速并产生一个在两个任务间共享卷积特征的网络。
我们在PASCAL VOC检测benchmark$^{[11]}$上综合地评估了我们的方法,RPN with FRCN的准确率高于FRCN。同时,我们的方法近乎完全抛弃了测试时SS的计算负担——用于生成proposal的运行时间仅10毫秒。在使用高昂的极深模型$^{[3]}$时,我们的检测方法使用GPU仍有5fps的帧率(包括所有步骤),这是一个兼具速度和准确性的实际物体检测系统。我们也报告了在MS COCO数据集集的成绩并调查了通过COCO数据在VOC上取得的提升。代码已公开:MATLAB和Python。
原稿的早期版本曾发布过$^{[10]}$。自那时起,这一方法的框架就已形成并泛化到其他方法如3D物体检测$^{[12]}$,part-based检测$^{[14]}$,instance segmentation$^{[15]}$和为图片加标题$^{[16]}$。我们的快速高效物体检测系统也已在商用系统中建成,如Pinterests$^{[17]}$。
在ILSVRC和COCO 15竞赛中,FRCN和RPN是各个第一名的基础。RPN完全用于学习从数据提出region,因此仅仅从更深和更具表达力的特征(如ResNet)就能获益。这一方法同样用于许多其他竞赛的领先成绩中。这些结果说明我们的方法不仅仅是实用的高效方案,也是提升准确率的有效途径。
2. Related Work
Object Proposals. 物体proposal方法有大量相关论文。[19],[20],[21]对各方法进行了广泛地测量和比较。常用的方法或基于合并超像素(如Selective Search$^{[4]}$,CPMC$^{[22]}$,MCG$^{[23]}$)或基于滑动窗口(如objectness in windows$^{[24]}$,EdgeBoxes)。在过去,proposal方法用作独立于检测系统的外部模块。
Deep Networks for Object Detection. R-CNN方法端到端地训练CNN来将proposal region分类。R-CNN主要扮演分类器的角色,并不预测物体框(除了通过限位框回归调优)。其准确率依赖于region proposal模块性能(见[20]中的比较)。多篇论文提出来使用深度网络预测物体限位框的方法$^{[25],[9],[26],[27]}$。在OverFeat方法中$^{[9]}$训练了一个全连接层来预测框的坐标。MultiBox方法$^{[26],[27]}$从一个最后的全连接层同时预测多个类不可知的框的网络中生成region proposal。这些框用于R-CNN。与我们的FCN相反,MultiBox在单个image或多个大image(224*224)上运行。MultiBox没有在proposal和检测网络间共享特征。我们后续会深入讨论OverFeat和MultiBox。与我们工作同时的DeepMask方法$^{[28]}$用于学习segementation proposals。
卷积共享计算吸引了对高效且准确的识别的日益增长的注意力。OverFeat从图片金字塔计算卷积特征用于分类、定位和检测。SPP用于高效的物体检测和语义分割。FRCN运行端到端的检测器训练并展现了引人注目的准确率和速度。
3. Faster R-CNN
我们的物体检测系统Faster R-CNN是由两个模块组成的。第一个是生成proposal region的深度全卷积网络,第二个是FRCN使用region进行检测。整个系统是一个统一的网络。使用了近期流行的神经网络术语“注意力attention”$^{[31]}$机制,RPN模块告知FRCN模块往哪儿看。在3.1中我们介绍了用于region proposal的网络的设计和属性。在3.2中我们设计了一个算法来用共享的特征训练两个模块。
3.1 Region Proposal Networks
RPN接收一张任意尺寸的图片作为输入,输出一个矩型object proposal集合,每个都有一个objectness得分。我们用一个全卷积网络建模此过程。由于我们最终目标是与FRCN物体检测网络共享特征,我们假定两个网络共享了一个公共卷积层集。在我们的实验中,我们调研了有着5个可共享的卷积层的Zeiler and Fergus模型ZF$^{[32]}$和有着13个可共享的卷积层的Simonyan and Zisserman模型$^{[3]}$(VGG-16)。
我们在最后一个共享卷积层生成的卷积特征图上滑动一个小网络来生成region proposal。这个小网络接收n * n的输入。每个滑动窗口都映射到一个低维特征(对ZF是256维,VGG是512维,后跟一个ReLU)。这个特征提供给两个兄弟全连接层,分别进行限位框回归(reg)和限位框分类(cls)。本论文中,我们使用n = 3,注意在输入图片上的有效感受野很大(ZF和VGG分别是171和228像素)。图3中这个迷你网络只画了一个位置。但因为这个迷你网络用作滑动窗口,两个全连接层在所有空间上都得到了共享。自然地形成了一个n*n卷积层后跟两个兄弟1*1卷积层(分别用于reg和cls)的结构。
3.1.1 Anchors
在每个滑动窗口的位置,我们同时预测多个proposal,将每个位置可能的proposal最大数量记做k。那么reg层就有4k个输出,编码了k个框的坐标。cls层为每个proposal估计是否是物体,输出2k个得分(出于简单我们将cls层实现为2类softmax)。我们称为k个anchor。一个anchor位于滑动窗口中心,有自己的尺寸和长宽比。默认我们使用3个尺寸和3个长宽比,即每个滑动窗口位置有9个锚点。对于尺寸为W*H(通常约等于2400)的feature map,共有WHk个锚点。
Translation-Invariant Anchors
我们方法的一个重要特性是平移不变性——锚点和基于锚点计算proposal的方法。如果平移图片中一个物体,proposal应该也会平移,方法也能在那个位置预测proposal。这一属性是由我们方法保证的。MultiBox方法使用k-means来生成800个锚点,并不具备平移不变性。
平移不变性也降低了模型大小。MultiBox有一个$(4+1)\times 800$维的全连接层,而我们的方法是一个$(4+2) \times 9$维的卷积输出层——k=9的情况。因此我们的输出层有$2.8 \times 10^4$个参数($512 \times (4+2) \times 9$,VGG16),比MultiBox的输出层的$6.1 \times 10^6$($1536\times(4+1)\times 800$,GoogleNet)要少两个量级。我们预计我们的方法在小数据集如PASCAL VOC上更不容易过拟合。
Multi-Scale Anchors as Regression References
我们锚点的设计方式提供了一种新的定位多scale(和多长宽比)的方法。如图1所示,过去曾有两种常用的多scale预测方法。第一种基于图片/特征金字塔,如在DPM和基于CNN的方法。图片被缩放到多个scale,并未每个scale计算feature map(图1 a)。这一方法通常有用但过于耗时。第二种方法是使用多个scale(和/或长宽比)的滑动窗口。参考DPM中,有不同长宽比的模型分别用不同过滤器大小训练(如5*7和7*5)。如果这用在定位多scale,可以想象成过滤器金字塔(图1 b)。第二种方式常常与第一种同时使用。
与其相比,我们的基于锚点的方法建立在锚点金字塔上,是一种更高效的方法。我们的方法依据不同scale和长宽比的锚点框进行分类和回归。它只依赖单scale的图片和feature map,同样只使用了单个大小的filter(在feature map上滑动)。我们会用实验显示这种方法的效果。
由于这一基于锚点的多scale设计,我们能简单地使用单scale图片计算出的特征。这一设计是无需为多scale付出额外花销的特征共享的关键。
3.1.2 Loss Function
为了训练RPN,我们为每个锚点赋值一个二元标签(是不是一个物体)。我们为两种锚点赋予正标签:与一个gt框有着最高的IoU的锚点,或与任一gt框IoU大于0.7的锚点。注意一个gt框可能会为多个锚点赋予正值。通常第二个条件足够决定正样本,但我们仍采用第一条件的原因是,在某些少见的场景下第二条件无法找到正样本。我们为一个非负的与所有gt框IoU都小于0.3的锚点标作负样本。对于训练目标没有帮助的锚点既不为正也不为负。
有了这些定义,我们按照FRCN的多任务loss来进行优化,我们的图片loss函数定义如下:
这里i是mini-batch中一个锚点的序号,$p_i$是锚点i是物体的预测概率。$p_i^$指锚点i的标签,如为正样本则等于1,否则等于0。$t_i$是代表预测框的4个参数化坐标的向量,$t_i^$是正样本相关的gt框位置。分类loss $L_{cls}$是对两类(是否是物体)的log loss。对于回归loss,我们使用$L_{reg}(t_i,t_i^) = R(t_i-t_i^)$,其中R是[2]中定义的robust loss函数(smooth $L_1$)。$p_i^*L_{reg}$代表回归loss只有对正样本锚点激活。cls和reg层的输出分别组成$\{p_i\}$和$\{t_i\}$。
两项分别用$N_{cls}$和$N_{reg}$归一化,并用参数$\lambda$进行平衡。在我们当前的实现中(已公布的代码),公式中的第一项由mini-batch大小归一化($N_{cls} = 256$),reg项由锚点坐标数量归一化($N_{reg} \sim 2400$)。默认我们设置$\lambda = 10$,因此两项权重近似相等。我们通过实验发现结果对$\lambda$的值在很大范围内不敏感(表9)。我们也注意到上面提到的归一化是不需要的,可以被简化。
对于限位框回归,我们按照[5]的方法对四个坐标参数化:
其中x,y,w,h表示框的中心坐标和宽高。变量$x,x_a,x^*$分别用作预测框,锚点框和gt框(y,w,h类似)。这可以想象为从一个锚点框向一个附近的gt框进行回归。
我们的方法与[1],[2]的限位框回归方法不同。在它们的方法中,是在从任意尺寸的RoI中提取的特征上进行限位框回归的,所有region size都共享了同样的回归权重。在我们的方法中,用于回归的特征在feature map上都有同样的空间大小(3 * 3)。为了处理多种大小,一共会训练k个限位框回归器。每个都负责特定的尺寸和宽高比,它们之间不会共享。
3.1.3 Training RPNs
RPN能通过反向传播和SGD端到端地训练。我们按照[2]的”image-centric”抽样方法来训练网络。每个mini-batch都来自一张图片,其中包含了很多正负样本锚点。可以为一张图的所有锚点优化loss函数,但这会偏向负样本,因为它们数量更多。我们只为图中随机抽样的256个锚点计算loss,抽样正负比为1:1。如果正样本少于128个则用负样本填充。
我们用均值为0,标准差为0.01的高斯分布初始化所有新层的权重。所有其它层(如共享的卷积层)使用预训练的ImageNet分类模型初始化。对于ZFnet我们调优所有层,对VGGnet调优conv3_1及以上的层,为了conserve 内存。在PASCAL VOC上,前60k次迭代学习率为0.001,后20k为0.0001。动量为0.9,decay为0.0005。
3.2 Sharing Features for RPN and Fast R-CNN
目前为止我们在不考虑使用proposal的FRCN的情况下,介绍了如何训练用于生成region proposal的网络。接下来我们会介绍如何训练一个由RPN和FRCN组成的,共享了卷积层的网络的算法(图2)。
分别训练RPN和FRCN的话,它们都会用不同的方式修改卷积层。因此我们需要开发一个技术使它们共享卷积层,而不是独立地训练两个网络。我们讨论了三种方法:
- Alternating training 交替训练 我们先训练RPN,再用proposal训练FRCN。被FRCN调优后的网络用于初始化,再继续这个过程。这是本论文所有实验所用方法。
- Approximate joint training 近似共同训练 这一方案中,RPN和FRCN在训练中像图2一样合并为一个网络。在每个SGD迭代中,前向传播产生的proposal被当做固定的、预计算好的,像训练FRCN时一样。反向传播也像通常一样,不过共享层会触发两个loss并将其结合。这一方案实现很容易。但它忽略了限位框坐标的偏导。我们的实验经验是这一方法有相近的成绩,但与交替训练比训练时间缩短25~50%。
- Non-approximate joint training 如之前讨论,RPN预测的限位框也是输入的函数。FRCN中的RoI池化层接收卷积特征和预测框作为输入。因此理论上正确的反向传播solver应该涉及限位框坐标的梯度。在本方法中,我们需要一个对限位框坐标可微的RoI池化层。这不是个简单的问题,可以通过[15]那样通过”RoI warping”层解决。
4-Step Alternating Training. 本论文中,我们通过一个使用的四步训练算法来通过交替训练学习共享特征。首先,我们按3.1.3描述那样训练RPN。网络初始化自ImageNet训练的模型,为region proposal任务调优。接着,我们用步骤1的RPN产生的proposal训练一个单独的FRCN。这个检测网络也初始化自ImageNet预训练模型。在这时两个网络还没有共享卷积层。第三步,我们使用检测网络来初始化RPN,但我们固定共享卷积层,只对RPN独有的层调优。现在两个网络共享卷积层了。最终,保持共享卷积层,为FRCN独有的层调优。可以训练更多次,但我们只观察到微不足道的提升。
3.3 Implementation Details
我们在单尺度图片上训练和测试两个网络。我们把图片缩放,让短边s = 600像素。多尺度度特征提取(使用图片金字塔)也许能提升准确度,但不是一个速度-精度的好的权衡。在缩放后的图片,ZF和VGG的最后一个卷积层步长都是16像素。即PASCAL原图(500*375)上的10像素。尽管这种大步长提供了很好的结果,更小的步长可能会更好。
对于锚点框,我们使用3种尺度,面积分别为$128^2,256^2,512^2$像素,3种长宽比1:1,1:2,2:1。这些超参数不是为特定数据集小心选取的,在下一张我们提供了消融测试,验证其效果。图3右显示了我们的方法所能兼容的大范围的尺度和长宽比。表1显示了使用ZFnet所学习到的每个锚点proposal平均大小。我们注意到我们的算法允许大于感受野的预测。这些预测是不可能的
超过了图片边界的锚点框需要小心处理。在训练中,我们忽略了所有跨边界的锚点框。对于1000 * 600的图片,约有20000个(60*40*9)锚点框。去除掉跨界锚点框,剩余6000个可训练的。如果这些不被忽略,会引入大量、难以纠正的目标错误,让训练难以收敛。在测试中,我们会对整个图片进行full convolutional RPN。产生的跨界proposal,我们会在图片边缘裁减掉。
有些RPN proposal之间高度重叠。为了减少冗余,我们对proposal region基于其分类得分采用非极大值抑制(NMS)。用于NMS的IoU阈值为0.7,留给我们每张图片约2000个proposal。NMS不会影响精度,但显著地减少了proposal数量。NMS后,我们选择top-N proposal用于检测。训练时,我们用2000个region训练FRCN,但测试时数量不一样。
4. Experiments
4.1 Experiments on PASCAL VOC
我们在VOC 2007 detection benchmark上充分评估了我们的方法。这一数据集有5k训练验证图片和5k测试图片,约20种类型。我们也提供了少量模型在VOC 2012 benchmark上的结果。对于ImageNet预训练的网络,我们选择有着5个卷积层和3个全连接层的快速版ZF-net,有着13个卷积层和3个全连接层的VGG-16模型。我们主要用mAP进行评估。
表2顶部显示了用不同的region proposal方法训练测试FRCN的结果。这些结果使用ZF-net。对于SS,我们使用fast模式生成2000个proposal,对于EdgeBoxes,我们用默认调优为0.7 IoU的设定。它们各自mAP为58.7%和58.6%。RPN使用最多300个proposal就取得了59.9%的mAP。由于共享卷积计算,RPN比SS和EB快很多,更少的proposal同样减少了全连接层的花销(表5)。
Ablation Experiments on RPN 为了调查RPN作为proposal方法的表现,我们进行了多个消融测试。首先,我们演示了在RPN和FRCN间共享卷积层的作用。为了这一目的,我们在4步算法中的第二步就停下。使用独立的网络稍微减少了mAP,58.7%(表2中 RPN+ZF unshared)。我们观察到这一点是因为第三步用检测器调优的特征用于调优RPN,提升了proposal质量。
接下来,我们消除RPN对训练FRCN的影响。我们使用2000 SS和ZFnet训练FRCN模型。我们固定这一检测器,评估测试时不同的proposal方法的mAP,这些测试中RPN没有与检测器共享特征。
在测试时用300RPN替换SS得到56.8%的mAP。这一损失来自训练测试所用的proposal的不一致。这一结果将作为后续比较的基线。
在测试时使用RPN top-100 proposal仍得到了55.1%的mAP,说明高排名的proposal很准确。在另一个极端,使用top-rank 6000 RPN proposal(无NMS)的mAP为55.2%,说明NMS没有伤害mAP,也许减少了很多错误警报。
接下来,我们分别调查RPN的cls和reg输出的作用。在测试时分别关闭其中一个。当测试时移除cls层时(因此没有NMS/ranking),我们随机从未评分的region中抽样N个proposal。当N=1000时,mAP几乎未变(55.8%),但当N=100时,mAP急剧下降到44.6%。这说明cls得分对于找到最精确的proposal的作用。
另一方面,当测试时移除reg层(proposal变成锚点框),mAP掉到52.1%。这说明高质量的proposal来自限位框回归。尽管锚点框有多重尺度和长宽比,但仍不足以精确检测。
我们还评估了更强力的网络应用于RPN的proposal质量。我们使用VGG-16训练RPN,仍然使用前面的SS+ZF检测器。mAP从56.8%(RPN+ZF)提升到59.2%(RPN+VGG)。这是一个充满希望的结果,因为它说明RPN+VGG比RPN+ZFproposal质量高。由于RPN+ZF与SS的proposal质量类似(当训练测试都一致使用时,均为58.7%),我们可以期望RPN+VGG高过SS。后续实验会证明这一猜想。
Performance of VGG-16. 表3显示了VGG用于proposal和检测时的结果。在不共享特征时,RPN+VGG结果为68.5%,略高于SS基线。不像SS那样是预先定义好的,RPN是实际训练的,并从更好的网络中受益。对于共享特征版本,mAP为69.9%——接近strong ss基线,proposal消耗还极低。我们在VOC 07和12训练验证集上联合训练了RPN和检测网络。mAP为73.2%。图5显示了在VOC 07测试集上的一些结果。在VOC 12测试集上(表4),我们的联合训练的模型mAP为70.4%。表6和表7显示了详细数字。
在表5中我们总结了整个物体检测系统的运行时间。SS视内容而定,通常需要1-2秒(平均1.5秒),使用VGG-16的FRCN需要320ms来处理2000个SS proposal(如果在全连接层使用SVD,则是223ms)。我们的用VGG-16的系统proposal+detection总共需要198ms。由于共享了卷积特征,RPN仅需10ms计算其额外的层。由于proposal数量更少(300个每张),region-wise计算耗时也更少。我们的使用ZFnet的系统帧率达到了17fps。
Sensitivities to Hyper-parameters. 在表8中,我们调查了锚点的设定。默认我们使用了三种尺度和长宽比(表8中的69.9% mAP)。如果每个位置只使用一个锚点,mAP会降低3-4%。如果使用3种尺度(1种长宽比)或3种长宽比(1种尺度),mAP会稍高。说明用不同大小的锚点框是有用的。使用3种尺度1种长宽比就有足够好的mAP,69.8%,说明尺度和长宽比不是检测精度的disentangled维度。但我们仍会采取这两种维度来保持系统的灵活性。
在表9中我们比较了等式1中不同的$\lambda$的作用。我们默认采用$\lambda = 10$让等式1中的两项权重相等。表9显示,当$\lambda$在两个量级间变动时(1~100),mAP会变动1%。这说明结果对很大范围的$\lambda$不敏感。
Analysis of Recall-to-IoU. 接下来我们计算不同IoU阈值的proposal召回率。需要注意Recall-to-IoU评估仅仅松相关$^{[19],[20],[21]}$于最终检测准确度。用来诊断proposal方法更合适,而不是评估它。
在图4中,我们显示了使用300,1000,2000个proposal的结果。我们与SS和EB进行了比较,用基于方法给与的confidence选出的top-N proposal。图表显示当数量从2000降到300时,RPN方法同样优雅。这解释了为何使用300个proposal时mAP的优秀表现。如我们之前分析的,这一性质主要归功于RPN的cls项。SS和EB的recall降得快得多。
One-Stage Detection vs. Two-Stage Proposal + Detection. OverFeat论文$^{[9]}$提出了回归和分类器在feature map上滑动窗口的检测方法。OverFeat是一个单步,类相关的检测流程,我们的是两步,瀑布式,由类无关的proposal和类相关的检测器组成。OverFeat中,region的特征来自尺度金字塔的一个特定的长宽比的滑动窗口。这些特征同时用于决定位置和物体类别。在RPN中,特征来自方形(3*3)滑动窗口,预测proposal与锚点框不同尺度和长宽比有关。尽管两种方法都使用滑动窗口,region proposal任务仅是Faster R-CNN的第一步——下游的FRCN检测器致力于改良proposal。第二步中,region-wise特征自适应地从proposal框中池化出,更如实地覆盖了region。我们相信这些特征会导致更精确的检测。
为了比较两个系统,我们通过单步FRCN评估了OverFeat系统。系统中的proposal是三个尺度(128,256,512)和三个长宽比(1:1,1:2,2:1)的密集滑动窗口。FRCN训练用来从这些窗口预测类相关得分,回归限位框位置。由于OverFeat系统采用图片金字塔,我们也用从5个尺度提取的卷积特征进行评估。
表10比较了两步系统和两个单步系统的变种。使用ZF模型的单步系统mAP为53.9%。比双步系统低了4.8%。实验证明瀑布式region proposal和物体检测的有效性。类似的观察结果在[2],[39]都有报道,他们用滑动窗口替换SS,导致mAP下降了6%。
4.2 Experiments on MS COCO
我们提供了更多在MS COCO物体检测数据集上的结果。该数据集共有80种物体。我们的实验使用了80k张测试集,40k张验证集和20k张test-dev集。我们测试了$IoU \in [ 0.5:0.05:0.95 ]$下的mAP均值(COCO标准评估方法,简记为mAP@[.5,.95])和mAP@0.5(VOC标准评估方法)
我们为此数据集建造的系统有一些小修改。我们在8-GPU实现上训练了我们的模型,RPN的有效mini-batch大小变为8(每个GPU1个),FRCN为16(每个GPU2个)。RPN步骤和FRCN步骤分别用0.003学习率训练了240k迭代,接着用0.0003训练了80k。我们修改了学习率(开始为0.001,改为0.003),因为mini-batch大小改变了。对于锚点框,我们用了3种长宽比和4种尺度(增加了$64^2$),主要是为了掌控数据集中的小物体。另外,在FRCN步骤中,负样本定义为与gt框的最大IoU在[0,0.5)之间的,而不是[0.1,0.5)。我们注意到在SPPnet系统中,在网络调优阶段使用[0.1,0.5)作为负样本,但在SVM阶段仍然使用[0,0.5)作为负样本,并进行hard negative mining。但FRCN丢弃了SVM步骤,因此[0,0.1)间的样本未使用。引入这部分样本在FRCN和Faster R-CNN上都提升了在COCO上的mAP@0.5(但在PASCAL VOC上是副作用)。
剩余实现细节与VOC上的一样。特别是我也仍用了300proposal和单尺度(s = 600)的测试设定。测试时间同样是200ms每张图片。
在表11中我们首次报告了我们用本论文的FRCN实现的结果。这个基线在test-dev集上的mAP@0.5为39.3%,比[2]中报告的高。我们推测这一差距原因为负样本的定义不同和mini-batch大小的改变。我们也注意到mAP@[.5,.95]旗鼓相当。
接下来我们评估了我们的Faster R-CNN系统。使用COCO训练集进行训练,Faster R-CNN在test-dev上有着42.1%的mAP@0.5和21.5%的mAP@[.5,.95]。比起FRCN都高了2.几。这说明RPN在更高的IoU阈值下提升定位准确度出色。使用COCO训练验证集训练,结果为42.7%mAP@0.5和21.9%mAP@[.5,.95]。图6显示了一些COCO test-dev上的结果。
Faster R-CNN in ILSVRC & COCO 2015 competitions 我们已论证了Faster R-CNN从更好的特征中收益——由于RPN完全通过神经网络学习propose region。当将深度大量提升至超过100层时$^{[18]}$,这一现象依然成立。仅仅是用ResNet-101替换VGG-16,就将mAP从41.5%/21.2%提升到48.4%/27.2%。使用了其它方式提升(other improvements orthogonal)Faster R-CNN后,He他们的在COCO test-dev集上单模型结果为55.7%/34.9%,组合模型达到59.0%/37.4%,赢得了COCO 2015物体检测竞赛第一名。同样的系统也取得了ILSVRC 2015物体检测竞赛的第一名,领先第二名8.5%。RPN也赢得了ILSVRC 2015定位和COCO 2015分割竞赛第一名。
4.3 From MS COCO to PASCAL VOC
大量数据是提升深度神经网络的关键。接下来,我们调查了怎样用MS COCO数据集提升VOC上的检测表现。
我们直接评估了COCO检测模型在VOC数据集上的表现,作为基线,没有使用任何VOC数据调优。这一评估是可行的因为COCO数据集的种类是VOC的种类的超集。COCO独有的种类在本实验中忽略,softmax层表现为20个类加背景。这一设定下在VOC 07测试集上的mAP为76.1%(表12)。尽管没有利用VOC数据,这一结果都好过在VOC 07+12的结果(73.2%)很大一截。
接下来我们在VOC数据集上调优COCO模型。在这个实验中,我们用COCO模型替换了原有的用于初始化权重的ImageNet预训练模型,并按章节3.2那样调优Faster R-CNN系统。在07 测试集上结果为78.8%。来自COCO的数据提升了5.6%的mAP。表6显示用COCO+VOC训练的模型在VOC 12测试集上有着所有类上最高的AP。
5. Conclusion
我们提出了用于高效准确地生成region proposal的RPN。通过与后续检测网络共享卷积特征,region proposal步骤近乎不耗时。我们的方法允许一个整体的、基于深度学习的物体检测系统以近实时的帧率运行。训练出的RPN同样提升了region proposal质量,以及全部的物体检测准确度。
Reference
[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 convolutionalnetworks
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: 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.