Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition论文细读

因为在阅读完Fast-RCNN论文后,进行代码复现的过程中发现自己对ROI层的实现不了解,于是回来读了这篇SPPnet的论文,收获很大,对ROI的实现也有了更深的理解。

SSPnet提出的原因

因为RCNN因为在计算特征时,需要对每一个候选区域分别进行计算,导致速度较慢。针对这一问题,提出了SPPnet,对整张图像进行卷积提取特征,加快了处理速度。

因为目前的CNN(因为全连接层的原因)要求规定尺寸的输入,所以提出了SPPnet,将最后一个卷积层后的池化层替换为SPP layer(空间金字塔池化层),生成固定尺寸的特征图来满足全连接层的需要。

SPPnet的步骤:

  1. 与RCNN一样,使用selective search、Edge Boxes等方法获取2000个候选区域,本文使用的是Edge Boxes方法,因为速度更快(SS需要1-2s,EB只需要0.2s左右)
  2. 对输入图像进行resize,大小为min(w,h) = s,s是实现定义好的大小
  3. 对resize后的图像整体进行卷积,得到特征图
  4. 使用空间金字塔池化层对特征图进行处理,得到一个固定长度的向量,并以此作为候选全连接层的输入,同时把特征图与原始图像中的候选区域使用特定的映射关系进行一一对应的映射
  5. 和RCNN一样使用SVM对特征向量进行分类识别

SPPnet的特性

1.可以忽略输入的尺寸生成固定尺寸的输出
2.使用多层次的空间金字塔,对目标的形变具有较好的鲁棒性
3.得益于灵活多变的输入尺寸,SPP可以合并提取自多尺寸输入的特征

SPPnet的优势:

1.SPP不仅可以根据多尺寸的输入生成固定大小的输出,还因为训练时输入的多变性,增加了尺寸的多变性,减少了过拟合。
2.为了让单一网络也可以接受多尺寸网络,使用共享所有参数的多个网络进行近似,这些网络使用固定尺寸的输入进行训练,在每次迭代过程中使用给定尺寸的输入进行训练,下一次迭代则更改输入尺寸,得到了传统单尺寸训练网络的收敛性,且增加了准确率。
3.同时具备CNN的能力和SPP接受灵活的输入尺寸的特性,处理每张图像需要0.5秒左右,比RCNN快24-102倍。
4.SPPnet可以促进网络向更深层、更大规模发展,且因为在具有灵活定位和尺寸的特征图上进行多视角的测试,可以增加分类的准确率

CNN需要固定尺寸输入的原因:

卷积层是可以接收多尺寸的输入的,但是也会相应的生成多尺寸的输出,而全连接层和分类器(softmax、SVM等)等需要固定尺寸的输入向量,使用Bags of Word可以得到这些向量(通过合并特征),SPP可以提升BOW的效果——保持空间信息,因为在local spatial bins(局部空间容器)内进行池化。

在SPPnet中,空间容器的数量是固定的,和图像的尺寸无关,而之前深度学习网络使用的滑动窗口的数量是与图像的尺寸息息相关的。

空间金字塔池化层处理过程:

在每个空间容器内,把每个滤波器的反应进行合并,空间金字塔池化层的输出是一个k*M维的向量,k是最后一个卷积层的滤波器数,M是bins的数量。这个固定维数的向量是全连接层的输入。
在这里插入图片描述

如最后一个卷积层的filter是k=256,空间金字塔是3层的,大小如图分别为44,22,11,故M=44+22+11=16,所以该window经过空间金字塔池化后的特征向量大小为256*16
最大的金字塔层有一个覆盖整个图像的容器,实际上是一个全局池化操作,全局平均池化可以减小模型尺寸、减少过拟合,并可用于弱监督目标识别。

为了使网络可以接收多尺寸的输入,使用空间金字塔层替代最后一个卷积层的最大池化层,对一个L层的金字塔层来说,当它的某层大小为nn,最后一个卷积层的输出为aa时,该层的滑动窗口大小为win=a/n上取整 步长stride=a/n下取整,由此得到L个输出,下面第一个全连接层将接收L个输入。

映射关系的计算

原文为

在这里插入图片描述

即对映射在特征图的区域中心为(x’,y’),其在原始图像的中心为(x,y) = (sx’,sy’),其中s是空间金字塔池化层之前所有卷积层的stride的乘积
如论文中提到的ZF-5模型和Overfeat-5、Overfeat-7三个模型
在这里插入图片描述

对ZF-5来说,其s=2222=16
对overfeat-5/7来说,其s=2
3*2=12

其他的一些提升方式

多层次的池化可以提升准确率因为多层次池化可以获得更多的参数,且对目标形变和空间层次的多样性有较好的鲁棒性。
多尺寸的训练可以提高准确率。
完整视图可以增强准确率,因为在加上SPPnet对整个图像计算完整视图的得分,使得各个方法的error率都大幅下降,由此显示了维护内容完整性的重要性

猜你喜欢

转载自blog.csdn.net/weixin_41963310/article/details/109018427