【SPPNet】Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition (2015) 全文翻译

作者

Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun
(K. He, J. Sun, Microsoft Research, Beijing, China. E-mail: {kahe,jiansun}@microsoft.com
X. Zhang, Xi’an Jiaotong University, Xi’an, China. Email: xyz.clx@stu.xjtu.edu.cn
S. Ren, University of Science and Technology of China, Hefei, China. Email: sqren@mail.ustc.edu.cn)

摘要

现有的深卷积神经网络(CNNs)需要一个固定大小(如224×224)的输入图像。这一要求是“人为的”,可能会降低对任意大小/比例的图像或子图像的识别精度。在这项工作中,我们为网络配备了另一种池策略“空间金字塔池”,以消除上述要求。这种新的网络结构称为SPP-net,它可以生成固定长度的表示,而不考虑图像的大小/比例。金字塔池对对象变形也很健壮。有了这些优势,SPP网应该在总体上改进所有基于CNN的图像分类方法。在ImageNet 2012数据集上,我们证明了SPP网络提高了各种CNN架构的准确性,尽管它们的设计不同。在Pascal VOC 2007和Caltech101数据集上,SPP-net使用单一的完整图像表示而无需微调即可获得最先进的分类结果。
SPP网络的强大功能在目标检测中也具有重要意义。利用SPP网络,我们只需从整个图像中计算一次特征映射,然后将任意区域(子图像)的特征集合起来生成固定长度的表示,以训练检测器。该方法避免了重复计算卷积特征。在处理测试图像时,我们的方法比R-CNN方法快24-102倍,同时在pascalvoc2007上获得了更好或相当的精度。
在2014年的ImageNet大规模视觉识别挑战赛(ILSVRC)中,我们的方法在所有38个团队中在目标检测和图像分类中排名第二和第三。本文还介绍了为这次比赛所作的改进。
**关键词:**卷积神经网络,空间金字塔池化,图像分类,目标检测

1. 引言

我们正在见证我们的视觉社区正在经历一场迅速而革命性的变化,这主要是由深度卷积神经网络(CNNs)[1]和大规模训练数据的可用性[2]引起的。基于深度网络的方法最近在图像分类[3]、[4]、[5]、[6]、目标检测[7]、[8]、[5]、许多其他识别任务[9]、[10]、[11]、[12]甚至非识别任务的最新技术基础上得到了实质性的改进。
然而,在CNN的训练和测试中存在一个技术问题:目前流行的cnn需要一个固定的输入图像大小(例如224×224),这限制了输入图像的纵横比和比例。当应用于任意大小的图像时,当前的方法大多是通过裁剪[3]、[4]或扭曲[13]、[7]将输入图像调整到固定大小,如图1(顶部)所示。但是裁剪区域可能不包含整个对象,而扭曲的内容可能会导致不必要的几何扭曲。由于内容丢失或失真,识别精度可能会受到影响。此外,当对象比例变化时,预定义的比例可能不适用。固定输入大小忽略了涉及规模的问题。
那么为什么CNN需要一个固定的输入大小呢?CNN主要由两个卷积层组成:一个完全相连的层。卷积层以滑动窗口方式操作,并输出表示激活的空间排列的特征图(图2)。事实上,卷积图不需要任何尺寸的卷积图。另一方面,完全连接的层需要有固定大小/长度的定义输入。因此,固定大小的约束只来自于完全连接的层,这些层存在于网络的较深阶段。

图1. 顶部:裁剪或翘曲以适合固定尺寸。中:传统的CNN。下图:我们的空间金字塔池网络结构

本文引入空间金字塔池(SPP)[14]、[15]层来消除网络的固定规模约束。具体来说,我们在最后一个卷积层的顶部添加了一个SPP层。SPP层将特征集合起来,生成固定长度的输出,然后输入到完全连接的层(或其他分类器)。换句话说,我们在网络层次结构的较深阶段(在卷积层和完全连接层之间)执行一些信息“聚合”,以避免在开始时进行裁剪或扭曲。图1(底部)显示了引入SPP层后网络架构的变化。我们称这种新的网络结构为SPP-Net。
空间金字塔池[14],[15](俗称空间金字塔匹配或SPM[15]),作为单词包(BoW)模型的扩展[16],是计算机视觉中最成功的方法之一。它将图像从细到粗划分,并在其中聚集局部特征。[例如,在第18和第17个分类系统中,[例如,在第17个分类系统中,]和[在第18个分类系统中占领先地位],[例如,在第17个分类系统中,[和第19个分类系统]一直处于领先地位。然而,SPP并没有在CNN的背景下被考虑。我们注意到,SPP对于深CNN有几个显著的特性:1)SPP能够生成固定长度的输出,而以前的深层网络使用的滑动窗口池[3]不能;2)SPP使用多级空间容器,而滑动窗口池仅使用单一窗口大小。多层次池已被证明对对象变形具有鲁棒性[15];3)由于输入尺度的灵活性,SPP可以在可变尺度上汇集提取的特征。实验结果表明,这些因素提高了深层网络的识别精度。
SPP-net不仅可以从任意大小的图像/窗口中生成用于测试的表示,而且还允许我们在训练期间提供不同大小或比例的图像。使用可变大小的图像进行训练可以提高尺度不变性并减少过拟合。我们开发了一种简单的多尺寸训练方法。对于一个接受可变输入大小的网络,我们用共享所有参数的多个网络来近似它,而每个网络都使用固定的输入大小进行训练。在每个历元中,我们用给定的输入大小训练网络,并切换到下一个纪元的另一个输入大小。实验结果表明,这种多尺度训练与传统的单尺度训练一样收敛,具有更好的测试精度。
SPP的优点与特定的CNN设计是正交的。在ImageNet 2012数据集上的一系列受控实验中,我们证明了SPP改进了现有出版物[3]、[4]、[5](或其修改)中的四种不同CNN架构,而非SPP对应的版本。这些架构有不同的过滤器数量/大小、跨距、深度或其他设计。因此,我们有理由推测,SPP应该改进更复杂(更深和更大)的卷积结构。SPP net还显示了Cal-tech101[21]和Pascal VOC 2007[22]的最新分类结果,只使用一个完整的图像表示,而没有进行微调。
SPP网络在目标检测方面也显示出强大的优势。在领先的目标检测方法R-CNN[7]中,候选窗口的特征是通过深卷积网络提取的。该方法在VOC和ImageNet数据集上都显示了显著的检测精度。但是R-CNN中的特征计算是非常耗时的,因为它反复地将深度卷积网络应用于每幅图像上数千个扭曲区域的原始像素。在本文中,我们证明了我们可以在整个图像上只运行一次卷积层(不考虑窗口数),然后通过SPP网络在特征映射上提取特征。这种方法的加速比R-CNN快100倍以上。注意,在特征图(而不是图像区域)上训练/运行检测器实际上是一个更流行的想法[23]、[24]、[20]、[5]。但是SPP网继承了CNN深层特征映射的强大功能,同时也继承了SPP对任意窗口大小的灵活性,使得SPP网络具有更高的精度和效率。在我们的实验中,基于SPP网络的系统(建立在R-CNN管道上)比R-CNN计算特征的速度快24-102倍,同时具有更好或相当的精度。最新的EdgeBoxes方法(包括我们最新的图像处理方法)需要25秒。这使得我们的方法在实际应用中很实用。
该手稿的初步版本已在ECCV 2014上发表。基于这项工作,我们参加了ILSVRC 2014[26]的比赛,在所有38支队伍中,目标检测排名第2,图像分类(均为仅提供数据的轨迹)排名第3。ILSVRC 2014有一些修改。我们发现,与无SPP网络相比,SPP网络可以促进更深更大的各种网络(第3.1.2-3.1.4节)。此外,在我们的检测框架的驱动下,我们发现在具有灵活定位/大小窗口的特征地图上进行多视图测试(第。3.1.5)可以提高分类精度。这份手稿还提供了这些修改的细节。
我们已经发布了代码,以便于将来的研究(http://research.microsoft.com/en-us/um/people/kahe/).

2. 空间金字塔池化的深度网络

2.1 卷积层和特征图

考虑一下流行的七层体系结构[3][4]。前五层是卷积层,其中一些是池层。这些池层也可以被认为是“卷积的”,因为它们使用的是滑动窗口。最后两层是完全连接的,以N路softmax作为输出,其中N是类别的数目。

图2. 特征图的可视化。(a)帕斯卡voc2007中的两张图片。(b)一些conv5过滤器的特征图。箭头表示最强的响应及其在图像中的对应位置。(c)具有相应过滤器最强响应的ImageNet图像。绿色的矩形表示反应最强的感受野

上面描述的深度网络需要一个固定的图像大小。然而,我们注意到固定尺寸的要求仅仅是由于完全连接的层需要固定长度的向量作为输入。另一方面,卷积层接受任意大小的输入。卷积层使用滑动滤波器,其输出与输入具有大致相同的纵横比。这些输出被称为特征图[1]——它们不仅涉及到响应的强度,还包括它们的空间位置。
在图2中,我们将一些特性映射可视化。它们是由conv5层的一些过滤器生成的。图2(c)显示了ImageNet数据集中这些过滤器的最强激活图像。我们看到过滤器可以被一些语义内容激活。图2最右边的一个形状(图2)激活了第二个最右边的形状,例如第二个最右边的形状被激活。输入图像中的这些形状(图2(a))激活相应位置的特征映射(图2中的箭头)。
值得注意的是,我们生成图2中的特性映射,而不需要固定输入大小。这些由深卷积层生成的特征图类似于传统方法中的特征图[27],[28]。在这些方法中,SIFT向量[29]或图像块[28]被密集地提取并编码,例如通过向量量化[16]、[15]、[30]、稀疏编码[17]、[18]或Fisher核[19]。这些编码的特征由特征映射组成,然后由单词包(BoW)[16]或空间金字塔[14],[15]汇集在一起。类似地,深部特征可以是相似的。

图3. 具有空间金字塔池层的网络结构。这里256是conv5层的滤波器号,conv5是最后一个卷积层

2.2 空间金字塔池化层

卷积层接受任意的输入大小,但是它们产生可变大小的输出。分类器(SVM/softmax)或全连通层需要固定长度的向量。这样的向量可以通过单词包(BoW)方法生成,该方法将特征集合在一起。空间金字塔池[14][15]改进了BoW,因为它可以通过在局部空间容器中汇集来维护空间信息。这些空间存储单元的大小与图像大小成比例,因此无论图像大小,存储单元的数量都是固定的。这与以前的深层网络[3]的滑动窗口池形成了鲜明对比,其中滑动窗口的数量取决于输入大小。
为了对任意大小的图像采用深度网络,我们将最后一个池层(例如,在最后一个卷积层之后的pool 5)替换为空间金字塔池层。图3演示了我们的方法。在每个空间单元中,我们汇集每个过滤器的响应(在本文中,我们使用最大池)。空间金字塔池的输出是kM维向量,其单元数表示为M(k是最后一个卷积层中的滤波器数目)。固定维向量是全连通层的输入。
使用空间金字塔池,输入图像可以是任何大小。这不仅允许任意纵横比,还允许任意缩放。我们可以调整输入图像的大小到任何比例(例如,min(w,h)=180,224,…),并应用相同的深度网络。当输入图像处于不同的尺度时,网络(具有相同的滤波器尺寸)将在不同的尺度上提取特征。尺度在传统的方法中起着重要的作用,例如SIFT向量通常在多个尺度上提取[29],[27](由斑块大小和高斯滤波器决定)。我们将证明尺度对深度网络的精度也很重要。
有趣的是,最粗糙的金字塔层有一个覆盖整个图像的箱子。这实际上是一个“全局池”操作,这也在一些并行的工作中进行了研究。在[31][32]中,使用全局平均池来减小模型大小,并减少过度拟合;在[33]中,在所有fc层之后的测试阶段使用全局平均池来提高精度;在[34]中,使用全局最大池来进行弱监督对象识别。全局池操作对应于传统的单词包方法。

2.3 训练网络

理论上,无论输入图像大小如何,上述网络结构都可以用标准的反向传播[1]进行训练。但实际上,GPU实现(如cuda convnet[3]和Caffe[35])最好运行在固定输入图像上。接下来,我们描述我们的培训解决方案,它利用这些GPU实现,同时仍然保留空间金字塔池行为。

  • 单个训练

与之前的工作一样,我们首先考虑从图像中裁剪出一个固定大小的输入(224×224)的网络。裁剪是为了增加数据。对于给定大小的图像,我们可以预先计算空间金字塔池所需的存储单元大小。考虑conv 5之后的特征图,其大小为a×a(例如,13×13)。在n×n个分格的金字塔级上,我们将这种池级实现为滑动窗口池,其中窗口大小win=da/ne,stride str=ba/nc,d·e和b·c表示天花板和地板操作。对于l级金字塔,我们实现了l这样的层。下一个完全连接的层(fc 6)将连接l输出。图4显示了cuda convnet样式的三层金字塔池(3×3,2×2,1×1)的配置示例[3]。
我们的单一规模培训的主要目的是实现多级池行为。实验表明,这是提高精度的一个原因。

  • 多个训练

我们与SPP的网络有望应用于任何尺寸的图像。为了解决训练中图像大小变化的问题,我们考虑一组预先定义的大小。我们考虑两种尺寸:180×180和224×224。我们没有裁剪较小的180×180区域,而是将上述224×224区域调整为180×180。因此,两种尺度下的区域只在分辨率上不同,而在内容/布局上没有差别。对于接受180×180输入的网络,我们实现了另一个固定大小的输入(180×180)网络。在本例中,conv5之后的特征映射大小是a×a=10×10。然后我们仍然使用win=da/ne和str=ba/nc来实现每个金字塔池级别。该180网络的空间金字塔池层的输出具有与224网络相同的固定长度。因此,该180网络在每一层中具有与224网络完全相同的参数。也就是说,在训练过程中,我们通过两个共享参数的固定大小的网络来实现不同输入大小的SPP网络。

图4. cuda convnet样式的3级金字塔池示例[3]。这里sizeX是池窗口的大小。此配置适用于特征映射大小为conv5的网络,因此pool 3×3、pool 2×2和pool 1×1层将分别有3×3、2×2和1×1个bin

为了减少从一个网络(例如224个)切换到另一个网络(例如180个)的开销,我们在一个网络上训练每个完整历元,然后切换到另一个(保持所有权重)下一个完整历元。这是迭代的。在实验中,我们发现这种多尺度训练的收敛速度与上述单尺度训练相似。
我们多规模培训的主要目的是模拟不同的输入大小,同时仍然利用现有的优化良好的固定大小实现。除了上述两个尺度的实现,我们还测试了一个使用s×s作为输入的变量,其中s在每个历元从[180224]随机均匀地采样。我们在实验部分报告了这两种变体的结果。
请注意,上述单/多尺寸解决方案仅用于培训。在测试阶段,将SPP网络应用于任何尺寸的图像都是很简单的。

表1. 网络架构:过滤器数量×过滤器大小(如 96 × 7 2 96×7^2 96×72)、过滤器步长(如str 2)、池窗口大小(如池 3 2 3^2 32)、输出特征映射大小(如映射大小55×55)。LRN表示局部响应规范化。调整填充以生成预期的输出特征映射大小

3. SPP-Net用于图像分类

3.1 在ImageNet 2012 分类数据集上的实验

我们在ImageNet 2012的1000类培训集上对网络进行培训。我们的训练算法遵循了前人工作[3]、[4]、[36]的实践。调整图像的大小以使较小的尺寸为256,并且从整个图像1的中心或四个角拾取224×224的裁剪。数据通过水平翻转和颜色改变来增加[3]。Dropout[3]用于两个完全连接的层。学习率从0.01开始,当误差趋于平稳时,再除以10(两次)。我们的实现基于cuda convnet[3]和Caffe[35]的公开代码。本文中的所有网络都可以在一个GeForce GTX Titan GPU(6gb内存)上进行训练,时间为两到四周。

3.1.1 基线网络体系结构

SPP的优点与所使用的卷积网络结构无关。我们研究了现有文献[3]、[4]、[5](或它们的修改)中的四种不同的网络结构,我们发现SPP提高了所有这些结构的准确性。这些基线架构如表1所示,简要介绍如下:
ZF-5: 该架构基于Zeiler和Fergus的“fast”(较小)模型[4]。数字表示五个卷积层。
Convnet-5: 这是对Krizhevsky等人的网络的修改[3]。我们将两个池层放在conv2和conv3之后(而不是conv1和conv2之后)。因此,每层之后的特征映射与ZF-5具有相同的大小。
Overfeat-5/7: 这个体系结构是基于Overfeat论文[5],在[6]中做了一些修改。与ZF-5/Convnet*-5相比,该架构在最后一个池层之前生成一个更大的特征映射(18×18而不是13×13)。在conv3和以下卷积层中使用更大的滤波器数(512)。我们还研究了具有7个卷积层的更深层次的体系结构,其中conv3到conv7具有相同的结构。
在基线模型中,最后一个卷积层之后的池化层生成6×6个特征映射,然后是两个4096-d fc层和一个1000路softmax层。我们对这些基线网络的复制如表2(a)所示。我们为ZF-5训练70个时代,为其他人训练90个时代。我们对ZF-5的复制比[4]中报告的要好。这是因为角部作物来自整个图像,正如文献[36]所述。

3.1.2 多层池化提高了准确性

在表2(b)中,我们展示了使用单一规模训练的结果。训练和测试规模均为224×224。在这些网络中,卷积层具有与相应基线模型相同的结构,而最终卷积层之后的池层被SPP层取代。对于表2中的结果,我们使用4级金字塔。金字塔为{6×6、3×3、2×2、1×1}(共50个料仓)。为了公平比较,我们仍然使用标准的10视图预测,每个视图的作物为224×224。我们在表2(b)中的结果显示,与表2(a)中的无SPP基线相比,有了相当大的改善。有趣的是,top-1误差的最大增益(1.65%)是由最精确的结构给出的。由于我们仍然使用与(a)中相同的10个裁剪视图,这些收益完全是由于多层次合并。
多层次的空间变形是值得注意的,因为多层次的空间变化更值得注意。为了说明这一点,我们训练了另一个具有不同4层金字塔的ZF-5网络:{4×4,3×3,2×2,1×1}(共30个箱子)。该网络比无SPP网络具有更少的参数,因为它的fc6层由36×256-d变为30×256-d,其前1/前5误差为35.06/14.04。这一结果与上面的50箱金字塔相似(34.98/14.14),但明显优于无SPP的对应物(35.99/14.76)。

表2. ImageNet 2012验证集中的错误率。所有的结果都是通过标准的10视图测试获得的。括号内为“无可持续政府采购”基线的收益


表3. ImageNet 2012使用单一视图的验证集中的错误率。图像大小调整为min(w,h)=256。裁剪视图是图像的中心224×224

3.1.3 多尺寸训练提高准确性

表2©显示了我们使用多尺寸训练的结果。训练规模是224和180,而测试规模仍然是224。我们仍然使用标准的10视图预测。所有架构的前1/5错误进一步下降。SPP网(Overfeat-7)的前1误差下降到29.68%,比无SPP网的前1误差提高了2.33%,比单一尺寸的训练网提高了0.68%。
除了使用180和224这两个离散尺寸之外,我们还使用[180224]中均匀抽样的随机尺寸进行了评估。SPP网(Overfeat-7)的前1/5误差为30.06%/10.96%。top-1错误比两个大小的版本稍差,可能是因为224(用于测试)的大小访问较少。但结果仍然是更好的单尺寸版本。
以前有CNN的解决方案[5],[36]处理各种规模/大小,但它们大多是基于测试。在Overfeat[5]和Howard方法[36]中,在测试阶段多尺度地应用单个网络,并对得分进行平均。霍华德进一步在低/高分辨率图像区域训练两个不同的网络,并平均得分。据我们所知,我们的方法是第一个用多种尺寸的输入图像训练单个网络的方法。

3.1.4 全图像表示提高了准确性

接下来,我们将研究完整图像视图的准确性。我们调整图像大小,使min(w,h)=256,同时保持其纵横比。将SPP网络应用于这幅全幅图像上,计算全景的得分。为了公平比较,我们还评估了中心224×224作物(在上述评估中使用)的单视图的精度。单视图测试精度比较见表3。这里我们评估ZF-5/Overfeat-7。全视图表示法降低了前1位的错误率。这说明了维护完整内容的重要性。即使我们的网络只使用正方形图像进行训练,它也能很好地推广到其他纵横比。
比较表2和表3,我们发现多个视图的组合比单个的完整图像视图要好得多。然而,完整的图像表示仍然具有很好的优点。首先,我们从经验上发现(在下一小节中讨论)即使对于几十个视图的组合,附加的两个完整图像视图(带翻转)仍然可以将精度提高约0.2%。其次,全图像视图在方法上与传统方法[15]、[17]、[19]一致,其中将整个图像的编码SIFT向量汇集在一起。第三,在其他应用中,例如图像检索[37],相似性排序需要图像表示而不是分类分数。可以首选完整的图像表示。

3.1.5 基于特征图的多视图测试

受我们的检测算法(在下一节中描述)的启发,我们进一步提出了一种基于特征映射的多视图测试方法。由于SPP的灵活性,我们可以很容易地从卷积特征映射中提取任意大小的窗口(视图)中的特征。
在测试阶段,我们调整图像大小,使min(w,h)=s,其中s代表预定义的比例(如256)。然后从整个图像中计算出卷积特征映射。对于翻转视图的使用,我们还计算了翻转图像的特征映射。给定图像中的任何视图(窗口),我们将该窗口映射到特征映射(映射的方式见附录),然后使用SPP将该窗口中的特征集合起来(见图5)。然后将合并的特征输入fc层,以计算该窗口的softmax得分。这些分数是最后预测的平均值。对于标准的10视图,我们使用s=256,视图是在角落或中心的224×224个窗口。实验结果表明,在原始图像上,预测误差在10-1%左右。

表4. ImageNet 2012的错误率。所有的结果都是基于一个单一的网络。Overfeat中的视图数量取决于尺度和步幅,其中最好的尺度有几百个

我们进一步应用此方法从多尺度中提取多个视图。我们将图像调整为6个尺度s∈{22425630360448560},并计算每个尺度下的整个图像的特征映射。我们使用224×224作为任何比例的视图大小,因此这些视图在不同比例下在原始图像上具有不同的相对大小。我们为每个比例使用18个视图:一个在中心,四个在角,四个在每边的中间,有/没有翻转(当s=224时有6个不同的视图)。这96个视图的组合将前5个错误从10.95%减少到9.36%。结合两个完整图像视图(带翻页)进一步将前5个错误减少到9.14%。
在Overfeat论文[5]中,视图也是从卷积特征图中提取的,而不是图像裁剪。但是,它们的视图不能有任意大小;相反,窗口是那些汇集的特性与所需维度相匹配的窗口。根据经验,我们发现这些受限窗口不如我们灵活定位/大小的窗口有利。

3.1.6 ILSVRC 2014汇总和结果

在表4中,我们与以前最先进的方法进行了比较。Krizhevsky等人的[3]是ILSVRC 2012的制胜方法;Overfeat[5]、Howard的[36]以及Zeiler和Fergus的[4]是ILSVRC 2013的领先方法。我们只考虑单个网络的性能以便进行可管理的比较。

表5. ILSVRC 2014分类的竞争结果[26]。列出每支队伍的最佳参赛名单

我们最好的单个网络在验证集上达到了9.14%的前5个错误。这正是我们提交给ILSVRC 2014 [26]的单一模型条目。测试集的前5个错误为9.08%(ILSVRC 2014具有与ILSVRC 2012相同的培训/验证/测试数据)。综合11个模型后,我们团队的结果(8.06%)在参加ILSVRC 2014的38个团队中排名第3(表5)。由于SPP网的优点通常应该独立于体系结构,我们期望它能进一步改进更深更大的卷积体系结构[33] [32]。

3.2 在VOC 2007分类上的实验

我们的方法可以生成一个全视图的图像表示。利用上述网络在ImageNet上预先训练,我们从目标数据集中的图像中提取这些表示,并重新训练SVM分类器[38]。在支持向量机训练中,我们故意不使用任何数据扩充(翻转/多视图)。对支持向量机训练的特征进行l2-归一化处理。
Pascal VOC 2007[22]中的分类任务涉及20个类别的9963个图像。5011张图片用于培训,其余图像用于测试。用平均平均精度(mAP)来评估性能。表6总结了结果。

表6. 2007年Pascal VOC分类图。对于SPP网络,pool 5/7层使用6×6金字塔级别

表7. Caltech101中的分类精度。对于SPP网络,pool 5/7层使用6×6金字塔级别

我们从表6(a)中的基线开始。该模型为无SPP的ZF-5模型,为了应用该模型,我们对图像进行了调整,使其小尺寸为224,并对中心区域224×224进行了裁剪。通过特征层对支持向量机进行训练。在这个数据集中,层越深,结果越好。在表6(b)中,我们用我们的特殊用途养老金网络取代无特殊用途养老金网络。作为第一步比较,我们仍然在中心224×224作物上应用SPP网。fc层的结果得到了改善。这一增长主要得益于多层次的汇集。
表6©显示了我们对完整图像的结果,其中图像的大小被调整,使得短边为224。我们发现结果有很大改善(78.39%比76.45%)。这是由于完整的图像表示保持了完整的内容。
因为我们的网络的使用不依赖于规模,所以我们调整图像的大小以使较小的维度是s,并使用相同的网络来提取特征。我们发现s=392给出了基于验证集的最佳结果(表6(d))。这主要是因为在voc2007中,对象占据的区域较小,而ImageNet中的区域较大,因此两组对象的相对比例不同。这些结果表明分类任务中存在尺度问题,SPP网络可以部分地解决这种“尺度不匹配”问题。
在表6(e)中,网络架构被我们的最佳模型(Overfeat-7,多尺寸训练)取代,地图增加到82.44%。表8总结了我们的结果以及与最新方法的比较。其中VQ[15]、LCC[18]和FK[19]都是基于空间金字塔匹配的,而[13]、[4]、[34]、[6]则是基于深网络的。在这些结果中,Oquab等人(77.7%)和Chatfield等人(82.42%)是通过网络微调和多视图测试获得的。我们的结果与最先进的技术相当,只使用一个完整的图像表示,而没有微调。

3.3 Caltech101上的实验

Caltech101数据集[21]包含102个类别的9144个图像(一个背景)。我们随机抽取每个类别的30张图片进行培训,每个类别多达50张图片进行测试。我们重复10次随机分割,平均准确度。表7总结了我们的结果。
在Pascal VOC 2007和Caltech101结果中有一些共同的观察结果:SPP网络优于无SPP网络(表7(b)vs.(a)),并且全视图表示优于作物©和(b))。但是Caltech101的结果与Pascal VOC有一些不同。全连接层的精度较低,而SPP层则更好。这可能是因为Caltech101中的对象类别与ImageNet中的对象类别关联较小,而深层次的对象类别更为专业化。此外,我们发现在我们在这个数据集上测试的量表中,量表224的性能最好。这主要是因为Caltech101中的对象也占据了图像的大区域,ImageNet就是这样。
除了裁剪,我们还评估了扭曲图像以适合224×224的大小。此解决方案保留了完整的内容,但引入了失真。在SPP(ZF-5)模型上,使用SPP层作为特征的准确率为89.91%,低于在未失真的全图像上使用同一模型的91.44%。
表8总结了我们与Caltech101最新方法的比较结果。我们的结果(93.42%)比之前的记录(88.54%)大幅度(4.88%)高。

表8. Pascal VOC 2007(mAP)和Caltech101(精确度)的分类结果。[27]报告的数字。我们的执行情况如表6(a)所示

4. SPP-Net用于目标检测

深度网络已被用于目标检测。我们简要回顾了最新的R-CNN方法[7]。R-CNN首先通过选择性搜索从每个图像中提取大约2000个候选窗口[20]。然后将每个窗口中的图像区域扭曲为固定大小(227×227)。利用一个预先训练好的深度网络来提取每个窗口的特征。然后利用这些特征训练二值支持向量机分类器进行检测。R-CNN产生的结果令人信服的质量和实质上优于以前的方法。然而,由于R-CNN重复地将深度卷积网络应用于每个图像的大约2000个窗口,这是非常耗时的。特征提取是测试中的主要时间瓶颈。
我们的SPP网络也可以用于目标检测。我们只从整个图像中提取一次特征映射(可能在多个尺度上)。然后我们在图5中看到了一个固定窗口长度的窗口映射。由于耗时的卷积只应用一次,所以我们的方法可以更快地运行一个数量级。
我们的方法从特征映射区域提取窗口特征,而R-CNN则直接从图像区域中提取。在以往的工作中,可变形零件模型(DPM)[23]从HOG[24]特征映射中提取窗口特征,而选择搜索(SS)方法[20]从编码的SIFT特征映射中提取窗口。Overfeat检测方法[5]也从深卷积特征映射的窗口中提取,但需要预先定义窗口大小。相反,我们的方法可以在任意窗口内从深卷积特征映射中提取特征。

图5. 在特性图上集中来自任意窗口的特性。特征映射是从整个图像中计算出来的。池在候选窗口中执行

4.1 检测算法

我们使用选择性搜索的“快速”模式[20]为每个图像生成大约2000个候选窗口。然后我们调整图像的大小,使min(w,h)=s,并从整个图像中提取特征映射。我们暂时使用ZF-5(单尺寸训练)的SPP网络模型。在每个候选窗口中,我们使用一个4层空间金字塔(1×1、2×2、3×3、6×6,共50个单元)来汇集特征。这将为每个窗口生成12800-d(256×50)表示。这些表示提供给网络的完全连接层。然后根据这些特征训练一个二元线性支持向量机分类器。
支持向量机训练的实现如下[20],[7]。我们使用地面真实窗口来生成阳性样本。负样本是那些与正窗口重叠最多30%的样本(用“联合交集”(IoU)比率测量)。如果任何阴性样本与另一个阴性样本重叠超过70%,则将其移除。我们采用标准的硬阴性挖掘[23]来训练支持向量机。此步骤迭代一次。为所有20个类别培训SVM只需不到1个小时。在测试中,使用分类器对候选窗口进行评分。然后我们使用非最大抑制[23](阈值为30%)对评分窗口。
我们的方法可以通过多尺度特征提取加以改进。我们调整图像的大小,使min(w,h)=s∈s={480576688641200},并计算每个尺度下conv5的特征映射。结合这些尺度的特征的一种策略是逐个通道地将它们集中起来。但我们从经验上发现,另一种策略可以提供更好的结果。对于每个候选窗口,我们选择一个单一的尺度s∈s,使得缩放后的候选窗口的像素数最接近224×224。然后我们只使用从这个尺度上提取的特征映射来计算这个窗口的特征。如果预先定义的尺度足够密集且窗口近似正方形,我们的方法大致相当于将窗口调整到224×224,然后从中提取特征。然而,我们的方法只需要从整个图像中计算一次特征映射(在每个尺度上),而不考虑候选窗口的数量。
我们还根据[7]对预先训练的网络进行微调。由于我们的特性是从任何大小的窗口的conv5特性映射集中而来的,为了简单起见,我们只对完全连接的层进行微调。在这种情况下,数据层在conv5之后接受固定长度的池特性,然后是fc 6,7层和新的21路(一个额外的负类)fc 8层。fc 8权重初始化为σ=0.01的高斯分布。我们将所有的学习率固定为1e-4,然后将所有三个层的学习率调整为1e-5。在微调过程中,正样本与地面真值窗口重叠[0.5,1],负样本重叠[0.1,0.5]。在每一个小批次中,25%的样本呈阳性。我们使用学习率1e-4训练25万个小批次,然后使用1e-5训练50万个小批次。因为我们只对fc层进行微调,所以训练非常快,在GPU上大约需要2个小时(不包括大约需要1个小时的预缓存功能映射)。同样在[7]之后,我们使用边界盒回归对预测窗口进行后处理。用于回归的特性是conv5的集合特性(作为[7]中使用的pool5特性的对应项)。用于回归训练的窗口是那些与基本真实窗口重叠至少50%的窗口。

4.2 检测结果

我们在pascalvoc2007数据集的检测任务中对我们的方法进行了评估。表9显示了我们使用1标度(s=688)或5标度对不同层的结果。在这里,R-CNN的结果如[7]所述,使用AlexNet[3]和5个conv层。使用pool5层(在我们的例子中是池特征),我们的结果(44.9%)与R-CNN的结果(44.2%)相当。但是使用未经微调的fc6层,我们的结果较差。一种解释是,我们的fc层使用图像区域进行预训练,而在检测情况下,它们被用于特征映射区域。特征映射区域在窗口边界附近可以有很强的激活,而图像区域可能没有。这种用法上的差异可以通过微调来解决。使用微调fc层(ftfc 6,7),我们的结果与R-CNN的微调结果相当或略好。经过边界盒回归,我们的5标度结果(59.2%)比R-CNN(58.5%)好0.7%,1标度(58.0%)差0.5%。
在表10中,我们进一步与使用相同的SPPnet(ZF-5)预训练模型的R-CNN进行比较。在这种情况下,我们的方法和R-CNN具有可比的平均得分。R-CNN的结果得到了这个预先训练的模型的支持。这是因为ZF-5的体系结构比AlexNet更好,也因为SPPnet的多级池(如果不使用SPP-ZF-5,R-CNN结果会下降)。表11显示了每个类别的结果。

表9. 2007年Pascal VOC检测结果(mAP)。“微调”和“微调”框

表10. Pascal VOC 2007的检测结果(mAP),使用相同的SPP预训练模型(ZF-5)

表11还包括其他方法。选择性搜索(SS)[20]将空间金字塔匹配应用于SIFT特征地图。DPM[23]和Regionlet[39]基于HOG特征[24]。通过结合包括conv5在内的各种特性,Regionlet方法提高到46.1%[8]。DetectorNet[40]训练一个输出像素级目标掩模的深网络。这种方法只需要对整个图像应用一次深度网络,就像我们的方法一样。但该方法的mAP较低(30.5%)。

4.3 复杂性和运行时间

尽管精度相当,但我们的方法比R-CNN快得多。R-CNN卷积特征计算的复杂度为O( n ⋅ 22 7 2 n·227^2 n2272),窗口数为n(∼2000)。我们方法的复杂度是O( r ⋅ s 2 r·s^2 rs2),在s标度下,r是纵横比。假设r约为4/3。在s=688的单标度版本中,这个复杂度大约是R-CNN的1/160;在5标度版本中,这个复杂度大约是R-CNN的1/24。
在表10中,我们比较了使用相同的SPP(ZF-5)模型的特征计算的运行时间。R-CNN的实现源于作者在Caffe中实现的代码[35]。我们也在Caffe中实现了我们的特征计算。在表10中,我们使用GPU评估了100个随机VOC图像的平均时间。R-CNN的卷积每幅图像需要14.37秒,而我们的1标度版本每幅图像只需要0.053秒。所以我们的比R-CNN快270倍。我们的5标度版本每幅图像卷积需要0.293秒,因此比R-CNN快49倍。我们的卷积特征计算速度很快,fc层的计算时间占了相当大的一部分。表10显示,计算4096-dfc7特征的GPU时间为每幅图像0.089s。考虑到卷积和完全连通的特征,我们的1标度版本比R-CNN快102倍,比R-CNN低1.2%;我们的5标度版本快38倍,并且具有可比的结果。
我们还比较了表9中的运行时间,其中R-CNN使用AlexNet[3],就像在原始论文[7]中一样。我们的方法快24到64倍。请注意,AlexNet[3]在每个conv层上的过滤器数量与我们的ZF-5相同。AlexNet更快,因为它在某些层上使用了拆分,这是在[3]中为两个GPU设计的。
借助最近的窗口建议方法[25],我们进一步实现了一个高效的完整系统。选择性搜索(SS)方案[20]在CPU上的每个图像大约需要1-2秒。边缘盒法[25]仅需∼0.2s。请注意,仅在测试期间使用快速建议方法就足够了。使用上面训练过的相同模型(使用SS),我们只测试由edgebox生成的建议。没有边界盒回归,贴图为52.8。考虑到边缘盒不用于培训,这是合理的。然后在训练阶段,我们同时使用SS和EdgeBox作为建议,在测试阶段只采用EdgeBox。无边界盒回归的mAP为56.3,由于增加了训练样本,因此优于55.2(表10)。建议识别率为640.5s(包括本次测试的全部步骤)。这使得我们的方法在实际应用中很实用。

表11. 2007年Pascal VOC检测结果比较

表12. 2007年挥发性有机化合物的检测结果。两个模型的结果都使用“ftfc 7bb”

4.4 检测模型组合

模型组合是提高基于CNN的分类精度的重要策略[3]。我们提出了一种简单的组合检测方法。
我们在ImageNet中预先训练另一个网络,使用相同的结构但是不同的随机初始化。然后重复上述检测算法。表12(SPP网络(2))显示了该网络的结果。它的mAP与第一个网络相当(59.1%比59.2%),在11个类别上优于第一个网络。
给定这两个模型,我们首先使用其中一个模型对测试图像上的所有候选窗口进行评分。然后我们对两组候选窗口的并集进行非最大值抑制。一种方法给出的置信度较高的窗口可以抑制另一种方法给出的置信度较低的窗口。合并后,地图提升至60.9%(表12)。在所有20个类别中,有17个类别的组合表现优于任何一个单独的模型。这表明这两个模型是互补的。
我们进一步发现,这种互补性主要是由于卷积层的存在。我们尝试合并同一卷积模型的两个随机初始化的微调结果,但没有发现任何增益。

4.5 ILSVRC 2014 检测

ILSVRC 2014检测[26]任务涉及200个类别。训练/验证/测试集中有∼450k/20k/40k图像。我们专注于所提供的数据只跟踪任务(不允许使用1000类CLS训练数据)。
检测(DET)和分类(CLS)训练数据集存在三大差异,这对训练前的质量有很大影响。首先,DET训练数据仅仅是CLS训练数据的1/3。这似乎是只提供数据的DET任务的一个基本挑战。其次,DET的分类号是CLS的1/5。为了克服这个问题,我们利用提供的子类别标签2进行预训练。共有499个不重叠的子类别(即提供的类别层次结构中的叶节点)。因此,我们在DET训练集中对499类网络进行预训练。第三组训练对象之间的分布是不同的。CLS的主要目标尺度约为图像长度的0.8,而DET中的主要目标尺度约为0.5。为了解决尺度差异,我们将每个训练图像的大小调整为min(w,h)=400(而不是256),并随机裁剪224×224个视图进行训练。只有当作物与地面真实对象重叠至少50%时,才使用它。
我们验证了预培训对Pascal voc2007的影响。对于CLS预培训基线,我们考虑池5特性(表9中的映射为43.0%)。取而代之的是一个200个类别的预先训练的网络,地图显著下降到32.7%。一个499类别的预训练网络将结果提高到35.9%。有趣的是,即使训练数据量没有增加,训练更多类别的网络也能提高特征质量。最后,用min(w,h)=400而不是256进行训练,进一步将mAP提高到37.8%。即便如此,我们也看到,与CLS预训成绩还有相当大的差距。这说明大数据对深度学习的重要性。
对于ILSVRC 2014,我们培训了499类Overfeat-7 SPP网络。剩下的步骤与voc2007案例类似。在[7]之后,我们使用验证集生成正/负样本,窗口由选择性搜索快速模式提出。训练集只提供使用基本真实窗口的正样本。我们微调fc层,然后使用验证和训练集中的样本训练支持向量机。在验证集上训练边界盒回归。
在ILSVRC 2014测试集中,我们的单一模型导致了31.84%的mAP[26]。我们使用本文介绍的策略组合了六个相似的模型。图中设定了11.35%。该结果在ILSVRC 2014(表13)[26]提供的仅数据轨道中排名第2。使用上下文信息的NUS的得奖率为37.21%。
对于这个数据集,我们的系统在速度上仍然显示出很大的优势。从所有5个尺度提取卷积特征的GPU上的每个测试图像需要0.6秒(conv为0.5,fc为0.1,不包括建议)。使用相同的模型,以RCNN的方式,每幅图像需要32秒。对于40k的测试图像,我们的方法需要8gpu·h来计算卷积特征,而RCNN则需要15GPU·天。

表13. ILSVRC 2014年检测比赛结果(仅提供数据轨道)[26]。列出每支队伍的最佳参赛名单

5. 结论

SPP是一种灵活的解决方案,用于处理不同的比例、大小和纵横比。这些问题在视觉识别中很重要,但在深层网络的背景下却很少得到考虑。我们已经提出了一个解决方案来训练一个具有空间金字塔池层的深层网络。所建立的SPP网络在分类/检测任务中显示出突出的准确性,大大加快了基于DNN的检测速度。我们的研究还表明,许多久经考验的计算机视觉技术/见解仍然可以在基于深度网络的识别中发挥重要作用。

附录A

在附录中,我们描述了一些实现细节:
减法
224×224裁剪的训练/测试图像通常通过减去每像素的平均值进行预处理[3]。当输入的图像是任何大小时,固定大小的平均图像不直接适用。在ImageNet数据集中,我们将224×224的平均图像扭曲到所需的大小,然后减去它。在Pascal VOC 2007和Caltech101中,我们在所有实验中使用常量平均值(128)。
池化箱的实现
在应用网络时,我们使用以下实现来处理所有bin。用w和h表示conv 5特征图(可以是完整图像或窗口)的宽度和高度。对于具有n×n个bin的金字塔级别,第(i,j)个bin在范围内。直观地说,如果需要取整,我们在左/上边界上执行地板操作,在右/下边界上执行天花板操作。
将窗口映射到特征图
在检测算法(以及对特征图的多视图测试)中,我们在图像域中给出了一个窗口,并用它来裁剪经过多次子采样的卷积特征图(如conv5)。所以我们需要在特征图上对齐窗口。
在我们的实现中,我们将一个窗口的角点投影到特征映射中的一个像素上,使得图像域中的这个角点最接近该特征映射像素的接收野的中心。映射由于所有卷积层和池层的填充而变得复杂。为了简化实现,在部署过程中,我们为一个过滤器大小为p的层填充bp/2c像素。因此,对于以(x0,y0)为中心的响应,其在图像域中的有效接收场以(x,y)=(Sx 0,Sy 0)为中心,其中S是之前所有步进的乘积。在我们的模型中,转换5上的ZF-5为S=16,conv 5/7上的Overfeat-5/7为S=12。给定图像域中的一个窗口,我们将左(上)边界投影为:x0=bx/Sc+1,右(下)边界x0=dx/Se−1。如果填充不是bp/2c,我们需要给x加一个适当的偏移量。

图6. Pascal VOC 2007测试装置上“SPP-net-ftfc-7-bb”的检测结果示例(59.2%mAP)。将显示分数>0的所有窗口。标记预测类别/分数。窗口颜色与预测的类别相关联。这些图片是人工选择的,因为我们发现它们给人留下了深刻的印象。请访问我们的项目网站,查看测试集中的所有4952个检测结果

参考文献

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页