论文地址:[1311.2524] Rich feature hierarchies for accurate object detection and semantic segmentation
丰富的特征层次结构,用于精确的对象检测和语义分割
摘要:
在标准的PASCAL VOC 数据集上测量的对象检测性能在过去几年已经稳定。最佳性能的方法通常是一个复杂的混合系统,它通常将多个低级图像特征与高级上下文组合起来。在本文中,我们提出了一个简单和可扩展的检测算法,相对于以前在VOC2012上的最佳结果(实现mAP 53.3%),在平均精度上(mAP)提高了30%以上。我们的方法结合了两个关键的要素:(1) 将高容量的卷积神经网络(CNN)应用到自下而上的候选区域方法中,来定位和分割对象;(2)当标记的训练数据稀缺时,对于一个辅助任务来说,使用一个有监督的预训练好的模型,加上在特定域上进行微调后,会产生一个显著的性能提高。因为我们将候选区域(region proposal)和卷积神经网络(CNN)结合在一起,我们称我们的方法叫R-CNN:带有CNN特征的区域(Region with CNN features),我们也将R-CNN与OverFeat进行了比较,OverFeat是一个最近提出的基于类似CNN架构的滑动窗口检测器。我们发现R-CNN在200类的ILSVRC2013检测数据集上的结果比OverFeat好很多。完整系统的源代码可以从下面获得:http://www.cs.berkeley.edu/˜rbg/rcnn.
1.引言
特征很重要。在过去10年的时间里关于各种视觉识别任务的进展大量基于SIFT和HOG的使用。但是如果我们观察在经典的视觉识别任务(PASCAL VOC目标检测)上的性能表现,通常认为在2010-2012年期间进展缓慢,在这期间只是通过建造一些集成系统和在一些成功方法上做一些小改动,收效甚微。
SIFT和HOG是逐块定向直方图,它是一种表示方法,我们大致可以与V1中的复杂细胞,灵长类动物视觉途径中的第一皮质区域相关联。但我们也知道识别发生在几个阶段的下游,这表明可能有分层的,多阶段的过程用于计算特征,这些特征甚至具有更多的视觉识别信息。
Fukushima的“neocognitron”是一种生物学启发的用于模式识别分层和转移不变的模型,是早期的对于这样一个过程的尝试。然而”neocognitron“缺少一个监督训练算法。Rumelhart et al. [33], LeCun et al. [26]的研究表明通过反向传播的随机梯度下降方法对于训练CNNs是非常有效的,它也是一种”neocognitron“模型的扩展。
CNNs在20世纪90年代被大量使用,但随着SVM的兴起,CNNs又不流行了。在2012年,Krizhevsky等人通过在ILSVRC上显示出了更高的图像分类精度,使得人们重新燃起了对CNN的兴趣。他们的成功源于在120万个标记图像上训练的大的CNN,并结合了一些在LeCun的CNN中使用的一些小技巧(例如,max(x,0)修正的非线性单元和”droupout”正则化)。在ILSVRC 2012研讨会期间,ImageNet结果的意义被激烈的讨论。中心问题可以归纳如下:在ImageNet上的CNN分类结果在多大程度上可以被推广到PASCAL VOC挑战的对象检测结果上?
我们通过弥合图像分类和对象检测之间的差距来回答这个问题。本文首次表明,与基于更简单的HOG类似的特征系统相比,CNN可以在PASCAL VOC上得到更加显著的目标检测表现。
与图像分类不同,检测需要在图像中定位(可能有许多)目标。一种方法是将定位看作回归问题。然而,Szegedy等人的工作,与我们自己的工作同时表明这种策略在实践中可能不好(在VOC2007中,他们提交的mAP是30.5%,而我们的方法实现的是58.5%)。一种替代方案是构建一个滑动窗口检测器。CNN已经以这种方式使用了至少二十年,通常是在限定的对象类别上,例如人脸和行人。为了保持高的空间分辨率,这些CNN通常仅具有两个卷积和池化层。我们也考虑采用一个滑动窗口的方法。然而,在我们的网络中具有5个卷积层的单元在输入图像上具有非常大的接收域(195*195像素)和步幅(32*32像素)。这使得在滑动窗口范例内的精确定位成为一个公开的技术挑战。
相反,我们通过在”使用区域识别“范式中进行计算来解决CNN定位问题,其已经成功应用于目标检测和语义分割。在测试时,我们的方法为输入图像生成大约2000个类别无关的候选区域,使用CNN从每个候选区提取固定长度的特征向量,然后使用特定类别的线性SVM对每个进行区域进行分类。我们使用一种简单技术(仿射图像扭曲-affine image warping)来对每一个候选区域计算一个固定大小的CNN的输入,而不虑彪区域的形状。图1给出了我们方法的概述,并突出了我们的一些结果。由于我们的系统将候选区域和CNN结合在一起,我们将方法缩写成R-CNN:带有CNN特征的区域(Region with CNN features)。
图1:目标检测系统概述我们的系统(1)接收一个输入图像,(2)抽取大约2000个从下到上的候选区域,(3)对于每一个大的候选区域使用一个大的CNN计算特征,然后(4)使用特定类的线性SVM对每一个区域进行分类。R-CNN在PASCAL VOC 2010 上实现了一个平均精度(mAP)53.7%。为了比较,[39]使用相同的候选区域方法实现了35.1%的mAP,但是使用了空间金字塔和视觉词袋方法。
在本文的这个更新版本中,我们通过在200类的ILSVRC2013检测数据集上运行R-CNN,提供了一种对R-CNN和最近提出的OverFeat检测系统的一种直接比较。OverFeat使用滑动窗口CNN进行检测,直到现在也是ILSVRC2013检测中性能最佳的方法。我们显示R-CNN显著优于OverFeat,R-CNN的mAP为31.4%,而OverFeat的mAP是24.3%。
检测中面临的第二个挑战是标记的数据很少,并且当前可用的量不足以训练大的CNN。该问题的常规解决方案是使用无监督进行预训练,随后是进行有监督的微调。本文的第二个主要贡献是显示在大型辅助数据集(ILSVRC)上进行有监督的预训练,然后是在小数据集(PASCAL)上进行特定领域的微调,这种方法在当数据不足时是学习大容量CNN的有效范例。在我们的实验中,用于检测任务的微调将mAP性能提高了8个百分点。微调之后,我们的系统在VOC2010上实现了mAP到54%,而高度调整后的,基于HOG的DPM的mAP为33%。我们也给读者指出了由 Donahue等人做的同时期的工作,他表明Krizhevsky的CNN可以当成一个黑盒使用(不用微调)来进行特征提取,在几个识别任务中产生优秀的表现,包括场景分类,细粒度子分类,和域适配(参考)。
我们的系统也很高效。唯一的特定类的计算也是合理的小的矩阵向量积和贪婪的非极大值抑制。该计算性质来自于所有类别中共享的性质,并且比先前使用的区域特征低两个数量集(参见[39])。
理解我们方法的失败模式也是改善它的关键,所以我们报告了从Hoiem等人[23]的检测分析工具得到的结果。作为这种分析的直接结果,我们证明一个简单的边界框回归方法显著地减少了误定位,这是主要的错误模式。
在讲述技术细节之前,我们注意到,因为R-CNN在区域上操作,所以很自然地将其扩展到了语义分割任务上。通过微小的修改,我们还在PASCAL VOC分割任务上实现了竞争性的结果,在VOC2011测试集上的平均分割精度47.9%。
2.目标检测with R-CNN
我们的目标检测系统包括三个模块。第一个生成类无关的候选区域。这些候选区域定义了可用于我们的检测器的候选检测地集合。第二个模块是一个大的卷积神经网络,它从每个区域中抽取固定长度的特征向量。第三个模块是一些特定类别的线性SVM。在本节中,我们介绍每个模块的设计决策,描述其测试时间使用情况,详细了解其参数的学习方法,并在PASCAL VOC 2010-12和ILSVRC-2013上显示了检测结果。
2.1模块设计
候选区域。各种最近的论文提供了用于生成类无关候选区域的方法。例子包括:objectness[1],选择性搜索[39],类独立的候选对象[14],CPMC,多尺度组合分组,和Ciresan等人通过将CNN应用于规则间隔的方形剪裁来检测有丝分裂细胞,这是候选区域的一个特殊情况。R-CNN对于特定的候选区域方法是不可知的,我们使用选择性搜索来实现与先前的检测工作的控制比较。
特征提取。我们使用Krizhevsky等人描述的CNN的Caffe实现从每个候选区域中提取4096维特征向量。通过将减去平均值的227*227的RGB图像通过5个卷积层和两个全连接层的前身传播来计算特征。我们引导读者参考[24,25]来获得更多的网络架构的细节。
为了计算候选区域的特征,我们必须首先将该区域中的图像转换成与CNN兼容的形式(其体系结构需要固定的227*227像素尺寸的输入)。在我们任意形状区域的许多可能的变换中,我们选择最简单的。忽略了候选区域的大小或宽高比,我们会将其周围的紧密边界框中的所有像素扭曲到所需要的大小。在变形之前,我们扩大紧密边界框,使得在变形大小处,在原始框周围正好有p个像素的扭曲图像上下文(我们使用p=16)。图2展示了扭曲训练区域的随机采样。扭曲的替代方法会在附录A中讨论。
2.2测试时间检测
在测试时,我们在测试图像上运行选择性搜索抽取大约2000个候选区域(在所有的实验中,我们都使用选择性搜索的“快速模型”)。我们扭曲每一个候选图像,并且将它前向传播通过CNN为了去计算特征。然后,对于每个类,我们使用为该类训练的SVM对每个提取的特征向量求得分。给定图像中所有得分区域,我们对每个类独立地应用贪心的非最大值抑制,如果其具有与大于学习阈值较高得分的选择区域的IoU重叠,那么它就会拒绝一个区域。
运行时间分析。两个属性使用检测有效。首先,所有类别共享所有CNN参数。第二,当与其它常见方法(例如具有视觉词袋编码的空间金字塔)相比时,由CNN计算的特征向量是低维的。例如,在UVA检测系统中使用的特征比我们的特征大两个数量级(360K对4K维)。
这种共享的结果就是计算候选区域和特征所花费的时间(在一个GPU上是13s/图像,在CPU上是53s/图像)在所有类上平摊。唯一的特定类的计算是特征和SVM权重和非最大值抑制之间的点积。在实际中,图像的所有点积被分批成单个矩阵-矩阵的乘积。特征矩阵通常为2000*4096,SVM权重矩阵为4096*N,其中N是类的数量。这个分析表明,R-CNN可以扩展到数千个对象类,而不用诉诸于近似技术,如哈希。即使有100K个类,在现代的多核CPU上产生的矩阵乘法也只需要10s。这种效率不仅仅是使用候选区域和共享特征的结果。由于其高维特征,UVA系统将减慢两个数量级,需要134GB的存储器仅仅存储100k的线性预测器,相比之下,我们的低维特征只有1.5GB。
将R-CNN与Dean等人近来使用的DPM和哈希的可扩展的检测方法的工作进行对比也是非常有趣的。他们在VOC 2007上报告了大约16%的mAP,当引入了10k个牵引类时, 每个图像的运行时间为5分钟。用我们的方法,10k个牵引类在一个CPU上大约运行1分钟,因为没有进行近似,mAP将保持在59%(第3.2节)。
2.3训练
监督预训练。我们有区别的在仅使用图像级注释的大型辅助数据集(ILSVRC212分类)上预训练CNN(边界框标签不可用于该数据)。预训练是用开源的Caffe CNN库来执行的。简而言之,我们的CNN几乎匹配了Krizhevsky等人的性能,获得了top-1错误率在ILSVRC2012分类验证集上2.2个百分点的增加。这种差异是由于训练过程的简化。
特征领域的微调。为了使我们的CNN适应新任务(检测)和新领域(扭曲的候选窗口),我们仅使用扭曲的候选区域继续CNN参数的SGD的训练。除了用随机初始化的(N+1)类分类层(其中N是对象类的数目,加上背景的1)来替换CNN的ImageNet特定的1000类分类层之外,CNN架构没有改变。对于VOC来说,N = 20,并且对于ILSVRC2013来说,N = 200。我们将所有候选区域与真实框重叠大于等于0.5的作为该框类的正例,其余的作为负例。我们以0.01的学习率(初始预训练率的1/10)开始SGD,这允许微调进行而不破坏初始化。在每一次的SGD迭代中,我们均匀地采样32个正窗口(在所有类上),和96个背景窗口以构造大小为128的小批量。我们将采样偏向正窗口,因为它们与背景相比非常少。
对象类别分类器。考虑训练一个二分类器去检测小汽车。很清楚,紧紧包围一个汽车的图像应该是一个正例。同样,明显的,与汽车无关的背景区域应该是一个负例。不清楚的是,怎样标注一个部分覆盖一辆汽车的区域。我们使用IoU重叠阈来重新解决这个问题,在这之下的区域就定义为负例。通过在验证集上的{0,0.1,…,0.5}的网络搜索来选择一个重叠阈0.3。我们发现小心地选择这个阈值是非常重要的。将它设置为0.5,正如[39]中一样,能够将mAP减少5个百分点。相似地,将它设置成0的话,能够将mAP减少4个百分点。正例仅仅被定义为每个类的真实边界框。一旦特征被提取出来,训练标签被应用上,我们就对每一个类优化一个线性SVM。由于训练数据太大,不适合内存,我们采用标准的hard negative mining方法。Hard negative mining快速收敛,并且在实际中,所有的图像仅通过一次,mAP就停止增加了。
在附录B中,我们讨论了为什么在微调和SVM训练中正例和负例的定义不同了。我们还讨论了训练检测SVM的权衡,而不是简单地使用来自微调CNN的最终SoftMax层的输出。
2.4在PASCAL VOC 2010-12上的结果
遵循PASCAL VOC 最佳实践[15],我们验证了VOC 2007数据集(第3.2节)中所有的设计决策和超参数。对于在VOC 2010-12数据集上的最后的结果,我们微调了VOC 2012训练上的CNN并且在VOC 2012 训练验证集上优化了我们的检测SVM。我们对于两个主要算法变量(有和没有边界回归)中的每一个都只向评估服务器提交测试结果一次。
表1展示了在VOC 2010上的完整结果。我们将我们的方法与4个强基线进行了对比,包括SegDPM,其将DPM检测器与语义分割系统的输出结合在一起,并且使用了额外的检测器上下文和图像分类器重新评分。最杰出的比较是来自Uijlings等人的UVA系统,因为我们的系统也使用了相同的候选区域算法。为了对区域进行分类,他们的方法构建了一个4个级别的空间金字塔,并且用密集采样的SIFT,扩展OpponentSIFT,和RGBSIFT描述符来填充他们,每个矢量都用4000个字的编码本来进行量化。使用一个直方图相交核的SVM进行分类。与它们的多特征,非线性核SVM方法相比,我们在mAP上实现了一个大的改进,从35.1%到 53.7% mAP,同时也快得多(第2.2节)。我们的方法在VOC 2011/12测试中达到了相似的性能(53.3%的mAP)。
2.5. 在ILSVRC2013检测上的结果
我们在200类ILSVRC2013检测数据集上运行R-CNN,使用于PASCAL VOC 上相同的系统超参数。我们遵循相同的规则,就是将测试结果提交给ILSVRC2013评估服务器仅仅俩次,一次带有边界框回归,另一次不带。图3比较了R-CNN与ILSVRC2013竞赛中的条目以及竞赛后的OverFeat结果。R-CNN实现了31.4%的mAP,显著超过了OverFeat的24.3%的次优结果。为了给出对类别分布的一个感觉,呈现了一个盒图,并且在论文的结尾处的表8里出现了类别AP的表格。大多数的竞赛提交(OverFeat, NEC-MU, UvAEuvision, Toronto A, and UIUC- IFP)都使用了卷积神经网络,指示在CNN如何应用于对象检测方面存在显著差异,导致了极大变化的结果。在第4节,我们概述了ILSVRC2013检测数据集,并提供了在运行R-CNN时我们做出的选择的详细信息。
图3:(左)在ILSVRC2013检测测试数据集上的mAP。带*的方法都是使用了外部训练数据(所有情况下都是从ILSVRC分类数据集中的图像和标签)。(右)每种方法的200个平均精度值的箱线图。未显示竞争后的OverFeat结果的框图,因为每类的APs尚不可用(R-CNN的每类AP在表8中,也包含在上传到arXiv.org的技术报告源中;见R-CNN- ILSVRC2013-APs.txt)。红线标示中值AP,箱底和箱顶是25和75百分位数。虚线延伸到每种方法的最小和最大的AP值。每个AP被绘制成虚线上的一个绿点(最好用数字缩放)。
3.可视化,消融和错误模式
3.1可视化学习的特征
第一层的过滤器可以直接被可视化并且很容易理解。它们捕获有方向的边和相对的颜色。理解下面的层次是更具有挑战性的。Zeiler and Fergus在[42]中提出了一种视觉上有吸引力的反卷积方法。我们提出了一个简单(和互补的)非参数的方法,直接显示网络学习的内容。
这个想法就是在网络中单独出一个特定的单元(特征),并且使用它就好像它本身就是一个对象检测器。也就是说,我们在大量提出的候选区域(大约1千万)计算单元的activations,将候选区域从高的activation到低的activation进行排序,执行非最大值抑制,然后显示最高评分区域。我们的方法让选择的单元“说出自己”通过精确显示它所触发的输入。我们避免平均,以便看到不同的视觉模式,并且可以获得由单元计算的不变性的洞察。
我们从第5个池化层观察单元,其是网络第5和最后卷积层的最大池化的输出。第5个池化层的特征映射是6∗6∗255=92166∗6∗255=9216维。忽略边界的影响,每一个第5层的池化单元在原始的227 * 227个像素输入上都有一个195 * 195像素的感受野。一个中心的pool5pool5的单元具有几乎全局的视野,而一个靠近边缘的单元具有更小的,剪裁的支持。
图4中的每一行显示了我们在VOC 2007 trainval上微调的CNN的一个pool5pool5单元的前16个activation。256个功能独特的单元中的六个被可视化(附录D包括更多)。选择这些单元来显示网络学习的代表性样本。在第二行中,我们看到在狗脸和点阵上触发的单元。对应于第三行的单元是一个红色斑点检测器。还有用于人脸的检测器和更多抽象的图案,例如文本和带有窗口的三角形结构。网络似乎学习将少量的调整的类特征与形状,纹理,和材料属性的分布式表式组合在一起的表示。随后的全连接层fc6fc6具有对这些丰富特征的大量组合进行建模的能力。
3.2消融研究
性能逐层,无需微调。为了理解哪一层对于检的测性能是重要的,我们对CNN的最后三层的每一个都在VOC 2007数据集上分析了结果。层在3.1节中被简单地描述。最后两层总结如下。对于是全连接的。为了计算特征,它将4096×9216权重矩阵乘以poo特征映射(重新形成一个9216维的向量),然后添加上偏移向量。这个中间的向量是被逐元素half-wave修正的(x←max(0,x)x←max(0,x))。
是网络的最后一层。它通过将由计算的特征乘以4096 × 4096的权重矩阵,并且类似地加上一个偏移向量并且应用half-wave修正来实现的。
我们首先从不在PASCAL上进行微调的CNN上查看结果,即所有的CNN的参数仅在ILSVRC2012上进行预训练。逐层分析性能(表2第1-3行)提示了的特征比的特征更差。这意味着29%,或者大约1680万个CNN参数可以被去除而不降mAP。更令人惊讶的是,删除和f产生相当好的结果,即使计算特征仅使用了CNN参数的6%。大多数CNN的表示能力来自于其卷积层,而不是来自于大得多的密集连接层。该发现表明在通过仅使用CNN的卷积层计算任意大小的图像的HOG意义上的密集特征图中的潜在效用。这种表示将允许在特征的顶部上使用滑动窗检测器(包括DPM)进行实验。
带有微调的逐层的性能。在VOC2007 trainval上调整了我们的CNN的参数之后,我们现在再来看一下结果。改善是显著的(表2中的4-6行):微调将mAP提高了8.0个百分点至54.2%。对于和,来自微调的提升远大于,这表明从ImageNet中学习的的特征是一般性的,并且大部分的改进是从学习特定领域的非线性分类器获得的。
对比于最近的特征学习方法。最近有相对较少的特征学习方法在PASCAL VOC检测上进行尝试。我们看看基于可变形部件模型的两个最近的方法。作为参考,我们也包括了标准的基于HOG的DPM的结果。
第一种DPM特征学习方法DPM ST[28]用“草图标记”概率的直方图来增强HOG特征。直观来说,一个草图标记就是穿过图像块中心的轮廓的紧密分布。草图标记概率在每个像素处由随机森林计算,该森林被训练成将35*35像素块分类成150个草图标志或背景中的一个。第二种方法,DPM HSC[31],用稀疏编码(HSC)的直方图代替HOG。为了计算HSC,使用100个7*7像素(灰度)原子的学习字典来解决每个像素处的稀疏码激活。所得激活以三种方式(全半波和两半波)来进行修正,空间池化,单元l2l2正则化,然后是功率变换(x←sign(x)|x|αx←sign(x)|x|α)。
所有的R-CNN变体都大大超过三个DPM基线(表2中的8-10行),包括使用特征学习的两个。与仅使用HOG特征的最新版的DPM相比,我们的mAP高出了20个百分点:54.2% 对 33.7%-相对改善了61%。HOG草图标记的结合超过了HOG自己2.5个mAP,而HSC改进超过HOG4个mAP(当内部与其私有DPM基线相比时-都使用非公开的实现的DPM,其比开源版本的性能要差一点)。这些方法各自实现mAP为29.1%和34.3%。
3.3检测错误分析
我们应用了Hoiem等人的优秀的检测分析工具,为了揭示我们方法的错误模式,了解微调如何改变他们,以及看看我们的错误模式与DPM的比较。分析工具的完整总结超出了本文的范围,我们鼓励读者咨询[23]了解一些更精细的细节(例如“归一化AP”)。由于分析最好在相关图的上下文中才会更受吸引,所以我们在图5和图6的标题内给出了讨论。
3.4边界框回归
基于错误分析,我们实现了一个简单的用于减少定位错误的方法。受在DPM中使用的边界框回归的启发,在给定了一个选择性搜索候选区域的pool5pool5特征的情况下,我们训练了一个线性回归模型用来预测一个新的检测窗口。完整细节在附录C中给出。表1,表2和表5的结果表明这种简单的方法改善了大量错误定位的检测,将mAP提高了3至4个点。
3.5定性结果
在文章最后的图8和图9上展示了ILSVRC2013上的定性的检测结果。每一个图像都是从数据集上随机抽取的,并且在所有检测器上精度大于0.5的检测都展示出来了。注意到,这些不是策划的,并且在行动上给了检测器一个现实印象。更加定性的结果展示在图10和图11中,并且这些被策划过。我们选择的每一张图片,都是因为它包含了有趣的,令人惊讶的,或令人欣喜的结果。在这里,同样的,所有精度大于0.5的检测都展示出来的。
4. ILSVRC2013检测数据集
在第2节中,我们展示了在ILSVRC2013检测数据集上的结果。这个数据集和PASCAL VOC数据集有很少是一样的,需要选择怎样去用它。因为这些决定是不容易的,我们在本节中讨论。
4.1数据集综述
ILSVRC2013数据集被划分成3个集合:训练集(395,918),验证集(20,121),和测试集(40,152),每一个集合的图像的数量都在括号中。val和test的拆分是从相同的图像分布中绘制的。这些图像是类似于场景的,并且在复杂度上与PASCAL VOC的图像相似(物体的数量,混乱的数量,姿势的变化等等)。val和test拆分具有详细的注解,意味着在每个图像中,所有200类的所有实例都用边界框标记。相反,训练集是从ILSVRC2013分类图像分布中提取到的。这些图像具有更多变化的复杂性,单个居中物体的图像较多。不像val和test,训练图像没有完全标注(由于它们的数量较多)。在任意给定的图像中,这200类的实例有可能标注了也有可能没有标注。除了这些图像集合,每一个类都有一个额外的负例图像的集合。手动检查这些负例图像,以验证它们不包含他们关联类的任何实例。负例图像集合在本工作中没有被用到。关于ILSVRC是怎么收集和标注的更多的信息可以在[11,36]中查看到。
这些拆分的本质为训练R-CNN提供了大量的选择。训练图像不能用于hard negative mining,因为标注是不充分的。负例应该来自于哪里呢?训练图像具有与val和test不同的统计量。训练图像应该被使用吗?如果是,以什么程度呢?虽然我们没有完全评估大量的选择,基于以前的经验,我们提出了似乎是最明显的路径。
我们的一般策略就是大量依赖于val集,并且使用训练图像中的一些作为一个正例的辅助源。为了将val用于训练和验证,我们将它大致分成相等的大小“”和””集合。因为在val中一些类具有非常少的样本(最小的只有31个,并且一半的少于110个),重要的是产生大致类均衡的分区。为此,产生了大量的候选拆分并且选择了最大相关类不平衡最小的拆分。通过使用它们的类计数作为特征来对val图像进行聚类,然后进行可以改进分割平衡的随机局部搜索来生成每个候选分割。这里使用的特定分裂具有约11%的最大相对不平衡和4%的中值相对不平衡。和的分割和用于生成他们的代码将会被公开,以允许其它研究人员比较其在本报告中使用的val分割的方法。
4.2候选区域
我们遵循用于在PASCAL上检测的相同的候选区域的方法。对,和test上的每一个图像(但不是训练中的图像),以“快速模式”运行选择性搜索。需要一个小的修改来处理选择性搜索不是尺度不变性的事实,因此产生的候选区域的数量取决于图像分辨率。ILSVRC图像大小范围从很小到几个几兆像素,因此我们在运行选择性搜索之前将每个图像调整为固定宽度(500pixels)。在val上,选择性搜索在每幅图像上得到了平均2403个候选区域,具有所有的真实的边界框的91.6%的召回率(0.5的IoU的阈值)。这个召回率明显低于在PASCAL上面的,在PASCAL上大约是98%,表明在候选区域阶段还有很大的提升。
4.3训练数据
对于训练数据,我们形成了一组图像和框,其包括来自的所有选择性搜索和真实框,以及来自训练的每个类别的多达N个真实框(如果在训练中,一个类有少于N个真实框,然后这些我们就都要了)。我们将会称这个图像和框的数据集为。在消融研究中,我们在上为N∈0,500,1000N∈0,500,1000展示了mAP(4.5节)。
在R-CNN中在三个过程中需要训练数据:(1)CNN微调,(2)检测器SVM的训练,和(3)边界框回归训练。CNN微调使用与用于PASCAL VOC上的完全相同的配置,在上运行了50k的SGD迭代。使用Caffe在在单个NVIDIA Tesla K20上花费了13个小时进行微调。对于SVM训练,来自的所有真实值被用于它们各自类的正例。对从随机选择的5000个图像的子集进行hard negative mining。最初的实验表明,对比于一个5000个图像的子集(大约一半),从所有的上挖掘负例,仅仅造成了在mAP上0.5个百分点的下降,然而将SVM的训练时间减少了一半。没有从训练集取得负例,因为标注不详尽。未使用额外的验证的负例图像的集合。边界框回归是在上训练的。
4.4验证和评估
在提交结果到评估服务器之前,我们使用上述训练数据验证了数据使用选择以及在集合上的微调和边界框回归的效果。所有的系统超参数都与PASCAL中使用的值相同(例如,SVM C超参数,在区域扭曲中的填充,NMS阈值,边界框回归超参数)。毫无疑问,一些超参数的选择对于ILSVRC来说是次优,然而这项工作的目标是在ILSVRC上产生初步的R-CNN结果,而没有广泛的数据集调整。在上选择了最好的选择之后,我们提交给了ILSVRC2013评估服务器两个结果文件。第一个是没有边界框回归的,第二个是带有边界框回归的。对于这些提交,我们扩展了SVM和边界框回归训练集去分别使用和val。我们使用在微调的CNN来避免重新运行微调和特征计算。
4.5消融研究
表3显示了不同数量的训练数据,微调和边界框回归的效果的消融研究。第一个观察到的是,在上的mAP和在测试上的mAP匹配的非常接近。这使得我们相信在上的mAP是测试集性能的一个很好的指标。第一个结果,20.9%,是R-CNN使用在ILSVRC2012分类数据集上预训练的CNN实现的(没有微调),并且允许访问中的少量训练集(回想在中的一半的类具有15到55个实例)。将训练集扩展到将性能提高到24.1%,在N=500和N=1000之间基本没有差别。使用仅仅来自中的样例微调CNN给出了26.5%的适度改进,然而由于少量的正训练示例,可能存在着显著的过拟合。将微调集扩展到,从而从训练集中每类增加了1000个正例,效果显著,将mAP提升到29.7%。边界框回归将结果提高到31.0%,这是在PASCAL中观察到的相对较小的增益。
4.6. 与OverFeat的关系
在R-CNN和OverFeat之间有一个有趣的关系:OverFeat可以看成是R-CNN的一个特殊的例子。如果要用正规的正方形区域的多尺度金字塔替换选择搜索候选区域,并且将每类的边界框回归改成单一的边界框回归,则系统则会非常类似(以某些潜在的重要的不同为模,如他们是怎么训练的:CNN检测微调,使用SVM等)。值得注意的是OverFeat比R-CNN具有显著的速度优势:基于[34]引用的每个图像2秒的数字,它快了大约9倍。该速度来自于OverFeat的滑动窗口(即候选区域)在图像不级别不扭曲的事实,因此在重叠窗口之间可以容易的共享计算。通过在任意大小的输入上以卷积的方式运行整个网络来实现共享。加快R-CNN应该可以以各种方法,并且作为未来的工作。
5. 语义分割
区域分类是用于语义分割的标准技术,允许我们容易地将R-CNN应用于PASCAL VOC 分割挑战中。为了促进与当前领先的语义分割系统(称为二阶池化)的直接比较[4],我们研究了他们的开源框架。使用CPMC为每个图像产生了150个候选区域,然后使用支持向量回归(SVR)为每个类预测每个区域的质量。他们的方法的高性能是由于CPMC区域的质量和多个特征类型的强大的二级池化(丰富的SIFT和LBP变体)。我们也注意到Farabet等人使用一个CNN作为多尺度每像素分类器证明了良好的结果。我们遵循[2,4]并扩展PASCAL分割训练集以包括由Hariharan等人提供的额外注释。设计决策和超参数在VOC 2011验证集上进行了交叉验证。最终测试结果仅评估一次。
用于分割的CNN特征。我们评估了三种计算CPMC区域特征的策略,所有的这些策略都是通过将该区域周围的矩形窗口扭曲成227*227来开始的。第一个策略(full)忽略了区域的形状,并且直接在扭曲的窗口上计算CNN特征,正如我们为检测做的一样。然而,这些特征忽略了区域的非矩形形状。两个区域可能有非常相似的边界框,然而几乎没有重叠。因此,第二种策略(fg)仅仅在区域的前景掩码上计算CNN特征。我们用平均输入替换背景,使得背景区域在减去平均值后为零。第三种策略(full+fg)仅仅简单地连接了full和fg特征;我们的实验结果验证了他们的互补性。
在VOC 2011上的结果。表4显示了我们对VOC 2011验证集与相比的结果的总结。(完整的每个类别的结果请看附录E)在每个特征计算策略中,总是胜过,并且以下的讨论都涉及的特征。fg策略稍稍优于full策略,表明掩蔽区域形状提供更强的信号,匹配我们的直觉。然而,full+fg策略实现了47.9%的平均准确度,我们最好的结果是4.2%的边界(也适度超过了),表明即使给定fg特征,由full特征提供的上下文也是有高度信息的。
在表5中,我们展示了在VOC 2011测试集上的结果,将我们的表现最好的方法,fc6(full+fg)fc6(full+fg),与两个强基准线进行了对比。我们的方法在21个类别中的11个达到最高的分割精度,并且达到了最高的总体分割精度47.9%,在所有类别中平均得来(但是在任何合理的误差范围内可能与O2PO2P结果相关)。通过微调可能实现更好的性能。
6. 结论
在最近几年,目标检测性能停滞不前。最好的系统是将多个低级图像特征与来自于目标检测器和场景分类器的高级上下文组合在一起的复杂集合。本文提出了一种简单的和可扩展的对象检测算法,与PASCAL VOC2012上的最佳以前的结果相比提供了30%的相对改进。
我们通过两个见解实现了这一表现。第一个是将高容量的卷积神经网络应用于自下而上的候选区域以便定位和分割对象。第二个就是当标记的训练数据不足时训练大的CNN的范例。我们表明,对于一个具有丰富数据集(图像分类)的辅助任务,带监督的预训练网络,并且为数据稀缺的(检测)的目标任务微调网络是非常有效的。我们推测,“监督的预训练/特定领域的微调”范例将对于各种数据稀缺的视觉问题都非常有效。
我们最后指出,我们通过使用计算机视觉和深度学习的经典工具(从底向上的候选区域和卷积神经网络)的组合实现了这些结果是非常重要的。这两者不是反对科学家探究的线,而是自然的和不可避免的伙伴。