【目标检测】SSPNet论文理解

摘要

  当前问题:
  现有的深度卷积神经网络(CNNs)需要一个固定大小(如224×224)的输入图像输入。这种要求是可能会降低对任意大小/尺度的图像或子图像的识别精度。
  空间金字塔池化层:
  消除固定输入尺寸的要求,它可以生成固定长度的向量,而不管图像的大小和比例。空间金字塔池化层对物体变形有很强的鲁棒性。基于这些优点,SPP-net提高了各种CNN架构的准确性。
  SPP-net在目标检测中应用:
  使用SPP-net,只计算一次整个图像的特征映射,然后在任意尺度区域(子图像)中汇集特征,生成固定长度的特征向量,并用该固定长度特征向量训练检测器。该方法避免了卷积特征的重复计算。在处理测试图像时,比R-CNN方法快24-102倍。同时在Pascal VOC 2007上获得了更好的或可比的精度。

一、介绍

  CNNs的训练和测试中存在一个技术问题:
  目前流行的CNNs需要一个固定的输入图像大小(例如,224×224),这限制了输入图像的长宽比和尺度。当应用于任意大小的图像时,当前的方法大多是通过裁剪或扭曲将输入图像拟合到固定大小,但裁剪区域可能不包含整个对象,而扭曲的内容可能导致不必要的几何失真。由于内容丢失或失真,会影响识别的准确性。
在这里插入图片描述
  为什么CNNs需要一个固定的输入大小?
  CNN网络主要由两个部分组成,卷积层,以及随后的全连接层。卷积层以滑动窗口的方式进行操作,输出特征图来表示激活的空间排列。卷积层不需要固定的图像大小,可以生成任意大小的特征图。而全连接层需要根据其定义输入固定大小/长度。因此,固定输入尺寸的约束只来自于全连接的层。
  空间金字塔池化(SSP):
  SSPNet引入了空间金字塔池(SPP)层来消除网络的固定大小约束。具体来说,添加一个SPP层在最后一个卷积层的后面。SPP层将任意大小的特征图,转变为固定长度的输出,这个输出会输入到后续的全连接层(或其他分类器)。这样避免在开始时进行裁剪或扭曲。SPP是领先的分类系统和检测系统的关键组成部分。
  SPP对于深度CNNs有几个显著的特性:
  1) SPP能够生成固定长度的输出,而不考虑输入大小,而之前的深度网络中不能;
  2) SPP使用多层次的空间bins,而滑动窗口池只使用一个窗口大小。
  3) SPP由于输入尺度的灵活性,可以在可变尺度下提取特征。

  实验表明,这些因素都提高了深度网络的识别精度。
  SSPnet多尺度训练:
  SPP-net不仅能够从任意大小的图像/窗口生成测试用的特征,还允许在训练期间提供大小不同的图像,通过使用可变大小(多尺度)的图像进行训练可以提高尺度不变性,减少过拟合。本文开发了一种简单的多尺寸训练方法,对于接受可变输入的单个网络,通过共享所有参数的多个网络对其进行近似,每个网络都使用固定的输入大小进行训练。在每个epoch中,用给定的输入大小训练网络,并切换到下一个epoch的另一个输入大小。实验表明,该多尺度训练与传统的单尺度训练收敛性好,测试精度高。
  SSP在分类和检测任务的使用
  (1)分类:在2012年ImageNet数据集的一系列对照实验中,证明了SPP在改进了四种不同的CNN架构后,超过了没有SPP的架构。SPP可以改进复杂(更深入和较大)卷积架构。
  (2)检测:SPP-net在目标检测方面也显示出很强的能力。目前领先的对象检测方法R-CNN,通过深度卷积网络提取候选窗口的特征显示出了显著的检测精度。但是RCNN的特征计算非常耗时的,并且检测精度受限,因为它将深度卷积网络反复应用到每张图像的数千个扭曲的候选区域的原始像素上。SSPNet,在整个图像上只运行一次卷积层(不考虑窗口的数量),然后在特征图上提取特征。这种方法的加速比R-CNN快100多倍。SPP-net继承了深度CNN特征提取的强大功能,也继承了SPP对于任意窗口大小的灵活性,这使得SPP具有很高的准确性和效率。同时使用最近的EdgeBoxes的快速建议方法,系统处理一个图像需要0.5秒(包括所有的步骤)。

二、使用SSP的深层网络

2.1 卷积层和特征图

  考虑流行的七层架构,前五层是卷积的,其中一些是池化层。这些池化层也可以被认为是“卷积的”,因为它们使用了滑动窗口。最后两层是全连接层,以一个N-way softmax作为输出,其中N是类别的数量。
  之前的深度网络需要一个固定的图像大小。固定大小的要求只是由于全连接层需要固定长度的向量作为输入,卷积层接受任意大小的输入。卷积层使用滑动过滤器,其输出与输入具有大致相同的长宽比。输出被称为特征映射—它们不仅涉及响应的强度,而且还涉及它们的空间位置。

2.2 SSP层

  参考:https://blog.csdn.net/qq_36926037/article/details/105310907
               在这里插入图片描述
  通常情况下:卷积层接受任意大小的输入,产生的输出大小是可变的。分类器(SVM/softmax)或全连接层需要固定长度的向量。
  空间金字塔层:包含多个金字塔,每一个金字塔有确定数量的spacial bins,且spacial bins的大小形状与输入图像/特征图成比例。
  无论输入大小,每一金字塔的spacial bins的数量是一定的,只不过spacial bin的大小不同。每个spacial bin应用max pooling得到一个输出值,对SSP层的所有spacial bin应用max pooling后会产生一个固定长度的输出(维度与spacial bin的数量相同)。

  例上图:空间金字塔池化包含了3层金字塔,以左边的一层金字塔为例,该金字塔层有4×4个 spacial bin,对特征图进行滑动窗口池化,滑动窗口的大小为224/4=56,步长也为224/4=56,这样滑动窗口在特征图上共有4×4个位置,每个滑动窗口的位置应用pooling操作得到一个值,这样该征图就会产生4×4=16个输出值,因为特征图共有256个,因此该金字塔层作用在特征图上后就会产生16×256个输出。
  为了对任意大小的图像采用深度网络,将最后一个池化层替换为空间金字塔池化层。空间金字塔池的输出为kM维向量(k是最后一层卷积中过滤器的数量,M是空间金字塔层中所有spacial bin的数量和)。该固定维向量是后续全连通层的输入。
  使用空间金字塔池,输入图像可以任何尺寸(任意的纵横比,任意的比例)
              在这里插入图片描述

2.3 SSPNet网络结构

                 在这里插入图片描述
  (1)候选区域提取:selective search得到候选区域边界框,测试时使用更快的EdgeBoxes提取候选区域。
  (2)提取全图特征:
  对原图像进行一次全图特征提取,得到整幅图的特征图,避免了计算资源的浪费。
  (3)找到候选区域在特征图中的映射特征:
  在全图特征图的对应区域找到每个候选区域的映射区域,将此映射区域作为候选区域的特征图。此时的特征图大小尺度各不相同。
  (4)将候选区域的特征图送入SSP层:
  将不同大小的特征图经过SSP层后变为一个固定长度的特征向量,此特征向量完全代表候选区域的特征,没有因为暴力调整失真,提高检测精度。
  使用SSP层消除网络固定尺寸的限制,放在最后一个卷积层之后,对特征图进行池化,得到固定长度的输出,作为后续全连接层的输入
  (5)SVM分类:
  (6)非极大值抑制和边界框回归:

2.4 训练网络

  理论上,无论输入图像的大小如何,都可以用标准的反向传播对网络结构进行训练。但实际上,GPU的实现最好是在固定大小的输入图像上运行。
  单尺度训练:
  从图像中裁剪一个固定大小的输入(224×224)的网络。裁剪的目的是为了增加数据。对于给定大小的图像,可以预先计算空间金字塔池所需的bin大小。
  多尺度训练:
  SPP适用于任何大小的图像。在训练中解决变化图像大小的问题,考虑一组预定义的大小例:180×180和224×224。不是裁剪一个更小的180×180区域,而是将224×224区域调整为180×180。因此,这两种尺度下的区域仅在分辨率上有所不同,而在内容/布局上没有区别。为了使网络能够接受180×180的输入,实现了另一个固定大小的输入(180×180)网络。换句话说,在训练过程中,通过共享参数的两个固定大小的网络来实现可变输入大小的SSPNet网络。
  为了减少从一个网络(224)切换到另一个网络(180)的开销,在一个网络上训练一个完整的epoch后,切换到另一个网络(保留所有的权值)来进行下一个完整的epoch。迭代训练。
  单/多尺寸解决方案仅用于训练阶段。在测试阶段,可以直接将SPP-net应用于任何大小的图像。

三、SSPNet用于目标检测

  SSP方法是从feature map的区域中提取候选区域的特征,而R-CNN直接从i原图区域中提取。在之前的工作中,Deformable Part Model (DPM)从HOG 特征图中提取窗口的特征,而Selective Search (SS)方法从编码的SIFT 特征图中提取窗口的特征。我们的方法能够从深度卷积特征映射中提取任意窗口中的特征。

3.1 检测算法

  (1)使用选择性搜索的“快速”模式来为每张图像生成大约2000个候选窗口。
  (2)然后调整图像的大小,使min(w, h) = s,并从整个图像中提取特征映射(特征图)。
  使用的是单尺寸训练的ZF-5的SPP-net模型。
  (3)为每个候选区域的特征图,使用SSP来提取固定长度特征向量。
  使用一个4级空间金字塔(1×1,2×2,3×3,6×6,共50个箱子)来汇集特征图的特征,生成一个12800 维(256×50)的特征向量。
  (4)特征向量提供SVM分类器:
  正样本:真值框的特征向量。
  负样本:那些与真值框重叠最多为30%的窗口。
  任何负样本如果与另一个负样本重叠超过70%就会被移除。使用标准的难例挖掘来训练SVM。此步骤迭代培训全部20个类别的SVMs需要不到1个小时的时间。在测试中,使用分类器对候选窗口进行打分。然后
  (5)对候选区域进行非最大抑制,使用边界盒回归来对预测窗口进行后处理:
  用于回归的特性是来自conv5的合并特性。用于回归训练的候选区域是那些与真实框重叠至少50%的窗口。

3.2 检测结果

  在Pascal VOC 2007数据集的检测任务上评估方法。
             在这里插入图片描述
  表显示了使用1-scale (s=688)或5-scale在不同层上的结果。
  1.pool5层:结果(44.9%)与R-CNN的结果(44.2%)相当。
  2.使用非微调的fc6层:我们的结果较差。一种解释是,我们的fc层是使用图像区域进行预训练的,而在检测情况下,它们是在特征图区域上使用的。特征图区域在窗口边界附近可以有强激活,而图像区域可能没有。这种差异可以通过微调来解决。
  3.使用微调的fc层(ftfc6,7):结果可以与RCNN的微调结果相媲美或略好于R-CNN的微调结果。
  4.经过边界盒回归:结果(59.2%)比R-CNN(58.5%)好0.7%,而我们的1-scale结果(58.0%)比R-CNN差0.5%。
         在这里插入图片描述
  上表中,使用同样的预训练模型(ZF-5)与R-CNN进行进一步比较。同R-CNN有可比的平均得分。
    在这里插入图片描述
  上表还包括其他方法:与传统目标检测方法的对比,与RCNN的对比。我们的方法取得较好的结果。

3.3 复杂度和运行时间

  SSPNet方法具有相当的准确性,但比R-CNN快得多。
  SSPNet的计算复杂度大约是R-CNN的1/24。
  使用相同的SPP (ZF-5)模型对特征计算的运行时间进行了比较。R-CNN每幅图像卷积花费14.37秒,而我们的1-scale版本每幅图像只花费0.053秒。所以我们的速度比R-CNN快270倍。我们的5-scale版本每幅图像卷积需要0.293秒,因此比R-CNN快49倍。
  候选区域的生成:
  在最近的窗口建议方法的帮助下,进一步实现了一个高效的完整系统。选择性搜索(SS)的建议在CPU上的每个图像花费大约1-2秒。EdgeBoxes的方法只需要大约0.2s。
  注意,只在测试期间使用快速建议方法(EdgeBoxes)。训练时使用SS,测试由edgebox生成候选区域。没有边界盒回归的时的mAP为52.8,这是因为训练时不使用EdgeBoxes。然后在训练阶段同时使用SS和EdgeBox提取候选区域,在测试阶段只使用EdgeBox,这时不含边界盒回归的mAP为56.3,这是由于增加了训练样本。在这种情况下,每个图像的总体测试时间为∼0.5s.

3.4 检测的模型组合

  模型组合是提高基于cnn的分类精度的重要策略。提出了一种简单的组合检测方法:
在这里插入图片描述
  (1)在ImageNet中预先训练另一个网络,使用相同的结构但不同的随机初始化。然后重复上述检测算法的训练。表(SPP-net(2))显示了这个网络的结果。其mAP可与第一个网络相比(59.1%对59.2%),在11个类别中超过第一个网络。
  (2)给定这两个模型,首先使用其中一个模型为测试图像上的所有候选窗口打分。然后,我们对两组候选窗口的并集(及其得分)执行非最大抑制。合并后,mAP提升至60.9%。在全部20个类别中,有17个组合的表现优于任何一个单独的模型。
  结论:
  1.两个模型是互补的,模型组合优化了检测效果。
  2.互补性主要是由于卷积层。尝试将相同卷积模型的两个随机初始化的微调结果结合起来,没有发现任何好处。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值