【CV论文精读】【SPPnet】Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
用于视觉识别的深度卷积网络中的空间金字塔池化

在这里插入图片描述

0.论文摘要和作者信息

摘要

现有的深度卷积神经网络(CNN)需要固定大小(例如224 × 224)的输入图像。这种要求是“人为的”,可能会损害任意大小/尺度的图像或子图像的识别精度。在这项工作中,我们为网络配备了一个更有原则的池化策略,“空间金字塔池化”,以消除上述要求。新的网络结构称为SPP-net,可以生成固定长度的表示,而不管图像大小/比例。通过消除固定大小的限制,我们可以改进所有基于CNN的图像分类方法。我们的SPP-net在ImageNet 2012、Pascal VOC 2007和Caltech101的数据集上实现了最先进的准确性。

SPP-net的能力在目标检测中更为重要。使用SPP-net,我们只从整个图像计算一次特征图,然后汇集任意区域(子图像)中的特征,以生成固定长度的表示来训练检测器。该方法避免了重复计算卷积特征。在处理测试图像时,我们的方法计算卷积特征的速度比最近的领先方法R-CNN快30-170倍(总体速度快24-64倍),同时在Pascal VOC 2007上实现了更好或相当的精度。

作者信息

Kaiming He 1
Xiangyu Zhang 2
Shaoqing Ren 3
Jian Sun 1

1 Microsoft Research, China
2 Xi’an Jiaotong University, China
3 University of Science and Technology of China

1.研究背景

我们正在见证我们的视觉社区发生快速、革命性的变化,这主要是由深度卷积神经网络(CNN)[18]和大规模训练数据的可用性[6]引起的。基于深度网络的方法最近在图像分类[16,31,24]、目标检测[12,33,24]、许多其他识别任务[22,27,32,13]甚至非识别任务的基础上有了实质性的改进。

然而,在CNN的训练和测试中存在一个技术问题:流行的CNN需要固定的输入图像大小(例如,224 × 224),这限制了输入图像的纵横比和比例。当应用于任意大小的图像时,现有的方法大多将输入图像拟合为固定的尺寸,通过裁剪[16,31]或通过形变[7,12],如图1(顶部)所示。但是裁剪区域可能不包含整个对象,而形变的内容可能导致不希望的几何扭曲。由于内容丢失或失真,识别准确性可能会受到影响。此外,当对象比例变化时,预定义的比例(例如,224)可能不合适。固定输入大小会忽略涉及比例的问题。

在这里插入图片描述
图1。顶部:裁剪或拉伸以适应固定尺寸。中间:传统的深度卷积网络结构。下图:我们的空间金字塔池化网络结构。

那么为什么CNN需要固定的输入大小呢?CNN主要由两部分组成:卷积层和随后的全连接层。卷积层以滑动窗口方式操作,并输出表示激活的空间排列的特征图(图2)。事实上,卷积图层不需要固定的图像大小,可以生成任何大小的特征图。另一方面,全连接层需要根据其定义具有固定的大小/长度输入。因此,固定大小约束仅来自全连接层,它们存在于网络的更深阶段。

在这里插入图片描述图二。特征图的可视化。(a)Pascal VOC 2007中的两幅图像。(b)一些conv5(第五卷积层)滤波器的特征图。箭头表示最强的响应及其在图像中的相应位置。(c)具有相应过滤器的最强响应的ImageNet图像。绿色矩形标志着最强烈反应的感受野。

在本文中,我们引入了一个空间金字塔池化(SPP)[14,17]层来消除网络的固定大小约束。具体来说,我们在最后一个卷积层的顶部添加了一个SPP层。SPP层汇集特征并生成固定长度的输出,然后将其馈送到全连接层(或其他分类器)。换句话说,我们在网络层次结构的更深阶段(卷积层和全连接层之间)执行一些信息“聚合”,以避免在开始时需要裁剪或拉伸。图1(下图)示出了通过引入SPP层而改变的网络架构。我们称这种新的网络结构为SPP-net。

我们认为,更深层次的聚合在生理上更合理,也更符合我们大脑中的分层信息处理。当一个物体进入我们的视野时,我们的大脑把它作为一个整体来考虑,而不是一开始就把它裁剪成几个“视图”,这更合理。同样,我们的大脑也不太可能将所有候选物体扭曲成固定大小的区域来检测/定位它们。更有可能的是,我们的大脑在一些更深的层处理任意形状的物体,通过聚合来自前几层的已经深度处理的信息。

空间金字塔池化[14,17](俗称空间金字塔匹配或SPM[17]),作为词袋(BoW)模型[25]的扩展,是计算机视觉中最成功的方法之一。它将图像从精细到粗糙划分,并在其中聚合局部特征。SPP长期以来一直是CNN最近流行之前的用于分类(例如[30,28,21])和检测(例如[23])的领先和竞赛赢家系统的关键组成部分。然而,SPP还没有在CNN的背景下被考虑。我们注意到,SPP对于深度CNN具有几个显著的特性:1)SPP能够产生固定长度的输出,而不管输入大小如何,而以前深度网络中使用的滑动窗口池化[16]不能;2)SPP使用多级空间箱,而滑动窗口池化仅使用单一窗口大小。多级池化已被证明对物体变形具有鲁棒性[17];3)由于输入尺度的灵活性,SPP可以池化在可变尺度下提取的特征。通过实验,我们表明所有这些因素都提高了深度网络的识别精度。

SPP-net的灵活性使得生成用于测试的完整图像表示成为可能。此外,它还允许我们在训练期间提供不同大小或比例的图像,这增加了比例不变性,降低了过度拟合的风险。我们开发了一种简单的多规模训练方法来利用SPP-net的特性。通过一系列受控实验,我们展示了使用多级池化、全图像表示和可变比例的收益。在ImageNet 2012数据集上,与没有SPP的网络相比,我们的网络将前1名误差减少了1.8%。由该预训练网络给出的固定长度表示也用于在其他数据集上训练SVM分类器。我们的方法仅使用单个全图像表示(单视图测试)在Caltech101[9]上实现了91.4%的准确度,在Pascal VOC 2007[8]上实现了80.1%的平均精度(mAP)。

SPP-net在目标检测方面表现出更强的实力。在领先的对象检测方法R-CNN[12]中,候选窗口的特征通过深度卷积网络提取。该方法在VOC和ImageNet数据集上都显示出显著的检测精度。但是R-CNN中的特征计算非常耗时,因为它将深度卷积网络重复应用于每张图像数千个变形后的区域的原始像素。在本文中,我们表明我们可以在整个图像上只运行一次卷积层(不考虑窗口的数量),然后通过SPP-net在特征图上提取特征。这种方法可以提高速度超过R-CNN的一百倍。请注意,在特征图(而不是图像区域)上训练/运行检测器实际上是一个更流行的想法[10,5,23,24]。但是SPP-net继承了深度CNN特征图的能力以及SPP在任意窗口大小上的灵活性,这导致了出色的准确性和效率。在我们的实验中,基于SPP-net的系统(建立在R-CNN流水线上)计算卷积特征的速度比R-CNN快30-170倍,总体速度快24-64倍,同时具有更好或相当的精度。我们进一步提出了一种简单的模型组合方法,以在Pascal VOC 2007检测任务上实现新的最先进的结果(mAP 60.9%)。

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

2.1 卷积层与特征图

考虑流行的七层架构[16,31]。前五层是卷积层,其中一些层后面是池化层。这些池化层也可以被认为是“卷积的”,因为它们使用滑动窗口。最后两层完全连接,以N路softmax作为输出,其中N是类别的数量。上述深度网络需要固定的图像大小。然而,我们注意到固定大小的要求仅仅是由于全连接层需要固定长度的向量作为输入。另一方面,卷积层接受任意大小的输入。卷积层使用滑动滤波器,其输出与输入具有大致相同的纵横比。这些输出被称为特征图[18]——它们不仅涉及响应的强度,还涉及它们的空间位置。在图2中,我们可视化一些特征图。它们是由conv5层的一些滤波器生成的。

值得注意的是,我们在没有固定输入大小的情况下生成了图2中的特征图。这些由深卷积层生成的特征图类似于传统方法中的特征图[2,4]。在这些方法中,密集提取SIFT向量[2]或图像块[4],然后编码,例如通过矢量量化[25,17,11]、稀疏编码[30,28]或Fisher核[21]。这些编码特征由特征图组成,然后由词袋(BoW)[25]或空间金字塔[14,17]池化。类似地,深度卷积特征可以以类似的方式汇集。

2.2 空间金字塔池化层

卷积层接受任意大小的输入,但它们产生大小可变的输出。分类器(SVM/softmax)或全连接层需要固定长度的向量。这种向量可以通过将特征汇集在一起的词袋(BoW)方法[25]生成。空间金字塔池化[14,17]改进了BoW,以便在池化过程中保留局部空间块来维护空间信息。这些空间块的大小与图像大小成比例,因此无论图像大小如何,块的数量都是固定的。这与先前深度网络的滑动窗口池化[16],其中滑动窗口的数量取决于输入大小

为了对任意大小的图像采用深度网络,我们将pool5层(conv5之后的池化层)替换为空间金字塔池化层。图3说明了我们的方法。在每个空间箱中,我们汇集每个滤波器的响应(在本文中,我们使用最大池化)。SPP的输出是256M 维向量,箱的数量表示为M(256是conv5滤波器的数量)。固定维向量是fc层(fc6)的输入。使用SPP,输入图像可以是任何大小;这不仅允许任意纵横比,而且允许任意比例。我们可以将输入图像调整到任何比例(例如, m i n ( w , h ) = 180 , 224 , . . . min(w, h)=180, 224, ... min(w,h)=180,224,...)并应用相同的深度网络。当输入图像处于不同的尺度时,网络(具有相同的滤波器大小)将提取不同尺度的特征。尺度在传统方法中起着重要的作用,例如,SIFT向量通常在多个尺度下提取[19,2](由patch和高斯滤波器的大小决定)。我们将展示尺度对于深度网络的准确性也很重要。

2.3 利用空间金字塔池化层训练网络

理论上,无论输入图像大小如何,上述网络结构都可以用标准反向传播[18]进行训练。但是在实践中,GPU实现(例如convnet[16]和Caffe[7])优选地在固定输入图像上运行。接下来,我们描述我们的训练解决方案,它利用了这些GPU实现,同时仍然保留了SPP行为。

单一尺寸训练。和以前的工作一样,我们首先考虑一个网络,它接受从图像中裁剪的固定大小的输入(224 × 224)。裁剪是为了数据扩充。对于给定大小的图像,我们可以预先计算空间金字塔池化所需的箱大小。考虑特征图在conv5之后,其尺寸为a × a(例如,13 × 13)。对于n × n个箱的金字塔级别,我们将该池化级别实现为滑动窗口池化,其中窗口大小win=a/n,步幅str=a/n,与表示天花板和地板操作。通过l级金字塔,我们实现了l个这样的层。下一fc层(fc6)将连接l输出。图4示出了convnet样式[16]中的3级金字塔池化(3 × 3、2 × 2、1 × 1)的示例配置。我们单一规模训练的主要目的是使多级池化行为成为可能。实验表明,这是精度提高的原因之一。

在这里插入图片描述
图4。convnet风格的3级金字塔池化示例[16]。这里sizeX是池化窗口的大小。这适用于特征图大小为conv5的13 × 13的网络,因此池化3 × 3、池化2 × 2和池化1 × 1将分别具有3 × 3、2 × 2和1 × 1。

多尺寸训练。我们的SPP网络有望应用于任何尺寸的图像。为了解决训练中图像大小变化的问题,我们考虑一组预定义的大小。本文使用了两种尺寸(除了224 × 224之外,还有180 × 180)。我们没有裁剪一个较小的180 × 180区域,而是将前面提到的224 × 224区域调整为180 × 180。因此,两种比例的区域仅在分辨率上不同,而在内容/布局上没有区别。为了让网络接受180 × 180输入,我们实现了另一个固定大小输入(180 × 180)网络。在这种情况下,conv5之后的要素图大小为a × a=10 × 10。然后我们仍然使用win=a/n和str=a/n来实现每个金字塔级别。这个180网络的SPP层的输出具有与224网络相同的固定长度。因此,这个180网络在每一层中具有与224网络完全相同的参数。换句话说,在训练过程中,我们通过两个共享参数的固定大小输入网络来实现可变大小输入SPP-net。

为了减少从一个网络(例如,224)切换到另一个网络(例如,180)的开销,我们在一个网络上训练每个完整时期,然后为下一个完整时期切换到另一个网络(复制所有权重)。这是迭代的。在实验中,我们发现这种多尺寸训练的收敛速度与上述单一尺寸训练相似。按照惯例,我们总共训练70个轮次。多大小训练的主要目的是模拟不同的输入大小,同时仍然利用现有的优化良好的固定大小实现。理论上,我们可以使用更多的比例/纵横比,每个比例/纵横比一个网络,所有网络共享权重,或者我们可以开发不同大小的实现来避免切换。我们将在未来研究这个问题。请注意,上述单/多尺寸解决方案仅用于培训。在测试阶段,在任何大小的图像上应用SPP-net都很简单。

3.SPP-Net在图像分类中的应用

3.1 ImageNet 2012分类实验

我们在ImageNet 2012的1000个类别的训练集上训练我们的网络。我们的训练细节遵循之前工作的实践[16,31,15]。调整图像大小,使较小的尺寸为256,并从整个图像的中心或四个角选取224 × 224的裁剪2。数据通过水平翻转和颜色改变得到增强[16]。Dropout[16]用于两个全连接层。学习率从0.01开始,当误差稳定时除以10(两次)。我们的实现基于公开可用的convnet代码[16]。我们的实验在GTX泰坦GPU上运行。作为我们的基线模型,我们实施了泽勒和弗格斯(ZF)的“快速”(较小)模型[31]的7层网络,该模型在适度的训练时间(两周)内产生有竞争力的结果。五个卷积层的滤波器数(大小)为:96(7 × 7)、256(5 × 5)、384(3 × 3)、384(3 × 3)和256(3 × 3)。前两层步长为1,之后步长为2。前两层之后是步长为2、窗口大小为3的(滑动窗口)最大池化和对比度标准化操作。两个全连接层的输出为4096-d。在测试阶段,我们遵循[16]中的标准10视图预测:每个视图是一个224 × 224的裁剪,它们的分数是平均的。我们对该网络的复制给出了35.99%的前1错误(表1(e1)),优于38.4%(表1(d1))如[31]中所述。我们认为这种边缘是因为角crops来自整个图像(而不是来自中心256 × 256正方形的角),如[15]中所述。

在这里插入图片描述
表1。ImageNet 2012验证集中的错误率。所有的结果都是基于一个单一的网络。Overfeat中的视图数量取决于尺度和步长,最精细的尺度上有数百个视图。

表1(e4)显示了我们使用多尺寸训练的结果。训练尺寸是224和180,而测试尺寸仍然是224。在(e4)中,我们仍然使用10个裁剪视图进行预测。前1误差降至34.60%。请注意,(e3)和(e4)中的网络具有完全相同的结构和相同的测试方法。所以增益完全是因为多尺寸训练。接下来,我们研究全图像视图的准确性。我们调整图像的大小,使min(w,h)=256,同时保持其纵横比。SPP-net应用于该完整图像,以计算完整视图的分数。为了公平比较,我们还评估了中心224 × 224裁剪中单个视图的准确性(用于上述评估)。单视图测试精度的比较见表2前1个错误率降低约0.5%。这说明了维护完整内容的重要性。尽管我们的网络仅使用正方形图像进行训练,但它可以很好地推广到其他纵横比。

我们的结果有可能进一步改进。SPP层的使用不依赖于卷积层的设计。因此,我们的方法可能受益于例如增加的滤波器数量或更小的步长[31,24]。也可以应用多重模型平均。我们将在未来研究这些。

3.2 Pascal VOC 2007分类实验

利用在ImageNet上预先训练的网络,我们从其他数据集中的图像中提取表示,并为新数据集重新训练SVM分类器[1]。在SVM训练中,我们有意不使用任何数据扩充(翻转/多视图)。我们对特征进行l2归一化,并将SVM的软边距参数C固定为1。我们在表1(e5)中使用我们的多尺寸训练模型。。Pascal VOC 2007[8]中的分类任务涉及20个类别中的9,963幅图像。5011幅图像用于训练,其余用于测试。通过mAP评估性能。表3总结了不同设置的结果。

在这里插入图片描述

我们从选项卡中的基线开始。3(a)。模型是选项卡中的模型。1(e1)无SPP(“普通网络”)。为了应用这个模型,我们调整图像的大小,使 m i n ( w , h ) = 224 min(w, h) = 224 min(w,h)=224,并裁剪中心224 × 224的区域。支持向量机通过层的特征进行训练。在这个数据集上,图层越深,结果越好。在(b)栏中,我们用SPP网替换了普通网络。作为第一步比较,我们仍然在中心224 × 224作物上应用SPP-net。fc层的结果得到改善。这一增长主要是由于多级池化。

表3(c)显示了我们在完整图像上的结果,这些图像的大小被调整为 m i n ( w , h ) = 224 min(w, h) = 224 min(w,h)=224。结果显著改善(78.39%对76.45%)。这是因为完整的图像表示保持了完整的内容。
表5总结了我们的结果,并与以前的最先进的方法进行了比较。在这些方法中,VQ[17]、LCC[28]和FK[21]都是基于空间金字塔匹配的,而[7,31,20]是基于深度网络的。我们的方法优于这些方法。我们注意到,Oquab等[20]在每张图像500次浏览时达到了77.7%,而我们在单个全图像浏览时达到了80.10%。如果使用数据论证、多视图测试或网络微调,我们的结果可能会进一步改善。

在这里插入图片描述

3.3 Caltech101实验

Caltech101[9]包含102个类别(一个背景)的9,144幅图像。我们随机抽取30幅图像/类别进行训练,最多抽取50幅图像/类别进行测试。我们重复10次随机分割,并平均准确度。表4总结了我们的结果。在Pascal VOC 2007和Caltech101结果中有一些共同的观察结果:SPP-net优于普通net(表4(b)对(a)),并且全视图表示优于裁剪((c)对(b))。但是Caltech101的结果与Pascal VOC有一些不同。全连接层不太准确,pool5和SPP层更好。这可能是因为Caltech101中的对象类别与ImageNet中的对象类别关系较小,更深层的对象类别更专业。此外,我们发现在我们在该数据集上测试的量表中,尺度224具有最佳性能。这主要是因为Caltech101中的对象也占据了图像的很大区域,ImageNet就是这种情况。

表5总结了我们的结果,并与Caltech101上以前的几种最先进的方法进行了比较。我们的结果(91.44%)大大超过了之前的最新结果(86.91%)(4.5%)。

在这里插入图片描述
在这里插入图片描述

4.用于目标检测的SPP-Net

深度网络已经被用于物体检测。我们简要回顾了最近最先进的R-CNN方法[12]。R-CNN首先通过选择性搜索从每个图像的窗口[23]提取了大约2000名候选框。然后每个窗口中的图像区域被扭曲到固定的大小(227 × 227)。使用预先训练的深度网络来提取每个窗口的特征。然后根据这些特征训练二分类SVM分类器进行检测。R-CNN产生了令人信服的质量结果,并大大优于以前的方法(30%的相对改进!)。但是,由于R-CNN将深度卷积网络重复应用于每个图像大约2000个窗口,因此非常耗时。

我们的SPP-net也可以用于物体检测。我们只从整个图像中提取一次特征图。然后,我们在特征图的每个候选窗口上应用空间金字塔池化,以池化化该窗口的固定长度表示(参见图5)。因为耗时的卷积网络只应用一次,所以我们的方法可以运行快几个数量级。我们的方法从特征图的区域中提取窗口特征,而R-CNN直接从图像区域中提取。在以前的工作中,可变形零件模型(DPM)[10]从HOG[5]特征图中的窗口提取,以及选择性搜索[23]从编码SIFT特征图中的窗口提取。Overfeat检测方法[24]也从CNN特征图中的窗口中提取,但是需要预定义窗口大小。相反,我们的方法能够在任何窗口中从CNN特征图中提取特征。

在这里插入图片描述
图5。SPP——目标检测网络。特征图是从整个图像中计算出来的。池化在候选窗口中执行。

4.1 检测算法

我们使用选择性搜索的“快速”模式[23]为每个图像生成大约2000个候选窗口。然后我们调整图像大小,使 m i n ( w , h ) = s min(w, h)=s min(w,h)=s,并从整个图像中提取conv5的特征图。我们使用预先训练好的预训练模型表1(e3)。在每个候选窗口中,我们使用4级空间金字塔(1 × 1、2 × 2、3 × 3、6 × 6,总共50个箱)来汇集特征。这将为每个窗口生成12,800维(256 × 50)的表示。这些表示被提供给网络的全连接层。然后根据这些特征为每个类别训练一个二元线性支持向量机分类器。

我们对SVM训练的实施如下[23,12]。我们使用地面真实窗口来生成正样本。负样本是那些与阳性窗口重叠最多30%的样本。如果任何负样本与另一个负样本重叠超过70%,则该负样本被移除。我们应用标准的hard negative mining[10]来训练SVM。此步骤重复一次。训练所有20个类别的支持向量机只需不到1小时。在测试中,分类器用于对候选窗口进行评分。然后,我们在得分窗口上使用非最大抑制[10](阈值为30%)。

我们的方法可以通过多尺度特征提取来改进。我们调整图像的大小,使得min(w,h)=s∈S={480,576,688,864,1200},并计算每个比例的conv5的特征图。组合这些规模的特征的一个策略是逐个频道地汇集它们。但是我们根据经验发现,另一种策略提供了更好的结果。对于每个候选窗口,我们选择单个比例s∈Ssuch,使得缩放的候选窗口具有最接近224 × 224的像素数量。然后,我们仅使用从该比例尺中提取的特征图来计算该窗口的特征。如果预定义的比例足够密集,并且窗口近似为正方形,我们的方法大致相当于将窗口大小调整为224 × 224,然后从中提取特征。然而,我们的方法只需要从整个图像计算一次特征图(在每个比例下),而不考虑候选窗口的数量。

按照[12],我们还微调了预先训练好的网络。由于我们的功能是从任何大小的窗口的conv5功能图中汇集的,为了简单起见,我们只微调了全连接层。在这种情况下,数据层接受conv5和FC6之后的固定长度池化特征,7层和新的21路(一个额外的负类别)fc8层紧随其后。fc8权重以σ=0.01的高斯分布初始化。我们将所有学习速率固定为1e-4,然后将所有三层调整为1e-5。在微调期间,正样本是那些与地面实况窗口重叠[0.5,1]的样本,负样本是那些重叠[0.1,0.5]的样本。在每个小批量中,25%的样本是正样本的。我们使用学习率1e-4训练25万个小批量,然后使用1e-5训练5万个小批量。因为我们只微调fc层,所以训练非常快,在GPU上大约需要2个小时。同样在[12]之后,我们使用边界框回归对预测窗口进行后处理。用于回归的特征是来自conv5的池化特征(作为[12]中使用的pool5特征的对应物)。用于回归训练的窗口是那些与地面实况窗口重叠至少50%的窗口。我们将发布代码以方便结果的复制

4.2 检测结果

我们在Pascal VOC 2007数据集的检测任务上评估了我们的方法。表6通过使用1尺度(s=688)或5尺度显示了我们在不同层上的结果。使用pool5层(在我们的例子中是池化特征),我们的结果(44.9%)与R-CNN的结果(44.2%)相当。但是使用非微调的fc6层,我们的结果是次等的。一种解释是,我们的fc层使用图像区域进行预训练,而在检测情况下,它们用于特征图区域。特征图区域可以在窗口边界附近具有强激活,而图像区域可能没有。这种用法的差异可以通过微调来解决。使用微调的fc层(ftfc6,7),我们的结果与R-CNN的微调结果相当或略好。经过边界框回归,我们的5尺度结果(59.2%)比R-CNN(58.5%)好0.7%,我们的1尺度结果(58.0%)差0.5%。在表7中,我们显示了每个类别的结果。我们的方法在11个类别中优于R-CNN,并且在另外两个类别中具有可比的数字。

在表7中,选择性搜索(SS)[23]在SIFT特征图上应用空间金字塔匹配。DPM[10]和Regionlet[29]基于HOG特征[5]。通过结合包括conv5在内的各种功能,Regionlet提高到46.1%[33]。DetectorNet[26]训练一个深度网络,输出逐像素的对象遮罩。这种方法只需要对整个图像应用一次深度网络,就像我们的方法一样。但这种方法的mAP较低(30.5%)。

在这里插入图片描述

4.3 复杂度与运行时间

尽管具有相当的准确性,我们的方法比R-CNN快得多。R-CNN中卷积特征计算的复杂度为 O ( n ⋅ 22 7 2 ) O(n · 227^2) O(n2272),窗口数为 n ( ∼ 2000 ) n (∼2000) n(2000)。我们的方法的复杂度是 O ( r ⋅ s 2 ) O(r · s^2) O(rs2)),其中纵横比是 O ( r ⋅ s 2 ) O(r · s^2) O(rs2)。假设r大约是4/3。在s=688时的单尺度版本中,这个复杂度大约是R-CNN的1/160;在5尺度版本中,这个复杂度大约是R-CNN的1/24。

在表6中,比较了卷积特征计算的实验运行时间。R-CNN的实现来自作者发表的在Caffe[7]中实现的代码。为了公平比较,我们还在Caffe中实现了我们的特征计算。在表6中使用GPU对100幅随机VOC图像的平均时间进行了评估。R-CNN每张图像需要8.96 s,而我们的1比例版本每张图像只需要0.053 s。所以我们的比R-CNN快170倍。我们的5比例版本每张图像需要0.293秒,因此比R-CNN快30倍。
我们的卷积特征计算速度非常快,以至于fc层的计算时间占了相当大的一部分。在表6中显示计算4,096维fc7特征(来自conv5特征图)的GPU时间为每个图像0.089秒。考虑到卷积和全连接特征,我们的1尺度版本比R-CNN快64倍,在mAP中仅差0.5%;我们的5尺度版本速度快24倍,效果更好。如果使用较小的fc层,例如1,024-d,则fc计算的开销可以显著降低。在上述比较中,我们不考虑窗口建议时间。选择性搜索候选框[23]在CPU上为每个图像花费大约1-2秒。最近有关于将候选框时间减少到毫秒的工作(例如[3])。我们将对此进行评估,并期待一个快速的整个系统。

在这里插入图片描述

4.4 检测模型组合

模型组合是提高基于CNN的分类准确性的重要策略[16]。接下来,我们提出了一种简单的模型组合检测方法。我们在ImageNet中预训练另一个网络,使用相同的结构但不同的随机初始化。然后重复上述检测算法。表8(SPP-net(2))显示了该网络的结果。其地图与第一个网络相当(59.1%对59.2%),并在11个类别中优于第一个网络。给定这两个模型,我们首先使用任一模型对测试图像上的所有候选窗口进行评分。然后,我们对两组候选窗口(及其分数)的并集执行非最大抑制。一种方法给出的更有信心的窗口可以抑制另一种方法给出的不太有信心的窗口。组合后,mAP提升到60.9%(表8)。在所有20个类别中的17个类别中,该组合的表现优于任何一个单独的模型。这表明这两个模型是互补的。

在这里插入图片描述

5.结论

图像比例和大小在视觉识别中很重要,但在深度网络的背景下很少被考虑。我们提出了一个解决方案来训练一个具有SPP层的网络。由此产生的SPP-net在分类/检测任务中表现出出色的准确性,并大大加速了基于DNN的检测。我们的研究还表明,计算机视觉中许多久经考验的技术/见解仍然可以在基于深度网络的识别中发挥重要作用。

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子-Alex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值