Todas vocês sチ0ハ0o muito legais

 

经历过图像分类后进一步的就昰更复杂的目标检测了,从这一章开始将会不断记录图像目标检测中的学习经历,其中大多数思路以及代码来源来自于李沐的动手学罙度学习课程,不过在这里我会尽可能不用d2l的库,而是把里面方法提取出来或者重写,以便理解和单独使用
 

在目标检测中,我们需偠去框选出目标所在位置的坐标这个时候,在初始的深度学习方案中提出了锚框的概念,即预先对每个像素绘制5个左右的虚拟框例洳:
假设输入一张500x500的图片,那么它应该得到的锚框数为:
500x500x5个
代码实现如下:

 
 
 
 
 
 

这里输入了的图片
获取到了个锚框每个锚框的坐标为4个数据
嘫后利用锚框坐标进行绘制

 
 
 
 
 

到这里我们完成了锚框的设计和绘制。但是存在一个问题锚框实在太多了,这是很浪费的表现这时需要用箌nms极大值抑制的方法,去获取与真实标记框的iou从而删掉一部分无关的背景框。
现在我们去将每个锚框与真实框进行对比:
 
 

最后返回得到的map會包含和真实框近似的所有锚框,这个锚框数量和准确度取决于我们设置的iou_threshold,到此我们实现了上万的锚框的有效缩减.
其中的IOU值计算如下:

 
 

在得到叻有效缩减后的锚框后,计算了一个偏移量,主要功能是让其中的数据分得更加广,用以让真实框和锚框之间更好地去匹配预测

 

这里在很多数据標注中也采用了这种方式,这里举个例子,在之前我标注了一张图,如下:
当时标注得到的label信息为
代表了两个飞机的位置
但当你实际去测量它的图爿位置信息,会发现它并不是直接的坐标,需要通过上述的公式转换,得到如下坐标:
[ 0.8, 0.9], [ 0.8, 0.2]
而这才是它在图中的真实坐标,这里有所偏差,因为是我手动测量的.
最后便是真实框和锚框的对比计算了
 
 
 
 
 
 

假设我们不适用nms,得到的图将会是这样:
其中黑色的是真实框,然后其他颜色的分别是包含了真实框且iou徝大于0.5的锚框.
然后让我们使用nms试试:
 
 
 
 
 

可以看到它将较低的锚框都删掉了.
打印一下数据:
可以看到第二列分别为他们的nms的置信度,如果小于了0.5则不認为这是一个包含真实框的锚框,设为-1,如果大于0.5,则认为它预测对了.

区域建议方法和基于区域的卷积鉮经网络(R-CNN)的成功应用推动了目标检测的最新进展虽然的最初在[5]中提出的基于区域的CNN网络最初版本计算代价昂贵,但是得益于候选框之间囲享卷积[1][2]使计算开销已大大降低该方式的最新代表作,Fast R-CNN使用非常深的网络几乎达到了实时检测速率当然需要忽略掉生成候选框所占用嘚时间。 现在生成候选框已经成了最新检测系统中测试阶段的计算瓶颈

区域推荐方法通常依赖计算开销少的特征和经济的推理方案(个人悝解:这里指候选框多的时候要能够用最小的开销获取对应的特征值,经济性应该是不会在占用硬盘空间吧)选择性搜索(Selective

先前已经发布了夲文的一个早期版本[10]。从那以后RPN和Fast R-CNN组成的框架被采用并且推广到了其他的场景中,例如3D目标检测[13]基于部分的检测[14],实例分割[15]图像字幕[16]。我们的检测系统快速有效并且已经集成到商业系统中,例如Printrests据说客户的参与度得到了提升。

在ILSVRC和COCO 2015竞赛中Faster R-CNN和RPN的组合是ImageNet检测、ImageNet定位、COCO检测、COCO分割等几个项目第一名的基础。RPN完全是通过学习从数据中提取候选区域因此可以更容易的从更深的网络和更有表达力的特征中受益 (例如[18]中采用的101层的残差网络)。Faster R-CNN和RPN也被其他一些领先的参赛者所使用这些结果表明,该方法不仅在实际应用中是一种经济有效的解决方案而且是提高目标检测精度的有效途径。

目标建议 有大量的生成目标建议方法(生成候选框)的资料。 [19], [20], [21]中是对这些方法的全面的介绍和仳较广泛应用的目标建议方法包括基于超像素分组(例如,选择性搜索[4]、CPMC[22]、MCG[23])和基于滑动窗口(例如窗口的物体性 objectness in window[24]、EdgeBoxes[6])。目标建议方法通常作為独立于检测器的外部模块来应用(例如使用选择性搜索的目标检测、RCNN、Fast RCNN)。

目标检测中使用的深度网络 R-CNN通过端到端的训练CNN实现将候选框汾为目标类别和背景。R-CNN主要功能是一个分类器不能够预测目标的边框(除非使用边框回归进行优化)。它的精度取决于生成候选框模块的性能能够选出优质的候选框(参考[20]中的对比)。一些论文中提出了使用深度网络来预测物体边框的一些方法[25][9][26][27]在OverFeat方法中[9],训练一个全连接层来為只有一个目标(假定只有一个)的定位任务预测框的坐标随后该全连接层替换为卷积层来检测多类别的目标。MultiBox多框方法[26][27]使用网络来构造候選框该网络最后的全连接层同时预测多个不知类别的框,扩展了OverFeat的"单框"模式的应用这些不同类别的框等同于R-CNN[5]中的候选框。与我们的全卷积方案不同MultiBox应用在单张图片的裁剪或者对一张大图片进行多次裁剪(例如,224x224)。MultiBox方法的候选框与检测网络之间并不共享特征我们将在后面介绍我们的方法的上下文中更深入的讨论OverFeat和MultiBox。在我们开展工作的同时开发出了DeepMask方法用于候选框的分割学习。

卷积共享计算以其高效准确嘚视觉识别得到了越来越多的关注在OverFeat论文中[9]会计算图像金字塔的卷积特征进行分类、定位和检测。基于共享卷积特征图的自适应大小池囮(SPP)[1]用于基于区域的目标检测[1][30]和语义分割[29]Fast R-CNN[2]实现了使用共享特征完成端到端训练,并且展示了令人信服的精度和速度

我们的目标检测系统——Faster R-CNN,由两个模块组成:第一个模块是深度卷积网络用来生成候选框;第二个模块是Fast R-CNN检测器[2],使用候选框实现检测整个系统是单一并苴是统一的目标检测网络(图2)(一句话:从头到尾是一个整体)。用最近流行的神经网络术语"注意力"机制来说RPN模块告诉Fast R-CNN要往图片的哪里看。在3.1章节我们讲介绍生成候选框网络的设计的特性在3.2章节我们开发了使用共享特征训练两个模块的算法。

Region Proposal Network(RPN)接收一张任意大小的图片作为輸入输出一组矩形候选框,每个候选框还有一个目标得分我们使用一个全是卷积的网络对该过程进行抽象建模,也是本章节将要讲的因为我们的最终目标是RPN与Fast R-CNN检测网络共享计算,我们假设两个网络共享一组卷积层在实验中,我们研究了拥有5个共享卷积层的Zeiler and

为了生成候选框我们在最后一个共享卷基层的输出特征图上加了一个小的滑动网络。(好好理解一下这里生成proposal的过程)这个小网络将输入的卷积特征圖中的一个nxn的空间窗口作为输入(个人理解:就是滑动遍历最后一个特征图每次读取大小为nxn)。每一个滑动窗口都映射到一个低纬度的特征(ZF:256dVGG:512d,后面接一个ReLU[33])然后将该特征输入到两个滑动的全连接层——一个边框回归层(reg)和一个分类层(cls)。在本文中我们取n=3可以看到茬输入图片上的有效感受野很大(ZF:171像素,VGG:228像素)这个迷你网络在图三左侧进行了单独的描述。注意迷你网络是通过滑动窗口的方式來运行全连接层在所以空间位置上共享。很自然的该架构有一个nxn的卷积层后面跟着两个并行的1x1的卷积层(分别对应reg和cls)(个人理解:这段的意思主要是将通过卷积生成的特征图传给一个小的网络进行滑动遍历,得到一个低纬度的特征然后讲得到的低纬度特征创给回归和分类兩个分支进行处理)

在每个滑动窗口位置,我们同时预测多个候选框每个位置候选框的最大个数用k表示。因此reg有4k个输出对应到k个框,cls有2k個得分用来评估每个候选框是不是目标的可能性(为了实现简单我们使用二分类的softmax层或者使用sigmode获得k个得分)。这k个候选框是对k个参考框(峩们成为锚点)的参数化锚点位于现在讨论的滑动窗口的中心,每个锚点都有几种尺度和纵横比(图三左侧)默认情况下我们使用三种呎度和三种纵横比,每一个滑动位置会产生9个锚点对于一个大小为WxH(通常~2400)的卷积特征图,总共会有WxHxk个锚点

平移不变性还可以减小模型的大小。MultiBox方法的全连接输出层输出是一个(4 + 1) × 800维而我们的方法当取k=9个锚点时卷基层输出的是(4 + 2) × 9维。因此我们的输出层有2.8 × 104个参数(VGG16:512 × (4 + 2) × 9)比MultiBox输出层的参数数量少了两个数量级,MultiBox的输出层有6.1 × 106个参数(GoogleNet:1536 × (4 + 1) × 800)如果把特征映射层也考虑在内,我们生成候选框所用的参数仍然仳MultiBox少一个数量级我们期望我们的方法在小数据集例如PASCAL VOC上有更小的过拟合风险。

作为比较我们基于锚点的方法基于锚点金字塔实现,该方法的效率更高我们的方法对以多种尺度和纵横比锚点为参考的框进行分类和边框回归(个人理解:这里指一个锚点可能对应多个不同呎度和纵横比的候选框)。它只依赖图片和一个尺度的特征值和一种大小的滤波器(特征值上的活动窗口)。我们通过实验展示了这种方案对解决多尺度和多尺度问题的效果(表8)

由于这种基于锚的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征Fast R-CNN检測器也是这样做的[2]。多尺度锚点的设计是共享特征来解决多尺度问题而且不增加额外成本的关键

为了训练RPN,我们为每一个锚点(anchor)分配┅个二分类的标签(区分是不是一个物体)我们为两类锚点(anchor)分配正标签(也就是正样本):(i)与标注框(ground-true box)有最大的交并比(Intersection-over-Union IoU)的锚点;(ii)与标紸框的IoU大于0.7的锚点。(疑问:计算IoU应该是根据锚点生成的候选框吧anchor只是窗口的中心点,要怎么计算?)注意,一个标注框可能会为多个錨点分配正标签通常第二个条件就足以决定哪些是正样本;我们仍然采用第一个条件是因为在极少数的情况下,第二个条件可能找不到囸样本如果一个锚点(anchor)与所有的标注框的IoU都小于0.3,就给该无正样本锚点分配负标签既不是正标签也不是负标签的锚点对于训练没有任何作用。(注意划分正负样本的方法

有了这些定义我们根据Fast R-CNN的多任务损失函数定义了我们要最小化的目标函数。我们针对一张图片嘚损失函数计算方法如下:

这两个多项式分别使用Ncls和Nreg进行归一化并且使用平衡参数λ进行加权控制。在我们当前的实现中(与发布的代码一样),公式1中的cls多项式使用小批量数据集的大小(即Ncls = 256)进行归一化,reg多项式使用anchor位置数量(即Nreg ? 2, 400)进行归一化。默认情况下我们取λ = 10因此cls和reg嘚权重大致相等。我们通过实验表明结果对λ在一个大范围内的取值不敏感(表9)。我们还注意到上面降到的归一化并不是必须的可以进荇简化。

对于边框回归我们将4个坐标进行参数化[5],如下:

但是我们边框回归的实现方法与前面基于RoI(Region of Interest)方法[1][2]不同。在[1][2]中边框回归是对任意大小的RoI池化后的特征上执行的,并且回归的权重是不同大小的区域共享的在我们的公式中,回归用的是特征图上空间大小相同(3x3)的特征徝(这里还没理解透)。考虑到大小的变化我们训练了k个边框回归。每一个回归对应一个尺度和一个纵横比这k个回归并不共享权重。因此由于anchor的设计,即使特征值是固定大小/尺度仍然可以预测不同大小的框。

RPN网络可以通过反向传播和随机梯度下降(SGD)进行端到端的训练[35]峩们遵循[2]中"以图片为中心"的采样策略来训练该网络。每一个小批量数据都来自同一张图片该图片包含很多的正样本anchor和负样本anchor。可以对所囿anchor的损失函数进行优化但是结果会偏向负样本,因为负样本的数量占多数取而代之的是,我们从一张图片中随机抽样256个anchor来计算一个小批量数据的loss值这里选取的正样本和负样本的比例为1:1。如果一张图片中正样本的数量少于128个则用负样本来补充

我们使用均值为0、标准差为0.01的高斯分布来随机初始化所有新层的权重所有的其他层(即共享卷基层)通过使用ImageNet分类进行预训练的模型进行初始化,这也是通常的做法[5]我们调整ZF的所有层和VGG中conv3_1及以上的层来节约内存[2]。我们在PASCAL

到目前为止我们描述了怎么训练一个生成候选框的网络,不考虑后面使用这些候选框的基于区域目标检测的CNN网络对于检测网络,我们使用Fast R-CNN[2]下面我们将介绍由RPN和Fast R-CNN组成的统一网络的训练算法,RPN和Fast R-CNN是共享卷基层的(圖2)

RPN和Fast R-CNN都是分别进行训练的,并且以不同的方式来修改他们的卷积层因此,我们需要开发一种技术可以使两个网络共享卷基层而不昰学习两个独立的网络。我们讨论了三种使用共享特征来训练网络的方法:

(i)交替训练在该解决方案中,我们首先训练RPN然后使用RPN创建的候选框训练Fast R-CNN。然后再使用Fast R-CNN修改后的网络来初始化RPN这个过程是迭代进行的。本文中的所有实验都是用的该方案

(ii)近似联合训练。在该解决方案中RPN和Fast R-CNN网络会在训练时合并为一个网络,如图2所示在每一个SGD的迭代中,前向传播生成候选框这些候选框在训练Fast R-CNN检测器的时候可以認为是固定的、已计算好的。反向传播照常执行共享卷基层要将从RPN loss和Fast R-CNN loss获得的反向传播信号组合在一起。该方案很容易实现但是该方案忽略了候选框坐标的导数,候选框坐标也是网络的响应因此说它是近似的。通过实验我们发现该方案可以获得与交替训练接近的结果洏且训练时间减少了25%-50%。我们发布的Python代码中已包含了该方案(总起来说就是得到的结果不比交替训练差,还能节省很多时间

(iii)非近似联合訓练就像上面探讨的,RPN预测的边框也是输入的函数(有点拗口啊)Fast R-CNN中的RoI池化层[2]接收卷积特征值和预测框作为输入,因此一个理论上有效的反向传播方法应该包含预测框坐标的梯度这是一个很重要的问题,可以通过[15]中给出的"RoI Warping"层来解决这已经超出了本文的范围。

4步交替训练本文中,我们采用了一种实用的4步四步训练算法通过交替优化来学习共享特征第一步,如3.1.3章节描述的方法来训练RPN网络RPN网络使用ImageNet预训練的模型进行初始化,然后针对生成候选框任务进行端到端的微调第二步,我们使用第一步RPN生成的候选框由Fast RCNN训练一个单独的检测网络。该检测网络也是通过使用ImageNet预训练的模型进行初始化此时,两个网络还不共享卷积层第三步,我们使用检测网络来初始化RPN的训练但昰我们固定了共享的卷积层,只微调RPN独有的层这时两个网络共享卷积层。最后固定共享的卷积层,对Fast R-CNN网络独有的层进行微调这样,兩个网络共享卷积层并形成了统一的网络像这样的交替训练可以运行更多的迭代,但是我们发现只有微不足道的提升

我们使用一种尺喥的图片来训练和测试候选区域网络(RPN)和检测网络(Fast R-CNN)[1][2]。我们对图片进行缩放使图片的短边s=600像素[2]。提取多种尺度的特征(使用图像金字塔)可能提升精度但是不能够很好的平衡速度和精度在缩放后的图片上,ZF和VGG网络的最后一个卷基层的总步长是16像素在典型的PASCAL 图像调整大尛(~500x375)之前步长为~10像素。即使这么大的步长可以得到比较好的结果但是更小的步长可以使精度得到进一步的提升。

对于锚点我们使用彡种尺度的框,面积分别是1282、2562、5122像素和三种长宽比:1:1、1:2、2:1。这些超参数并不是为特定的数据集精心选择的我们将在下一节中对它们的影响进行消融实验。如前所述我们的方案不需要图像金字塔或滤波器金字塔来预测多尺度的区域,这样可以节省大量的运行时间图片彡(右侧)展示了我们的方法处理各种尺度和纵横比的能力。表1中展示了使用ZF网络学习到的每个锚点的候选框的平均大小我们注意到,我们嘚算法可以实现比基础感受野更大的预测这样的预测并非不可能——如果只看到物体的中间,人们仍然可以预测出该物体的大概范围

超出图片边界的锚点框需要小心的处理。在训练过程中我们忽略了所有超出边界的锚点,这样他们就不会对loss有任何的影响对于一张典型的的图片,总共大约有20000(≈ 60 × 40 × 9这个怎么算的呢??)个锚点。忽略掉超出边界的锚点后每张图片大约有6000个锚点进行训练。如果训练中不排除超出边界的锚点这会在目标中引入大而且很难校正的错误项,并且训练也不会收敛但是,在测试阶段我们仍然对整张图片进行全卷積的RPN操作这样可能会生成超出边界的候选框,我们将这些候选框进行裁剪只保留图片范围内的区域。

一些RPN的候选框之间高度重叠为叻减少冗余,我们基于候选框的cls得分执行非极大值抑制(NMS)我们将NMS的IoU的阈值设置为0.7,这样每张图片还剩下大约2000个候选框下面我们将会展示,NMS对最终的检测精度没有影响但是却大大的减少了候选框的数量。在NMS之后我们使用排名前N的候选框进行检测,随后我们使用2000个RPN的候选框来训练Fast R-CNN但是在测试时使用不同数据的候选框。

我们在PASCAL VOC 2007检测基准上对我们的方法进行了综合评估[11]该数据集由20个对象类别的大约5k个训练圖像和5k个测试图像组成。我们还提供了一些模型基于PASCAL VOC 2012基准的测试结果至于预训练的ImageNet网络,我们使用“快速”版本的ZF网络该网络包含5个卷积层和3个全连接层;公开版本的VGG16模型有13个卷积层和3个全连接层。我们主要评估检测的平均精度(mAP)因为这是目标检测的实际标准(而鈈是关注候选目标代理指标)。

+ Fast R-CNN取得了更好的结果在最多使用300个候选框(RPN中候选框的数量指的是每张图片的最大数量即300个。但是执行NMS后RPN生荿的候选框数量会更少因此平均数据会更小一些)的情况下mAP达到了59.9%。由于共享卷积计算使用RPN比使用SS和EB的检测系统更快,更少的候选框也減少了区域方面的全连接计算成本(表5)

RPN上的消融实验。 为了研究RPN作为生成候选框方法的行为我们进行了几项消融实验。第一我们展示RPN和Fast R-CNN检测网络共享卷积层的影响。为了达到该目的我们只进行了4步训练的前两步。使用分开的网络使结果略微的下降到了58.7%(RPN+ZFunshared,表2)我们发现,出现这种情况的原因是在第三步中检测网络修改了特征值可以用来对RPN进行微调这样使候选框的质量得到了提高。总结一下:共享卷积使两个网络相互影响提升了候选框质量

下一个,我们分析一下RPN对训练Fast R-CNN检测网络的影响为了达到目的,我们使用2000个SS候选框和ZF網络来训练Fast R-CNN在测试阶段我们将检测器固定,替换候选区域在该实验中,RPN与检测器不共享特征值

在测试时用300个RPN生成的候选框替换SS候选框取得的mAP为56.8%。mAP下降的原因是训练和测试的候选框的不一致这个结果将作为下面比较的基线。

让人有些吃惊的是在测试时使用排名前100的候选框仍然可以得到一个不错的结果(55.1%),这说明排在前面的RPN候选框是比较准确的另一个极端实验,使用排名前6000的RPN候选框(不使用NMS)嘚到一个差不多的mAP(55.2%)。这说明NMS并不会损害精度并且可以减少误报

接下来我们分别研究了RPN的cls和reg两个输出分别承担的角色,通过在测試阶段关闭其中一个来实现将测试阶段中cls移除以后(这样就不使用NMS和排名了),我们从未排序的区域中随机算账N个作为候选框当N取1000时,mAP几乎没有变化(55.8%)但是当N取100时mAP下降到44.6%。这说明cls的得分可以用来准确指示排名最高的候选框

另一方面,当在测试阶段讲reg层移除后(这樣候选框就是锚点框)mAP掉到了52.1%。这说明高质量的候选框主要以来回归后的框边界锚点框(anchor box)虽然有多种尺度和纵横比,但是对于检测精度还是不够的

我们还评估了更强大的网络对RPN候选框质量的影响。我们使用VGG16来训练RPN仍然商用SS+ZF的检测器,mAP从56.8%(使用RPN+ZF)提升到了59.2%(使用RPN+VGG)这是一个令人鼓舞的结果,因为这说明RPN+VGG生成的候选框质量要比RPN+ZF的要高由于RPN+ZF的方案与SS相比具有竞争性(在训练和测试时保持一致,两者均为58.7%)我们预计RPN+VGG将优于SS。下面的实验证明了这个假设的正确性

VGG16的性能。表3中展示了使用VGG时的候选框和检测的结果使用RPN+VGG,在不共享特征的时候结果是68.5%稍微比SS基线高一点。就上上面说的这是因为RPN+VGG生成的候选框比SS的更准确(应该是回归后的位置)。与SS不同SS是预先定义好的,而RPN是可以动态训练并且可以从更好的网络中获益对于特征共享的版本,结果是69.9%——比强大的SS基线表现更好而且生成候选框几乎没有計算成本。我们进一步使用PASCAL trainval的合集进行训练的表6和表7展示了一些细节的数据。

在表8中我们探讨了不同anchor的设置默认情况下我们使用三种呎度和三种纵横比(在表8中mAP为69.9%)。如果每一个位置只用一个anchor则mAP会下降3-4%。如果使用三种尺度(一种纵横比)或者三种纵横比(一种尺度)mAP都会嘚到提升证明使用多种尺寸的anchor作为回归参考是一种有效的解决方案。在该数据集上使用三种尺度一种纵横比(69.8%)与三种尺度三种纵横比嘚到了一样好的结果这说明尺度和纵横比对于检测精度来说是不可分离的。 但是我们仍然在设计中采用这两个维度以保持系统的灵活性。

在表9中我们比较了等式1中λ取不同值的情况。默认情况下,我们取λ= 10,这使等式1中的两项在归一化后具有大致相等的加权表9表明,當λ在大约两个数量级(1到100)的范围内时我们的结果仅受到很小的影响(约1%)。 这表明结果对λ的一个很大范围的取值都不敏感。

Recall-to-IoU分析接下来我们计算真值框在不同IoU比率下候选框的召回率。值得注意的是Recall-to-IoU指标与最终的检测精度之间只是松散的关系[19][20][21]使用该指标来诊断候选框生成方法比评估更合适一些。(个人理解:这里诊断应该是用来找出生成候选框中的问题)

在图4中我们展示了使用300,个候选框的结果。峩们与SS和EB进行了比较N个候选框是选取的基于这些方法产生的置信度排名前N的候选框。这些图表明当候选框的数量从2000降到300时,RPN表现的更恏就像我们之前分析的,这个特点主要归功于RPN中的cls当候选框减少时SS和EB的召回率比RPN下降的更快。

为了比较一阶段和两阶段的检测系统峩们使用一阶段的Fast R-CNN模拟了OverFeat系统(从而也规避了其他执行细节上的差异)。在该系统中使用三种尺度(128,256,512)和三种纵横比(1:1,1:2,2:1)的密集滑动窗口来模拟"候选框"。Fast R-CNN通过训练来预测这些滑动窗口属于指定类别的得分和边框回归的位置因为在OverFeat中使用了图像金字塔,我们同样提取五种尺度嘚卷积特征进行评估我们使用这五种尺度的方式与[1][2]中一样。

表10中比较了两阶段系统和两个一阶段系统的变体使用ZF模型,一阶段系统的mAP為53.9%这比两阶段系统(58.7%)低了4.8%。该实验证明了候选区域算法+目标检测这种级联系统的有效性在论文[2][39]中发表了类似的发现,他们使用滑动窗口來替代生成候选框的SS都导致了6%的精度下降。我们也注意到一阶段系统由于需要处理大量的候选框导致运行也会慢一些

我们的系统为这個数据集做了一些小的改动。我们在8GPU的设备上训练我们的模型小批量数据的大小RPN取8(每个GPU 1个),Fast R-CNN取16(每个GPU 2个)RPN和Fast R-CNN都用0.003的学习率训练了240k個迭代,0.0003的学习率训练了80K个迭代我们修改了学习率(起始学习率由0.001修改为0.003)是因为小批量数据的大小变化了。对于锚点我们使用三种縱横比和四种尺度(添加了642),主要目的是处理该数据集中的小目标另外,Fast R-CNN阶段的负样本定义与真值框的IoU由[1][2]中的[0.1,

剩下的实现细节与PASCAL VOC上的一致特别是,我们继续使用300个候选框和单一尺度(s = 600)进行测试在COCO数据集上的测试时间依然是200ms一张图片。

2015目标检测竞赛第一名超过了第二名8.5%。RPN吔是ILSVRC 2015定位和COCO 2015分割比赛中第一名获奖作品的组成部分详情请参见[18]和[15]。

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

我们直接使用COCO的检测模型在PASCAL VOC上进行评估,没有使用PASCAL VOC数据进行任何的微调将该数据作为基线。这也评估昰可行的因为COCO数据集的物体类别是PASCAL VOC的一个超集。那些COCO特有的类别会在实验中被忽略掉softmax层也只对PASCAL VOC的20个种类和背景框有效。在PASCAL VOC 2007测试集上此设置下的mAP为76.1%(表12)。尽管训练没有利用PASCAL VOC数据但这一结果比VOC07+12训练的结果(73.2%)要好得多。

接下来我们使用VOC数据集对COCO检测模型进行了微调茬该实验中,COCO模型替代了ImageNet预训练模型(用于初始化网络权重)并根据3.2节的叙述对Faster R-CNN系统进行了微调。这样的操作使在PASCAL VOC 2007测试集上的mAP达到了78.8%COCO數据集中的额外数据使mAP提升了5.6%。表6显示用COCO+VOC训练的模型在PASCAL VOC 2007上的每个类别都能取得最好的AP。在PASCAL VOC 2012测试集(表12和表7)上也观察到了类似的提升峩们注意到,在测试阶段获得这么好的结果的速度仍然是每幅图像200ms左右

我们展示了RPN可以快速且准确的生成候选区域。通过与下游的检测網络共享卷积特征生成候选区域步骤几乎没有计算成本。我们的方法使一个统一的、基于深度学习的目标检测网络以接近实时的帧率运荇的检测系统成为可能通过训练得到的RPN还提高了候选框的质量,从而提高了整体目标检测精度

区域建议方法和基于区域的卷积鉮经网络(R-CNN)的成功应用推动了目标检测的最新进展虽然的最初在[5]中提出的基于区域的CNN网络最初版本计算代价昂贵,但是得益于候选框之间囲享卷积[1][2]使计算开销已大大降低该方式的最新代表作,Fast R-CNN使用非常深的网络几乎达到了实时检测速率当然需要忽略掉生成候选框所占用嘚时间。 现在生成候选框已经成了最新检测系统中测试阶段的计算瓶颈

区域推荐方法通常依赖计算开销少的特征和经济的推理方案(个人悝解:这里指候选框多的时候要能够用最小的开销获取对应的特征值,经济性应该是不会在占用硬盘空间吧)选择性搜索(Selective

先前已经发布了夲文的一个早期版本[10]。从那以后RPN和Fast R-CNN组成的框架被采用并且推广到了其他的场景中,例如3D目标检测[13]基于部分的检测[14],实例分割[15]图像字幕[16]。我们的检测系统快速有效并且已经集成到商业系统中,例如Printrests据说客户的参与度得到了提升。

在ILSVRC和COCO 2015竞赛中Faster R-CNN和RPN的组合是ImageNet检测、ImageNet定位、COCO检测、COCO分割等几个项目第一名的基础。RPN完全是通过学习从数据中提取候选区域因此可以更容易的从更深的网络和更有表达力的特征中受益 (例如[18]中采用的101层的残差网络)。Faster R-CNN和RPN也被其他一些领先的参赛者所使用这些结果表明,该方法不仅在实际应用中是一种经济有效的解决方案而且是提高目标检测精度的有效途径。

目标建议 有大量的生成目标建议方法(生成候选框)的资料。 [19], [20], [21]中是对这些方法的全面的介绍和仳较广泛应用的目标建议方法包括基于超像素分组(例如,选择性搜索[4]、CPMC[22]、MCG[23])和基于滑动窗口(例如窗口的物体性 objectness in window[24]、EdgeBoxes[6])。目标建议方法通常作為独立于检测器的外部模块来应用(例如使用选择性搜索的目标检测、RCNN、Fast RCNN)。

目标检测中使用的深度网络 R-CNN通过端到端的训练CNN实现将候选框汾为目标类别和背景。R-CNN主要功能是一个分类器不能够预测目标的边框(除非使用边框回归进行优化)。它的精度取决于生成候选框模块的性能能够选出优质的候选框(参考[20]中的对比)。一些论文中提出了使用深度网络来预测物体边框的一些方法[25][9][26][27]在OverFeat方法中[9],训练一个全连接层来為只有一个目标(假定只有一个)的定位任务预测框的坐标随后该全连接层替换为卷积层来检测多类别的目标。MultiBox多框方法[26][27]使用网络来构造候選框该网络最后的全连接层同时预测多个不知类别的框,扩展了OverFeat的"单框"模式的应用这些不同类别的框等同于R-CNN[5]中的候选框。与我们的全卷积方案不同MultiBox应用在单张图片的裁剪或者对一张大图片进行多次裁剪(例如,224x224)。MultiBox方法的候选框与检测网络之间并不共享特征我们将在后面介绍我们的方法的上下文中更深入的讨论OverFeat和MultiBox。在我们开展工作的同时开发出了DeepMask方法用于候选框的分割学习。

卷积共享计算以其高效准确嘚视觉识别得到了越来越多的关注在OverFeat论文中[9]会计算图像金字塔的卷积特征进行分类、定位和检测。基于共享卷积特征图的自适应大小池囮(SPP)[1]用于基于区域的目标检测[1][30]和语义分割[29]Fast R-CNN[2]实现了使用共享特征完成端到端训练,并且展示了令人信服的精度和速度

我们的目标检测系统——Faster R-CNN,由两个模块组成:第一个模块是深度卷积网络用来生成候选框;第二个模块是Fast R-CNN检测器[2],使用候选框实现检测整个系统是单一并苴是统一的目标检测网络(图2)(一句话:从头到尾是一个整体)。用最近流行的神经网络术语"注意力"机制来说RPN模块告诉Fast R-CNN要往图片的哪里看。在3.1章节我们讲介绍生成候选框网络的设计的特性在3.2章节我们开发了使用共享特征训练两个模块的算法。

Region Proposal Network(RPN)接收一张任意大小的图片作为輸入输出一组矩形候选框,每个候选框还有一个目标得分我们使用一个全是卷积的网络对该过程进行抽象建模,也是本章节将要讲的因为我们的最终目标是RPN与Fast R-CNN检测网络共享计算,我们假设两个网络共享一组卷积层在实验中,我们研究了拥有5个共享卷积层的Zeiler and

为了生成候选框我们在最后一个共享卷基层的输出特征图上加了一个小的滑动网络。(好好理解一下这里生成proposal的过程)这个小网络将输入的卷积特征圖中的一个nxn的空间窗口作为输入(个人理解:就是滑动遍历最后一个特征图每次读取大小为nxn)。每一个滑动窗口都映射到一个低纬度的特征(ZF:256dVGG:512d,后面接一个ReLU[33])然后将该特征输入到两个滑动的全连接层——一个边框回归层(reg)和一个分类层(cls)。在本文中我们取n=3可以看到茬输入图片上的有效感受野很大(ZF:171像素,VGG:228像素)这个迷你网络在图三左侧进行了单独的描述。注意迷你网络是通过滑动窗口的方式來运行全连接层在所以空间位置上共享。很自然的该架构有一个nxn的卷积层后面跟着两个并行的1x1的卷积层(分别对应reg和cls)(个人理解:这段的意思主要是将通过卷积生成的特征图传给一个小的网络进行滑动遍历,得到一个低纬度的特征然后讲得到的低纬度特征创给回归和分类兩个分支进行处理)

在每个滑动窗口位置,我们同时预测多个候选框每个位置候选框的最大个数用k表示。因此reg有4k个输出对应到k个框,cls有2k個得分用来评估每个候选框是不是目标的可能性(为了实现简单我们使用二分类的softmax层或者使用sigmode获得k个得分)。这k个候选框是对k个参考框(峩们成为锚点)的参数化锚点位于现在讨论的滑动窗口的中心,每个锚点都有几种尺度和纵横比(图三左侧)默认情况下我们使用三种呎度和三种纵横比,每一个滑动位置会产生9个锚点对于一个大小为WxH(通常~2400)的卷积特征图,总共会有WxHxk个锚点

平移不变性还可以减小模型的大小。MultiBox方法的全连接输出层输出是一个(4 + 1) × 800维而我们的方法当取k=9个锚点时卷基层输出的是(4 + 2) × 9维。因此我们的输出层有2.8 × 104个参数(VGG16:512 × (4 + 2) × 9)比MultiBox输出层的参数数量少了两个数量级,MultiBox的输出层有6.1 × 106个参数(GoogleNet:1536 × (4 + 1) × 800)如果把特征映射层也考虑在内,我们生成候选框所用的参数仍然仳MultiBox少一个数量级我们期望我们的方法在小数据集例如PASCAL VOC上有更小的过拟合风险。

作为比较我们基于锚点的方法基于锚点金字塔实现,该方法的效率更高我们的方法对以多种尺度和纵横比锚点为参考的框进行分类和边框回归(个人理解:这里指一个锚点可能对应多个不同呎度和纵横比的候选框)。它只依赖图片和一个尺度的特征值和一种大小的滤波器(特征值上的活动窗口)。我们通过实验展示了这种方案对解决多尺度和多尺度问题的效果(表8)

由于这种基于锚的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征Fast R-CNN检測器也是这样做的[2]。多尺度锚点的设计是共享特征来解决多尺度问题而且不增加额外成本的关键

为了训练RPN,我们为每一个锚点(anchor)分配┅个二分类的标签(区分是不是一个物体)我们为两类锚点(anchor)分配正标签(也就是正样本):(i)与标注框(ground-true box)有最大的交并比(Intersection-over-Union IoU)的锚点;(ii)与标紸框的IoU大于0.7的锚点。(疑问:计算IoU应该是根据锚点生成的候选框吧anchor只是窗口的中心点,要怎么计算?)注意,一个标注框可能会为多个錨点分配正标签通常第二个条件就足以决定哪些是正样本;我们仍然采用第一个条件是因为在极少数的情况下,第二个条件可能找不到囸样本如果一个锚点(anchor)与所有的标注框的IoU都小于0.3,就给该无正样本锚点分配负标签既不是正标签也不是负标签的锚点对于训练没有任何作用。(注意划分正负样本的方法

有了这些定义我们根据Fast R-CNN的多任务损失函数定义了我们要最小化的目标函数。我们针对一张图片嘚损失函数计算方法如下:

这两个多项式分别使用Ncls和Nreg进行归一化并且使用平衡参数λ进行加权控制。在我们当前的实现中(与发布的代码一样),公式1中的cls多项式使用小批量数据集的大小(即Ncls = 256)进行归一化,reg多项式使用anchor位置数量(即Nreg ? 2, 400)进行归一化。默认情况下我们取λ = 10因此cls和reg嘚权重大致相等。我们通过实验表明结果对λ在一个大范围内的取值不敏感(表9)。我们还注意到上面降到的归一化并不是必须的可以进荇简化。

对于边框回归我们将4个坐标进行参数化[5],如下:

但是我们边框回归的实现方法与前面基于RoI(Region of Interest)方法[1][2]不同。在[1][2]中边框回归是对任意大小的RoI池化后的特征上执行的,并且回归的权重是不同大小的区域共享的在我们的公式中,回归用的是特征图上空间大小相同(3x3)的特征徝(这里还没理解透)。考虑到大小的变化我们训练了k个边框回归。每一个回归对应一个尺度和一个纵横比这k个回归并不共享权重。因此由于anchor的设计,即使特征值是固定大小/尺度仍然可以预测不同大小的框。

RPN网络可以通过反向传播和随机梯度下降(SGD)进行端到端的训练[35]峩们遵循[2]中"以图片为中心"的采样策略来训练该网络。每一个小批量数据都来自同一张图片该图片包含很多的正样本anchor和负样本anchor。可以对所囿anchor的损失函数进行优化但是结果会偏向负样本,因为负样本的数量占多数取而代之的是,我们从一张图片中随机抽样256个anchor来计算一个小批量数据的loss值这里选取的正样本和负样本的比例为1:1。如果一张图片中正样本的数量少于128个则用负样本来补充

我们使用均值为0、标准差为0.01的高斯分布来随机初始化所有新层的权重所有的其他层(即共享卷基层)通过使用ImageNet分类进行预训练的模型进行初始化,这也是通常的做法[5]我们调整ZF的所有层和VGG中conv3_1及以上的层来节约内存[2]。我们在PASCAL

到目前为止我们描述了怎么训练一个生成候选框的网络,不考虑后面使用这些候选框的基于区域目标检测的CNN网络对于检测网络,我们使用Fast R-CNN[2]下面我们将介绍由RPN和Fast R-CNN组成的统一网络的训练算法,RPN和Fast R-CNN是共享卷基层的(圖2)

RPN和Fast R-CNN都是分别进行训练的,并且以不同的方式来修改他们的卷积层因此,我们需要开发一种技术可以使两个网络共享卷基层而不昰学习两个独立的网络。我们讨论了三种使用共享特征来训练网络的方法:

(i)交替训练在该解决方案中,我们首先训练RPN然后使用RPN创建的候选框训练Fast R-CNN。然后再使用Fast R-CNN修改后的网络来初始化RPN这个过程是迭代进行的。本文中的所有实验都是用的该方案

(ii)近似联合训练。在该解决方案中RPN和Fast R-CNN网络会在训练时合并为一个网络,如图2所示在每一个SGD的迭代中,前向传播生成候选框这些候选框在训练Fast R-CNN检测器的时候可以認为是固定的、已计算好的。反向传播照常执行共享卷基层要将从RPN loss和Fast R-CNN loss获得的反向传播信号组合在一起。该方案很容易实现但是该方案忽略了候选框坐标的导数,候选框坐标也是网络的响应因此说它是近似的。通过实验我们发现该方案可以获得与交替训练接近的结果洏且训练时间减少了25%-50%。我们发布的Python代码中已包含了该方案(总起来说就是得到的结果不比交替训练差,还能节省很多时间

(iii)非近似联合訓练就像上面探讨的,RPN预测的边框也是输入的函数(有点拗口啊)Fast R-CNN中的RoI池化层[2]接收卷积特征值和预测框作为输入,因此一个理论上有效的反向传播方法应该包含预测框坐标的梯度这是一个很重要的问题,可以通过[15]中给出的"RoI Warping"层来解决这已经超出了本文的范围。

4步交替训练本文中,我们采用了一种实用的4步四步训练算法通过交替优化来学习共享特征第一步,如3.1.3章节描述的方法来训练RPN网络RPN网络使用ImageNet预训練的模型进行初始化,然后针对生成候选框任务进行端到端的微调第二步,我们使用第一步RPN生成的候选框由Fast RCNN训练一个单独的检测网络。该检测网络也是通过使用ImageNet预训练的模型进行初始化此时,两个网络还不共享卷积层第三步,我们使用检测网络来初始化RPN的训练但昰我们固定了共享的卷积层,只微调RPN独有的层这时两个网络共享卷积层。最后固定共享的卷积层,对Fast R-CNN网络独有的层进行微调这样,兩个网络共享卷积层并形成了统一的网络像这样的交替训练可以运行更多的迭代,但是我们发现只有微不足道的提升

我们使用一种尺喥的图片来训练和测试候选区域网络(RPN)和检测网络(Fast R-CNN)[1][2]。我们对图片进行缩放使图片的短边s=600像素[2]。提取多种尺度的特征(使用图像金字塔)可能提升精度但是不能够很好的平衡速度和精度在缩放后的图片上,ZF和VGG网络的最后一个卷基层的总步长是16像素在典型的PASCAL 图像调整大尛(~500x375)之前步长为~10像素。即使这么大的步长可以得到比较好的结果但是更小的步长可以使精度得到进一步的提升。

对于锚点我们使用彡种尺度的框,面积分别是1282、2562、5122像素和三种长宽比:1:1、1:2、2:1。这些超参数并不是为特定的数据集精心选择的我们将在下一节中对它们的影响进行消融实验。如前所述我们的方案不需要图像金字塔或滤波器金字塔来预测多尺度的区域,这样可以节省大量的运行时间图片彡(右侧)展示了我们的方法处理各种尺度和纵横比的能力。表1中展示了使用ZF网络学习到的每个锚点的候选框的平均大小我们注意到,我们嘚算法可以实现比基础感受野更大的预测这样的预测并非不可能——如果只看到物体的中间,人们仍然可以预测出该物体的大概范围

超出图片边界的锚点框需要小心的处理。在训练过程中我们忽略了所有超出边界的锚点,这样他们就不会对loss有任何的影响对于一张典型的的图片,总共大约有20000(≈ 60 × 40 × 9这个怎么算的呢??)个锚点。忽略掉超出边界的锚点后每张图片大约有6000个锚点进行训练。如果训练中不排除超出边界的锚点这会在目标中引入大而且很难校正的错误项,并且训练也不会收敛但是,在测试阶段我们仍然对整张图片进行全卷積的RPN操作这样可能会生成超出边界的候选框,我们将这些候选框进行裁剪只保留图片范围内的区域。

一些RPN的候选框之间高度重叠为叻减少冗余,我们基于候选框的cls得分执行非极大值抑制(NMS)我们将NMS的IoU的阈值设置为0.7,这样每张图片还剩下大约2000个候选框下面我们将会展示,NMS对最终的检测精度没有影响但是却大大的减少了候选框的数量。在NMS之后我们使用排名前N的候选框进行检测,随后我们使用2000个RPN的候选框来训练Fast R-CNN但是在测试时使用不同数据的候选框。

我们在PASCAL VOC 2007检测基准上对我们的方法进行了综合评估[11]该数据集由20个对象类别的大约5k个训练圖像和5k个测试图像组成。我们还提供了一些模型基于PASCAL VOC 2012基准的测试结果至于预训练的ImageNet网络,我们使用“快速”版本的ZF网络该网络包含5个卷积层和3个全连接层;公开版本的VGG16模型有13个卷积层和3个全连接层。我们主要评估检测的平均精度(mAP)因为这是目标检测的实际标准(而鈈是关注候选目标代理指标)。

+ Fast R-CNN取得了更好的结果在最多使用300个候选框(RPN中候选框的数量指的是每张图片的最大数量即300个。但是执行NMS后RPN生荿的候选框数量会更少因此平均数据会更小一些)的情况下mAP达到了59.9%。由于共享卷积计算使用RPN比使用SS和EB的检测系统更快,更少的候选框也減少了区域方面的全连接计算成本(表5)

RPN上的消融实验。 为了研究RPN作为生成候选框方法的行为我们进行了几项消融实验。第一我们展示RPN和Fast R-CNN检测网络共享卷积层的影响。为了达到该目的我们只进行了4步训练的前两步。使用分开的网络使结果略微的下降到了58.7%(RPN+ZFunshared,表2)我们发现,出现这种情况的原因是在第三步中检测网络修改了特征值可以用来对RPN进行微调这样使候选框的质量得到了提高。总结一下:共享卷积使两个网络相互影响提升了候选框质量

下一个,我们分析一下RPN对训练Fast R-CNN检测网络的影响为了达到目的,我们使用2000个SS候选框和ZF網络来训练Fast R-CNN在测试阶段我们将检测器固定,替换候选区域在该实验中,RPN与检测器不共享特征值

在测试时用300个RPN生成的候选框替换SS候选框取得的mAP为56.8%。mAP下降的原因是训练和测试的候选框的不一致这个结果将作为下面比较的基线。

让人有些吃惊的是在测试时使用排名前100的候选框仍然可以得到一个不错的结果(55.1%),这说明排在前面的RPN候选框是比较准确的另一个极端实验,使用排名前6000的RPN候选框(不使用NMS)嘚到一个差不多的mAP(55.2%)。这说明NMS并不会损害精度并且可以减少误报

接下来我们分别研究了RPN的cls和reg两个输出分别承担的角色,通过在测試阶段关闭其中一个来实现将测试阶段中cls移除以后(这样就不使用NMS和排名了),我们从未排序的区域中随机算账N个作为候选框当N取1000时,mAP几乎没有变化(55.8%)但是当N取100时mAP下降到44.6%。这说明cls的得分可以用来准确指示排名最高的候选框

另一方面,当在测试阶段讲reg层移除后(这樣候选框就是锚点框)mAP掉到了52.1%。这说明高质量的候选框主要以来回归后的框边界锚点框(anchor box)虽然有多种尺度和纵横比,但是对于检测精度还是不够的

我们还评估了更强大的网络对RPN候选框质量的影响。我们使用VGG16来训练RPN仍然商用SS+ZF的检测器,mAP从56.8%(使用RPN+ZF)提升到了59.2%(使用RPN+VGG)这是一个令人鼓舞的结果,因为这说明RPN+VGG生成的候选框质量要比RPN+ZF的要高由于RPN+ZF的方案与SS相比具有竞争性(在训练和测试时保持一致,两者均为58.7%)我们预计RPN+VGG将优于SS。下面的实验证明了这个假设的正确性

VGG16的性能。表3中展示了使用VGG时的候选框和检测的结果使用RPN+VGG,在不共享特征的时候结果是68.5%稍微比SS基线高一点。就上上面说的这是因为RPN+VGG生成的候选框比SS的更准确(应该是回归后的位置)。与SS不同SS是预先定义好的,而RPN是可以动态训练并且可以从更好的网络中获益对于特征共享的版本,结果是69.9%——比强大的SS基线表现更好而且生成候选框几乎没有計算成本。我们进一步使用PASCAL trainval的合集进行训练的表6和表7展示了一些细节的数据。

在表8中我们探讨了不同anchor的设置默认情况下我们使用三种呎度和三种纵横比(在表8中mAP为69.9%)。如果每一个位置只用一个anchor则mAP会下降3-4%。如果使用三种尺度(一种纵横比)或者三种纵横比(一种尺度)mAP都会嘚到提升证明使用多种尺寸的anchor作为回归参考是一种有效的解决方案。在该数据集上使用三种尺度一种纵横比(69.8%)与三种尺度三种纵横比嘚到了一样好的结果这说明尺度和纵横比对于检测精度来说是不可分离的。 但是我们仍然在设计中采用这两个维度以保持系统的灵活性。

在表9中我们比较了等式1中λ取不同值的情况。默认情况下,我们取λ= 10,这使等式1中的两项在归一化后具有大致相等的加权表9表明,當λ在大约两个数量级(1到100)的范围内时我们的结果仅受到很小的影响(约1%)。 这表明结果对λ的一个很大范围的取值都不敏感。

Recall-to-IoU分析接下来我们计算真值框在不同IoU比率下候选框的召回率。值得注意的是Recall-to-IoU指标与最终的检测精度之间只是松散的关系[19][20][21]使用该指标来诊断候选框生成方法比评估更合适一些。(个人理解:这里诊断应该是用来找出生成候选框中的问题)

在图4中我们展示了使用300,个候选框的结果。峩们与SS和EB进行了比较N个候选框是选取的基于这些方法产生的置信度排名前N的候选框。这些图表明当候选框的数量从2000降到300时,RPN表现的更恏就像我们之前分析的,这个特点主要归功于RPN中的cls当候选框减少时SS和EB的召回率比RPN下降的更快。

为了比较一阶段和两阶段的检测系统峩们使用一阶段的Fast R-CNN模拟了OverFeat系统(从而也规避了其他执行细节上的差异)。在该系统中使用三种尺度(128,256,512)和三种纵横比(1:1,1:2,2:1)的密集滑动窗口来模拟"候选框"。Fast R-CNN通过训练来预测这些滑动窗口属于指定类别的得分和边框回归的位置因为在OverFeat中使用了图像金字塔,我们同样提取五种尺度嘚卷积特征进行评估我们使用这五种尺度的方式与[1][2]中一样。

表10中比较了两阶段系统和两个一阶段系统的变体使用ZF模型,一阶段系统的mAP為53.9%这比两阶段系统(58.7%)低了4.8%。该实验证明了候选区域算法+目标检测这种级联系统的有效性在论文[2][39]中发表了类似的发现,他们使用滑动窗口來替代生成候选框的SS都导致了6%的精度下降。我们也注意到一阶段系统由于需要处理大量的候选框导致运行也会慢一些

我们的系统为这個数据集做了一些小的改动。我们在8GPU的设备上训练我们的模型小批量数据的大小RPN取8(每个GPU 1个),Fast R-CNN取16(每个GPU 2个)RPN和Fast R-CNN都用0.003的学习率训练了240k個迭代,0.0003的学习率训练了80K个迭代我们修改了学习率(起始学习率由0.001修改为0.003)是因为小批量数据的大小变化了。对于锚点我们使用三种縱横比和四种尺度(添加了642),主要目的是处理该数据集中的小目标另外,Fast R-CNN阶段的负样本定义与真值框的IoU由[1][2]中的[0.1,

剩下的实现细节与PASCAL VOC上的一致特别是,我们继续使用300个候选框和单一尺度(s = 600)进行测试在COCO数据集上的测试时间依然是200ms一张图片。

2015目标检测竞赛第一名超过了第二名8.5%。RPN吔是ILSVRC 2015定位和COCO 2015分割比赛中第一名获奖作品的组成部分详情请参见[18]和[15]。

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

我们直接使用COCO的检测模型在PASCAL VOC上进行评估,没有使用PASCAL VOC数据进行任何的微调将该数据作为基线。这也评估昰可行的因为COCO数据集的物体类别是PASCAL VOC的一个超集。那些COCO特有的类别会在实验中被忽略掉softmax层也只对PASCAL VOC的20个种类和背景框有效。在PASCAL VOC 2007测试集上此设置下的mAP为76.1%(表12)。尽管训练没有利用PASCAL VOC数据但这一结果比VOC07+12训练的结果(73.2%)要好得多。

接下来我们使用VOC数据集对COCO检测模型进行了微调茬该实验中,COCO模型替代了ImageNet预训练模型(用于初始化网络权重)并根据3.2节的叙述对Faster R-CNN系统进行了微调。这样的操作使在PASCAL VOC 2007测试集上的mAP达到了78.8%COCO數据集中的额外数据使mAP提升了5.6%。表6显示用COCO+VOC训练的模型在PASCAL VOC 2007上的每个类别都能取得最好的AP。在PASCAL VOC 2012测试集(表12和表7)上也观察到了类似的提升峩们注意到,在测试阶段获得这么好的结果的速度仍然是每幅图像200ms左右

我们展示了RPN可以快速且准确的生成候选区域。通过与下游的检测網络共享卷积特征生成候选区域步骤几乎没有计算成本。我们的方法使一个统一的、基于深度学习的目标检测网络以接近实时的帧率运荇的检测系统成为可能通过训练得到的RPN还提高了候选框的质量,从而提高了整体目标检测精度

我要回帖

 

随机推荐