英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料
用于视觉识别的深度卷积网络空间金字塔池化方法
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun
摘要——当前深度卷积神经网络(CNNs)都需要输入的图像尺寸固定(比如224times;224)。这种人为的需要或许会降低任意尺寸和比例的图像或子图像的识别精度。本文中,我们给网络配上一个叫做“空间金字塔池化”(spatial pyramid pooling)的池化策略以消除上述限制。这个我们称之为SPP-net的新的网络结构能够产生固定大小的表示(representation)而不关心输入图像的尺寸或比例。金字塔池化对物体的形变十分鲁棒。由于诸多优点,我们证实了SPP-net可以普遍帮助改进各类基于CNN的图像分类方法。在ImageNet2012数据集上,SPP-net将各种CNN架构的精度都大幅提升,尽管这些架构有着各自不同的设计。在PASCAL VOC 2007和Caltech101数据集上,SPP-net使用单一全图像表示,在没有调优的情况下都达到了最好成绩。
SPP-net在物体检测上也表现突出。使用SPP-net,只需要从整张图片计算一次特征图(feature map),然后对任意尺寸的区域(子图像)进行特征池化以产生一个固定尺寸的表示用于训练检测器。这个方法避免了反复计算卷积特征。在处理测试图像时,我们的方法在VOC2007数据集上,达到相同或更好的性能情况下,比R-CNN方法快24-102倍。
在ImageNet大规模视觉识别任务挑战(ILSVRC)2014上,我们的方法在物体检测上排名第2,在物体分类上排名第3,参赛的总共有38个组。本文也介绍了为了这个比赛所作的一些改进。
索引词——卷积神经网络,空间金字塔池化,图像分类,目标检测
————————————————————————————————————
1.简介
我们看到计算机视觉领域正在经历飞速的变化,这一切得益于深度卷积神经网络(CNNs)[1]和大规模的训练数据的出现[2]。近来基于深度网络的方法在对图像分类[3][4][5][6],
bull;K.He and J.Sun are with Microsoft Research,Beijing,China.
E-mail:{kahe,jiansun}@microsoft.com
bull;X.Zhang is with Xirsquo;an Jiaotong University,Xirsquo;an,China.
E-mail:Xyz.clx@stu.xjtu.edu.cn
bull; S.Ren is with University of Science and Technology of China,Hefei,China.
E-mail:sqren@mail.ustc.edu.cn
This work was done when X.Zhang and S.Ren were interns at Microsoft Research.
图1:最上面的是剪裁或变形来固定尺寸。中间的是传统CNN结构。最下面的是我们的空间金字塔池化网络结构。
物体检测[7][8][5],许多其他识别任务[9][10][11][12],甚至非识别任务上都表现出了明显的性能提升。
然而,这些技术在训练和测试时都有一个问题,这些流行的CNNs都需要输入的图像尺寸是固定的(比如224times;224),这限制了输入图像的长宽比和缩放尺度。当遇到任意尺寸的图像时,都是先将图像适应成固定尺寸,方法包括裁剪[3][4]和变形[13][7],如
图1(上)所示。但裁剪会导致信息的丢失,变形会导致位置信息的扭曲,就会影响识别的精度。另外,一个预先定义好的尺寸在物体是缩放可变的时候就不适用了。
那么为什么CNNs需要一个固定的输入尺寸呢?CNN主要由两部分组成,卷积部分和其后的全连接部分。卷积部分通过滑窗进行计算,并输出代表激活的空间排布的特征图(feature map)(图2)。事实上,卷积并不需要固定的图像尺寸,他可以产生任意尺寸的特征图。而另一方面,根据定义,全连接层则需要固定的尺寸输入。因此固定尺寸的问题来源于全连接层,也是网络的最后阶段。本文引入一种空间金字塔池化( spatial pyramid pooling,SPP)层以移除对网络固定尺寸的限制。尤其是,将SPP层放在最后一个卷积层之后。SPP层对特征进行池化,并产生固定长度的输出,这个输出再喂给全连接层(或其他分类器)。换句话说,在网络层次的较后阶段(也就是卷积层和全连接层之间)进行某种信息“汇总”,可以避免在最开始的时候就进行裁剪或变形。图1(下)展示了引入SPP层之后的网络结构变化。我们称这种新型的网络结构为SPP-net。
空间金字塔池化[14][15](普遍称谓:空间金字塔匹配spatial pyramid matching, SPM[15]),是一种词袋(Bag-of-Words, BoW)模型的扩展。池袋模型是计算机视觉领域最成功的方法之一。它将图像切分成粗糙到精细各种级别,然后整合其中的局部特征。在CNN之前,SPP一直是各大分类比赛[17][18][19]和检测比赛(比如[20])的冠军系统中的核心组件。对深度CNNs而言,SPP有几个突出的优点:1)SPP能在输入尺寸任意的情况下产生固定大小的输出,而以前的深度网络[3]中的滑窗池化(sliding window pooling)则不能;2)SPP使用了多级别的空间箱(bin),而滑窗池化则只用了一个窗口尺寸。多级池化对于物体的变形十分鲁棒[15];3)由于其对输入的灵活性,SPP可以池化从各种尺度抽取出来的特征。通过实验,我们将展示影响深度网络最终识别精度的所有这些因素。
SPP-net不仅仅让测试阶段允许任意尺寸的输入能够产生表示(representations),也允许训练阶段的图像可以有各种尺寸和缩放尺度。使用各种尺寸的图像进行训练可以提高缩放不变性,以及减少过拟合。我们开发了一个简单的多尺度训练方法。为了实现一个单一的能够接受各种输入尺寸的网络,我们先使用分别训练固定输入尺寸的多个网络,这些网络之间共享权重(Parameters),然后再一起来代表这个单一网络。每个epoch,我们针对一个给定的输入尺寸进行网络训练,然后在下一个epoch再切换到另一个尺寸。实验表明,这种多尺度训练和传统的单一尺度训练一样可以收敛,并且能达到更好的测试精度。
SPP的优点与各类CNN设计是正交的。通过在ImageNet2012数据集上进行一系列对照实验,我们证实了SPP对[3][4][5]这些不同的CNN架构都有提升。这些架构有不同的特征数量或尺寸、滑动距离(strides)、深度或其他的设计。所以我们有理由推测SPP可以帮助提升更多复杂的(更大、更深)的卷积架构。SPP-net也做到了Caltech101 [21]和Pascal VOC 2007 [22]上的最好结果,而且只使用了一个全图像表示,且没有调优。
在图像检测方面,SPP-net也表现优异。目前领先的方法是R-CNN[7],候选窗口的特征是借助深度神经网络进行抽取的。此方法在VOC和ImageNet数据集上都表现出了出色的检测精度。但R-CNN的特征计算十分耗时,因为他对每张图片中的上千个变形后的区域的像素反复调用CNN。本文中,我们展示了我们只需要在整张图片上运行一次卷积网络层(不关心窗口的数量),然后再使用SPP-net在特征图上抽取特征。这个方法缩减了上百倍的耗时。在特征图(而不是图像区域)上训练和运行检测器是一个很受欢迎的想法[23][24][20][5]。但SPP-net延续了深度CNN特征图的优势,也结合了SPP兼容任意窗口大小的灵活性,所以做到了出色的精度和效率。我们的实验中,基于SPP-net的系统(建立在R-CNN流水线上)比R-CNN计算特征要快24-120倍,而精
(a)图像 (b)特征映射 (c)最强激活 (a)图像 (b)特征图 (c)最强激活
图2:特征图的可视化。(a)在Pascal VOC 2017中的两张图。(b)一些conv5层滤波器的特征图。箭头表示最强烈的反应及其在图像的相应位置。(c)具有对应滤波器的最强响应的ImageNet图像。绿色的矩形标记着反应最为强烈的感受野。
度却更高。结合最新的推荐方法EdgeBoxes[25],我们的系统达到了每张图片0.5s的处理速度(全部步骤)。这使得我们的方法变得更加实用。
本论文的一个早先版本发布在ECCV2014上。基于这个工作,我们参加了ILSVRC 2014 [26],在38个团队中,取得了物体检测第2名和图像分类第3名的成绩(两者都提供专用数据渠道)。针对ILSVRC 2014我们也做了很多修改。我们将展示SPP-nets可以将更深、更大的网络的性能显著提升。进一步,受检测框架驱动,我们发现借助灵活尺寸窗口对特征图进行多视角测试可以显著提高分类精度。本文对这些改动做了更加详细的说明。
另外,我们发布了代码以方便大家研究。
(http://research.microsoft.com/en-us/um/people/kahe/)
2. 基于空间金字塔池化的深度网络
2.1 卷积层和特征图
在颇受欢迎的七层架构中[3][4]中,前五层是卷积层,其中一些后面跟着池化层。从他们也使用滑窗的角度来看,这些池化层也可以认为是“卷积的”。最后两层是全连接的,跟着一个N路softmax输出,其中N是类别的数量。上述的深度网络需要一个固定大小的图像尺寸。然后,我们注意到,固定尺寸的要求仅仅是因为全连接层的存在导图3:一个拥有空间金字塔池化层的网络结构。这里256是Conv5层的滤波器数目,而Conv5层是最后的卷积层。
致的。另一方面,卷积层使用滑动的特征过滤器,它们的输出基本保持了原始输入的比例关系。它们的输出就是特征图[1]——它们不仅涉及响应的强度,还包括空间位置。
图2中,我们可视化了一些特征图。这些特征图来自于conv5层的一些过滤器。图2(c)显示了ImageNet数据集中激活最强的若干图像。可以看到一个过滤器能够被一些语义内容激活。例如,第55个过滤器(图2,左下)对圆形十分敏感;第66层(图2,右上)对a ^-形状特别敏感;第118个过滤器(图2,右下)对a ⋁-形状非常敏感。这些输入图像中的形状会激活相应位置的特征图(图2中的箭头)。值得注意的是,图2中生成的特征图并没有固定输入尺寸。深度卷积层生成的特征图和传统方法[27][28]中的特征图很相似。这些传统方法中,SIFT向量[29]或图像碎片[28]被密集地抽取出来,在通过矢量量化[16][15][30],稀疏化[17][18]或Fisher核函数[19]进行编码。这些
编码后的特征构成了特征图,然后通过词袋(BoW)[16]或空间金字塔[14][15]进行池化。类似的深度卷积的特征也可以这样做。
2.2 空间金字塔池化层
卷积层接受任意大小的输入,所以他们的输出也是各种大小。而分类器(SVM/softmax)或者全连接层UI需要固定的输入大小的向量。这种向量可以使用词袋方法[16]通过池化特征来生成。空间金字塔池化[14][15]对BoW进行了改进以便在池化过程中保留局部空间块(local spatial bins)中的空间信息。这些空间块的尺寸和图像的尺寸是成比例的,这样块的数量就是固定的了。而前述深度网络的滑窗池化则对依赖于输入图像的尺寸。
为了让我们的神经网络适应任意尺寸的图像输入,我们用一个空间金字塔池化层替换掉了最优一个池化层(最后一个卷积层之后的pool5)。图3示例了这种方法。在每个空间块中,我们池化每个过滤器的响应(本文中采用了最大池化法)。空间金字塔的输出是一个kM维向量,M代表块的数量,k代表最后一层卷积层的过滤器的数量。这个固定维度的向量就是全连接层的输入。
有了空间金字塔池化,输入图像就可以是任意尺寸了。不但允许任意比例关系,而且支持任意缩放尺度。我们也可以将输入图像缩放到任意尺度(例如min(w,h)=180,224,hellip;)并且使用同一个深度网络。当输入图像处于不同的空间尺度时,带有相同大小卷积核的网络就可以在不同的尺度上抽取特征。跨多个尺度在传统方法中十分重要,比如SIFT向量就经常在多个尺度上进行抽取[29][27](受碎片和高斯过滤器的大小所决定)。我们接下来会说明多尺度在深度网络精度方面的重要作用。
有趣的是,粗糙的金字塔级别只有一个覆盖了整张图像的块。这就是一个全局池化操作,当前有很多同时进行的工作正在研究它。[33]中,一个放在全连接层之后的全局平均池化被用来提高测试阶段的精确度;[34]中,一个全局最大池化用于弱监督物体
图4:基于cuda-convnet的一个3层金字塔池化示例[3]。这里“sizeX”是一个池化窗口的尺寸。这种配置是针对特征图尺寸是13times;13的conv5网络,所以pool3times;3,pool2times;2和pool1times;1层会分别对应3times;3,2times;2和1times;1的块。
识别。全局池化操作相当于传统的词袋方法。
2.3 网络的训练
理论上讲,上述网络结构可以用标准的反向传播进行训练[1],与图像
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[22540],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。