Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

Abstract

  • 最先进的物体检测网络依靠区域建议算法来假设物体的位置。SPPnet和Fast R-CNN等技术的进步减少了这些检测网络的运行时间,使区域建议计算成为一个瓶颈。在这项工作中,我们引入了一个区域建议网络(RPN),它与检测网络共享全图像卷积特性,从而实现了几乎免费的区域建议。RPN是一个完全卷积的网络,它同时预测每个位置的对象边界和对象性得分。RPN经过端到端的培训,以生成高质量的区域建议,供快速R-CNN用于检测。RPN组件告诉统一网络,通过使用最近流行的神经网络术语和“注意”机制,我们进一步将RPN和Fast R-CNN合并成一个单一的网络,共享它们的卷积特征。对于非常深的VGG-16型号[3],我们的检测系统在GPU上具有5fps的帧速率(包括所有步骤),同时在PASCAL VOC 2007,2012上实现了最先进的物体检测精度,并且 MS COCO数据集,每个图像只有300个提案。 

Introduction

  • 区域建议方法和基于区域的卷积神经网络(RCNNS)的成功应用推动了目标检测的最新进展。尽管基于区域的CNN在[5]中最初开发的计算成本很高,但由于跨提案共享卷积,其成本已大大降低。最新版本的快速R-CNN [2]使用非常深的网络[3]实现接近实时的速率,忽略了在区域提案上花费的时间。 现在,提案是最先进的检测系统中的测试时计算瓶颈。
  • 区域提议方法通常依赖于廉价的特征和经济的推理方案。选择性搜索[4]是最受欢迎的方法之一,它基于工程化的低级功能贪婪地合并超像素。 然而,与有效的检测网络[2]相比,选择性搜索速度慢了一个数量级,在CPU实现中每个图像2秒。EdgeBoxes目前提供了建议质量和速度之间的最佳权衡,每张图片0.2秒。然而,区域建议步骤仍然消耗与检测网络相同的运行时间。
  • 人们可能会注意到基于快速区域的CNN利用了GPU,而研究中使用的区域提议方法是在CPU上实现的,这使得这种运行时间比较公平。另一种加速方案计算的方法是对GPU进行重新实现。这可能是一个有效的工程解决方案,但是重新实现忽略了下游检测网络,因此错过了共享计算的重要机会。
  • 在本文中,我们证明了一个采用深卷积神经网络的算法变化计算方案,可以得到一个优雅而有效的解决方案,在给定检测网络计算的情况下,方案计算几乎是免费的。为此,我们引入了新的区域建议网络(RPN),它与最先进的目标检测网络共享卷积层。通过在测试时共享卷积,计算方案的边际成本很小(例如,每幅图像10毫秒)。
  • 我们的观察是基于区域的检测器使用的卷积特征图,如fast rcnn,也可以用于生成区域建议。在这些卷积特征的基础上,我们通过添加一些额外的卷积层来构造一个RPN,这些卷积层同时回归规则网格上每个位置的区域边界和对象性得分。因此,RPN是一种完全卷积网络(FCN)[7],可以端到端进行专门训练,以生成检测建议。
  • 我们介绍了新的“锚”盒,作为多尺度和纵横比的参考。 我们的方案可以被认为是回归参考的金字塔(图1,c),它避免了枚举多尺度或纵横比的图像或滤波器。 该模型在使用单尺度图像进行训练和测试时表现良好,因此有利于运行速度。
  • 为了将RPN与快速R-CNN [2]对象检测网络统一起来,我们提出了一种训练方案,该方案在区域提议任务的微调和用于对象检测的微调之间交替进行,同时保持提议的固定。 该方案快速收敛并产生具有卷积特征的单一网络,这些特征在两个任务之间共享

Related Work

  • R-CNN方法端到端地训练CNN以将提议区域分类为对象类别或背景。 R-CNN主要作为分类器使用,它不预测对象边界。其准确性取决于区域提案模块的性能。在OverFeat方法MultiBox方法从网络生成区域提议,其最后一个完全连接的层同时预测多个类不可知的框,概括了OverFeat的“单一框”方式。中,训练完全连接的层以预测假设单个对象的本地化任务的盒子坐标。 然后将完全连接的层转变为卷积层,用于检测多个类别特定对象。 与我们的完全卷积方案相比,MultiBox提议网络应用于单个图像裁剪或多个大图像裁剪。MultiBox不在提案和检测网络之间共享功能。 我们将在后面的方法中更深入地讨论OverFeat和MultiBox。 在我们的工作中,DeepMask方法是为学习细分方案而开发的。

Faster R-CNN

  • 我们的物体检测系统称为Faster R-CNN,由两个模块组成。 第一个模块是建立区域的深度完全卷积网络,第二个模块是使用建议区域的快速R-CNN检测器。整个系统是用于对象检测的单一,统一的网络。使用最近流行的神经网络术语和“注意”机制,RPN模块告诉快速R-CNN模块在哪里查找。
  • 区域提议网络(RPN)将图像(任何大小)作为输入并输出一组矩形对象提议,每个提议具有对象性分数。我们使用完全卷积网络对此过程进行建模,我们将在本节中对其进行描述。 因为我们的最终目标是与快速R-CNN物体检测网络共享计算,我们假设两个网络共享一组共同的卷积层。 在我们的实验中,我们研究了Zeiler和Fergus模型(ZF),它有5个可共享的卷积层和Simonyan和Zisserman模型(VGG-16),它有13个可共享的卷积层。
  • 为了生成区域提议,我们在最后一个共享卷积层输出的卷积特征图上滑动一个小网络。该小网络将输入卷积特征映射的n×n空间窗口作为输入。每个滑动窗口都映射到一个较低维度的特征(ZF为256-d,VGG为512-d,后面是ReLU)。该特征被馈送到两个完全连接的层 - 一个盒子回归层(reg)和一个盒子分类层(cls)。我们在本文中使用n = 3,注意到输入图像上的有效接收场很大。请注意,由于迷你网络以滑动窗口方式运行,因此所有空间位置共享完全连接的层。 该架构自然地用n×n卷积层实现,然后是两个兄弟1×1卷积层。
  • 在每个滑动窗口位置,我们同时预测多个区域提议,其中每个位置的最大可能提议的数量表示为k。 因此,reg层具有4k输出,其编码k个盒子的坐标,并且cls层输出2k得分,其估计每个提议的对象或非对象的概率。k个建议是相对于k个参考框参数化的,我们称之为锚点。 锚定位于所讨论的滑动窗口的中心,并且与比例和纵横比相关联。默认情况下,我们使用3个刻度和3个纵横比,在每个滑动位置产生k = 9个锚点。 对于大小为W×H(通常为〜2,400)的卷积特征图,总共有WHk锚点。
  • 我们方法的一个重要特性是它在平移和计算建议相对于锚点的函数方面都是平移不变的。如果变换图像中的对象,则提案应该变换,并且相同的功能应该能够在任一位置预测提案。这个翻译不变的属性由我们的方法保证。 作为比较,MultiBox方法[27]使用k-means生成800个锚点,这些锚点不是平移不变的。 因此,如果转换对象,MultiBox不保证生成相同的提议。平移不变属性还会减小模型大小。 MultiBox具有(4 + 1)×800维全连接输出层,而在k = 9个锚点的情况下,我们的方法具有(4 + 2)×9维卷积输出层。 因此,我们的输出层具有2.8×104参数(VGG-16为512×(4 + 2)×9),比具有6.1×106参数(1536×(4 + 1)的MultiBox输出层少两个数量级 )MultiBox [27]中的GoogleNet [34]×800。
  • 我们的锚设计提出了一种解决多尺度的新方案。第一种方式基于图像/特征金字塔,例如,在DPM [8]和基于CNN的方法中,图像在多个比例和特征图上调整大小。这种方式通常很有用但很耗时。第二种方法是在特征图上使用多尺度(和/或纵横比)的滑动窗口。例如,在DPM [8]中,使用不同的过滤器尺寸分别训练不同纵横比的模型。如果这种方式用于解决多个尺度,它可以被认为是“过滤金字塔”。
  • 作为比较,我们的基于锚的方法建立在锚的金字塔上,这更具成本效益。 我们的方法参考多尺度和纵横比的锚框来分类和回归边界框。 它仅依赖于单个尺度的图像和特征图,并使用单个尺寸的滤镜(特征图上的滑动窗口)。 我们通过实验证明了该方案对于解决多种尺度和尺寸的影响。
  • 为了训练RPN,我们为每个锚分配一个二进制类标签(是或不是对象)。我们为两种锚点分配一个正面标签:(i)具有最高(IoU)的锚点/锚点与Ground-Truth框重叠,或(ii)具有高于0.7的IoU重叠的锚点与Ground-Truth的盒子。请注意,单个Ground-Truth框可以为多个锚点分配正面标签。通常第二个条件足以确定阳性样本; 但我们仍然采用第一个条件,因为在极少数情况下,第二个条件可能没有找到正样本。如果所有地面实况框的IoU比率低于0.3,我们会为非正锚定分配负标签。既不是正面也不是负面的锚点对训练目标没有贡献。
  • 然而,我们的方法通过与先前基于RoI的(感兴趣区域)方法[1],[2]不同的方式实现了边界框回归。 在[1],[2]中,对从任意大小的RoI汇集的特征执行边界框回归,并且回归权重由所有区域大小共享。 在我们的公式中,用于回归的特征在特征图上具有相同的空间大小(3×3)。 为了考虑不同的大小,学习了一组k个边界框回归量。 每个回归量负责一个比例和一个宽高比,并且k个回归量不共享权重。 因此,由于锚的设计,即使特征具有固定的尺寸/比例,仍然可以预测各种尺寸的盒子。
  • RPN可以通过反向传播和随机梯度下降(SGD)进行端到端训练[35]。 我们遵循[2]中的“以图像为中心”的采样策略来训练这个网络。 每个小批量产生于包含许多正面和负面示例锚点的单个图像。 可以针对所有锚点的损失函数进行优化,但是这将偏向负样本,因为它们占主导地位。 相反,我们在图像中随机采样256个锚点来计算小批量的损失函数,其中采样的正和负锚点的比率高达1:1。 如果图像中的正样本数少于128个,我们将小批量填充为负数。
  • 到目前为止,我们已经描述了如何训练用于区域建议生成的网络,而不考虑将利用这些建议的基于区域的对象检测CNN。 对于检测网络,我们采用Fast R-CNN [2]。 接下来,我们描述了学习由RPN和具有共享卷积层的快速R-CNN组成的单一网络的算法(图2)。
  • 独立训练的RPN和快速R-CNN都将以不同方式修改其卷积层。 因此,我们需要开发一种技术,允许在两个网络之间共享卷积层,而不是学习两个独立的网络。 我们讨论了使用共享功能训练网络的三种方法:
  1. 交替训练。 在此解决方案中,我们首先训练RPN,并使用提议来训练快速R-CNN。 然后,使用由快速R-CNN调谐的网络来初始化RPN,并且迭代该过程。 这是本文所有实验中使用的解决方案。
  2. 近似的联合训练。 在此解决方案中,RPN和快速R-CNN网络在训练期间合并到一个网络中,如图2所示。在每个SGD迭代中,前向传递生成区域提议,这些提议在训练快速时被视为固定的,预先计算的提议 R-CNN探测器。 向后传播如常进行,其中对于共享层,来自RPN丢失和快速R-CNN损失的反向传播信号被组合。 该解决方案易于实施, 提案框的坐标也是网络响应,因此是近似值。
  3. 非近似联合培训。 如上所述,由RPN预测的边界框也是输入的函数。 快速R-CNN中的RoI池化层接受卷积特征以及预测的边界框作为输入,因此理论上有效的反向传播求解器也应该包括渐变框坐标。 在上述近似联合训练中忽略这些梯度。 在非近似联合训练解决方案中,我们需要一个可区分的RoI池层。 这是一个非常重要的问题,并且可以通过中开发的“RoI卷曲”层给出解决方案,这超出了本文的范围。
  • 在本文中,我们采用实用的4步训练算法来通过交替优化来学习共享特征。在第一步中,该网络使用ImageNet预先训练的模型进行初始化,并针对区域提议任务进行端到端的精心调整。在第二步中,我们使用由步骤1 RPN生成的提议由Fast R-CNN训练单独的检测网络。该检测网络也由ImageNet预训练模型初始化。此时,两个网络不共享卷积层。在第三步中,我们使用检测器网络来初始化RPN训练,但是我们使用共享卷积层来调整RPN特有的层。现在这两个网络共享卷积层。 最后,保持共享卷积层固定,我们调整快速R-CNN的独特层。 因此,两个网络共享相同的卷积层并形成单一网络。 可以进行类似的交替训练以进行更多迭代,但我们观察到可以忽略不计的改进。

Conclusion

  • 我们已经提出了RPN,以便有效和准确地提出区域建议。 通过与下游检测网络共享卷积特征,区域提议步骤几乎是免费的。 我们的方法使得基于深度学习的单一物体检测系统能够以接近实时的帧速率运行。 学习到的RPN还改善了区域建议质量,从而提高了整体物体检测精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值