Fater R-CNN : 使用区域建议网络(Region Proposal Networks)迈向实时目标检测外文翻译资料

 2022-04-07 23:39:25

英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料


Fater R-CNN : 使用区域建议网络(Region Proposal Networks)迈向实时目标检测

【摘要】尖端的目标检测网络使用区域建议算法来猜测目标的位置。比较先进的例子像SPPnet[7] 和 Fast R-CNN 已经减少了检测网络的运行时间,但也暴露出了区域建议的运算是网络的瓶颈。在这篇文章中,我们介绍一种 区域建议网络(RPN),这种网络可以跟检测网络分享整张图的卷积特征,因此提供了一种几乎没有时间花费的区域建议方法。区域建议网络是一个完全的卷积神经网络并且可以同时检测每个位置的物体边界和似物度分数。区域建议网络使用端到端(end-to-end)的训练方法去产生高质量的区域建议方案,这些建议会被用于Fast R-CNN 的物体检测。使用一种简单的交替优化(Alternating Optimization)方法,区域建议网络和 Fast R-CNN可以在训练的同时分享卷积特征。对于网路结构非常深的VGG-16模型[19],我们的检测系统使用GPU可以达到5fps的帧率(包含所有步骤),同时在每张图片使用300个区域建议的情况下在PASCAL VOC 2007(73.2%mAP)和2012 (70.4% mAP)达到了非常尖端的检测准确度。

  1. 介绍

最近的比较先进的目标检测放都是在区域建议方法和基于区域的卷积神经网络(R-CNNs)的巨大成功的下被创造出来的。虽然基于区域卷积神经网络在[6]中被最初被开发出来的时候在计算上要花费很多时间,但是多亏了在区域建议间共享卷积过程这些网络的计算花费被大大减少了。最近的典型代表,Fast R-CNN,在无视区域建议的时间花费的情况下使用了非常深的网络我弄成了几乎实时的检测速率。现在,区域建议在尖端检测系统中成为了计算瓶颈。

区域建议方法通常依赖时间花费比较小的特征和时间上比较合算的推断方案。一种非常流行的方案:选择性搜索(Selective search),贪婪的合并基于工程产生的低级特征的原图的子图象。当它和比较高效的检测网络比较时,这种方法要慢上几个数量级,在cpu实现中每个图片要慢上两秒。EdgeBoxes算法现在区域建议的质量和速度上达到了很好的平衡,每个图像花费0.2秒。然而,区域建议这个步骤仍然要花费和检测网络同样的运行时间。

你们可能会注意到快速的基于区域的卷积神经网络使用了GPU,然而在学术研究中区域建议方法使用CPU实现,这样的比较是不公平的。一种比较明显的可以加速区域建议计算的方法是将它重新用GPU实现一遍。这可能是一种有效的方法,但是重新实现一遍忽视了在区域建议下游的检测网络并且因此会错失分享运算成果的重要机会。

在这篇论文中,我们展示了一个算法的更新-即使用深网络计算区域建议-因而产生了一个更加优雅和搞笑的方法,在使用这种方法的情况下使用检测网络得到的计算成果,区域建议的计算几乎不用花费时间。在这段结束的时候,我们介绍一种新颖的区域建议网络,这种网络可以和最新的目标监测网络共享卷积层。通过在测试时分享卷积过程,计算区域建议的末端花费很小。

我们观察得到:被例如Fast R-CNN的基于区域的检测器使用的卷积特征图也可以用于去产生区域建议。在这些卷积特征的顶部,我们通过添加两层额外的卷基层构造了区域建议网络:其中一个可以将卷积特征图编码成一个较短(例如 256-d)的特征向量,第二个在每个卷积特征图的位置对于k个有着不同大小和长宽比的区域建议输出似物度分数和回归边界(k的典型值为9)

我们的区域建议网络因此是一种完全的卷积神经网络(FCN)并且可以被端到端的训练专门用于产生用于检测的区域建议。为了将RPNs和Fast R-CNN目标检测网络结合起来,我们提出一种训练策略,这种策略可以在保持区域建议固定的同时交替的调整好区域建议工作和目标检测工作。这种策略覆盖的很快并且产生一种可以在两种任务中间分享的卷积特征的统一的网络。

我们在PASCAL.VOC 检测基准上评估了我们的方法,结果是RPNs和Fast R-CNNs结合起来产生的准确率要比基准的Selective Search方法加上Fast R-CNNs要有更好的准确率。与此同时,我们的方法几乎丢弃了所有Selective Search方法在计算上的负担--区域建议的实际运行时间只有10毫秒。使用时间成本比较高并且非常深的模型像[19],我们的检测方法使用GPU依然有5fps的帧率(包括所有步骤),并且因此在速度和准确度上都是一个实用的监测系统。代码可以在https://github.com/ShaoqingRen/faster_rcnn找到.

  1. 相关工作

许多近期的论文提出许多使用深网络的方法去定位特定类或者类无关的边框。在OverFeat的方法中,一个全连接网络被训练用于预测一个可以猜测单个目标位置的定位任务所需要用到的边界坐标。这个全连接层然后变成了一个卷积层用于检测多个与特定类相关的目标。Multi-Box方法从一个最后一层全连接层可以同时预测多个用于R-CNN目标检测的边框的网络中产生区域建议。他们的区域建议网络被应用与单个图片或者多个大的图片群。我们等会将在我们方法的背景下更深入讨论OverFeat和MultiBox。

可分享的卷积计算过程一直在吸引越来越多的注意力用于高效准确的视觉识别。OverFeat方法的论文[18] 从一个图片金字塔中计算出用于分类,定位和检测的卷积特征。自适应卷积特征图大小的下采样被提出用于搞笑的基于区域的目标检测和语义分割。Fast R-CNN 使得在共享卷积特征的端到端检测器成为可能并且展示了十分诱人的准确度和速度。

  1. 区域建议网络

一个区域建议网络将一个图片(可以是任何大小)作为输入并且输出一个正方形的目标建议集合,每一个目标建议都包含一个似物度分数。我们讲这个过程模型化为一个完全的卷积神经网络,我们将会在这一段落里描述这个问题。我们认为两个网络共享了一个相同的卷积神经网络集合。在我们的实验里,我们研究了Ziler,Fergus的模型还有Simonyan,Zisserman的模型,前者具有五个可以分享的卷积层,而后者具有13个可分享的卷积层。

为了产生区域建议,我们将一个小型的网络覆盖在最后一个可分享卷积层产生的卷积特征图上。这个网络跟输入的卷积特征图的一个 n x n的窗口完全连接起来。每一个滑动窗口被映射为一个低维度的向量(ZF 一般是256-d,VGG 一般是512-d).这个向量被输入至两个同级别的全连接层,其中一个是边框回归层(reg)其中一个是边框分类层(cls)。在这篇论文里默认n=3,可以注意到输入图像上的有效接受域一般比较大(ZF一般为171像素,VGG一般为288像素)。这个迷你网络在图一(左侧)仅展示了一个位置。请注意:因为这个迷你网络通过滑动窗口的方法运作,所以全连接层分享了所有空间位置。这个结构通常被实现为一个n x n的卷积层后面跟着两个同级的 1x1 的卷积层(reg和cls的结构,用于接受)。ReLU层被应用于n x n的卷积层的输出。

平移不变锚点

在每个滑动窗口的位置上,我们同时预测k个区域建议,所以reg层有4*k个输出,这些输出编码了k个边框的坐标。Cls层输出2*k个分数去衡量区域是否包含目标的可能性。这k个区域建议是被k个被称作锚点的参考边框所参数化的。每个锚点都处在正在被处理的滑动窗口的中心,并且与大小和长宽比联系起来。我们使用三个大小规格和三个长宽比,在每个滑动位置使用一个k=9的锚。对于一个大小为W x H(通常不超过2400)的卷积特征图,总共会有WHk个锚。这个方法的一个重要属性就是平移不变性,无论是锚点还是根据锚点计算区域建议的函数。

作为比较,MultiBox方法使用k-means方法去产生800个锚点,但是他们是不具有平移不变性的。如果将一个对象平移到一张图片里,区域建议应该被转移到相同的位置并且一个函数应该能在两个位置都预测出建议区域。更进一步,Multibox的锚点不是平移不变的,他需要(4 1)*800维度的输出层,我们的方法仅需(4 2)*9维度的输出层。我们的卷积层的参数要少得多(使用GooLeNet的MuiltiBox 有27000000 vs 使用VGG-16的RPN有2400000),并且因此有更小的过拟合的风险,例如PASCAL VOC.

一个用于学习区域建议的损失函数

为了训练RPNs,我们赋予每个锚点一个二进制分类标签(用于判断是不是目标)。我们向两类锚点赋予正的标签:(i)被正确边框覆盖的具有最高的检测评价函数的 (ii)被正确边框覆盖的检测评价函数值高于0.7。请注意单个正确边框可能像多个锚点赋予正值。如果这个锚点被正确边框覆盖的检测评价函数低于0.3,我们这个非正的锚点赋予负值。那些非正非负的锚点对训练目标没有贡献。

通过这些定义,我们使得跟随在Fast R-CNN的多任务损失后的目标函数最小化了。我们的损失函数定义如下:

在这里,i是一个锚点在小的批次中的索引,,pi是锚点i为某个目标的预期的可能性。如果一个锚点为证,真实位置的标签pi*就为1,如果锚点是负值,pi*即为0。ti是个表示4个参数化的可以用于预测边框的坐标的向量, ti*则是与正的锚点相关的真是边框。分类损失Lcls,可以对两个结果进行记录(是目标 或 不是目标)。对于回归损失,我们使用 Lreg(ti,ti*)=R(ti-ti*)这里 R是一个健壮的损失函数(平滑的L1) 定义于 [5]。Pi*Lreg这个项意味着回归损失只用对症的锚点(pi*=1)激活,并对其他情况关闭(p*=0).reg和cls层的输出是分别由{pi}和{ti}组成的。这两项由Ncls和Nreg还有一个平衡性权重lambda;3所正则化的。

为了进行回归,我们采用 以下四个被参数化的坐标:

在这里 x,y,w 和h分别指代 边框中心的两个坐标,宽度和高度。变量 x,xa 和x* 是分别为了预测边框,锚点边框,和真实的边框(同理 y,w,h也有相应的变量)。这可以被认为是包围边框从一个锚点边的框回归至一个真实的边框。

虽然如此,我们的包围边框的回归通过一种与之前的基于特征图(feature-map_based)的方法不同的行为得到。在[7.5]当中,包围边框回归是在一个被任意大小的区域池化的特征图上展现的。在我们的公式中,我们用来做回归的特征在特征图上都是占有相同空间的(n*n)

为了计算变化的大小值,一个k大小的包围边框回归器被预先训练学习好了。每一个回归器负责一个大小和长宽比,并且这k个回归器不分享权值。这样一来,他仍然可以去预测不同大小的边框虽然特征图是固定大小的。

优化

区域建议网络,通常会被用完全卷积神经网络实现,他可以被逆向传播算法和随机梯度下降端到端的训练出来。我们使用一种从[5]中得到的 “图片中心” 取样策略去训练网络。每一个迷你批次都是从一个含有许多正或者负的锚点图像中提取出来的。它可以去对所有锚点的损失函数进行优化,但是这会使得当它对负样本施加影响时慢慢偏向于负样本。反而,我们随机的在一个图像中取样256个锚点去计算小批次的损失函数,这里被取样的正负样本的长宽比最多是1:1。如果正样本少于128个,我们说这个迷你批次就是负的

在目标检测和区域建议之间分享卷积特征

到目前为止,我们描述了怎么去训练一个网络去产生区域建议,却没有考虑基于区域的目标检测CNN可以利用这个建议。对于监测网络,我们采用Fast RCNN并且现在介绍一个算法可以学习那些可以在RPN和Fast RCNN分享的卷积层。

RPN和Fast RCNN都是被独立训练的,我们通过不同方法修改了他们的卷积层。我们因此需要开发一个方法去让他们可以分享卷积层,而不是学习两个单独的网络。请注意,这不是像仅仅定义一个网络包含RPN和Fast RCNN并且通过反向传播共同优化他们一样简单。原因是Fast RCNN通过一个固定的目标建议进行训练而且没有证据表明如果在Fast R-CNN学习的时候同时改变区域建议,最后他们会聚于一点。因为这个共同优化问题是一个在我们未来的工作中一个有趣的问题,所以我们开发了一个实用的四步算法去通过交替优化的方法学习被分享的特征。

第一步,我们像上面描述的一样训练RPN。这个网络使用一个ImageNet 预训练模型进行初始化并使用一个良好配置的端到端的方法用于区域建议任务。在第二步,我们使用一个使用被第一步的RPN产生的区域建议的Fast RCNN去训练单独的检测网络。这个网络也被使用ImageNet 预训练模型初始化。在这时,这两个网络不分享卷积层。在第三步,我们使用检测器网络初始化RPN训练,但是我们固定被分享的卷积层并且只调整与RPN层不同的层。现在两个网络分享了卷积层。最终,保持分享的卷积层固定,我们调整Fast RCNN的全连接层。这样,两个网络分享了同一个卷积层并形成了一个统一的网络。

实现细节

我们使用单一的大小的图片同时训练和测试 区域建议网络和目标检测网络[7,5]。我们将图片的短边调整至600像素。多大小的特征提取课呢个会改善准确率,但是不会达到一个良好的速度和准确率的平衡。我们也需要注意对于ZF和VGG net,总的在最后一个卷积层上的步长是16个像素在被重拉伸的图像上,并且应此最多10个像素在传统的PASCAL图像(最大500 x 375)。甚至这么大的一个步长可以产生一个好的结果,虽然晓得的步长可以更好的改进准确率。

对于锚点,我们使用3种大小:128 x 128 256 x 256 512 x 512像素,还是用

全文共12877字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[14453],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版