Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

Abstract

  • 现有的深度卷积神经网络(CNN)需要固定大小(例如,224×224)的输入图像。 该要求是“人工”的,并且可能降低任意尺寸/比例的图像或子图像的识别精度。在这项工作中,我们为网络配备了另一种汇集策略,即“空间金字塔池”,以消除上述要求。
  • 无论图像大小/规模如何,称为SPP-net的新网络结构都可以生成固定长度的表示。 金字塔池对对象变形也很稳健。有了这些优点,SPP-net通常应该改进所有基于CNN的图像分类方法。
  • 在ImageNet 2012数据集中,我们证明了SPP-net提高了各种CNN架构的准确性,尽管它们的设计不同。在Pascal VOC 2007和Caltech101数据集上,SPP-net使用单个全图像表示并且没有微调,实现了最新的分类结果。
  • SPP-net的强大功能在物体检测中也很重要。 使用SPP-net,我们仅从整个图像计算一次特征图,然后在任意区域(子图像)中池特征以生成固定长度表示以训练检测器。该方法避免重复计算卷积特征。在处理测试图像时,我们的方法比R-CNN方法快24-102倍,同时在Pascal VOC 2007上实现更好或相当的准确度。

Introduction

  • 我们目睹了我们的视觉社区的快速革命性变化,主要是由深度卷积神经网络(CNN)和大规模训练数据的可用性引起的。最近,基于深度网络的方法在图像分类,对象检测,许多其他识别任务,甚至非识别任务方面已经大大改进了现有技术。但是,CNN的训练和测试存在技术问题:普遍的CNN需要固定的输入图像尺寸(例如,224×224),这限制了宽高比和输入图像的比例。当应用于任意大小的图像时,当前的方法主要通过裁剪或通过变形将输入图像固定为固定大小。但是裁剪区域可能不包含整个对象,而扭曲的内容可能导致不希望的几何失真。由于内容丢失或失真,可能会影响识别准确性。
  • CNN主要由两部分组成:卷积层和后面的完全连接层。卷积层以滑动窗口方式操作并且输出特征图,其表示激活的空间布置。实际上,卷积层不需要固定的图像大小,并且可以生成任何大小的特征映射。另一方面,完全连接的层需要根据其定义输入固定的尺寸/长度。因此,进化约束仅来自完全连接的层,其存在于网络的更深层阶段。
  • 在本文中,我们引入了空间金字塔池(SPP)层来消除网络的固定大小约束。具体来说,我们在最后一个卷积层的顶部添加一个SPP层。 SPP层汇集功能并生成固定长度输出,然后将其输入完全连接的层(或其他分类器)。换句话说,我们在网络层次结构的更深层阶段(卷积层和完全连接层之间)执行一些信息“聚合”,以避免在开始时需要裁剪或变形。
  • 它将图像划分为从较薄级别到较粗级别的分区,并聚合其中的局部特征。在最近CNN流行之前,SPP长期以来一直是领先且竞争激烈的分类和检测系统的关键组成部分。我们注意到SPP具有深度CNN的几个显着特性:SPP能够生成固定长度的输出,而不管输入大小如何,而滑动窗口池在以前的深层网络中使用。SPP使用多级空间区间,而滑动窗口池仅使用单个窗口大小。已经证明多级池对对象变形是鲁棒的。由于输入比例的灵活性,SPP可以汇集以可变比例提取的特征。 通过实验,我们发现所有这些因素都提高了深度网络的识别准确性。
  • SPP-net不仅可以从任意大小的图像/窗口生成用于测试的表示,而且还允许我们在训练期间提供具有不同大小或比例的图像。使用可变尺寸图像进行训练可以增加尺度不变性并减少过度使用。我们开发了一种简单的多尺寸训练方法。对于单个网络接受可变输入大小,我们通过共享所有参数的多个网络来近似它,而使用固定输入大小训练这些网络中的每一个。在每个时代,我们使用给定的输入大小训练网络,并切换到下一个时期的另一个输入大小。 实验表明,这种多尺寸训练与传统的单一训练融合,可以提高测试的准确性。
  • SPP的优点与特定的CNN设计正交。 在ImageNet 2012数据集的一系列对照实验中,我们证明了SPP改进了现有出版物中的四种不同CNN架构。这些架构具有各种过滤器数量/尺寸,步幅,深度或其他设计。 因此,我们推测SPP应该改进更复杂的卷积架构是合理的。SPP-net还显示了Caltech101和Pascal VOC 2007的最新分类结果,仅使用单个全图像表示而无需调整。
  • SPP-net在物体检测方面也表现出很强的实力。该方法在VOC和ImageNet数据集上都显示出显着的检测精度。但是RCNN中的特征计算消耗很大,因为它反复将深度卷积网络应用于每个图像数千个扭曲区域的原始像素。在本文中,我们展示了我们只能在整个图像上运行卷积层一次(无论窗口的数量),然后在特征图上通过SPP-net提取特征。该方法比R-CNN产生超过一百倍的加速。 请注意,在特征图(而不是图像区域)上训练/运行检测器实际上是一种更受欢迎的想法。但SPP-net继承了深度CNN特征图的强大功能以及SPP在任意窗口大小上的灵活性,从而实现了出色的精度和效率。在我们的实验中,基于SPP网络的系统(基于R-CNN流水线)计算的功能比R-CNN快24-102倍,同时具有更好或相当的精度。 利用Edge Boxes [25]最近的快速提议方法,我们的系统需要0.5秒处理图像(包括所有步骤)。 这使我们的方法适用于实际应用。

Deep Networks With Spatial Pyramid Pooling

  • 考虑到流行的七层架构。 第一个五层是卷积层,其中一些层后面是池化层。 在他们使用滑动窗口的意义上,这些池化层也可以被认为是“卷积”。 最后两层完全连接,N路softmax作为输出,其中N是类别数。上述深层网络需要固定的图像大小。 但是,我们注意到固定尺寸的要求仅仅是由于需要固定长度矢量作为输入的完全连接的层。 另一方面,卷积层接受任意大小的输入。 卷积层使用滑动滤波器,它们的输出具有与输入大致相同的亮度比。 这些输出称为特征图[1]  - 它们不仅涉及响应的强度,还涉及它们的空间位置。
  • 卷积层接受任意输入大小,但它们产生可变大小的输出。 分类器(SVM / softmax)或完全连接的层需要固定长度矢量。 这些向量可以通过将特征汇集在一起的Bag-of-Words(BoW)方法生成。空间金字塔汇集改进了BoW,因为它可以通过汇集在局部空间箱中来维护空间信息。 这些空间区间的大小与图像大小成比例,因此无论图像大小如何,区域的数量都是固定的。 这与先前深度网络[3]的滑动窗口池相反,其中滑动窗口的数量取决于输入大小。为了对任意大小的图像采用深度网络,我们用空间金字塔池化层替换最后的池化层。
  • 空间金字塔池的输出是kM维向量,其中箱的数量表示为M(k是最后卷积层中的滤波器的数量)。 固定向量矢量是完全连接层的输入。这不仅允许任意宽高比,还允许任意比例。 我们可以将输入图像调整到任何比例,并应用相同的深度网络。当输入图像处于不同比例时,网络(具有相同的过滤器尺寸)将提取不同比例的特征。尺度在传统方法中起重要作用,例如,SIFT矢量通常以多种尺度提取。
  • 有趣的是,最粗糙的金字塔等级有一个覆盖整个图像的垃圾箱。 这实际上是一个“全局池化”操作,也在几个并发工作中进行了调查。 在[31],[32]中,全局平均汇集用于减小模型大小并减少过度配置; 在[33]中,在所有fc层之后的测试阶段使用全局平均池以提高准确性; 在[34]中,全局最大池用于弱监督对象识别。 全局池操作对应于传统的Bag-of-Words方法。
  • 与之前的工作一样,我们首先考虑从图像中剪切固定大小输入(224×224)的网络。裁剪是为了增加数据。对于给定大小的图像,我们可以预先计算空间金字塔池所需的箱大小。考虑conv5之后的特征图,其大小为A×A。
  • 我们的SPP网络预计将应用于任何规模的图像。为了解决训练中不同图像尺寸的问题,我们考虑一组预定义的尺寸。我们考虑一组预定义的尺寸。 我们考虑两种尺寸:除了224×224之外还有180×180。 我们将上述224×224区域的大小调整为180×180,而不是裁剪较小的180×180区域。 因此,两个尺度的区域仅在分辨率方面不同,而在内容/布局方面不同。 为了使网络接受180×180输入,我们实现了另一个固定大小输入(180×180)网络。 在这种情况下,conv5之后的特征映射大小是a×a = 10×10。 然后我们仍然使用win = da / ne和str = ba / nc来实现每个金字塔池化级别。 该180网络的空间金字塔池化层的输出具有与224网络相同的固定长度。 因此,该180网络具有与每层中的224网络完全相同的参数。 换句话说,在培训期间,我们通过共享参数的两个固定大小的网络实现变量输入大小的SPP网络。

SPP-Net For Image Classification

SPP-Net For Object Detection

  • 深度网络已被用于对象检测。 我们简要回顾一下最近最先进的R-CNN方法。 R-CNN首先通过选择性搜索从每个图像中提取大约2,000个候选窗口。然后将每个窗口中的图像区域扭曲成固定大小(227×227)。预训练的深度网络用于提取每个窗口的特征。 然后,对这些特征进行二进制SVM分类器的训练以进行检测。 R-CNN产生令人信服的质量结果,并且大大优于以前的方法。 但是,由于R-CNN反复将深度卷积网络应用于每个图像约2,000个窗口,因此非常耗时。 特征提取是测试中的主要时间瓶颈。
  • 我们的SPP-net也可用于物体检测。 我们只从整个图像中提取一次特征图(可能是多个尺度)。 然后,我们在特征映射的每个候选窗口上应用空间金字塔池,以汇集该窗口的固定长度表示(参见图5)。 因为耗时的卷积仅应用一次,所以我们的方法可以更快地运行几个数量级。
  • 我们的方法从特征图的区域中提取窗口特征,而R-CNN直接从图像区域中提取。 在以前的工作中,可变形零件模型(DPM)[23]从HOG [24]特征图中的窗口中提取特征,而选择性搜索(SS)方法[20]从编码的SIFT特征图中的窗口中提取。 Overfeat检测方法[5]也从深度卷积特征映射的窗口中提取,但需要预先确定窗口大小。 相反,我们的方法使得能够从深度卷积特征映射中在任意窗口中进行特征提取。
  • 我们使用选择性搜索的“快速”模式[20]来为每个图像生成大约2,000个候选窗口。 然后我们调整图像大小以使min(w,h)= s,并从整个图像中提取特征图。 我们暂时使用ZF-5(单一尺寸训练)的SPP-net模型。 在每个候选窗口中,我们使用4级空间金字塔(1×1,2×2,3×3,6×6,共50个箱)来汇集特征。 这为每个窗口生成12,800d(256×50)表示。 这些表示被提供给网络的完全连接的层。 然后,我们为这些特征上的每个类别训练二进制线性SVM分类器。我们使用地面实况窗口来生成正样本。 负样本与正窗口重叠最多30%。果任何负面样本与另一个负样本重叠超过70%,则会被删除。我们应用最强硬的负面挖掘[23]来训练SVM。 此步骤迭代一次。 所有20个类别的SVM训练时间不到1小时。 在测试中,分类器用于对候选窗口进行评分。 然后我们在评分窗口上使用非最大抑制[23](阈值为30%)。对于每个候选窗口,我们选择单个尺度s∈S,使得缩放的候选窗口具有最接近224×224的多个像素。 然后我们只使用从该比例中提取的特征图来计算该窗口的特征。如果预定义的刻度足够密集且窗口近似为正方形,我们的方法大致相当于将窗口大小调整为224×224,然后从中提取特征。 然而,我们的方法仅需要从整个图像计算一次(在每个尺度上)的特征图,而不管候选窗口的数量。
  • 我们还根据[7]调整了我们预先训练好的网络。由于我们的功能是从任何尺寸的窗口的conv5特征图汇集而成,为简单起见,我们只对完全连接的层进行微调。在这种情况下,数据层接受conv5之后的固定长度合并特征,然后是fc6,7层和新的21路(一个额外负类别)fc8层。用高斯分布σ= 0.01初始化fc8权重。我们将所有的学习速率都调整为1e-4,然后调整到1e-5forallthreelayers。在微调时,正样本是与地面实例窗口重叠的[0.5,1],而负样本则是[0.1,0.5]。在每个小批量中,25%的样品是阳性的。我们使用学习率1e-4训练250k小型飞机,然后使用1e-5训练50k小批量。因为我们只对fc层进行微调,所以训练非常快,在GPU上花费大约2个小时(不包括预先缓存的特征图,大约需要1小时)。在[7]之后,我们使用边界框回归来对预测窗口进行后处理。用于回归的特征是conv5的汇集特征(作为[7]中使用的pool5特征的对应物)。用于回归训练的窗口是与地面实况窗口重叠至少50%的窗口。

Conclusion

  • SPP是一种灵活的解决方案,用于处理不同的比例,尺寸和纵横比。 这些问题在视觉识别中很重要,但在深度网络环境中却很少考虑。 我们已经提出了一种解决方案来训练具有空间金字塔池层的深层网络。 由此产生的SPP-net在分类/检测任务中表现出极高的准确性,并大大加速了基于DNN的检测。 我们的研究还表明,许多经过时间验证的计算机视觉技术/见解仍然可以在基于深度网络的识别中发挥重要作用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值