论文RCNN:Rich feature hierarchies for accurate object detection and semantic segmentation

论文地址:RCNN
项目地址:github源码

论文翻译

            《用于精确目标检测和语义分割的丰富特征层次》

摘要

  在PASCAL VOC数据集上的目标检测性能在过去的几年里已经达到瓶颈期。最好的检测方法是结合多种低层特征和高层特征的复杂的整体系统。在这篇论文中,我们提出了一种简单和可扩展的检测算法,这种算法的平均精确度比之前在VOC2012数据集上的测试效果(53.3%)还要高出30%。我们的方法结合了两种重要的观点:(1)将大容量的卷积神经网络应用到自下而上的推荐区域用来定位和分割目标。(2)当已有标签的数据集样本不足时,监督的预训练辅助任务,以及对特定领域的微调,会产生显著的性能提升。因为我们结合了CNNs和推荐区域的思想,所以我们称我们的方法为R-CNN:Regins with CNN feature。我们也将R-CNN和OverFeat(一个最近提出的基于相似CNN结构的候选滑动窗口检测器)进行了比较。我们发现该方法在ILSVRC2013检测数据集(有200个类别)上的检测性能比OverFeat要好得多。

1.介绍

  特征很重要。在过去十年里,各种视觉识别任务的进展都大量地基于SIFT和HOG特征的应用。但是如果我们查看一下经典的视觉识别任务(比如PASCAL VOC 目标检测)的的测试性能,就很容易发现在2010到2012年间,有关视觉识别的进展已经变得缓慢起来。仅仅通过建立整体系统以及使用成功方法的小变种,可以获得一点点性能上的改进。
  SIFT和HOG是块方向的直方图,我们可以将它与灵长类视觉路径中的第一个皮层区域中的复杂的细胞进行粗略地联系起来。但是我们也知道识别出现在后面的阶段,这就表明了按等级划分的,多阶段处理计算得到的特征甚至会给视觉识别更多的信息。
          在这里插入图片描述
                     图1 目标检测系统述
我们的系统:(1)输入一张图片 (2)从图片中提取出大概2000个自下而上的候选区域 (3)使用一个大的卷积神经网络对每一个候选区域进行计算特征 (4)使用具体的分类线性SVMs给每一个候选区域进行分类。R-CNN在PASCAL VOC 2010数据集上测试的平均精度达到53.7%。相比较而言,使用相同的候选区域,但是采用空间金字塔和视觉词条的方法可以达到35.1%的mAP。一个收欢迎的可变形的部分模型检测性能达到33.4%。在有200个类别的ILSVRC2013检测数据集上,R-CNN的mAP是31.4%,相比与OverFeat(之前最好的检测结果是24.3%)有显著的改进。
  CNN在20世纪90年代得到了大量使用,但随后随着支持向量机的兴起而过时。2012年,Krizhevsky等人重新燃起对CNN的兴趣通过在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)上显示更高的图像分类精度。他们的成功来自于训练在120万张有标签的图片上以及在LeCun的CNN上的一些改进(例如,max(x,0)用来修正非线性和“dropout”正则化)。
  在ILSVRC 2012研讨会期间对ImageNet结果的重要性进行辩论。中心问题可以归结为以下几个方面:在多大程度上ImageNet上的CNN分类结果可以运用到PASCAL VOC挑战赛的目标检测结果?
  我们通过缩小图像分类和目标检测之间的差距来回答这个问题。本文首次表明,与基于简单HOG-like特征的系统相比,CNN可以显著提高PASCAL VOC上的目标检测性能。为了达到这一目的,我们重点研究了两个问题:利用深度网络定位目标和利用少量带标注的检测数据训练高容量模型。
  与图像分类不同,检测需要在图像中定位(可能是许多)对象。一种方法是将定位作为一个回归问题。然而,Szegedy等人的工作,与我们的策略一致,表明这一策略在实践中可能效果不佳(他们报告的VOC 2007年的mAP为30.5%,而我们的方法实现的mAP为58.5%)。另一种方法是建立一个滑动窗口检测器。CNN已经以这种方式使用了至少20年,通常用于约束对象类别,如人脸和行人。为了保持高的空间分辨率,这些卷积神经网络通常只有两个卷积层和池化层。我们还考虑采用滑动窗口的方法。然而,在我们的网络中,具有五个卷积层的单元在输入图像中具有非常大的感受野195×195像素)和步长(32×32像素),这使得在滑动窗口模式中的精确定位成为一个公开的技术挑战。
  相反,我们通过在“区域识别”模式下操作来解决CNN定位问题,该模式在目标检测和语义分割方面都取得了成功。**在测试时,我们的方法为输入图像生成大约2000个类别无关的区域建议,使用CNN从每个建议中提取一个固定长度的特征向量,然后使用类别特定的线性支持向量机对每个区域进行分类。**我们使用一种简单的技术(仿射图像扭曲)来计算来自每个区域建议的固定大小的CNN输入,而不管该区域的形状如何。图1概述了我们的方法,并突出显示了一些结果。由于我们的系统将区域建议与CNNs结合起来,因此我们将R-CNN方法称为具有CNN特征的区域。
  在本文的更新版本中,通过在有200个类的ILSVRC2013检测数据集上运行R-CNN,我们提供了对R-CNN和最近提出的OverFeat检测系统进行的比较。OverFeat使用滑动窗口CNN进行检测,迄今为止是ILSVRC2013检测中性能最好的方法。我们的结果显示R-CNN明显优于OverFeat,mAP为31.4%超过(OverFeat的)24.3%。
  在检测中面临的第二个挑战是,标记数据是稀缺的,目前可用的数量不足以训练一个大型CNN。这个问题的传统解决方案是使用无监督的预训练,然后进行有监督的微调。本文的第二个原则贡献是,在一个大的辅助数据集(ILVRC)上进行监督的预训练,然后对特定的小数据集(PASCAL)进行特定领域的微调,是一种在数据稀少的情况下学习高容量CNN的有效范例。在我们的实验中,对检测进行微调可以将mAP性能提高8个百分点。经过微调后,我们的系统在VOC 2010上实现了54%的映射,而在高度调谐的、基于HOG的可变形零件模型(DPM)上实现了33%的映射]。我们还将读者引向Donahue等人的同时代作品。他们表明Krizhevsky的CNN可以(无需微调)用作黑盒特征提取器,在包括场景分类、细粒度子分类和域自适应在内的多个识别任务中产生优异的性能。
  我们的系统也很有效率。唯一的类具体的计算是一个合理的小矩阵向量积和贪婪非最大抑制。这种计算特性来自于所有类别共享的特征,并且这些特征的维数比以前使用的区域特征低两个数量级。
  了解该方法的失效模式对于改进该方法也至关重要,因此我们报告了Hoiem等人的检测分析工具的结果。作为这一分析的直接结果,我们证明了一个简单的包围盒回归方法可以显著减少主要误差模式的错误定位。
  在开发技术细节之前,我们注意到,由于R-CNN对区域进行操作,因此将其扩展到语义分割任务是很自然的。经过少量修改,我们在PASCAL VOC分割任务上也取得了有竞争力的结果,VOC 2011测试集的平均分割精度为47.9%。

2.基于R-CNN的目标检测

  我们的目标检测系统由三个模块组成。第一个方案生成与类别无关的区域方案。这些方案定义了可供检测器使用的候选检测集。第二个模块是一个大型卷积神经网络,它从每个区域提取一个固定长度的特征向量。第三个模块是一组特定于类的线性支持向量机。在本节中,我们将介绍每个模块的设计决策,描述它们的测试时间使用,详细说明如何学习它们的参数,并在PASCAL VOC 2010-12和ILSVRC2013上显示检测结果。

2.1模块设计

推荐区域。最近的许多论文提供了生成类别独立区域建议的方法。示例包括:对象性、选择性搜索、与类别无关的对象建议、约束参数最小割集(CPMC)、多尺度组合分组,并且Cires¸an等人通过将CNN应用于规则间隔的方形作物来检测有丝分裂细胞,这是区域提案的一个特例。虽然R-CNN对特定的区域建议方法是不可知的,但我们使用选择性搜索来实现与先前检测工作的受控比较。
特征提取。我们使用Krizhevsky等人描述的CNN的Caffe实现,从每个区域建议中提取4096维特征向量。特征通过前向传播平均减去227×227的RGB图,并且经过了五个卷积层和两个全连接层来计算的。
  为了计算区域建议的特征,我们必须首先将该区域中的图像数据转换为与CNN兼容的形式(其架构要求输入固定的227×227像素大小)。在任意形状区域的许多可能变换中,我们选择最简单的。无论候选区域的大小或宽高比如何,我们都会将其周围紧边界框中的所有像素扭曲为所需的大小。在扭曲之前,我们会展开紧边界框,以便在扭曲的大小下,原始框周围正好有p个扭曲图像上下文像素(我们使用p=16)。图2显示了扭曲训练区域的随机抽样。附录A中讨论了翘曲的替代方案。
    在这里插入图片描述

2.2测试时间检测

  在测试时,我们对测试图像运行选择性搜索,以提取大约2000个区域建议(我们在所有实验中使用选择性搜索的“快速模式”)。我们扭曲每一个提议,并通过CNN传播,以计算特征。然后,对于每一类,我们使用为该类训练的支持向量机对提取的特征向量进行评分。给定图像中的所有得分区域,我们应用一个贪婪的非最大抑制(对于每一个独立的类),如果它有一个IOU与一个大于学习阈值的更高的得分选择区域重叠,则拒绝一个区域。
运行时间分析两个特性使检测更有效。首先,所有CNN参数都是跨高类别共享的。其次,与其他常用方法相比,CNN计算出的特征向量是低维的,例如带有视觉文字编码包的空间金字塔。例如,在UVA探测系统中使用的特征比我们的大两个数量级(360k比4k维)。这种共享的结果是,计算区域建议和特性(GPU上的13s/映像或CPU上的53s/映像)所花费的时间在所有类中分摊。
  这个分析表明,R-CNN可以扩展到数千个对象类,而不需要使用类似哈希这样的近似技术。即使有100k个类,在现代多核CPU上得到的矩阵乘法也只需要10秒。这种效率不仅仅是使用区域建议和共享特性的结果。UVA系统,由于它的高维特性,将会慢两个数量级,同时需要134GB的内存来存储100k的线性预测器,而我们的低维特性只需要1.5GB。将R-CNN与Dean等人最近关于使用DPMs和散列进行可伸缩检测的工作进行对比也很有趣。他们报告说,在引入10k干扰类时,每张图的运行时间为5分钟,VOC 2007的地图约为16%。使用我们的方法,10k检测器可以在一分钟内在CPU上运行,因为没有进行近似,所以mAP将保持在59%。

2.3训练

监督训练我们在一个大的辅助数据集(ILSVRC2012分类)上对CNN进行了有区别的预训练,仅使用图像级注释(此数据不提供边框标签)。使用开放源代码的CNN图书馆进行了训练。简而言之,我们的CNN的表现几乎与Krizhevsky等人的不相上下,在ILSVRC2012分类验证集上获得了第1名的错误率,高出2.2个百分点。
特定领域的微调为了使我们的CNN适应新的任务(检测)和新的领域(弯曲建议窗口),我们继续使用仅仅弯曲区域建议的CNN参数的随机梯度下降(SGD)训练。除了将CNN特定于imagenet的1000路分类层替换为随机化(N + 1)的方法分类层(其中N是对象类的数量,加上1作为背景)之外,CNN的体系结构没有改变。对于VOC,N = 20, 对于ILSVRC2013,N = 200。我们将所有IoU≥0.5的区域建议与标签框重叠作为该框类的积极因素,其余为消极因素。我们以0.001的学习率(初始训练前率的1/10)开始SGD,这允许进行微调,同时不影响初始化。在每个随机梯度迭代中,我们统一采样32个正窗口(在所有类上)和96个后台窗口,以构建一个大小为128的小批量。我们倾向于正窗口的抽样,因为与背景相比,它们非常罕见。
对象的类别分类器考虑训练一个二进制分类器来检测车辆。很明显,一个紧密包围汽车的图像区域应该是一个积极的例子。同样,很明显,与汽车无关的背景区域应该是一个负面例子。不太清楚的是如何标记部分与汽车重叠的区域。我们用IoU重叠阈值来解决这个问题,低于这个阈值的区域被定义为负值。重叠阈值0.3是通过一个验证集上{0,0.1,…,0.5}的网格搜索选择的。我们发现仔细选择这个阈值非常重要。将其设置为0.5,如,减少5点mAP。类似地,将其设置为0会使mAP减少4个点。积极的例子被简单地定义为每个类的ground-truth边界框。一旦特征提取和训练标签的应用,我们优化一个线性支持向量机每类。由于训练数据量太大,无法在内存中拟合,我们采用标准的硬负挖掘方法。硬负挖掘收敛快,在实践中地图停止增加后,只有一个单一的通过所有的图像。
  在附录B中,我们讨论了为什么在微调和支持向量机训练中定义正例和反例是不同的。我们还讨论了训练检测支持向量机所涉及的权衡,而不是简单地使用微调后的CNN的最后一层softmax的输出。

2.4在PASCAL VOC 2010-12数据集上的测试结果

  遵循PASCAL VOC的最佳实践,我们在VOC 2007数据集上验证了所有的设计决策和超参数(第3.2节)。对于VOC 2010-12数据集的最终结果,我们对VOC2012训练中的CNN进行了微调,并对VOC2012训练中的SVMs进行了优化。对于两个主要的算法变体,我们只向评估服务器提交了一次测试结果(包含和不包含边界盒回归)。表1显示了VOC 2010的完整结果。我们将我们的方法与四种强基线进行比较,包括SegDPM,它将DPM检测器与语义分割系统的输出相结合,并使用额外的检测器间上下文和图像分类器重新取心。最接近的比较是来自Uijlings等人的UVA系统,因为我们的系统使用相同的区域建议算法。为了对区域进行分类,他们的方法构建了一个四层的空间金字塔,并用密集采样的SIFT、扩展的反对者SIFT和RGB-SIFT描述符对其进行填充,每个矢量用4000字的码本进行量化。采用直方图交核SVM进行分类。与它们的多特征、非线性核支持向量机方法相比,我们在mAP上取得了很大的改进,从35.1%提高到了53.7%,同时也快了很多(2.2节)。我们的方法在VOC 2011/12测试中取得了相似的性能(53.3% mAP)。

2.5在ILSVRC2013上的检测结果

  我们使用与PASCAL VOC相同的系统超参数对200级ILSVRC2013检测数据集运行R-CNN。我们遵循相同的协议,只向ILSVRC2013评估服务器提交了两次测试结果,一次带有和一次没有绑定盒回归。
  图3将R-CNN与2013年ILSVRC竞赛的参赛作品以及赛后的优胜成绩进行了比较。R-CNN获得了31.4%的mAP,远远超过了OverFeat获得的24.3%的第二好结果。为了更好地理解类之间的AP分布,本文还提供了箱形图,表8中给出了一个perclass APs表。大多数参赛作品(OverFeat、NEC-MU、UvA Euvision、Toronto A和UIUC-IFP)都使用了卷积神经网络,这表明CNNs在如何应用于目标检测方面存在显著的细微差别,从而导致了结果的巨大差异。在第4节中,我们对ILSVRC2013检测数据集进行了概述,并详细介绍了我们在运行R-CNN时所做的选择。

发布了45 篇原创文章 · 获赞 50 · 访问量 3539

猜你喜欢

转载自blog.csdn.net/wjinjie/article/details/104348329