Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks手动翻译

RPN:
区域建议网络(Region Proposal Network)
1)优点:
1.和检测网络共享全图的卷积特征,使得区域建议几乎不花时间
2.全卷积网络,在每个位置同时预测目标边界和objectness得分
3.端到端训练
4.平移不变性
5.有效地预测具有广泛的比例尺和高宽比的区域规划
2)架构
1.在最后一个共享的卷积层输出的卷积特征映射上滑动小网络,每个滑动窗口映射到一个低维向量上
2.每个anchor以当前滑动窗口中心为中心,并对应一种尺度和长宽比,
3.在每一个滑动窗口的位置,我们同时预测k个区域建议,reg层有4k个输出,cls层有2k个得分,即对每个建议框是目标/非目标的估计概率
在这里插入图片描述
2)损失函数
在这里插入图片描述
Lcls是两个类别(目标vs.非目标)的对数损失
在这里插入图片描述
对于回归损失Lreg,我们用:
在这里插入图片描述
来计算,其中R是[5]中定义的鲁棒的损失函数(smooth L1)
在这里插入图片描述
Faster R-CNN:
1)特点
1.将RPN和Fast R-CNN合并到一个单一的网络区域建议网络
2.近实时检测的速率,建议框计算几乎不会给检测网络的计算带来消耗
2)架构:
在这里插入图片描述
3)训练
1.正样本:IOU大于0.7或最大
负样本:IOU小于0.3
2.保持建议框固定,微调区域建议和微调目标检测之间交替进行

  • 第一步,我们依上述3.1.3训练RPN,该网络用ImageNet预训练的模型初始化,并端到端微调用于区域建议任务。
  • 第二步,我们利用第一步的RPN生成的建议框,由Fast R-CNN训练一个单独的检测网络,这个检测网络同样是由ImageNet预训练的模型初始化的,这时候两个网络还没有共享卷积层。
  • 第三步,我们用上述检测网络初始化RPN,然后训练,但我们固定共享的卷积层,并且只微调RPN独有的层,现在两个网络共享卷积层了。
  • 第四步,保持共享的卷积层固定,微调Fast R-CNN的独有层(fc)。
    这样,两个网络共享相同的卷积层,构成一个统一的网络。
    4)实验:
    1.在PASCAL VOC 2007和PASCAL VOC 2012上实现了最高的目标检测准确率(2007是73.2%mAP,2012是70.4%mAP)
    2.PASCAL VOC2007检测数据集,包括20个目标类别,大约5k个trainval图像和5k个test图像。

摘要

目前最先进的目标检测网络需要先用区域建议算法推测目标位置,像SPPnet[7]和Fast R-CNN[5]这些网络已经减少了检测网络的运行时间,这时计算区域建议就成了瓶颈问题。本文中,我们介绍一种区域建议网络(Region Proposal Network, RPN),它和检测网络共享全图的卷积特征,使得区域建议几乎不花时间。RPN是一个全卷积网络,在每个位置同时预测目标边界和objectness得分。RPN是端到端训练的,生成高质量区域建议框,用于Fast R-CNN来检测。我们进一步合并RPN和快速R-CNN到一个单一的网络中,通过共享它们的卷积特征,使用最近流行的具有注意机制的神经网络术语,我们可以通过共享卷积特征来进一步将RPN和快速R-CNN合并到一个单一的网络中,RPN组件告诉合并的网络从哪里入手。对于非常深的VGG-16模型[19],我们的检测系统在GPU上的帧率为5fps(包含所有步骤),在PASCAL VOC 2007和PASCAL VOC 2012上实现了最高的目标检测准确率(2007是73.2%mAP,2012是70.4%mAP),每个图像用了300个建议框。代码已公开。

1. 简介

最近在目标检测中取得的进步都是由区域建议方法(例如[22])和基于区域的卷积神经网络(R-CNN)[6]取得的成功来推动的。基于区域的CNN在[6]中刚提出时在计算上消耗很大,幸好后来这个消耗通过建议框之间共享卷积[1,2]大大降低了。最近的Fast R-CNN[5]用非常深的网络[19]实现了近实时检测的速率,因为它忽略了生成区域建议框的时间。现在,建议框是最先进的检测系统中的计算瓶颈。
区域建议方法典型地依赖于消耗小的特征和经济的获取方案。选择性搜索(Selective Search, SS)[22]是最流行的方法之一,它基于设计好的低级特征贪心地融合超级像素。与高效检测网络[5]相比,SS要慢一个数量级,CPU应用中大约每幅图像2s。EdgeBoxes[24]在建议框质量和速度之间做出了目前最好的权衡,大约每个图像0.2s。但无论如何,区域建议步骤花费了和检测网络差不多的时间。
Fast R-CNN利用了GPU,而区域建议方法是在CPU上实现的,这个运行时间的比较是不公平的。一种明显提速生成建议框的方法是在GPU上实现它,这是一种工程上很有效的解决方案,但这个方法忽略了其后的检测网络,因而也错失了共享计算的重要机会。
本文中,我们改变了算法——用深度网络计算建议框——这是一种简洁有效的解决方案,建议框计算几乎不会给检测网络的计算带来消耗。为了这个目的,我们介绍新颖的区域建议网络(Region Proposal Networks, RPN),它与最先进的目标检测网络[7,5]共享卷积层。在测试时,通过共享卷积,计算建议框的边际成本是很小的(例如每个图像10ms)。
我们观察发现,基于区域的检测器例如Fast R-CNN使用的卷积(conv)特征映射,同样可以用于生成区域建议。我们紧接着这些卷积特征增加两个额外的卷积层,构造RPN:第一个层把每个卷积映射位置编码为一个短的(例如256-d)特征向量,第二个层在每个卷积映射位置,输出这个位置上多种尺度和长宽比的k个区域建议的objectness得分和回归边界(k=9是典型值)。 我们的RPN是一种全卷积网络(fully-convolutional network, FRN)[14],可以针对生成检测建议框的任务端到端地训练。
RPNs的设计是为了有效地预测具有广泛的比例尺和高宽比的区域规划。和以前使用图像金字塔或过滤器金字塔的方法相比,我们引入了“锚”盒的概念,可作为多种比例和高宽比的参考。我们的方法可以看做回归引用的金字塔,避免了枚举图像或多尺度或高宽比的过滤器。在使用单尺度图像进行训练和测试时,这种模型表现很好,且提高了运行速度。
为了统一RPN和Fast R-CNN[5]目标检测网络,我们提出一种简单的训练方案,即保持建议框固定,微调区域建议和微调目标检测之间交替进行。这个方案收敛很快,最后形成可让两个任务共享卷积特征的标准网络。
我们在PASCAL VOC检测标准集[4]上评估我们的方法, fast R-CNN结合RPN的检测准确率超过了作为强大基准的fast R-CNN结合SS的方法。同时,我们的方法没有了SS测试时的计算负担,对于生成建议框的有效运行时间只有10毫秒。利用[19]中网络非常深的深度模型,我们的检测方法在GPU上依然有5fps的帧率(包括所有步骤),因此就速度和准确率(PASCAL VOC 2007上是73.2%mAP,PASCAL VOC 2012上是70.4%)而言,这是一个实用的目标检测系统。

2. 相关工作

对象建议:
有大量关于对象建议方法的文献。对象建议方法的全面调查和比较可以参考文献
[19],[20],[21]。广泛使用的对象建议方法包括:基于超像素分组的对象建议方法(如
选择性搜索[4],CPMC [22], MCG[23])和基于滑动窗口的搜索(例如,窗口中的对象化)
[24],EdgeBoxes [6])。对象建议方法作为独立于检测器的外部模块(如选择性搜索[4]对象检测器、RCNN[5]、Fast R-CNN[2])
用于对象检测的深度网络:
R-CNN方法通过端到端的方式训练CNN来对建议区域进行分类,就像一个分类器,且不能预测对象的边框(在使用边框回归精修前),它的准确率依赖区域建议模块的性能(如文献[20]所述)。有几篇论文提出了使用深度网络预测对象边界框的方法[25], [9], [26], [27]。在OverFeat方法[9]中,训练全连接(fc)层,对假定只有一个目标的定位任务预测边框坐标。fc层再转入卷积层来检测多个类确定的目标。MultiBox方法[3, 20]从最后一个fc层同时预测多个(如800)未知类的网络中生成区域建议,从而推广了OverFeat的“单盒”方式。R-CNN[6]就是用的这个。他们的建议框网络应用于单个图像或多个大图像的切割部分(如224x224)[20]。我们在后文中讲我们的方法时会更深层次地讨论OverFeat和MultiBox。 与我们的工作同时,深度掩码方法[28]被开发用于学习分割建议
卷积的共享计算[18, 7, 2, 5]高效、精确,已经在视觉识别方面吸引了越来越多的注意。OverFeat论文[18]从图像金字塔计算卷积特征,用于分类、定位、检测。在共享的卷积特征映射上自适应大小的pooling(SPP)[7]能有效用于基于区域的目标检测[7, 16]和语义分割[2]。Fast R-CNN[5]实现了在共享卷积特征上训练的端到端检测器,显示出令人惊叹的准确率和速度。

3. Faster R-CNN

本文中的对象检测系统叫做Faster R-CNN,它由两部分组成。第一个模块是一个深度全卷积神经网络,用于区域建议。第二个模块是Faster R-CNN检测器,使用区域建议。整个系统是一个单一的、统一的对象检测网络。RPN模块使用最近流行的具有“注意力”[31]机制的神经网络术语,告诉快速R-CNN模块去哪里查找。在3.1节中,区域建议的设计和特点。在3.2节中,我们开发了使两个模块共享特征的训练算法。

3.1 区域建议网络

区域建议网络(RPN)将一个图像(任意大小)作为输入,输出矩形目标建议框的集合,每个框有一个objectness得分。我们用全卷积网络[14]对这个过程构建模型,本章会详细描述。因为我们的最终目标是和Fast R-CNN目标检测网络[15]共享计算,所以假设这两个网络共享一系列卷积层。在实验中,我们详细研究Zeiler和Fergus的模型[23](ZF),它有5个可共享的卷积层,以及Simonyan和Zisserman的模型[19](VGG),它有13个可共享的卷积层。
为了生成区域建议框,我们在最后一个共享的卷积层输出的卷积特征映射上滑动小网络,这个网络全连接到输入卷积特征映射的nxn的空间窗口上。每个滑动窗口映射到一个低维向量上(对于ZF是256-d,对于VGG是512-d,每个特征映射的一个滑动窗口对应一个数值)。这个向量输出给两个同级的全连接的层——边框回归层(reg)和边框分类层(cls)。本文中n=3,注意图像的有效感受野很大(ZF是171像素,VGG是228像素)。图3(左)以这个小网络在某个位置的情况举了个例子。注意,由于小网络是滑动窗口的形式,所以全连接的层(nxn的)被所有空间位置共享(指所有位置用来计算内积的nxn的层参数相同)。这种结构实现为nxn的卷积层,后接两个同级的1x1的卷积层(分别对应reg和cls),ReLU[15]应用于nxn卷积层的输出。
在这里插入图片描述
图1:左:区域建议网络(RPN)。右:用RPN建议框在PASCAL VOC 2007测试集上的检测实例。我们的方法可以在很大范围的尺度和长宽比中检测目标。
在这里插入图片描述
图n 来自博客

3.1.1 Anchors

在每一个滑动窗口的位置,我们同时预测k个区域建议,所以reg层有4k个输出,即k个box的坐标编码。cls层输出2k个得分,即对每个建议框是目标/非目标的估计概率(为简单起见,是用二类的softmax层实现的cls层,还可以用logistic回归来生成k个得分)。k个建议框被相应的k个称为anchor的box参数化。每个anchor以当前滑动窗口中心为中心,并对应一种尺度和长宽比,我们使用3种尺度和3种长宽比,这样在每一个滑动位置就有k=9个anchor。对于大小为WxH(典型值约2,400)的卷积特征映射,总共有W×H×k个anchor。
Anchors的平移不变性
我们的方法有一个重要特性,就是平移不变性,对anchor和对计算anchor相应的建议框的函数而言都是这样。如果图像中的一个对象被平移,那么建议也会被平移,并且同样的函数应该能够预测在此时位置的建议。我们的方法能够保证平移不变性。作为比较,MultiBox方法[20]用k-means生成800个anchor,但不具有平移不变性。如果平移了图像中的目标,建议框也应该平移,也应该能用同样的函数预测建议框。此外,因为MultiBox的anchor不具有平移不变性。
平移不变性的性质也能减小模型的规模。当k=9时,MultiBox需要(4+1)x800-d的全连接输出层,而我们的方法只要(4+2)x9-d的输出层。我们的输出层的参数量:512×(4+2)×9=2.8×10^4(VGG-16),比MultiBox少两个数量级(GoogleLeNet):1536×(4+1)×800。如果考虑到特征投影层,我们的建议层的参数仍然比MultiBox少一个数量级。(MultiBox用GoogleLeNet[20]需要2700万vs.RPN用VGG-16需要240万)我们期望我们的方法在小的数据集上有较少的过度拟合风险,比如PASCAL VOC
多尺度anchor作为回归引用
在这里插入图片描述
我们的锚的设计提出了一种解决多尺度(和高宽比)的新方案。如图1所示,多尺度预测有两种流行的方法。第一种方法是基于图像/特征金字塔,例如,在DPM[8]和基于cnn[9],[1],[2]的方法中。图像在多个尺度上调整大小,计算每个尺度下的feature maps (HOG[8]或deep convolutional features[9],[1],[2])(图1(a))。这种方法通常很有用,但是很耗时。第二种方法是在特征图上使用多个尺度(和/或纵横比)的滑动窗口。例如,在DPM[8]中,不同长宽比的模型分别使用不同的滤波器大小(如5 7和7 5)进行训练。如果用这种方法来处理多个尺度,可以认为它是一个滤波器金字塔(图1(b))。第二种方式通常与第一种方式共同采用。
作为比较,我们基于锚的方法是建立在一个金字塔的锚,这是更经济有效的。我们的方法参照多尺度和纵横比的锚盒对边界盒进行分类和回归。它只依赖单一尺度的图像和特征图,并使用单一尺度的过滤器(特征图上的滑动窗口)。通过实验,我们展示了该方案对多尺度和多尺寸寻址的效果(表8)。
由于这种基于锚点的多尺度设计,我们可以简单地使用单尺度图像上计算的卷积特征,就像快速R-CNN检测器[2]所做的那样。多尺度锚点的设计是实现特征共享的关键环节,而不需要额外的寻址尺度成本。

3.1.2 损失函数

在这里插入图片描述
为了训练RPN,我们给每个anchor分配一个二进制的标签(是不是目标)。我们分配正标签给两类anchor:(i)与某个金标准有最大的IoU(Intersection-over-Union,交集并集之比)重叠的anchor(也许不到0.7),(ii)与任意金标准有大于0.7的IoU交叠的anchor。注意到一个金标准可能分配正标签给多个anchor。(通常情况下第二点就足够了,但为了防止在极少数情况下没有满足第二个条件的样本,我们仍采用第一个条件)我们分配负标签给与所有金标准的IoU比率都低于0.3的anchor。非正非负的anchor对训练目标没有任何作用。
有了这些定义,我们遵循Fast R-CNN[5]中的多任务损失,最小化目标函数。我们对一个图像的损失函数定义为
在这里插入图片描述
这里,i是一个mini-batch中anchor的索引,Pi是anchor i是目标的预测概率。如果anchor为正样本,标签Pi就是1,如果anchor为负样本,Pi就是0。ti是一个向量,表示预测的边框的4个参数化坐标,ti是与正anchor对应的金标准的坐标向量。
Lcls是两个类别(目标vs.非目标)的对数损失
在这里插入图片描述
对于回归损失Lreg,我们用:
在这里插入图片描述
来计算,其中R是[5]中定义的鲁棒的损失函数(smooth L1)
在这里插入图片描述
Pi
Lreg这一项意味着只有正anchor(Pi* =1)才有回归损失,其他情况没有(Pi*=0)。cls层和reg层的输出分别由{pi}和{ti}组成。
这两项分别由Ncls和Nreg归一化,以及一个平衡权重λ。在我们当前的实现中(在发布的代码中),Eqn.(1)中的cls通过小批处理大小(即, Ncls = 256)归一化,而reg项由锚点位置的数量(即Nreg~2400)归一化。这里我们默认设置λ= 10,这样cls和reg项差不多是等权重的。在试验中(Table 9),我们发现结果在大范围内对λ不敏感。我们也发现我们还注意到,不需要上述的标准化,可以简化。
对于边框回归,我们[6]采用以下4个参数化坐标:
在这里插入图片描述
x,y,w,h指的是边框中心的(x,y)坐标、宽、高。变量x,xa,x*分别指预测的边框、anchor的边框、金标准的边框(对y,w,h也是一样)的x坐标。可以理解为从anchor边框到附近的金标准边框的边框回归。
无论如何,我们用了一种与之前的基于特征映射的方法[7, 5]不同的方法实现了边框回归算法。在[1, 2]中,边框回归在从任意大小的区域中pooling到的特征池化而来的,回归权重是所有不同大小的区域共享的。在我们的方法中,用于回归的特征在特征图中具有相同的空间大小(nxn)。考虑到各种不同的大小,需要学习一系列k个边框回归量。每一个回归量对应于一个尺度和长宽比,k个回归量之间不共享权重。因此,即使特征具有固定的尺寸/尺度,预测各种尺寸的边框仍然是可能的。
优化

3.1.3 训练RPNs

RPN很自然地实现为全卷积网络[14],通过反向传播和随机梯度下降(SGD)[32]端到端训练。我们遵循[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网络做准备,以节约内存[2]。我们在PASCAL数据集上对于60k个mini-batch用的学习率为0.001,对于下一20k个mini-batch用的学习率是0.0001。动量是0.9,权重衰减为0.0005[11]。我们的实现使用了Caffe[38]。

3.2 区域建议与目标检测共享卷积特征

迄今为止,我们已经描述了如何为生成区域建议训练网络,而没有考虑基于区域的目标检测CNN如何利用这些建议框。对于检测网络,我们采用Fast R-CNN[5],现在描述一种算法,学习由RPN和Fast R-CNN之间共享的卷积层。
在这里插入图片描述
RPN和Fast R-CNN都是独立训练的,要用不同方式修改它们的卷积层。因此我们需要开发一种允许两个网络间共享卷积层的技术,而不是分别学习两个网络。我们讨论了三种共享卷积特征的训练方法。
(i)交替训练。先训练RPN,然后用建议框去训练Fast R-CNN。由Fast R-CNN微调过的网络来初始化RPN,由此往复。本文中用的就是这样的方法
(ii)近似联合训练。在训练中将RPN和Fast R-CNN相融合,如图2。在每个SGD迭代中,前向遍历生成区域建议,这些建议在训练快速R-CNN检测器时就像处理固定的、预先计算的建议一样。反向传播照常进行,其中共享层将来自RPN损耗和快速R-CNN损耗的反向传播信号合并在一起。这个解决方案很容易实现。但是这个解忽略了w.r.t的导数,建议边框坐标也是网络响应,所以是近似的。在我们的实验中,我们通过实验发现,该算法与交替训练相比,结果相近且在训练时间上缩短了约25-50%。这个解决程序包含在我们发布的Python代码中
(iii)非近似联合训练。上如所述,RPN预测的边框也是输入的函数。在Fast R-CNN中,感兴趣区域池化层接受卷积特征和预测框作为输入,因此理论上有效的反向传播求解器也应该包括梯度w.r.t。在上述近似联合训练中忽略了这些梯度。在非近似联合训练解决方案中,我们需要一个RoI池层,它是可微分的w.r.t.边框坐标。这是一个重要的问题,可以通过在[15]中开发的“RoI翘曲”层来给出解决方案,这超出了本文的范围
4步交替训练
在本文中,我们开发了一种实用的4步训练算法,通过交替优化来学习共享的特征。(注意到这不是仅仅定义一个包含了RPN和Fast R-CNN的单独网络,然后用反向传播联合优化它那么简单。原因是Fast R-CNN训练依赖于固定的目标建议框,而且并不清楚当同时改变建议机制时,学习Fast R-CNN会不会收敛)

  • 第一步,我们依上述3.1.3训练RPN,该网络用ImageNet预训练的模型初始化,并端到端微调用于区域建议任务。
  • 第二步,我们利用第一步的RPN生成的建议框,由Fast R-CNN训练一个单独的检测网络,这个检测网络同样是由ImageNet预训练的模型初始化的,这时候两个网络还没有共享卷积层。
  • 第三步,我们用上述检测网络初始化RPN,然后训练,但我们固定共享的卷积层,并且只微调RPN独有的层,现在两个网络共享卷积层了。
  • 第四步,保持共享的卷积层固定,微调Fast R-CNN的独有层(fc)。
    这样,两个网络共享相同的卷积层,构成一个统一的网络。

3.3 实现细节

我们训练、测试区域建议和目标检测网络都是在单一尺度的图像上[7, 5]。我们缩放图像,让它们的短边s=600像素[2]。多尺度特征提取可能提高准确率但是不利于速度与准确率之间的权衡[2]。我们也注意到ZF和VGG网络,对缩放后的图像在最后一个卷积层的总步长为16像素,这样相当于一个典型的PASCAL图像(~500x375)上大约10个像素(600/16=375/10)。即使是这样大的步长也取得了好结果,尽管若步长小点准确率可能得到进一步提高。
对于anchor,我们用3个简单的尺度,包围盒面积为128x128,256x256,512x512,和3个简单的长宽比,1:1,1:2,2:1。超参数不是为某一特定数据库仔细挑选的,我们在下一节做了消融实验。图3右边展示了我们的方法对于大范围的尺寸和纵横比的能力。表1
显示了使用ZF net获得的每个锚的平均建议大小。我们的算法考虑了使用大于基本感受野的anchor边框。这些预不是不可能——只要看得见目标的中间部分,还是能大致推断出这个目标的范围。通过这个设计,我们的解决方案不需要多尺度特征或者多尺度滑动窗口来预测大的区域,节省了相当多的运行时间。图1(右)显示了我们的算法处理多种尺度和长宽比的能力。下表是用ZF网络对每个anchor学到的平均建议框大小(s=600)。
在这里插入图片描述
跨图像边界的锚框需要小心处理。在训练过程中,我们忽略了所有的跨界锚点,因此它们不用于计算损失。对于一个典型的1000×600图像,总共大约有20000(60×40×9)个锚。忽略跨界锚点后,每幅图像约有6000个锚点可供训练。如果在训练中不忽略跨界离群点,它们就会在目标中引入大型的、难以纠正的误差项,训练就不会收敛。然而,在测试期间,我们仍然对整个图像应用全卷积RPN。这可能生成跨越边界的建议框,我们将其裁剪到图像边缘位置。
有些RPN建议框和其他建议框大量重叠,为了减少冗余,我们基于建议区域的cls得分,对其采用非极大值抑制(non-maximum suppression, NMS)。我们固定对NMS的IoU阈值为0.7,这样每个图像只剩2k个建议区域。正如下面展示的,NMS不会影响最终的检测准确率,但是大幅地减少了建议框的数量。NMS之后,我们用建议区域中的top-N个来检测。在下文中,我们用2k个RPN建议框训练Fast R-CNN,但是在测试时会对不同数量的建议框进行评价。

4.实验

4.1 PASCAL VOC2007

我们在PASCAL VOC2007检测基准[4]上综合评价我们的方法。此数据集包括20个目标类别,大约5k个trainval图像和5k个test图像。我们还对少数模型提供PASCAL VOC2012基准上的结果。对于ImageNet预训练网络,我们用“fast”版本的ZF网络[23],有5个卷积层和3个 fc层,公开的VGG-16模型[19],有13个卷积层和3个fc层。我们主要评估检测的平均精度(mean Average Precision,mAP),因为这是对目标检测的实际度量标准(而不是侧重于目标建议框的代理度量)。 

在这里插入图片描述
表1 PASCAL VOC2007年测试集的检测结果(在VOC2007 trainval训练)。该检测器是Fast R-CNN与ZF,但使用各种建议框方法进行训练和测试。

第一组:
表1(上)显示了使用各种区域建议的方法训练和测试时FastR-CNN的结果。这些结果使用的是ZF网络。对于选择性搜索(SS)[22],我们用“fast”模式生成了2k个左右的SS建议框。对于EdgeBoxes(EB)[24],我们把默认的EB设置调整为0.7IoU生成建议框。SS的mAP为58.7%,EB的mAP为58.6%。RPN与Fast R-CNN实现了有竞争力的结果,当使用300个建议框时的mAP就有59.9%(对于RPN,建议框数量,如300,是一个图像产生建议框的最大数量。RPN可能产生更少的建议框,这样建议框的平均数量也更少了)。使用RPN实现了一个比用SS或EB更快的检测系统,因为有共享的卷积计算;建议框较少,也减少了区域方面的fc消耗。
第二组:
我们展示了RPN和Fast R-CNN检测网络之间共享卷积层的影响。要做到这一点,我们在4步训练过程中的第二步后停下来。使用分离的网络时的结果稍微降低为58.7%(RPN+ ZF,非共享,表1)。我们观察到,这是因为在第三步中,当调整过的检测器特征用于微调RPN时,建议框质量得到提高。
第三组:
接下来,我们理清了RPN在训练Fast R-CNN检测网络上的影响。为此,我们用2k个SS建议框和ZF网络训练了一个Fast R-CNN模型。我们固定这个检测器,通过改变测试时使用的建议区域,评估检测的mAP。在这些消融实验中,RPN不与检测器共享特征。
在测试时用300个RPN建议框替换SS,mAP为56.8%。mAP的损失是训练/测试建议框之间的不一致所致。该结果作为以下比较的基准。
有些奇怪的是,在测试时使用排名最高的100个建议框时,RPN仍然会取得较好的结果(55.1%),表明这种高低排名的RPN建议框是准确的。另一种极端情况,使用排名最高的6k个RPN建议框(没有NMS)取得具有可比性的mAP(55.2%),这表明NMS不会降低检测mAP,反而可以减少误报。
第四组:
当在测试时(因此没有用NMS/排名)移除cls层,我们从没有计算得分的区域随机抽取N个建议框。N =1k 时mAP几乎没有变化(55.8%),但当N=100则大大降低为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基准59.2%略高。如上所示,这是因为由RPN+VGG产生的建议框比SS更准确。不像预先定义的SS,RPN是实时训练的,能从更好的网络获益。对特征共享的变型,结果是69.9%——比强大的SS基准更好,建议框几乎无损耗。我们跟随[5],在PASCAL VOC2007 trainval和2012 trainval的并集上进一步训练RPN,mAP是73.2%。跟[5]一样在VOC 2007 trainval+test和VOC2012 trainval的并集上训练时,我们的方法在PASCAL VOC 2012测试集上(表3)有70.4%的mAP。
在这里插入图片描述
表3:在PASCAL VOC 2007测试集上的检测结果,检测器是Fast R-CNN和VGG16。训练数据:“07”:VOC2007 trainval,“07+12”:VOC 2007 trainval和VOC 2012 trainval的并集。对RPN,用于Fast R-CNN训练时的建议框是2k。这在[5]中有报告;利用本文所提供的仓库(repository),这个数字更高(68.0±0.3在6次运行中)。

在这里插入图片描述
表2: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。
在这里插入图片描述
表6:Fast R-CNN检测器和VGG16在PASCAL VOC 2007测试集的结果。对于RPN,Fast R-CNN训练时的建议框是2k个。RPN表示非共享特征的版本。*

表4展示了在PASCAL 2012测试集上进行测试的结果(跟上面的实验的区别只是使用了不同的测试集,上表使用的是VOC 2007,这里使用的VOC 2012):
在这里插入图片描述
在这里插入图片描述
表7:Fast R-CNN检测器和VGG16在PASCAL VOC 2012测试集的结果。对于RPN,Fast R-CNN训练时的建议框是2k个。

表5中我们总结整个目标检测系统的运行时间。SS需要1~2秒,取决于图像内容(平均1.51s),采用VGG-16的Fast R-CNN在2k个SS建议框上需要320ms(若是用了SVD在fc层的话只用223ms[5])。我们采用VGG-16的系统生成建议框和检测一共只需要198ms。卷积层共享时,RPN只用10ms来计算附加的几层。由于建议框较少(300),我们的区域计算花费也很低。我们的系统采用ZF网络时的帧率为17fps。
在这里插入图片描述
表5: K40 GPU上的用时(ms),除了SS建议框是在CPU中进行评价的。“区域方面”包括NMS,pooling,fc和softmax。请参阅我们发布的代码运行时间的分析。

表8验证anchor设置的影响。
在这里插入图片描述
表8.使用不同anchor设置时Faster R-CNN在PASCAL VOC2007测试集上的检测结果,网络为VGG-16,训练集为VOC 2007训练集。使用3中尺度和3中长宽比(69.9%)的默认设置(表中最后一行的设置)与表3中的设置是一样的。

表9验证式(1)中不同λ值的影响。
在这里插入图片描述
表9.式(1)中使用不同λ值时,Faster R-CNN在PASCAL VOC 2007上的测试结果。网络为VGG-16,训练集为VOC 2007 训练集。默认设置λ=10(同表3)

IoU召回率的分析
接下来,我们计算建议框与金标准框在不同的IoU比例时的召回率。值得注意的是,该IoU召回率度量标准与最终的检测准确率只是松散[9, 8, 1]相关的。更适合用这个度量标准来诊断建议框方法,而不是对其进行评估。
在图4中,我们展示使用300,1k,和2k个建议框的结果。我们将SS和EB作比较,并且这N个建议框是基于用这些方法生成的按置信度排名的前N个。该图显示,当建议框数量由2k下降到300时,RPN方法的表现很好。这就解释了使用少到300个建议框时,为什么RPN有良好的最终检测mAP。正如我们前面分析的,这个属性主要是归因于RPN的cls项。当建议框变少时,SS和EB的召回率下降的速度快于RPN。
在这里插入图片描述
图4:PASCAL VOC 2007测试集上的召回率 vs. IoU重叠率

单级的检测vs.两级的建议框+检测
OverFeat论文[18]提出在卷积特征映射的滑动窗口上使用回归和分类的检测方法。OverFeat是一个单级的,类特定的检测流程,我们的是一个两级的,由类无关的建议框方法和类特定的检测组成的级联方法。在OverFeat中,区域方面的特征来自一个滑动窗口,对应一个尺度金字塔的一个长宽比。这些特征被用于同时确定物体的位置和类别。在RPN中,特征都来自相对于anchor的方形(3*3)滑动窗口和预测建议框,是不同的尺度和长宽比。虽然这两种方法都使用滑动窗口,区域建议任务只是RPN + Fast R-CNN的第一级——检测器致力于改进建议框。在我们级联方法的第二级,区域一级的特征自适应地从建议框进行pooling[7, 5],更如实地覆盖区域的特征。我们相信这些特征带来更准确的检测。
为了比较单级和两级系统,我们通过单级的Fast R-CNN模拟OverFeat系统(因而也规避实现细节的其他差异)。在这个系统中,“建议框”是稠密滑动的,有3个尺度(128,256,512)和3个长宽比(1:1,1:2,2:1)。Fast R-CNN被训练来从这些滑动窗口预测特定类的得分和回归盒的位置。由于OverFeat系统采用多尺度的特征,我们也用由5个尺度中提取的卷积特征来评价。我们使用[7,5]中一样的5个尺度。
表5比较了两级系统和两个单级系统的变体。使用ZF模型,单级系统具有53.9%的mAP。这比两级系统(58.7%)低4.8%。这个实验证明级联区域建议方法和目标检测的有效性。类似的观察报告在[5,13]中,在两篇论文中用滑动窗口取代SS区域建议都导致了约6%的下降。我们还注意到,单级系统比较慢,因为它有相当多的建议框要处理。
在这里插入图片描述
表10:单级检测vs.两级建议+检测。检测结果都是在PASCAL VOC2007测试集使用ZF模型和Fast R-CNN。RPN使用非共享的特征。

5. 总结

我们对高效和准确的区域建议的生成提出了区域建议建议网络(RPN)。通过与其后的检测网络共享卷积特征,区域建议的步骤几乎是无损耗的。我们的方法使一个一致的,基于深度学习的目标检测系统以现实(5-17 fps)的速度运行。学到的RPN也改善了区域建议的质量,进而改善整个目标检测的准确性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值