精翻中文以及注释(文件中体现为红色字体)
有任何建议的话可以私信[email protected]
用于目标检测和语义分割的丰富分层特征
摘要
在规范的PASCAL VOC数据集上测量的目标检测性能在过去几年中已经达到瓶颈。性能最好的方法是复杂方法的集成,其通常将多个低级图像特征与高级上下文相结合。在本文中,我们提出了一种简单且可扩展的检测算法,与先前在VOC 2012上的最佳结果相比,平均性能(mAP)提高了30%以上,达到了53.3%的mAP。我们的方法包含了两个重要的贡献:(1)训练了一个高表达能力的卷积神经网络(CNNs),以及这个网络提供了自底向上的候选框特征,用其进行定位和语义分割。(2)在VOC的目标检测数据集上数据较少,我们现在ImageNet这个大规模辅助系统上预训练一个模型,再把它拿到指定任务上微调,这样在小数据集上也能达到很好的性能。因为我们这个方法包含了候选框提取(region proposal),所以我们把这个算法称为R-CNN: Regions with CNN features. 我们还展示了一些实验,这些实验提供了对网络所学知识的洞察,揭示了丰富的图像特征层次结构。完整系统的源代码可在http://www.cs.berkeley.edu/获得。
1. 介绍
特征很重要。过去十年中,各种视觉识别任务的进展在很大程度上是基于SIFT [26](尺度不变特征变换)和HOG [7](方向梯度直方图)的使用。但是,如果我们看一下规范视觉识别任务PASCAL VOC目标检测[12]的性能,人们普遍承认,2010-2012年期间进展缓慢,通过把不同的模型集成到一起或者在成功方法上进行了微小的改动。
SIFT和HOG是团块、方向的空间像素信息,这类似于灵长类大脑皮层区域的V1细胞(类似卷积神经网络的前几层)。但我们也知道,识别发生在下游的几个阶段,这表明对视觉识别来说有分层的、多阶段的过程来计算特征有着更大的潜力。
福岛邦彦(著名日本科学家)的“神经认知机”(1979年构建了多层次的视觉识别,类似现在的卷积神经网络)[16]是一种受生物学启发的用于模式识别的分层和平移不变模型,它就是这种过程的早期尝试。然而,这种神经认知机缺乏监督学习训练算法。LeCun等人[23]填报了缺失的算法,表明通过反向传播的随机梯度下降来训练卷积神经网络(CNNs),这是一类新的神经认知机并进行了延伸。
CNNs在20世纪90年代被大量使用(例如[24]),但并不流行,尤其是在计算机视觉领域支持向量机的兴起。2012年,Krizhevsky等人[22](AlexNet)通过大量的展示重新点燃了CNNs的兴趣更高的图像分类精度在ImageNet Large Scale Visual Recognition Challenge (ILSVRC)[9,10]。在这个比赛上训练集时120万张带标注的图片,他们并对LeCun的CNN进行了调整,比如增加了ReLu激活函数也加了一些类似“dropout”的正则化。
在ILSVRC 2012年的研讨会上,ImageNet结果的重要性得到了热烈的讨论。核心问题被提炼为以下几点:在多大程度上,CNN在ImageNet上的分类模型可以泛化到PASCAL VOC目标检测上?
我们通过弥合图像分类和目标检测之间的鸿沟,果断地回答了这个问题。本文首次表明, CNN可以显著提升性能在PASCAL VOC上相比于传统的基于更简单的HOG-like特征的系统。实现这一结果需要解决两个问题:用深度网络定位目标和用少量标注的检测数据训练高容量模型。
与图像分类不同,检测需要在图像中定位。一种方法将目标检测视为回归问题(YoLo)。然而,Szegedy(googleNet作者)等人[31]的研究与我们自己的研究同时表明,这一策略在实践中可能不太顺利(他们报告2007年VOC的mAP为30.5%,而我们的方法为58.5%)。另一种方法是构建滑动窗口。CNN以这种方式使用了至少20年,通常用于比较特殊的对象类别,如人脸[28,33]和行人[29]。为了保持较高的空间分辨率(下采样不太太过),这些CNN通常只有两个卷积层和池化层。我们也考虑是否采用滑动窗口方法。然而,在我们的网络中,有五个卷积层的高层单元在输入图像中有非常大的感受野(195×195像素)和步长(32×32像素),这使得滑动窗口模式中的精确定位是很有挑战性的(也不采用滑动窗口方法)。
相反,正如Gu等人在[18]中提出的那样,我们通过在“使用候选框识别”(两阶段)范式下操作来解决CNN定位问题。在测试时,我们的方法为输入图像生成大约2000个与类别无关的候选框,使用CNN从每个候选框中提取固定长度的特征(4096维),然后使用特定于类别的线性支持向量机对每个候选框进行分类。我们使用一种简单的技术(仿射图像扭曲)来计算来自每个候选框建议的固定大小的CNN输入,而不考虑区域的形状。图1概述了我们的方法,并强调了我们的一些结果。由于我们的系统将候选框与CNN相结合,我们将该方法称为R-CNN:具有CNN特征的区域。
图1:目标检测系统概述。我们的系统(1)获取输入图像,(2)提取大约2000个自下而上的区域建议,(3)使用大型卷积神经网络(CNN)计算每个建议的特征,然后(4)使用特定于类的线性支持向量机对每个区域进行分类。R-CNN对PASCAL VOC 2010的平均精度(mAP)为53.7%。为了进行比较,[32]报告了35.1%的地图使用了相同的候选框方案,但采用了空间金字塔和视觉词汇袋的方法。流行的可变形零件模型的性能为33.4%。
在检测方面面临的第二个挑战是,标记数据稀缺,目前可用的数据量不足以训练大型CNN。这个问题的传统解决方案是使用无监督的预训练,然后进行有监督的微调(例如[29])。本文的第二个主要贡献是,在大辅助数据集上进行有监督的预训练(ILSVRC),然后在小数据集上进行特定领域的微调(PASCAL),是在数据稀缺时学习大容量CNN的有效范例。在我们的实验中,检测微调将mAP性能提高了8%。经过微调后,我们的系统在VOC 2010上实现了54%的效果,而在经过高度调整的基于HOG的可变形组件模型(DPM)上也才实现了33%[14,17]。
我们的系统也相当高效。唯一与类别相关的计算是一个小的矩阵向量乘法和贪婪的非最大值抑制。这种计算特性来源于所有类别中共享的特征(被所有的线性支持向量机所共享),这些特征的维数也比以前使用的区域特征低两个数量级(参见[32])。(RCNN耗时来源 1,selective search产生候选框(2s)2,CNN逐一提取候选框feature(50s)3,非端到端,各组件需要单独训练)
HOG-like功能的一个优点是简单:更容易理解它们携带的信息(尽管[34]表明我们的直觉可能会让我们失望)。我们能深入了解CNN了解到的表述吗?也许拥有5400多万个参数的密集连接层是关键?事实并非如此。我们对CNN进行了“切除手术”,发现有94%的参数可以在检测准确率略有下降的情况下被去除,这一比例惊人。相反,通过探测网络中的单元,我们看到卷积层学习了一组丰富的功能(图3)。
了解我们的方法的故障模式对于改进它也至关重要,因此我们报告了Hoiem等人[20]的检测分析工具的结果(YoLov1中也用到了)。作为这一分析的直接结果,我们证明了一种简单的边框回归方法显著减少了定位错误,这也是主要的错误模式。(因为候选框的选取并不和原始物体完全重合)
在开发技术细节之前,我们注意到,由于R-CNN在候选框上运行,因此自然会将其扩展到语义分割任务。通过微小的修改,我们还实现了Pascalvoc分段任务的最新结果,在VOC 2011测试集上的平均分段精度为47.9%。
2. 利用R-CNN进行目标检测
我们的目标检测系统由三个模块组成。第一种方法生成与类别无关的候选框。这些建议定义了我们的检测器可用的候选检测集。第二个模块是一个大型卷积神经网络从每个候选框提取一个固定长度的特征向量。第三个模块是每个类别分别训练一个线性支持向量机。在本节中,我们将介绍每个模块的设计决策,描述它们的测试时间使用情况,详细说明如何学习它们的参数,并展示PASCAL VOC 2010-12的结果。
2.1模型设计
提取候选框。最近的各种论文提供了生成可能是物体的候选框的方法。例如:对象性[1]、选择性搜索[32]、独立于类别的对象建议[11]、约束参数最小割(CPMC)[5]、多尺度组合分组[3]和Cires¸an等人[6],他们通过将CNN应用于规则间隔的方形作物来检测有丝分裂细胞,这是区域建议的特例。虽然R-CNN对特定的区域建议方法不可知,但我们使用选择性搜索来实现与先前检测工作的受控比较。
特征提取。我们使用Krizhevsky等人[22]描述的CNN的Caffe[21]实现,从每个区域建议中提取4096维特征向量(AlexNet作为特征提取的骨干网络)。特征是通过将一个平均减去227×227的RGB图像通过五个卷积层和两个完全连接的层向前传播来计算的。我们请读者参考[21,22]了解更多网络架构细节。
为了计算候选框的特征,我们必须首先将该区域的图像数据转换为与CNN兼容的形式(其架构需要固定的227×227像素大小的输入)。在任意形状区域的许多可能变换中,我们选择最简单的。无论候选区域的大小或长宽比如何,我们都会将其周围紧边界框中的所有像素扭曲到所需的大小。在扭曲之前,我们扩展紧边界框,以便在扭曲大小下,原始框周围正好有p个扭曲图像上下文像素(我们使用p=16)。图2显示了扭曲训练区域的随机抽样。补充材料讨论了变形的替代方案。
图2:VOC 2007 train中变形的训练样本。
2.2. 测试时间检测
在测试时,我们对测试图像进行选择性搜索,以提取大约2000个候选框(我们在所有实验中使用选择性搜索的“快速模式”)。我们对每个候选框进行变形,并在CNN中作为输入,以便读取所需图层的特征。然后,对于每个类我们训练一个专门的SVM对每个提取的特征向量进行评分。给定一幅图像中的所有评分区域,我们应用贪婪的非最大值抑制(独立地针对每一类),如果某个区域与大于学习阈值的评分较高的选定区域存在联合交集(IoU)重叠,则剔除该区域。
运行分析。两个属性使得检测的效果较好。首先,所有CNN4096维参数可以被所有支持向量机共享。第二,与其他常用方法相比,CNN计算的特征向量是低维的,例如带有视觉单词编码包的空间金字塔。例如,UVA检测系统[32]中使用的特征比我们的(360k vs.4k维度)大两个数量级。
这种共享的结果是,计算区域建议和功能所花费的时间(GPU上为13s/候选框,CPU上为53s/候选框)在所有类别中平均来说。唯一的类特定计算是特征和SVM权重之间的点积以及非最大值抑制。实际上,一幅图像的所有点积都被分批处理为一个矩阵积。特征矩阵通常为2000×4096,SVM权重矩阵为4096×N,其中N是类数。(之后使用特征矩阵乘SVM权重矩阵,得到的结果就是某个候选框在某个类别上的概率)
该分析表明,R-CNN可以扩展到数千个对象类,而无需使用近似技术,如哈希。即使有10万个类,在现代多核CPU上产生的矩阵乘法也只需要10秒。这种效率不仅仅是使用区域建议和共享功能的结果。由于其高维特性,UVA系统的速度将慢两个数量级,而仅存储100k线性预测值就需要134GB的内存,相比之下,我们的低维特性只有1.5GB。
将R-CNN与Dean等人最近关于使用DPMs和哈希进行可伸缩检测的工作进行对比也是很有趣的[8]。他们报告说,在引入10k分心训练课程时,VOC 2007的mAP约为16%,每幅图像的运行时间为5分钟。通过我们的方法,10k探测器可以在一个CPU上运行大约一分钟,因为没有进行近似计算,所以mAP将保持在59%(第3.2节)。
2.3 训练
有监督的预培训。我们在一个带有图像级注释(即,没有边界框标签)的大型辅助数据集(ILSVRC 2012)上对CNN进行了区分性预训练。使用开源Caffe CNN库进行预训练[21]。简而言之,我们的CNN几乎与Krizhevsky等人[22]的表现相匹配,在ILSVRC 2012验证集上获得了2.2个百分点的最高错误率。这种差异是由于培训过程中的简化。
特定领域的微调。为了使我们的CNN适应新的任务(检测)和新的域(变形的VOC候选框),我们仅使用VOC的变形候选框,继续对CNN参数(应该是所有权重都训练)进行随机梯度下降(SGD)训练。除了用随机初始化的21个神经元(针对20个VOC类加背景类别)替换CNN的ImageNet特定1000个神经元外,CNN架构没有改变。我们认为所有候选框≥ 0.5个IoU时作为正样本,其余部分作为负样本。我们以0.001(初始预训练率的1/10)的学习率启动SGD,这允许微调在不破坏初始化的情况下取得进展。在每次SGD迭代中,我们对32个正样本(任意类别)和96个背景样本进行统一采样,以构建一个128大小的小批量。我们倾向于正样本取样,因为与背景样本相比,正样本极其罕见。(保证有足够比例的正样本才能让模型学习好,对正样本进行过采样,对负样本进行下采样)
对象类别分类器。考虑训练一个二元分类器来检测汽车。很明显,紧紧包围汽车的图像区域应该是一个正样本。同样,很明显,与汽车无关的背景区域应该是一个负样本。对于部分与汽车重叠的区域,我们用一个IoU重叠阈值来解决这个问题,低于这个阈值的区域被定义为负样本。重叠阈值0.3是通过对验证集上的{0,0.1,…,0.5}进行网格搜索来选择的。我们发现仔细选择这个阈值很重要。将其设置为0.5,如[32]中所述,mAP减少了5个点。类似地,将其设置为0会mAP将减少4个点。正样本被简单地定义为每个类的基本正确边界框。
一旦提取了特征并应用了训练标签,我们就为每个类优化一个线性支持向量机。由于训练数据太大,无法存储在内存中,我们采用标准的难倒挖掘方法[14,30](当把背景分类为某类别时,把该背景样本添加到训练集负样本中,类似于一个错题本,不断得到从错误中学习)。难倒挖掘收敛速度很快,在实践中,只需对所有图像进行一次扫描,候选框就会停止增加。
在附录中,我们将讨论为什么在微调和SVM训练中,正负样本的界定方式不同。我们还讨论了为什么有必要使用支持向量机,而不是简单地使用微调CNN最后一层(fc8)(全连接层)的输出。
2.3 PASCAL VOC 2010-12的结果
按照PASCAL VOC最佳实践[12],我们在VOC 2007数据集(第3.2节)上验证了所有设计决策和超参数。对于VOC 2010-12数据集的最终结果,我们微调了VOC 2012列车上的CNN,并优化了VOC 2012上的支持向量机。我们只向评估服务器提交了两个主要算法变量(有和没有bounding box回归头的)的测试结果一次。
表1显示了2010年VOC的完整结果。我们将我们的方法与当年四个比较强的模型进行比较,其中包括SEGDMP[15],它将DPM检测器与语义分割系统的输出相结合[4],并使用额外的检测器间上下文和图像分类器重新排序。最密切的比较是Uijlings等人[32]的UVA系统,因为我们的系统使用相同的候选框算法。为了对区域进行分类,他们的方法构建了一个四阶段的空间金字塔,并用密集采样的SIFT、扩展的OpponentSIFT和RGBSIFT描述符填充它(传统方法:像素层面),每个向量都用4000词的词典。采用直方图交叉核函数支持向量机进行分类。与他们的多特征非线性核SVM方法相比,我们在mAP方面取得了很大的改进,从35.1%提高到53.7%,同时速度也更快(第2.2节)。我们的方法在VOC 2011/12测试中达到了类似的性能(53.3%mAP)。
表1:VOC 2010测试的检测平均精度(%)。R-CNN与UV A和区域集最直接可比,因为所有方法都使用选择性搜索区域方案。第3.4节描述了边框回归(BB)。在这篇论文发表时,SEGDMP是PASCAL VOC排行榜上的佼佼者。†DPM和SEGDMP使用上下文重新排序,其他方法没有使用。
3. 可视化、消融对照试验和错误模式
3.1可视化学习的特征
卷积层的第一层可以直接可视化,并且易于理解[22]。它们捕捉定向边缘和颜色特征。理解更深层更具有挑战性。Zeiler和Fergus(ZFNet作者)在[36]中提出了一种具有吸引力的反卷积方法。我们提出了一种简单的(互补的)非参数方法,直接显示网络学习的是什么特征。
其想法是在网络中挑出一个特定的单元(特征),并将其当作一个物体探测器来使用。也就是说,我们计算单元对一大组保留区域建议(约1000万)的激活,将建议从最高激活排序到最低激活,执行非最大抑制,然后显示得分最高的候选框。(总的来说就是把所有1000万个候选框输入找到能使的某个feature map中的某个值产生最大激活的候选框,也就是使某次卷积,单个神经元产生最大激活)我们的方法通过精确显示所选单元触发的输入,让它“为自己代言”。为了看到不同的视觉模式,我们避免平均化,并深入了解单位计算的不变性。
我们将第5层的单位可视化,这是网络第五层也是最后一层卷积的最大池输出。Pool5要素图是6×6×256=9216维的(256个通道,每个通道都是6×6)。忽略中间层Padding造成的边界效应,每个pool5unit在原始227×227像素输入中具有195×195像素的感受野。中间的值有着全图的感受野,而靠近边缘的值感受野较小。
图3中的每一行显示了我们在VOC 2007 trainval上微调的CNN中pool5unit的前16个激活。256个功能独特的单元中有六个是可视化的(补充材料包括更多)。选择这些单元是为了展示网络学习内容的代表性样本。在第二排,我们看到一个单位,对狗脸和点阵。与第三排相对应的单元是一个红色斑点。还有人脸检测器和更抽象的模式,如文字和带三角形结构的窗户。该网络似乎学习了一种表示法,它将少量经过类调整的特征与形状、纹理、颜色和材料属性的分布式表示结合在一起。随后,完全连接的LayerFC6能够对这些丰富功能的大量组合进行建模。
图3:六个Pool5单元的顶部区域。感受野和激活值以白色绘制。有些单元与概念对齐,例如人(第1行)或文本(第4行)。其他单元捕捉纹理和材质属性,例如点阵列(2)和镜面反射(6)。
表2:2007年VOC测试的检测平均精度(%)。第1-3行显示R-CNN性能,无需微调。第4-6行显示了CNN在ILSVRC 2012上预先训练的结果,然后在VOC 2007 trainval上进行微调(FT)。第7行包括一个简单的边界框回归(BB)阶段,可以减少定位误差(第3.4节)。第8-10行将DPM方法作为一个强大的基线。第一种方法仅使用HOG,而下两种方法使用不同的特征学习方法来增强或替换HOG。
3.2.消融对照试验
逐层性能,无需微调。为了了解哪一层对检测性能至关重要,我们分析了CNN最后三层的VOC 2007数据集的结果。第3.1节简要介绍了第5层。最后两层总结如下。
FC6是第一个全连接层,其连接到pool5的特征。为了计算特征,它将4096×9216(4096个神经元,每个神经元9216个权重)权重矩阵乘以pool5特征映射(重塑为9216维向量),然后添加一个偏差向量。该中间矢量为分量半波整流(x← 最大值(0,x))(ReLu函数)。
FC7层是网络的最后一层。它是通过将FC6B计算出的特征乘以4096×4096权重矩阵来实现的,类似地,添加一个偏差向量并应用半波校正。
我们首先查看CNN的结果,没有对PASCAL进行微调,即所有CNN参数仅在ILSVRC 2012上进行了预训练。逐层分析性能(表2第1-3行)表明,FC7的功能概括起来比fc6的功能更差。这意味着,在不降低候选框质量的情况下,可以删除CNN 29%或1680万个参数。更令人惊讶的是,删除FC7和FC6会产生相当好的结果,尽管Pool5功能仅使用CNN的6%参数进行计算。CNN的大部分代表性力量来自其卷积层,而不是全连接层。这一发现表明,仅使用CNN的卷积层就可以计算任意大小图像的密集特征图(从HOG的角度来看)(类似Overfeat,VGG)。这种表示法可以在pool5features的基础上使用滑动窗口检测器(包括DPM)进行实验。
性能逐层调整,使用微调。在VOC 2007 trainval上微调了CNN的参数后,我们现在来看一下CNN的结果。改进是惊人的(表2第4-6行):微调将mAP提高了8.0个百分点,达到54.2%。FC6和FC7的微调带来的提升要比pool5大得多,这表明从ImageNet学习到的pool5功能是通用的,大多数改进都是通过学习特定领域的非线性分类器获得的。(预训练卷积层提取通用特征,微调全连接层提取指定领域的分类器)
与最近的特征学习方法的比较。在PASCAL VOC检测中尝试的特征学习方法相对较少。我们将介绍两种基于可变形零件模型(DPM模型)的最新方法。作为参考,我们还包括基于标准HOG的DPM的结果[17]。
第一种DPM特征学习方法DPM ST[25]使用“草图标记”概率的直方图来增强HOG特征。直观地说,草图标记是通过图像块中心的紧密分布的轮廓。草图标记概率由一个随机森林在每个像素处计算,该森林经过训练,可将35×35像素的斑块分类为150个草图标记或背景中的一个。
第二种方法DPM HSC[27]用稀疏码直方图(HSC)代替HOG。为了计算HSC,使用100个7×7像素(灰度)原子的学习字典来求解每个像素处的稀疏代码激活。产生的激活以三种方式(全波和两种半波)进行校正,空间合并,单元2标准化,然后功率转换(x← 符号(x)|x |α)。
所有R-CNN变体的性能都明显优于三个DPM基线(表2第8-10行),包括使用功能学习的两个。与只使用HOG功能的最新版本DPM相比,我们高出了20多个百分点:54.2%比33.7%——相对提高了61%。HOG和sketch令牌的组合比HOG单独产生了2.5个映射点,而HSC比HOG提高了4个映射点(与它们的私有DPM基线进行内部比较时,两者都使用了性能低于开源版本的非公开DPM实现[17])。这些方法分别实现了29.1%和34.3%的MAP。
3.3. 检测误差分析
我们应用了来自Hoiem等人[20]的优秀检测分析工具,以揭示我们方法的错误,了解微调如何改变它们,并查看我们的错误类型与DPM的比较。分析工具的完整摘要超出了本文的范围,我们鼓励读者参考[20]以了解一些更详细的细节(如“标准化AP”)。由于分析最好集中在相关图的上下文中,因此我们在图4和图5的标题中进行讨论。
(横轴为置信度,纵轴错误比例)
图4:排名靠前的假阳性(FP)类型的分布。每个图都显示了FP类型的演变分布,因为按照分数递减的顺序考虑了更多FP。每个FP分为4种类型中的1种:Loc-分类正确,定位不良(IoU重叠检测,正确的类别介于0.1和0.5之间,或重复);Sim-与像似类别混淆;Oth-分类为非近似类别;BG-FP背景误判为目标。与DPM(见[20])相比,我们的错误更多地是由于定位不当造成的,而不是与背景或其他对象类混淆,这表明CNN功能比HOG更具辨别力。松散的定位可能是我们使用自下而上的区域建议,以及从对CNN进行全图像分类预训练中获得的位置不变性的结果。第三列显示了我们简单的边界框回归方法(bounding box regression)如何修复许多定位错误。
(occ-遮挡,trn-截断,size-标注框像素数量,asp-宽高比,view-哪些面可见,part-所有部分是否都可见)
图5:对物体特性的敏感性。每个图显示了六种不同对象特征(遮挡、截断、标注框像素数量、宽高比、物体哪些面可见、所有部分是否都可见)内最高和最低性能子集的平均值(超过类)标准化AP(见[20])。我们展示了我们的方法(R-CNN)的曲线图,有无微调(FT)和边界盒回归(BB),以及DPM voc-release5。总的来说,微调不会降低灵敏度(最大值和最小值之间的差异),但会显著改善几乎所有特征的最高和最低性能子集。这表明微调不仅仅是简单地改善长宽比和预测框的最低性能子集,正如我们根据网络输入的方式推测的那样。相反,微调提高了所有特征(包括遮挡、截断、标注框像素数量、物体哪些面可见、所有部分是否都可见)的鲁棒性。(因为输入CNN之前,强行将候选框缩放至统一尺寸,统一长宽比,所以在不同尺寸和长宽比上FT性能提升意味着全连接层学习到更有用的特征)
3.4. 预测框回归
在误差分析的基础上,我们实现了一种简单的方法来减少定位误差。受DPM[14]中使用的预测框回归的启发,我们训练了一个线性回归模型,以预测一个新框,给出了选择性搜索区域建议的Pool5特征(这个模型输入是Pool5特征,输出是偏移量)。补充材料中给出了全部细节。表1、表2和图4中的结果显示,这种简单的方法修复了大量定位错误的检测,将mAP提高了3到4个点。
4.语义分割
区域分类是语义分割的标准技术,使我们能够轻松地将R-CNN应用于PASCAL VOC分割挑战。为了便于与当前领先的语义分段系统(称为O2P,表示“二阶池化”)进行直接比较[4],我们在它们的开源框架内工作。O2P使用CPMC为每张图像生成150个候选框,然后使用支持向量回归(SVR)预测每个类别的每个区域的质量。他们的方法的高性能是由于CPMC区域的质量和多个特征类型的强大二阶池(SIFT和LBP的丰富变体)。我们还注意到,Farabet等人[13]最近使用CNN作为多尺度每像素分类器,在几个密集场景标记数据集(不包括PASCAL)上显示了良好的结果。
我们遵循[2,4]并扩展PASCAL分段训练集,以包括Hariharan等人[19]提供的额外注释。设计决策和超参数在VOC 2011验证集上进行交叉验证。最终测试结果只提交了一次。
CNN提供了语义分割功能。我们评估了在CPMC区域上计算特征的三种策略,所有这些策略都是从将该区域周围的矩形窗口扭曲为227×227开始的。第一种策略(full)忽略区域的形状,直接在变形的窗口上计算CNN特征,就像我们在检测时所做的那样。然而,这些特征忽略了区域的非矩形形状。两个区域可能有非常相似的边界框,但几乎没有重叠。因此,第二种策略(fg)只计算区域前景上的CNN特征。我们把背景替换成图像均值,这样在平均减法后背景区域为零。第三种策略(full+fg)简单地将full和fg功能连接起来;我们的实验验证了它们的互补性。
2011年VOC的结果。表3显示了我们对2011年VOC验证集与O2P对比的结果总结。(请参阅补充材料,了解完整的分类结果。)在每个特征计算策略中,fc6层的性能始终优于FC7层,以下讨论涉及fc6特征。fg策略略优于full策略,表明遮罩区域形状提供了更强的信号,符合我们的直觉。然而,full+fg的平均准确率为47.9%,我们的最佳结果为4.2%(也略微优于O2P),这表明即使考虑到fg功能,完整功能提供的上下文信息也非常丰富。值得注意的是,在我们的完整+fg功能上训练20个SVR在单核CPU上只需要一个小时,而在O2P功能上训练需要10多个小时。
表3:VOC 2011验证的分段平均准确率(%)。第1列显示O2P;2-7使用我们在ILSVRC 2012上预先培训过的CNN。
在表4中,我们展示了2011年VOC测试集的结果,将我们表现最好的方法fc6(完整+fg)与两个强基线进行了比较。我们的方法在21个类别中的11个类别中实现了最高的分割精度,在所有类别中平均的整体分割精度最高,为47.9%(但在任何合理的误差范围下,可能与O2P结果相关)。通过微调可能会获得更好的性能。
表4:VOC 2011测试的分割准确率(%)。我们比较了两个强基线:文献[2]中的“区域和部分”(R&P)方法和文献[4]中的二阶池化(O2P)方法。在没有任何微调的情况下,我们的CNN实现了最高的细分性能,表现优于R&P,大致相当于O2P。
5.结论
近年来,目标检测性能停滞不前。性能最好的系统是将多个低级图像特征与来自对象检测器和场景分类器的高级上下文相结合的复杂集合。本文提出了一种简单且可扩展的目标检测算法,与PASCAL VOC 2012上的最佳结果相比,该算法相对提高了30%。
我们通过两种方法实现了这一性能。第一种方法是将大容量卷积神经网络应用于自底向上的区域建议,以便定位和分割对象。第二种是在标记的训练数据稀缺时训练大型CNN的范例。我们表明,对网络进行预训练是非常有效的——对数据丰富的辅助任务(图像分类)进行监督,然后对数据稀缺的目标任务(检测)进行微调。我们推测,“有监督的预训练/特定领域的微调”范式将对各种数据稀缺的视觉问题非常有效。
最后,我们指出,通过结合使用计算机视觉和深度学习(自下而上区域建议和卷积神经网络)的经典工具,我们取得了这些结果,这是非常重要的。这两不是对立的科学研究路线,而是自然和不可避免的伙伴。
致谢。该研究部分得到了DARPA Mind’s Eye和MSEE项目、NSF奖项IIS-0905647、IIS-1134072和IIS-1212798、MURI N000014-10-1-0933以及丰田的支持。这项研究中使用的GPU是由英伟达公司慷慨捐赠的。