前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rich feature hierarchies for accurate object detection and semantic segmentation

Rich feature hierarchies for accurate object detection and semantic segmentation

作者头像
狼啸风云
修改2022-09-04 21:28:45
1.2K0
修改2022-09-04 21:28:45
举报

一、摘要

在PASCAL VOC标准数据集上测量的目标检测性能在最近几年趋于稳定。性能最好的方法是复杂的集成系统,它通常将多个低层图像特性与高层上下文结合起来。在本文中,我们提出了一种简单、可扩展的检测算法,相对于之前VOC 2012的最佳检测结果,平均平均精度(mAP)提高了30%以上,达到了53.3%。我们的方法结合了两个关键的方法:(1)为了定位和分割目标,可以一次将高容量应用卷积神经网络(cnn)自下而上的区域建议(2)标记的训练数据稀缺时,监督为辅助训练的任务,其次是特定于域的微调,收益率显著的性能提升。由于我们将区域建议与CNNs相结合,我们将我们的方法称为R-CNN:具有CNN特性的区域。我们还将R-CNN与OverFeat进行了比较,OverFeat是最近提出的一种基于类似CNN架构的滑动窗口检测器。在200类ILSVRC2013检测数据集上,我们发现R-CNN比OverFeat有较大的优势。

二、简介

特征问题:在过去的十年中,各种视觉识别任务的进展很大程度上是基于SIFT和HOG的使用。但是,如果我们看一下规范的视觉识别任务PASCAL VOC目标检测的性能,就会发现,在2010年至2012年期间,人们普遍认为进展缓慢,通过构建集成系统和使用成功方法的小变体获得的进展很小。SIFT和HOG是块状定位直方图,我们可以将其与V1中的复杂细胞大致联系起来,V1是灵长类视觉通路的第一个皮层区域。但我们也知道,识别发生在下游的几个阶段,这表明可能有更高级的,计算特征的多阶段过程,甚至是视觉识别的信息。福岛的“新认知子”,是一种受生物启发的层次结构和移不变模式识别模型,正是这种过程的早期尝试。然而,新认知元缺乏监督训练算法。LeCun等人在Rumelhart等人的基础上,证明了通过反向传播的随机梯度下降对于训练卷积神经网络(CNNs)是有效的,这是一类扩展新认知子的模型。

CNNs在20世纪90年代得到了广泛的应用(例如[27]),但是随着支持向量机的兴起,CNNs就不再流行了。2012年,Krizhevsky等人[25]通过在ImageNet大尺度视觉识别挑战(ILSVRC)上显示出更高的图像分类精度,重新点燃了人们对CNNs的兴趣[9,10]。他们的成功源于对120万张标记图像的大型CNN的训练,加上LeCun的CNN上的一些扭曲(例如,max(x, 0)校正非线性和“dropout”正则化)。

在2012年ILSVRC研讨会上,关于ImageNet结果的重要性进行了激烈的讨论。核心问题可以归结为:ImageNet上的CNN分类结果在多大程度上可以推广到PASCAL VOC Challenge上的目标检测结果?我们通过缩小图像分类和目标检测之间的差距来回答这个问题。本文首次表明,与基于简单的类HOG特征的系统相比,基于PASCAL VOC的CNN可以显著提高目标检测性能。为了实现这一结果,我们重点研究了两个问题:用深度网络对目标进行定位,以及用少量带注释的检测数据训练高容量模型。与图像分类不同,检测需要在图像中定位(可能有很多)目标。一种方法将本地化定义为一个回归问题。然而,Szegedy et al.等人的研究表明,这种策略在实践中可能并不成功(他们报告了2007年VOC的30.5%,而我们的方法达到了58.5%)。另一种方法是构建一个滑动窗口检测器。CNNs已经以这种方式使用了至少20年,通常用于受约束的对象类别,如人脸和行人。为了保持较高的空间分辨率,这些CNNs通常只有两个卷积层和池化层。我们还考虑采用滑动窗口方法。然而,在我们的网络中,有5个卷积层,在输入图像中有非常大的接受域(195×195像素)和跨距(32×32像素),这使得在滑动窗口范例中精确定位成为一个开放的技术挑战。

相反,我们通过在“区域识别”范式中操作来解决局部化问题,该范式在目标检测和语义分割两方面都取得了成功。在测试时,我们的方法为输入图像生成约2000个类别独立的区域建议,使用CNN从每个建议中提取一个固定长度的特征向量,然后用类别特定的线性svm对每个区域进行分类。我们使用一种简单的技术(仿射图像扭曲)来计算每个区域提案的固定大小的CNN输入,而不管该区域的形状如何。图1显示了我们方法的概述,并突出显示了我们的一些结果。由于我们的系统将区域建议与CNN相结合,所以我们将方法命名为R-CNN:具有CNN特征的区域。

在本文的更新版本中,我们通过在200类ILSVRC 2013检测数据集上运行R-CNN,对R-CNN和最近提出的OverFeat检测系统进行了面对面的比较。OverFeat使用滑动窗口CNN进行检测,是目前ILSVRC2013检测中性能最好的方法。结果显示,R-CNN的表现明显优于OverFeat,其mAP为31.4%,而OverFeat为24.3%。

检测面临的第二个挑战是标记数据稀缺,目前可用的数量不足以训练一个大型CNN。解决这个问题的传统方法是使用无监督的预训练,然后进行监督微调。本文的第二个主要贡献是证明了在大辅助数据集(ILSVRC)上进行有监督的预训练,然后在小数据集(PASCAL)上进行特定领域的微调,是在数据匮乏时学习大容量CNNs的有效范例。在我们的实验中,用于检测的微调将mAP性能提高了8个百分点。经过微调后,我们的系统在VOC 2010上的mAP为54%,而基于hog的高调谐可变形部件模型(DPM)的mAP为33%。我们还向读者指出了同时代的Donahue等人的工作,他们指出Krizhevsky的CNN可以作为一个黑盒特征提取器(无需微调)使用,在场景分类、细粒度子分类和领域适应等多个识别任务上表现出色。

我们的系统也相当高效。唯一计算量大的部分是一个相当小的矩阵-向量乘积和贪婪的非最大抑制。这个计算特性来自于所有类别共享的特性,这些特性的维数也比以前使用的区域特性低两个数量级。了解该方法的失效模式对于改进该方法也至关重要,因此我们报告了来自Hoiem等人的检测分析工具的结果。分析的直接结果是,我们证明了一个简单的边界盒回归方法可以显著减少错误定位,而错误定位是主要的错误模式。在开发技术细节之前,我们注意到,由于R-CNN对区域进行操作,所以很自然地将其扩展到语义分割任务。通过少量的修改,我们在PASCAL VOC的分割任务上也取得了有竞争力的结果,在2011年的VOC测试集上平均分割准确率为47.9%。

三、用R-CNN进行目标检测

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

3.1、模块设计

区域建议:最近的许多论文都提供了生成分类独立区域提案的方法。

特征提取:我们使用Krizhevsky等人描述的CNN的Caffe实现,从每个区域提案中提取4096维特征向量。通过5个卷积层和2个全连通层,对一个均值减去227×227的RGB图像进行正向传播,计算特征值。为了计算区域建议的特征,我们必须首先将该区域的图像数据转换成与CNN兼容的形式(CNN的架构要求输入固定的227×227像素大小)。在任意形状区域的许多可能转换中,我们选择了最简单的。无论候选区域的大小或长宽比如何,我们都将它周围的所有像素弯曲到所需的大小。在拖拽之前,我们将紧边界框放大,这样在扭曲的大小处,原始框周围正好有p个扭曲的图像上下文像素(我们使用p = 16)。图2显示了扭曲训练区域的随机抽样。附录A讨论了翘曲的替代方案。

3.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上得到的矩阵乘法也只需要10秒。这种效率不仅仅是使用区域建议和共同特点的结果。UVA系统,由于其高维特性,将会慢两个数量级,同时只需要134GB的内存来存储100k的线性预测器,而我们的低维特性只需要1.5GB。同样有趣的是,将R-CNN与Dean等人最近关于使用DPMs和散列进行可伸缩检测的工作进行对比。他们报告说,在引入10k干扰类时,每张图像的运行时间为5分钟,2007年VOC的mAP约为16%。使用我们的方法,10k检测器可以在CPU上运行大约一分钟,因为没有进行近似,mAP将保持59%(第4.2节)。

3.3、训练

监督训练:我们在一个大的辅助数据集(ILSVRC2012分类)上对CNN进行了有区别的预训练,只使用图像级注释(此数据不提供bounding box标签)。使用开源的CNN库进行预训练。简而言之,我们的CNN与Krizhevsky等人的的性能基本匹配,在ILSVRC2012分类验证集上获得了前1名的错误率,高出2.2个百分点。

特定领域的微调:为了使我们的CNN适应新的任务(检测)和新的领域(形变的建议窗口),我们继续随机梯度下降(SGD)训练的CNN参数,只使用形变的区域建议。除了用一个随机初始化的(N + 1)-way分类层替换CNN特定于imagenet的1000-way分类层(其中N是对象类的数量,加上1作为背景)之外,CNN体系结构没有改变。VOC为N = 20, ILSVRC2013为N = 200。我们将所有IoU≥0.5的区域建议与ground-truth框重叠视为该框类的积极因素,其余为消极因素。我们以0.001的学习率(初始训练前率的十分之一)开始SGD,这允许在不破坏初始化的同时进行微调。在每个SGD迭代中,我们统一采样32个正窗口(在所有类上)和96个后台窗口,构建一个大小为128的小批。我们倾向于正窗口的抽样,因为与背景相比,它们非常罕见。

目标类分类器:

考虑训练一个二进制分类器来检测车辆。很明显,一个紧密包围汽车的图像区域应该是一个正样本。同样,很明显,与汽车无关的背景区域应该是一个负样本。不太清楚的是,如何给部分与汽车重叠的区域贴上标签。我们使用IoU重叠阈值来解决这个问题,低于这个阈值的区域被定义为负值。重叠阈值0.3是通过在一个验证集{0, 0.1, . . . , 0.5}上执行一个网格搜索来选取。我们发现,仔细选择这个阈值非常重要。设置为0.5,mAP减少了5个点。类似地,将其设置为0,mAP减少了4个点。正样本被简单地定义为每个类的ground-truth边界框。在提取特征并应用训练标签后,我们对每个类优化一个线性SVM。由于训练数据太大,无法存储,我们采用标准的难负挖掘。难负挖掘收敛很快,在实际中,mAP停止增长后,只有一个单一通过所有的图像。在附录B中,我们讨论了为什么在微调和支持向量机训练中对正例和负例的定义不同。我们还讨论了训练检测支持向量机所涉及的权衡,而不是简单地使用微调后的CNN的最终softmax层的输出。

3.4、在PASCAL VOC 2010-12上的结果

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

3.5、在ILSVRC 2013上的检测结果

我们使用与PASCAL VOC相同的系统超参数,在200类ILSVRC2013检测数据集上运行R-CNN。我们遵循相同的协议,只向ILSVRC2013评估服务器提交两次测试结果,一次带有和一次不带有边界框回归。图3将R-CNN与ILSVRC 2013竞赛的参赛作品以及赛后的OverFeat结果进行了比较。R-CNN获得31.4%的mAP,明显领先于第二好的OverFeat(24.3%)。为了了解AP在类上的分布情况,还给出了box plot,在本文的最后给出了每个类的AP表,如表8所示。大多数参赛作品(OverFeat、necu - mu、UvA-Euvision、Toronto A和UIUC-IFP)都使用了卷积神经网络,这表明CNNs在如何应用于目标检测方面存在显著的细微差别,导致了结果的巨大差异。

四、可视化、消融和误差模式

4.1 可视化学到的特征

第一层滤波器可以直接可视化,易于理解。它们捕捉有方向的边缘和对手的颜色。理解后面的层更具挑战性。Zeiler和Fergus在提出了一种具有视觉吸引力的反体积方法。我们提出了一种简单的(互补的)非参数方法,可以直接显示网络的学习情况。其思想是在网络中挑出一个特定的单元(特性),并把它当作一个单独的目标检测器来使用。也就是说,我们计算了单元在一组很大的待定区域提案上的激活(大约1000万个),将提案从最高激活到最低激活进行排序,执行非最大抑制,然后显示得分最高的区域。我们的方法让所选的单元“speak for itself”,准确地显示它触发的输入。我们避免平均,以便看到不同的视觉模式,并深入了解单位计算的不变性。

我们可视化来自layer pool5的单元,它是网络的第五个也是最后一个卷积层的maxpooling输出。pool5 feature map为6×6×256 = 9216维。忽略边界效应,在原始的227×227像素输入中,每个pool5单元的接受域为195×195像素。中心p o o l_{5} 一个单元几乎可以看到整个全局,而靠近泳池边缘的一个单元则有一个更小的、修剪过的支撑物。图4中的每一行显示了来自CNN的pool5单元的前16个激活,我们对VOC 2007 trainval进行了微调。256个功能独特的单元中有6个是可视化的(附录D包括更多)。选择这些单元是为了展示网络学习的代表性样本。在第二行,我们看到一个单元,它对狗的脸和点数组开火。第三行对应的单元是一个红色斑点检测器。此外,还有人脸探测器,以及更抽象的图案,如文本和带有窗户的三角形结构。网络似乎学习了一种表示方法,该方法将少量的类调优特性与形状、纹理、颜色和材料属性的分布式表示方法结合在一起。随后的完全连接层fc6能够对这些丰富特性的大量组合进行建模。

4.2、消融研究

性能逐层提升,无需微调:为了了解哪些层对检测性能至关重要,我们分析了VOC 2007数据集上CNN最后三层的每一层的结果。最后两层总结如下。层fc6完全连接到pool5。为了计算特征,它将4096×9216权矩阵乘以pool5特征图(以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会产生非常好的结果,即使pool5功能仅使用CNN参数的6%来计算。CNN的大部分代表性力量来自它的卷积层,而不是更大的密集连接层。这一发现表明,仅使用CNN的卷积层,就可以计算任意大小图像的密集特征图(HOG)而言,具有潜在的实用价值。这种表示方式将支持在pool5特性的基础上使用滑动窗口检测器(包括DPM)进行实验。

性能逐层优化:在对VOC 2007 trainval的参数进行微调后,我们现在查看CNN的结果。改进非常显著(表2行4-6):微调将mAP提高8.0个百分点,达到54.2%。与pool5相比,fc6和fc7的微调带来的提升要大得多,这表明从ImageNet学习到的pool5特性是通用的,而且大部分改进是通过在它们之上学习领域特定的非线性分类器获得的。

与最近的特征学习方法进行比较:在PASCAL VOC检测中,特征学习方法的应用相对较少。我们来看看最近两种基于可变形部件模型的方法。作为参考,我们还包括了标准的基于hog的DPM的结果。第一种DPM特征学习方法,DPM ST,利用“sketch token”概率直方图来增强HOG特征。直观地说,sketch token是通过图像块中心的紧密分布的轮廓。sketch token概率由一个训练有素的随机森林在每个像素处计算,该森林将35×35个像素块划分为150个sketch token或背景中的一个。第二种方法,DPM HSC,用稀疏编码直方图(HSC)代替HOG。为了计算HSC,使用100个7×7像素(灰度)原子的学习型字典对每个像素处的稀疏代码激活进行求解。由此产生的激活是用三种方法来纠正(完整和half-waves),空间池化、单元l2归一化,然后进行指数变换(

x \leftarrow \operatorname{sign}(x)|x|^{\alpha})。所有的R-CNN变体都比三个DPM baseline(表2行8-10)表现得更好,包括两个使用特性学习的baseline。与只使用HOG特性的最新版本DPM相比,我们的mAP提高了20多个百分点:54.2% vs. 33.7%—相对提高了61%。HOG和sketch token的组合仅比HOG多出2.5个mAP,而HSC比HOG多出4个mAP(与它们的私有DPM baseline相比,两者都使用了DPM的非公共实现,其性能低于开源版本)。这些方法的mAP分别为29.1%和34.3%。

4.3、网络结构

本文的大部分研究结果都采用了Krizhevsky等人提出的[25]网络结构。然而,我们发现架构的选择对R-CNN的检测性能有很大的影响。表3显示了Simonyan和Zisserman[43]最近提出的16层深度网络对VOC 2007测试的结果。在最近的ILSVRC 2014年分类挑战中,该网络是表现最好的网络之一。该网络结构均匀,由13层3×3个卷积核组成,中间穿插5个最大汇聚层,顶部为3个全连通层。我们把这个网络称为牛津网的“O-Net”,把多伦多网的基线称为“T-Net”。为了在R-CNN中使用O-Net,我们从Caffe模型zoo1下载了VGG ILSVRC 16层模型的公共可用的预训练网络权值,然后使用与T-Net相同的协议对网络进行微调。唯一的区别是使用更小的小批量(24个例子),以适应GPU内存的要求。从表3中可以看出,使用O-Net的R-CNN明显优于使用T-Net的R-CNN, mAP从58.5%增加到66.0%。然而,在计算时间方面有一个相当大的缺点,O-Net的前向传递时间大约是T-Net的7倍。

4.4、检测错误分析

为了揭示我们的方法的误差模式,了解微调如何改变它们,以及我们的误差类型如何与DPM进行比较,我们使用了Hoiem等人的优秀检测分析工具。对分析工具的完整总结超出了本文的范围,我们鼓励读者参考以了解一些更详细的细节(如“规范化AP”)。由于分析最好是在相关图的上下文中进行,所以我们在图5和图6的标题中给出了讨论。

4.5、bounding box回归

在误差分析的基础上,实现了一种减少定位误差的简单方法。受DPM中使用的边界盒回归的启发,我们训练了一个线性回归模型来预测一个新的检测窗口,该窗口给出了一个选择性搜索区域建议的pool5特性。附录c提供了完整的细节。表1、表2和图5中的结果显示,这种简单的方法修复了大量的错误定位检测,将mAP提高了3到4个点。

4.6、定性结果

本文最后对ILSVRC2013的定性检测结果如图8和图9所示。从val2集合中随机抽取每幅图像,并显示出所有精度大于0.5的检测器的检测结果。注意,这些都不是精心策划的,并给实际操作中的检测器一个真实的印象。图10和图11给出了更多的定性结果,但是这些结果都经过了整理。这些都是经过策划的。我们选择每一张图片是因为它包含有趣的、令人惊讶的或有趣的结果。在这里,我们选择每一张图片是因为它包含了有趣的、令人惊讶的或有趣的结果。这里还显示了精度大于0.5的所有检测结果。

五、ILSVRC 2013检测结果

在第2节中,我们展示了ILSVRC 2013检测数据集的结果。这些都是经过策划的。我们选择每一张图片是因为它包含有趣的、令人惊讶的或有趣的结果。在这里,这个数据集的同构性不如PASCAL VOC,需要选择如何使用它。由于这些决策非常重要,所以我们将在本节中讨论它们。

5.1、数据集概览

ILSVRC2013检测数据集分为三组:train(395,918)、val(20,121)和test(40,152),每组图像的数量用括号括起来。val和test分割是由相同的图像分布绘制的。这些图像与PASCAL VOC图像具有类似场景的复杂性(目标的数量、杂波的数量、姿态的可变性等)。val和test分隔符被详细地注释,这意味着在每个映像中,所有200个类的所有实例都用包围框标记。相比之下,该训练集是从ILSVRC2013分类图像分布中提取的。这些图像具有更大的可变复杂性,并倾向于单一居中对象的图像。与val和test不同的是,火车图像(由于它们的数量很大)没有进行详尽的注释。在任何给定的训练映像中,来自200个类的实例可能被标记,也可能没有。除了这些图像集之外,每个类都有一组额外的负图像。手动检查负映像,以验证它们不包含关联类的任何实例。在这项工作中没有使用负像集。

这些分裂的性质为训练R-CNN提供了许多选择。训练图像不能用于难负挖掘,因为注释不是详尽的。负面例子应该从何而来?此外,训练图像具有不同的统计比val和检验。到底应该使用火车图像吗?如果应该,应该在多大程度上使用?虽然我们还没有对大量的选择进行全面的评估,但是根据之前的经验,我们给出了似乎是最明显的路径。我们的总体策略是在很大程度上依赖于val集,并使用一些训练图像作为积极例子的辅助来源。为了同时使用val进行训练和验证,我们将其大致分成大小相同的“val1”和“val2”集。由于有些类在val中只有很少的例子(最小的只有31个,一半少于110个),因此生成一个近似类平衡的分区是很重要的。为此,生成了大量的候选分割,并选择了相对类不平衡最大最小的分割。每一个候选分割都是由val图像聚类生成的,使用它们的类计数作为特征,然后进行随机局部搜索,这可能会改善分割平衡。这里使用的特殊分割具有大约11%的最大相对不平衡和4%的中值相对不平衡。用于生成它们的val1/val2分割和代码将公开提供,以允许其他研究人员在本报告中使用的val分割上比较他们的方法。

5.2、区域建议

我们采用与PASCAL上的检测相同的区域建议方法。选择性搜索[39]在“快速模式”下运行在val1、val2和test中的每张图像上(但不在训练集上的图像上)。一个小的修改是需要处理的事实,选择搜索不是规模不变的,所以产生的区域数量取决于图像分辨率。ILSVRC图像的大小范围从非常小到几个百万像素,因此在运行选择性搜索之前,我们将每个图像的大小调整为固定宽度(500像素)。在val上,选择性搜索结果显示每张图像平均有2403个区域建议,所有ground truth边界框的召回率为91.6% (0.5 IoU阈值)。召回率明显低于PASCAL,后者约为98%,表明在区域建议阶段有很大的改进空间。

5.3、训练数据

对于训练数据,我们形成了一组图像和框,其中包括val1中的所有选择性搜索框和ground-truth框,以及训练集上每个班最多N个ground-truth框(如果一个训练集上的一个类的ground-truth框少于N个,那么我们就把它们都拿走)。我们将这个图像和边界框的数据集称为val1+trainN。在消融研究中,我们展示了N∈{0,500,1000}的val2上的mAP。R-CNN需要三个步骤的训练数据:(1)CNN微调,(2)检测器SVM训练,(3)边界盒回归器训练。使用与PASCAL相同的设置,在val1+trainN上对CNN进行了5万SGD迭代的微调。使用Caffe对一台英伟达Tesla K20进行微调需要13个小时。在SVM训练中,所有来自val1+trainN的ground-truth box都被作为各自类的正例。对随机选取的5000幅val1图像子集进行难负挖掘。一项初步实验表明,与5000幅图像子集(大约一半)相比,从所有val1中挖掘负号只会导致mAP下降0.5个百分点,而SVM的训练时间则减少了一半。没有从train中提取负样本,因为注释不是详尽的。没有使用额外的经过验证的负面图像集。对边界盒回归器进行val1训练。

5.4、验证和评估

在将结果提交给评估服务器之前,我们使用上面描述的训练数据验证了数据使用选择以及微调和边界框回归对val2集的影响。所有系统超参数(如SVM C超参数、用于区域整经的填充、NMS阈值、边界盒回归超参数)都固定在PASCAL相同的值上。毫无疑问,其中一些超参数的选择对于ILSVRC来说是稍微次优的,但是,这项工作的目标是在没有大量数据集调优的情况下,在ILSVRC上生成一个初步的R-CNN结果。在选择了val2上的最佳选项之后,我们向ILSVRC2013评估服务器提交了两个结果文件。第一次提交不使用边界盒回归,第二次提交使用边界盒回归。对于这些提交,我们扩展了SVM和边界盒回归器训练集,分别使用val+train1k和val。我们使用了在val1+train1k上进行微调的CNN,以避免重新运行微调和特征计算。

5.5、消融研究

表4显示了对不同数量的训练数据、微调和边界盒回归的影响的消融研究。第一个观察是,val2上的mAP与测试上的mAP非常匹配。这让我们相信,val2上的mAP是测试集性能的良好指示器。第一个结果是20.9%,这是R-CNN使用在ILSVRC2012分类数据集上预先训练的CNN所获得的结果(没有微调),并且允许访问val1中的少量训练数据(回想一下,val1中有一半的类有15到55个例子)。将训练集扩展到val1+trainN可以将性能提高到24.1%,N = 500和N = 1000之间基本没有区别。使用示例对CNN进行微调,从val1略微提高到26.5%,但是由于正面训练示例的数量很少,可能存在明显的过度拟合。将微调集扩展到val1+train1k,这将每个类增加1000个积极的例子,这将极大地帮助mAP提高到29.7%。边界盒回归将结果提高到31.0%,这比PASCAL中观察到的相对增益要小。

5.6、和Overfeat之间的关系

表4显示了对不同数量的训练数据、微调和边界盒回归的影响的消融研究。第一个观察是,val2上的mAP与测试上的mAP非常匹配。这让我们相信,val2上的mAP是测试集性能的良好指示器。第一个结果是20.9%,这是R-CNN使用在ILSVRC2012分类数据集上预先训练的CNN所获得的结果(没有微调),并且允许访问val1中的少量训练数据(回想一下,val1中有一半的类有15到55个例子)。将训练集扩展到val1+trainN可以将性能提高到24.1%,N = 500和N = 1000之间基本没有区别。使用示例对CNN进行微调,从val1略微提高到26.5%,但是由于正样本的数量很少,可能存在明显的过度拟合。将微调集扩展到val1+train1k,这将每个类增加1000个积极的例子,这将极大地帮助mAP提高到29.7%。边界盒回归将结果提高到31.0%,这比PASCAL中观察到的相对增益要小。

六、语义分割

区域分类是一种标准的语义分割技术,使我们能够轻松地将R-CNN应用到PASCAL VOC的分割挑战中。为了便于与当前领先的语义分割系统(称为O2P的“二阶池”)进行直接比较,我们在其开源框架内工作。O2P使用CPMC为每张图像生成150个区域建议,然后使用支持向量回归(SVR)为每个类预测每个区域的质量。他们的方法的高性能是由于CPMC区域的质量和多种特征类型(SIFT和LBP的丰富变种)的强大二阶池。我们还要注意Farabet等人最近展示了好的结果在几个密集场景 (不包括PASCAL)使用多尺度逐像素分类器。在VOC 2011验证集上交叉验证设计决策和超参数。最终测试结果只评估一次。

用来分割的CNN特征:我们评估了三种计算CPMC区域特征的策略,所有这些策略都是从将该区域周围的矩形窗口扭曲为227×227开始的。第一个策略(full)忽略区域的形状,直接在扭曲的窗口上计算CNN的特性,就像我们在检测时所做的那样。然而,这些特征忽略了区域的非矩形形状。两个区域可能有非常相似的边界框,但几乎没有重叠。因此,第二种策略(fg)只计算区域前景掩码上的CNN特性。我们用均值输入代替背景,这样在均值相减后背景区域为零。第三种策略(full+fg)简单地将full和fg特性连接起来;实验验证了它们的互补性。

VOC 2011结果:表5显示了我们对VOC 2011验证集与O2P测试结果的总结。在每个特征计算策略中,层fc6的性能总是优于层fc7,下面讨论的是层fc6的特征。fg策略略优于full策略,说明掩蔽区域形状提供了更强的信号,符合我们的直觉。然而,full+fg的平均准确率为47.9%,我们的最佳结果为4.2%(也略微优于O2P),这表明即使给定了fg特性,full特性提供的上下文也具有很高的信息量。值得注意的是,在单个核心上对20个svr进行完整的+fg功能的训练需要1个小时,而在O2P功能上的培训需要10个多小时。在表6中,我们展示了VOC 2011测试集的结果,并将我们的最佳性能方法fc6 (full+fg)与两个强基线进行了比较。我们的方法在21个类别中有11个达到了最高的分割精度,并且在所有类别中平均达到了最高的整体分割精度47.9%(但是在任何合理的误差范围内都可能与O2P结果相关联)。通过微调还可以获得更好的性能。

七、结论

近年来,目标检测性能一直停滞不前。性能最好的系统是将多个低层图像特征与来自目标检测器和场景分类器的高层上下文相结合的复杂集成。本文提出了一种简单、可扩展的目标检测算法,该算法相对改进30%超过PASCAL VOC 2012年度最佳成绩。本文提出了一种简单、可扩展的目标检测算法,相对于PASCAL VOC 2012上已有的最佳检测结果提高了30%。我们通过两个方法实现了这一性能。首先将大容量卷积神经网络应用于自底向上的区域方案中,对目标进行定位和分割。第二种是当标记的训练数据缺乏时训练大型CNNs的范例。实验结果表明,对具有丰富数据的辅助任务(图像分类)进行网络预训练,然后对数据不足的目标任务(检测)进行网络微调是非常有效的。我们推测,“有监督的预训练/特定领域的微调”范式将对各种数据匮乏的视觉问题非常有效。最后,我们注意到,我们使用计算机视觉和深度学习(自底向上的区域建议和卷积神经网络)的经典工具组合来实现这些结果,这一点非常重要。两者不是对立的科学探究路线,而是天然的、不可避免的合作伙伴。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年08月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、摘要
  • 二、简介
  • 三、用R-CNN进行目标检测
    • 3.1、模块设计
      • 3.2、测试时间检测
        • 3.3、训练
          • 3.4、在PASCAL VOC 2010-12上的结果
            • 3.5、在ILSVRC 2013上的检测结果
            • 四、可视化、消融和误差模式
              • 4.1 可视化学到的特征
                • 4.2、消融研究
                  • 4.3、网络结构
                    • 4.4、检测错误分析
                      • 4.5、bounding box回归
                        • 4.6、定性结果
                        • 五、ILSVRC 2013检测结果
                          • 5.1、数据集概览
                            • 5.2、区域建议
                              • 5.3、训练数据
                                • 5.4、验证和评估
                                  • 5.5、消融研究
                                    • 5.6、和Overfeat之间的关系
                                    • 六、语义分割
                                    • 七、结论
                                    相关产品与服务
                                    图像识别
                                    腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档