我们提出了一种简单且可扩展的检测算法,相对于之前对VOC2012的最佳结果,它将平均平均精度(mAP)提高了30%以上——实现了53.3%的mAP。我们的方法结合了两个关键的见解:(1)可以应用高容量卷积神经网络(CNN)自底而上的地区建议为了定位和分段对象和
(2)标记训练数据稀缺,监督预训练辅助任务,其次是特定领域的微调,产生显著的性能提升。由于我们将区域建议与CNN结合起来,我们称我们的方法为R-CNN:具有CNN特征的区域。
在规范的pascalVOC数据集上测量的对象检测性能在过去几年中已经趋于稳定。性能最好的方法是复杂的集成系统,它通常将多个低级图像特征与高级上下文结合起来。在本文中,我们提出了一种简单且可扩展的检测算法,相对于之前对VOC2012的最佳结果,它将平均平均精度(mAP)提高了30%以上——实现了53.3%的mAP。我们的方法结合了两个关键的见解:(1)可以应用高容量卷积神经网络(CNNs)自底而上的地区建议为了定位和分段对象和(2)标记训练数据稀缺,监督预训练辅助任务,其次是特定领域的微调,产生显著的性能提升。由于我们将区域建议与CNN结合起来,我们称我们的方法为R-CNN:具有CNN特征的区域。我们还将R-CNN与OverFeat进行了比较,后者是最近提出的一种基于类似CNN架构的滑动窗口检测器。我们发现R-CNN在200类ILSVRC2013检测数据集上的性能大大优于OverFeat。
特征很重要。过去十年各种视觉识别任务的进展很大程度上是基于SIFT[29]和HOG[7]的使用。但是,如果我们看看典型视觉识别任务,PASCAL VOC 目标检测[15]的表现,人们普遍认为,2010-2012年进展缓慢,通过构建集成系统和使用成功的小方法获得了很小的收益。
IFT和HOG是块状定向直方图,我们可以大致与V1中的复杂细胞联系起来,V1是灵长类动物视觉通路中的第一个皮质区域。但我们也知道,识别发生在下游的几个阶段,这表明可能存在层次的、多阶段的计算特征的过程,这对视觉识别的信息更大。
Fukushima的“新认知”[19]是一种受生物启发的模式识别层次和移位不变模型,是这一过程的早期尝试。然而,新认知缺乏监督训练算法。在Rumelhar等人[33]的基础上,LeCun等人[26]表明,通过反向传播的随机梯度下降对于训练卷积神经网络(CNNs)是有效的,这是一类扩展新认知神经网络的模型。
cnn在20世纪90年代被大量使用(例如,[27]),但后来随着支持向量机的兴起而过时了。2012年,Krizhevsky等人[25]在ImageNet大规模视觉识别挑战(ILSVRC)[9,10]上显示出更高的图像分类精度,重新点燃了人们对cnn的兴趣。他们的成功源于在120万张标记图像上训练一个大型CNN,以及在LeCun的CNN上的一些扭曲(例如,max(x,0)校正非线性和“dropout”正则化)。
在2012年的ILSVRC研讨会上,人们对ImageNet的结果的重要性进行了激烈的辩论。中心问题可以提炼为以下几点:ImageNet上的CNN分类结果在多大程度上可以推广到PASCAL VOC挑战上的目标检测结果?
我们通过缩小图像分类和目标检测之间的差距来回答这个问题。本文首次证明,与基于更简单的类似HOG特征的系统相比,CNN可以显著提高对ASCAL VOC的目标检测性能。为了实现这一结果,我们关注了两个问题:用深度网络定位对象和训练一个只有少量注释检测数据的高容量模型。
与图像分类不同,检测需要在图像中定位(可能有很多)对象。一种方法将定位框架定为一个回归问题。然而,Szegedy等人[38]的研究与我们自己的研究同时表明,这种策略在实践中可能表现不佳(他们报告的VOC2007的mAP为30.5%,而我们的方法获得的mAP为58.5%)。另一种选择是建立一个滑动窗口检测器。cnn已经以这种方式使用了至少20年,通常是在受约束的对象类别上,如人脸[32,40]和行人[35]。为了保持高空间分辨率,这些cnn通常只有两个卷积层和池化层。我们还考虑了采用滑动窗口的方法。然而,在我们的网络的高处,有5个卷积层,有非常大的接受域(195×195像素)和步幅(32×32像素),这使得滑动窗口范式中的精确定位成为一个开放的技术挑战。
相反,我们通过在“区域识别”范式[21]内操作来解决CNN定位问题,该范式在目标检测[39]和语义分割[5]中都很成功。在测试时,我们的方法为输入图像生成大约2000个类别独立的区域建议,使用CNN从每个建议中提取一个固定长度的特征向量,然后用类别特定的线性支持向量机对每个区域进行分类。我们使用一种简单的技术(仿射图像扭曲)来计算一个固定大小的CNN输入,而不考虑区域的形状。图1展示了我们的方法的概述,并突出显示了我们的一些结果。由于我们的系统结合了区域建议和CNN,我们称方法为R-CNN:具有CNN特征的区域。
在本文的更新版本中,我们通过在200类ILSVRC2013检测数据集上运行R-CNN,对R-CNN和最近提出的OverFeat[34]检测系统进行了头对头的比较。OverFeat使用滑动窗口CNN进行检测,到目前为止是ILSVRC2013检测中性能最好的方法。我们发现R-CNN的性能显著优于OverFeat,mAP分别为31.4%和24.3%。
检测面临的第二个挑战是,标记数据稀缺,目前可用的数量不足以训练一个大型CNN。解决这个问题的传统解决方案是使用无监督的预训练,然后进行有监督的微调(例如,[35])。本文的第二个主要贡献是表明,在大型辅助数据集(ILSVRC)上进行监督预训练,然后在小数据集(pascal)上进行领域特定的微调,是在数据稀缺时学习高容量cnn的有效范例。在我们的实验中,对检测的微调提高了mAP性能8个百分点。经过微调后,我们的系统在VOC2010上实现了54%的mAP,而在高调谐的、基于῏的可变形部件模型(DPM)[17,20]上的mAP为33%。我们还向读者指出了Donahue等人[12]的同期工作,他们表明克里热夫斯基的CNN可以(不需要微调)作为黑盒特征提取器,在场景分类、细粒度子分类和领域适应等多个识别任务上产生出色的性能。
我们的系统也相当有效。唯一特定于类的计算是一个相当小的矩阵向量乘积和贪婪的非最大抑制。这种计算属性来自于在所有类别中共享的特征,它们也比以前使用的区域特征低维两个数量级(cf。[39]).
理解我们的方法的故障模式对改进它也至关重要,因此我们报告了来自Hoiem等人[23]的检测分析工具的结果。作为这个分析的一个直接结果,我们证明了一个简单的边界盒回归方法显著减少了错误定位,这是主要的错误模式。
在开发技术细节之前,我们注意到,因为R-CNN操作于区域,所以很自然地将其扩展到语义分割的任务。经过微小的修改,我们在pascalVOC分割任务上也取得了有竞争的结果,在VOC2011测试集上的平均分割准确率为47.9%。
我们的目标检测系统由三个模块组成。第一个方案是产生与类别独立的区域提案。这些建议定义了我们的检测器可用的候选检测集。第二个模块是一个大型的卷积神经网络,它从每个区域中提取一个固定长度的特征向量。第三个模块是一组特定于类的线性支持向量机。在本节中,我们将介绍每个模块的设计决策,描述它们的测试时间使用情况,详细说明如何学习它们的参数,并显示对pascalVOC2010-12和ILSVRC2013的检测结果。
区域建议.最近的各种论文提供了产生类别独立的区域建议的方法。例子包括:objectness [1], selective search [39], category-independent object proposals [14], constrained parametric min-cuts (CPMC) [5], multi-scale combinatorial grouping [3], and Cires¸an et al. [6], 他通过将CNN应用于有规律间隔的正方形作物来检测有丝分裂细胞,这是区域建议的一个特殊情况。虽然R-CNN对特定区域的建议方法是不可知的,但我们使用selective search来与之前的检测工作(例如,[39,41])进行控制比较。
特征抽取.我们使用克里日耶夫斯基等人[25]描述的CNN的Caffe[24]实现,从每个区域提案中提取一个4096维的特征向量。特征的计算是227×227RGB图像通过5个卷积层和2个全连接层的正向传播。我们建议读者参考[24,25]来了解更多的网络架构细节。
为了计算一个区域提议的特征,我们必须首先将该区域中的图像数据转换为与CNN兼容的形式(它的架构需要输入一个固定的227×227像素大小)。在我们的任意形状区域的许多可能的转换中,我们选择了最简单的转换。无论候选区域的大小或长宽比如何,我们都会在其周围的一个紧密的边界框中扭曲所有像素到所需的大小。在扭曲之前,我们扩张了紧密的边界框,以便在扭曲的大小下,在原始盒子周围恰好有p个像素的扭曲图像上下文(我们使用p=16)。图2显示了对扭曲训练区域的随机抽样。在附录A中讨论了翘曲的替代方案。
在测试时,我们对测试图像进行选择性搜索,提取出大约2000个区域建议(我们在所有实验中都使用选择性搜索的“快速模式”)。我们扭曲每个建议框为227*227,并通过CNN向前传播它,以计算特征。然后,对于每个类,我们使用为该类训练的SVM对每个提取的特征向量进行评分。给定图像中所有得分区域,我们应用一个贪婪的非最大抑制(对于每个类独立),如果一个区域有一个交叉过联合(IoU)重叠,得分大于一个学习阈值,则拒绝该区域。
运行时分析.有两个特性使检测更有效。首先,所有的CNN参数都在所有类别中共享。其次,与其他常见的方法相比,CNN计算的特征向量与其他常见的方法相比是低维的,比如带有视觉-袋字编码的空间金字塔。例如,在UVA检测系统[39]中使用的特征比我们的特征大两个数量级(360k vs 4k维)。
这种共享的结果是,计算区域建议和特征(GPU上13s/图像或CPU上53s/图像)所花费的时间被分摊到所有类中。唯一特定于类的计算是特征和SVM权值之间的点积和非最大抑制。在实践中,一个图像的所有点积都被分割成一个单一的矩阵-矩阵积。特征矩阵通常为2000×4096,SVM权重矩阵为4096×N,其中N是类的数量。
监督预培训.我们仅使用图像级注释在一个大型辅助数据集(ILSVRC2012分类)上对CNN进行了区别性的预训练(该数据的边界框标签不可用)。使用开源的CaffeCNN库[24]进行预训练。简而言之,我们的CNN几乎与Krizhevest等人[25]的性能相当,在ILSVRC2012分类验证集上获得了最高1的错误率高2.2个百分点。这种差异是由于培训过程中的简化。
域特定的微调.为了使我们的CNN适应新的任务(检测)和新的域(扭曲的建议窗口),我们继续只使用扭曲的区域建议对CNN参数进行随机梯度下降(SGD)训练。除了用随机初始化(N+1)类的分类层替换CNN的1000类分类层(其中N是对象类的数量,加上1作为背景)之外,CNN架构没有改变。对于VOC,N=20和ILSVRC2013,N=200。
我们将所有具有≥0.5IoU与地面真值框重叠的区域建议视为该框类的正的,其余的视为否定。我们以0.001的学习率(初始预训练率的1/10)开始SGD,这允许微调在不阻碍初始化的情况下取得进展。在每次SGD迭代中,我们均匀地采样32个正窗口(超过所有类)和96个背景窗口,以构建一个大小为128的小批量。我们将抽样偏向于正窗口,因为与背景相比,它们极其罕见。
对象类别分类器.考虑训练一个二值分类器来检测汽车。很明显,一个紧密地包裹着汽车的图像区域应该是一个积极的例子。同样,很明显,一个与汽车无关的背景区域应该是一个消极的例子。不太清楚的是如何标记一个与汽车部分重叠的区域。我们用IoU重叠阈值来解决这个问题,低于这个阈值区域被定义为负。重叠阈值,0.3,是通过在一个验证集上对{0,0.1,……,0.5}进行一个以上的网格搜索来选择的。我们发现,仔细地选择这个阈值是很重要的。将其设置为0.5,与在[39]中一样,会使mAP降低5%。同样地,将其设置为0会使mAP降低4%。积极的例子被简单地定义为每个类的基本-真实的边界框
一旦特征被提取并应用训练标签,我们就会为每个类优化一个线性SVM。由于训练数据太大,无法容纳内存,我们采用了标准的硬负挖掘方法[17,37]。硬负挖掘收敛迅速,在实际中,只经过所有图像就停止增加.
在附录B中,我们将讨论为什么在微调和SVM训练中对正和负例子的定义不同。我们还讨论了在训练检测支持向量机中所涉及的权衡,而不是简单地使用来自微调CNN的最终softmax层的输出。
根据PASCAL VOC最佳实践[15],我们验证了VOC2007数据集上的所有设计决策和超参数(第3.2节)。对于VOC2010-12数据集的最终结果,我们对VOC2012 训练的CNN进行了微调,并优化了VOC2012 训练的的支持向量机检测。我们对两个主要算法变量中的每一个只向评估服务器提交了一次测试结果(有和没有边界框回归)。
表1显示了VOC2010的完整结果。我们将我们的方法与四个强基线进行了比较,包括SegDPM[18],它将DPM检测器与语义分割系统[4]的输出结合起来,并使用额外的检测器间上下文和图像分类器重新评分。最接近的比较是来自Uijlings等人[39]的UVA系统,因为我们的系统使用相同的区域建议算法。为了对区域进行分类,他们的方法构建了一个四级空间金字塔,并使用密集采样的SIFT、扩展对手SIFT和rgbsift描述符填充它,每个向量用4000字的码本进行量化。使用直方图相交SVM核进行分类。与他们的多特征、非线性核SVM方法相比,我们在mAP方面取得了很大的改进,从35.1%提高到53.7%,同时也要快得多(第2.2节)。我们的方法在VOC2011/12测试中也取得了类似的性能(53.3%的mAP)。
我们在200类ILSVRC2013检测数据集上运行R-CNN,使用与我们使用的pascal VOC相同的系统超参数。我们遵循相同的协议,只向ILSVRC2013评估服务器提交测试结果两次,一次有,一次没有边界框回归。
图3将R-CNN与2013年ILSVRC比赛的参赛作品和比赛后的比赛结果[34]进行了比较。R-CNN的mAP值为31.4%,明显高于OverFeat的24.3%的第二好结果。为了了解AP在类上的分布,还给出了方框图,并在表8的末尾显示了一个对类AP表。大多数竞争提交(OverFeat、NEC-MU、UvAEuvision、Toronto A和UIUC-IFP)使用卷积神经网络,这表明cnn如何应用于目标检测存在显著的细微差别,导致了很大不同的结果。
在第4节中,我们概述了ILSVRC2013检测数据集,并提供了关于我们在其上运行R-CNN时所做的选择的细节。
第一层过滤器可以直接可视化,并且是易于理解的[25]。它们捕捉到定向的边缘和对手的颜色。理解后续的图层更具挑战性。齐勒和费格斯在[42]中提出了一种视觉上诱人的反卷积方法。我们提出了一个简单的(和互补的)非参数方法,直接显示网络学到了什么。
这个想法是在网络中挑出一个特定的单元(特征),并把它本身作为一个对象检测器一样使用它。也就是说,我们在一组被保留的区域提案(约1000万)上计算单元的激活情况,对提案从最高到最低的激活进行排序,执行非最大抑制,然后显示得分最高的区域。我们的方法让选定的单元“为自己说话”。我们避免平均,以看到不同的视觉模式,并获得洞察,由单位计算的不变性。
我们从层池5中可视化单元,这是网络的第五个层也是最后一个卷积层的最大池输出。池5特征图的维度为是6×6×256=9216维。忽略边界效应,在原始的227×227像素输入中,每个池5单元有一个195×195像素的接受域。一个中央池5单元有一个几乎全局的视野,而一个靠近边缘的单元有一个更小的,修剪的支撑。
图4中的每一行显示了我们在VOC2007 tranval上微调的CNN中池5单元的前16个激活。256个功能独特的单元中有6个被可视化(附录D包括更多)。这些单元被选择是为了显示网络学习内容的代表性样本。在第二行,我们看到一个单位射击狗脸和点阵列。与第三行对应的单位是一个红色的斑点检测器。还有人脸探测器和更抽象的模式,如文本和带有窗口的三角形结构。该网络似乎学习了一种表示,它结合了少量的类调整特性以及形状、纹理、颜色和材料属性的分布式表示。随后的全连接层fc6能够建模这些丰富特征的大量组合集。
逐层执行性能,无需进行微调.为了了解哪些层对检测性能至关重要,我们分析了CNN在VOC2007数据集上的最后三层的结果。第3.1节简要描述了层池5。The fifinal two layers are summarized below.
图层fc6已完全连接到池5。为了计算特征,它将一个4096×9216权重矩阵乘以池5特征图(重塑为一个9216维向量),然后添加一个偏差向量。这个中间向量是基于分量的半波整流(x←max(0,x))。
fc7层是网络的最后一层。它是通过将fc6计算的特征乘以一个4096×4096权重矩阵,并类似地添加一个偏差向量并应用半波校流来实现的。
我们首先查看来自CNN的结果,而没有对PASCAL进行微调,即所有的CNN参数都只在ILSVRC 2012上进行了预训练。逐层分析性能(表2行1-3)显示,fc7的特性比fc6的特性概括得更差。这意味着29%,即大约1680万,CNN的参数可以在不降低mAP的情况下被删除。更令人惊讶的是,删除fc7和fc6会产生相当好的结果,即使池5特性仅使用6%的CNN参数计算。CNN的大部分表征能力来自于它的卷积层,而不是来自于更大的密集连接层。这一发现表明,通过只使用CNN的卷积层,在计算任意大小的图像的密集特征图时具有潜在的实用价值。这种表示将使在池5特性之上使用滑动窗口探测器,包括DPM的实验。
性能逐层进行调整,具有微调. 我们现在看看CNN在VOC2007训练上微调其参数后的结果。改进是惊人的(表2行4-6):微调使mAP增加了8.0个百分点,达到54.2%。与池5相比,fc6和fc7的微调提升更大,这表明从ImageNet学习到的池5特征是通用的,并且大部分改进是通过学习特定领域的非线性分类器获得的。
与最近的特征学习方法进行了比较.在PASCAL VOC检测上尝试的特征学习方法相对较少。我们来看看两种最近建立在可变形部件模型上的方法。作为参考,我们还包括了基于hog的标准DPM[20]的结果。
第一种DPM特征学习方法,DPMST[28],用“草图标记”概率的直方图来增强HOG特征。直观地说,草图标记是穿过图像补丁中心的轮廓的紧密分布。草图标记概率由一个随机森林计算,该森林训练将35×35像素补丁划分为150个草图标记或背景中的一个。第二种方法是DPMHSC[31],用稀疏码直方图(HSC)代替HOG。为了计算一个星状细胞,使用100 7 ×7像素(灰度)原子的学习字典在每个像素上解决稀疏代码激活。产生的激活通过三种方式(全波和半波),空间汇集,单元`2归一化,然后进行功率变换(x←sign(x))。
所有的R-CNN变体都强烈地优于三个DPM基线(表2,第8-10行),包括两个使用特征学习的基线。与仅使用HOG特性的最新版本DPM相比,我们的mAP高出超过20个百分点:54.2%vs.33.7%——相对提高了61%。HOG和草图标记的组合比HOG单独产生2.5个mAP点,而HSC比HOG提高了4个mAP点(与它们内部的私有DPM基线相比——两者都使用了非公开的DPM实现,其性能低于开源版本[20])。这些方法的map值分别为29.1%和34.3%。
本文的大部分结果使用了克里热夫斯基等人的网络结构。然而,我们发现,体系结构的选择对R-CNN的检测性能有很大的影响。在表3中,我们展示了使用西蒙扬和泽瑟曼[43]最近提出的16层深度网络的VOC2007测试结果。该网络是在最近的ILSVRC2014年分类挑战中表现最好的网络之一。该网络由13层由3×3卷积核组成,有5个最大池化层分散,顶部有3个全连接层。我们将这个网络称为OxfordNet的“O-Net”,将TorontoNet的基线称为“T-Net”。
为了在R-CNN中使用O-Net,我们从Caffe模型动物园下载了公开的VGGILSVRC16层模型的预训练网络权值。1然后,我们使用与T-Net相同的协议对网络进行了微调。唯一的区别是使用更小的小批量(24个例子),以适应GPU内存。表3的结果显示,O-Net的RCNN性能明显优于TNet的R-CNN,mAP从58.5%增加到66.0%。然而,在计算时间方面有一个相当大的缺点,O-Net的时间复杂度大约是T-Net的7倍。
我们应用了来自Hoiem等人[23]的优秀检测分析工具,以揭示我们的方法的错误模式,了解微调如何改变它们,并看看我们的错误类型与DPM如何比较。对分析工具的完整总结超出了本文的范围,我们鼓励读者咨询[23],以了解一些更详细的细节(如“标准化AP”)。由于分析最好在相关图中吸收,我们在图5和图6的标题中进行讨论。
每个图显示了FP类型的演变分布,因为更多的FPs按分数递减的顺序考虑。每个FP被分为4种类型中的1种:loc-定位不准确(IoU与0.1和0.5之间的正确类重叠,或重复);Sim-与相似的类别混淆;Oth-与不同的对象类别混淆;BG-在背景上触发的FP。与DPM相比(见[23]),我们的错误明显是由于定位不良的结果,而不是与背景或其他对象类的混淆,这表明CNN的特征比HOG更具鉴别性。松散定位可能是由于我们使用自底而上的区域建议和从CNN的预训练中学习到的位置不变性。第三列展示了我们的简单的边界盒回归方法如何修复许多本地化错误。
每个图显示了6个不同对象特征(遮挡、截断、边界框区域、高宽比、视点、部分可见性)中表现最高和最低的子集的平均(超过类)标准化AP(见[23])。我们展示了我们的方法(R-CNN)有或没有微调(FT)和边界框回归(BB)以及DPMvoc发布5的图。总的来说,微调并没有降低灵敏度(最大和最小之间的差异),但确实大大改善了几乎所有特征的最高和最低性能子集。这表明,微调不仅仅是改进了高宽比和边界框区域的最低性能子集,就像人们可能根据我们如何扭曲网络输入所推测的那样。相反,微调提高了对所有特性的鲁棒性,包括遮挡、截断、视点和部分可见性。
在误差分析的基础上,实现了一种简单的定位误差减少方法。受DPM[17]中使用的边界盒回归的启发,我们训练了一个线性回归模型来预测一个新的检测窗口,并给定了一个选择性搜索区域建议的池5个特征。完整的细节见附录c。表1、表2和图5的结果显示,这种简单的方法修复了大量的错误定位检测,将mAP提高了3到4个点。
ILSVRC 2013的定性检测结果如图8和图9所示。每张图像都从val2集中随机采样,并显示了所有探测器的所有精度大于0.5的检测结果。注意,这些不是策划,给一个现实的印象的探测器在行动。图10和图11显示了更多的定性结果,但这些结果已经被策划了。我们选择每一张图片是因为它包含了有趣的、令人惊讶的或有趣的结果。这里还显示了所有精度大于0.5的检测结果。
在第2节中,我们展示了ILSVRC2013检测数据集的结果。这个数据与PASCAL VOC差别较大,需要选择如何使用它。由于这些决定非常重要,所以我们将在本节中介绍它们。
ILSVRC2013检测数据集分为三组:训练(395,918)、val(20,121)和test(40,152),其中每一组的图像数量在括号中。验证和测试分割来自于相同的图像分布。这些图像与场景相似,在复杂程度上也很相似(物体的数量、杂波的数量、姿态的可变性等)。到PASCAL VOC图像。val和测试分割都是详尽注释的,这意味着在每个图像中,来自所有200个类的所有实例都用边界框标记。相比之下,训练集来自于ILSVRC2013分类图像分布。这些图像具有更多变的复杂性,更倾向于单个中心对象的图像。与验证集和测试及不同的是,训练集图像(由于它们的数量很大)并没有进行详尽的注释。在任何给定的训练集图像中,来自200个类的实例可能被标记,也可能不被标记。除了这些图像集之外,每个类都有一个额外的负图像集。将手动检查负图像,以验证它们不包含其关联类的任何实例。在本工作中没有使用负图像集。更多关于如何收集和注释ILSVRC的信息可以在[11,36]中找到。
这些分组的性质为训练R-CNN提供了许多选择。训练集图像不能用于硬负挖掘,因为注释不是详尽的。负面的例子应该从何而来?此外,训练集图像与验证集图像和测试集图像有不同的统计数据。训练集图像应该使用,如果是,使用到什么程度?虽然我们还没有彻底评估大量的选择,但根据以前的经验,我们提出了一条似乎是最明显的路径。
我们的一般策略是严重依赖验证集,并使用一些训练集图像作为积极例子的辅助来源。为了同时使用验证集进行训练和验证,我们将它分成大小大致相等的“val1”和“val2”集。由于有些类在val中的例子很少(最小的只有31,一半小于110),所以生成一个近似的类平衡分区是很重要的。
为此,生成了大量的候选分割,并选择了最大相对类不平衡最小的一个。每个候选分割是通过将类的val图像作为特征聚类生成的,然后进行随机局部搜索,以改善分割平衡。这里使用的特殊分割的最大相对不平衡约为11%,中位数相对不平衡为4%。用于生产它们的val1/val2分裂和代码将公开,以便其他研究人员比较本报告中使用的val分割的方法。
我们遵循了用于对PASCAL进行检测的相同的区域建议方法。选择性搜索[39]在“快速模式”下在val1、val2和测试中的每个图像上运行(但不是在训练中的图像上)。为了处理选择性搜索不是尺度不变的事实,需要进行一个微小的修改,因此产生的区域的数量取决于图像的分辨率。ILSVRC图像的大小从非常小到几个百万像素,因此在运行选择性搜索之前,我们将每张图像的大小调整到固定的宽度(500像素)。在val上,选择性搜索导致平均每张图像有2403个区域建议,所有地面真相边界框的召回率为91.6%(在0.5IoU阈值下)。这次召回明显低于PASCAL,后者约为98%,表明在该区域提案阶段有显著的改进空间。
对于训练数据,我们形成了一组图像和候选框,其中包括来自val1的所有选择性搜索和地面真相盒子,以及每个类多达N个候选框(如果一个班级的地面真相盒子少于N个,那么我们取所有它们)。我们将这个图像数据集和盒子称为val1+trainN。在一项消融研究中,我们显示了N∈{0,500,1000}的val2上的mAP(第4.5节)。
R-CNN有三个过程需要训练数据:(1)CNN微调、(2)检测器SVM训练和(3)边界盒回归训练。CNN微调在val1+trainN上运行50k SGD迭代,使用与pascal完全相同的设置。使用Caffe对单一的NVIDIA Tesla K20进行微调需要13个小时。对于SVM训练,所有来自val1+trainN的候选框都被用作它们各自类的积极例子。对从val1中随机选择的5000张图像子集进行硬负挖掘。最初的实验表明,与5000个图像子集(大约一半)相比,从val1的所有挖掘阴性,只导致mAP仅下降0.5个百分点,而将SVM训练时间减少了一半。
没有从训练中提取负面的例子,因为注释不是详尽的。没有使用额外的经过验证的负面图像集。边界框回归变量在val1上进行训练。
在将结果提交给评估服务器之前,我们使用上面描述的训练数据验证了数据使用选择以及微调和边界框回归对val2集的影响。所有系统超参数(例如,SVMC超参数、用于区域扭曲的填充、NMS阈值、边界框回归超参数)都固定在用于PASCAL的相同值。毫无疑问,这些超参数选择对于ILSVRC来说有点次优,然而,这项工作的目标是在不需要广泛的数据集调整的情况下,在ILSVRC上产生一个初步的R-CNN结果。在val2上选择最佳选择后,我们恰好向ILSVRC2013评估服务器提交了两个结果文件。第一次提交没有边界框回归,第二次提交有边界框回归。对于这些提交,我们扩展了SVM和边界框回归器训练集,分别使用val+train1k和val。我们使用了在val1+train1k上进行了微调的CNN,以避免重新运行微调和特征计算。
表4显示了对不同数量的训练数据、微调和边界框回归的影响的消融研究。第一个观察结果是,val2上的mAP与测试中的mAP非常接近。这使我们确信,val2上的mAP是测试集性能的良好指标。第一个结果,20.9%,是R-CNN使用在ILSVRC2012分类数据集上预先训练的CNN(没有微调),并允许访问val1中的少量训练数据(回想一下,val1中有一半的类有15到55个例子)。将训练集扩展到val1+trainN可以将性能提高到24.1%,而N=500和N=1000之间基本上没有区别。使用val1的示例对CNN进行微调可以适度提高到26.5%,但是由于正训练示例的数量较少,可能存在显著的过拟合。将微调集扩展到val1+train1k,每个类累计1000个积极例子,显著帮助,将mAP提高到29.7%。边界盒回归将结果提高到31.0%,这是一个比在帕斯卡尔中观察到的更小的相对增益。
在R-CNN和OverFeat之间有一个有趣的关系:OverFeat可以(大致上)被看作是R-CNN的一个特例。如果使用规则方形区域的多尺度金字塔,并将每类边界盒回归变量改变为单个边界盒回归变量,那么系统将非常相似(模一些潜在的显著差异:CNN检测微调,使用支持向量机等)。值得注意的是,与R-CNN相比,OverFeat有一个显著的速度优势:根据[34]引用的每张图片2秒的数据,它的速度大约快了9倍。这种速度来自于OverFeat的滑动窗口(即区域建议)在图像级别上没有扭曲,因此计算可以很容易地在重叠窗口之间共享。共享是通过在任意大小的输入上以卷积的方式运行整个网络来实现的。加快R-CNN应该在多种方面成为可能,并继续作为未来的工作。
区域分类是语义分割的标准技术,使我们可以很容易地将R-CNN应用于PASCAL VOC分割的挑战。为了便于与当前领先的语义分割系统(称为的“二阶池”)[4]进行直接比较,我们在他们的开源框架内工作。使用CPMC为每幅图像生成150个区域建议,然后使用支持向量回归(SVR)预测每个类的每个区域的质量。他们的方法的高性能是由于CPMC区域的质量和多个特征类型的强大的二阶池化(丰富的SIFT和LBP的变体)。我们还注意到,Farabet等人。[16]最近在几个密集的场景标记数据集上展示了良好的结果(不包括PASCAL)上。我们遵循[2,4],并扩展了帕斯卡分割训练集,以包括由哈里哈兰等人a.[22]提供的额外注释。设计决策和超参数在VOC2011验证集上进行了交叉验证。最终的测试结果仅被评估了一次。
CNN细分功能.我们评估了三种计算CPMC区域特征的策略,所有这些策略都从将该区域周围的矩形窗口扭曲到227×227开始。第一种策略(full)忽略了该区域的形状,并直接在扭曲的窗口上计算CNN特征,就像我们在检测时所做的一样。然而,这些特征忽略了该区域的非矩形形状。两个区域可能有非常相似的边界框,但几乎没有重叠。因此,第二种策略(fg)只在一个区域的前景掩模上计算CNN特征。我们用平均输入替换背景,使平均减去后背景区域为零。第三种策略(full+fg)简单地连接了完整的特征和fg特征;我们的实验验证了它们的互补性。
Results on VOC 2011.表5显示了我们对VOC2011验证集与进行比较的结果的总结。(每个类别的完整结果见附录E。)在每个特征计算策略中,层fc6的性能总是优于fc7,下面讨论了fc6的特征。fg策略略优于full策略,表明掩蔽区域的形状提供了更强的信号,符合我们的直觉。然而,full+fg达到了47.9%的平均准确率,我们的最佳结果为4.2%(也略优于O2P),这表明即使给定fg特征,完整特征提供的上下文也具有高度的信息性。值得注意的是,在我们的full+fg特性上训练20个SVRs需要一个小时,而在特性上训练需要10+小时。
在表6中,我们给出了VOC2011测试集的结果,并将我们表现最好的测试方法fc6(full+fg)与两个强基线进行了比较。我们的方法在21个类别中的11个类别中获得了最高的分割精度,最高的总体分割精度为47.9%,平均跨类别(但在任何合理的误差范围下可能与O2P结果相关)。但通过进行微调,还可以实现更好的性能。
近年来,目标检测性能一直停滞不前。性能最好的系统是复杂的集成,它将多个低级图像特征与来自对象检测器和场景分类器的高级上下文结合起来。本文提出了一种简单且可扩展的目标检测算法,该算法比之前对pascalVOC2012的最佳结果相对提高了30%。
我们通过两个见解实现了这一表现。首先是将大容量卷积神经网络应用于自底向上的区域建议,以定位和分割对象。第二种是在有标记的训练数据稀缺时训练大型cnn的范例。结果表明,对数据丰富的辅助任务(图像分类)进行网络预训练,然后对数据稀缺的目标任务(检测)进行微调是非常有效的。我们推测,“有监督的预训练/领域特定的微调”范式将对各种数据稀缺的视觉问题非常有效。
我们得出结论,我们指出,我们通过使用计算机视觉和深度学习的经典工具(自下而上的区域建议和卷积神经网络)来实现这些结果是很重要的。这两者不是相反的科学探究路线,而是自然和不可避免的伙伴。
在这项工作中使用的卷积神经网络需要一个固定大小的输入227×227像素。对于检测,我们考虑了作为任意图像矩形的对象建议。我们评估了两种将对象建议转换为有效的CNN输入的方法。
第一种方法(“带上下文的最紧的方块”)将每个对象提议包含在最紧的方块中,然后将该方块中包含的图像(各向同性)缩放到CNN输入大小。图7列(B)显示了这种转换。此方法的一个变体(“没有上下文的最紧的方块”)排除了围绕原始对象提案的图像内容。图7列(C)显示了这种转换。第二种方法(“warp”)各向异性地扩展每个对象提议到CNN输入大小。图7列(D)显示了翘曲变换。
对于每一个这些转换,我们还会考虑在原始对象提案周围包含额外的图像上下文。上下文填充的数量(p)定义为转换的输入坐标系中原始对象提议的边界大小。图7显示了每个示例顶部一行的p=0像素和底部一行的p=16像素。在所有的方法中,如果源矩形超出图像,缺失的数据将被替换为图像平均值(然后在将图像输入CNN之前减去图像平均值)。一组试点实验表明,上下文填充的扭曲(p=16像素)的表现优于很大的优势(3-5mAP点)。显然,可能会有更多的替代方案,包括使用复制而不是平均填充。对这些替代方案的详尽评价是未来的工作。
我们的假设是,这种积极和消极定义方式的差异并非根本重要,而且源于微调数据有限的事实。我们目前的方案引入了许多“抖动”的例子(那些建议框在0.5和1之间有重叠,但不是地面事实),这将正例子的数量增加了大约30倍。我们推测,在对整个网络进行微调以避免过拟合时,需要这个大的集合。然而,我们也注意到,使用这些抖动的例子很可能不是次优的,因为网络没有被微调到精确的定位。
这就引出了第二个问题:为什么在微调之后,还要训练支持向量机?简单地应用微调网络的最后一层,即一个21路的softmax回归分类器,作为对象检测器,将会更干净。我们尝试了这个,发现VOC2007的性能从mAP从54.2%下降到50.9%。这种性能下降可能是由于几个因素的组合,包括微调中使用的正例子的定义不强调精确定位,而是根据随机抽样的负例子训练的,而不是用于SVM训练的“硬负”的子集。
这一结果表明,在微调后,不训练支持向量机,可以获得接近相同水平的性能。我们推测,通过进行一些额外的调整来进行微调,剩余的性能差距可能会缩小。如果这是真的,这将简化和加快R-CNN的训练,而不会损失检测性能。
每个函数d(P)(是x,y,h,w)中的一个,被建模的建议框P的第五层poor层特征的线性函数,用表示。(隐式地假设了对图像数据的依赖性。)这样我们就有,是一个可学习的模型参数的向量。我们学习通过优化正则化最小二乘目标(岭回归):
回归的目标是对于训练对(P,G),被去定义为:
作为一个标准的正则化最小二乘问题,它可以有效地求解。
在实现边界框回归时,我们发现了两个微妙的问题。首先,正则化很重要:我们基于验证集设置了λ=1000。第二个问题是,在选择使用哪个训练对(P,G)时必须小心。直观地说,如果P远离所有的地面真盒,那么将P转换为地面真盒G的任务就没有意义了。使用像P这样的例子会导致一个无望的学习问题。因此,我们只有当建议P靠近至少一个地面真值盒时,才能从它中学习。当且仅当重叠大于一个阈值(我们使用验证集将其设置为0.6)时,我们通过将P分配给地面真值框G(在它具有最大的地面真值重叠的情况下)来实现“接近性”。所有未分配的提案都将被丢弃。我们对每个对象类这样做一次,是为了学习一组特定于类的边界框回归变量。
在测试时,我们只对每个提案进行评分,并预测其新的检测窗口一次。原则上,我们可以迭代这个过程(即,对新预测的边界框进行重新评分,然后从中预测一个新的边界框,等等)。然而,我们发现迭代并不能改善结果。
E. Per-category segmentation results
E. Per-category segmentation results
在表7中,我们显示了除了方法[4]外,我们的六种分割方法在VOC2011val上的每个类别的分割精度。这些结果显示了哪些方法在20个PASCAL 和背景类中最强。
GIST描述符的欧氏距离最近邻匹配显示了38幅近重复的图像(包括通过flickrID匹配发现的所有31幅图像)。匹配项往往在JPEG压缩级别和分辨率上略有不同,裁剪的程度也较小。这些发现表明,重叠程度很小,不到1%。对于VOC2012,由于flickrid不可用,所以我们只使用了GIST匹配方法。基于GIST匹配,1.5%的VOC2012测试图像在ILSVRC2012训练中。VOC2012的比率略高,可能是因为两个数据集在时间上比VOC2007和ILSVRC2012更近。