Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPP-net) 笔记

作者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun

SPP—Net

提出背景:

         由于CNN的输入需要固定大小的图片(比如224*224),而固定大小的图片是通过将原始图片crop或者wrap得到的,这样,会使原始图片几何失真,最终会使网络训练的准确率下降。

         crop或者wrap产生的图片效果如下:


         CNN分为卷积层(convolutionallayer)和全连接层(fully-connected layer)。卷积层不需要固定大小的输入,可以产生任意大小的feature map,而全连接层需要固定大小/长度的输入。所以上面提到的CNN需要固定大小的输入就是因为全连接层。

         因此,作者提出了空间金字塔池化(spatial pyramid pooling,即SPP),这种方法可以解除CNN对于固定大小输入的限制。作者将这个SPP层放在CNN中最后一个卷积层的后面,全连接层前面。如下图:


上面那个是传统的CNN模式,下面那个是作者提出的新方法。

 

空间金字塔池化层(SpatialPyramid pooling Layer)



 

         上图是一种SPP层的结构。上图中,其实就是对最后一层卷积层同时进行4x4,2x2,1x1的池化,然后将3个池化后“矩阵”转换成“向量”连接起来。由于池化是按比例下采样上一层图像,故对于任意大小的出入,经过4x4池化后总是得到4x4的输出。所以对于上图,对于任意大小的输入,最后经过SPP层之后,总是得到21x256维的输出(21=4*4+2*2+1*1)。

         另外,作者还提出1x1的池化成为“globalpooling”,有以下几个优点:1)可以减小模型大小和减小过拟合 2)一个global average pooling可以提高准确率 3)一个global max pooling可以用于弱监督物体识别(weakly supervised object recognition)。

 

实验

作者在实验的时候,发现以下几种方法可以提高准确率。

1)  Multi-level Pooling Improves Accuracy. 比如4-levelpyramid其中一个例子就是(6x6,3 x 3,2x2,1x1)。

2)  Multi-size Training Improves Accuracy. 比如训练的时候输入图片为224x224和180x180,测试的时候仍然为224x224.

3)  Full-image Representations Improves Accuracy.

4)  Multi-view Testing on Feature Maps

详细的说明可以看看论文。

 

其他说明

图像分类(Image Classification)的大致流程如下:



物体检测(Object Detection)的简略流程如下:


说明:

1)使用SPP进行检测,先用提候选proposals方法(selective search)选出候选框,不过不像RCNN把每个候选区域给深度网络提特征,而是整张图提一次特征再把候选框映射conv5,因为候选框的大小尺度不同,映射到conv5后仍不同,所以需要再通过SPP层提取到相同维度的特征,再进行分类和回归,后面的思路和方法与RCNN一致。实际上这样子做的话就比原先的快很多了,因为之前RCNN也提出了这个原因就是深度网络所需要的感受野是非常大的,这样子的话需要每次将感兴趣区域放大到网络的尺度才能卷积到conv5层。这样计算量就会很大,SPP只需要计算一次特征,剩下的只需要在conv5层上操作就可以了。

2)映射说的简单一点其实就是:输入图片与卷积层conv5是对应的,而region proposal与输入图像也是对应的,所以region proposal与conv5也是对应的。通过某种映射关系,就可以求出region proposal具体对应conv5的哪个部分。这样,对应每个region proposal不需要进行卷积运算,只需要求一个映射关系就可以,所以速度快乐很多。

3)其实具体流程还涉及到其他的,比如对region proposal重新调整大小等,具体细节参照论文。

 

 

参看文献:

RCNN学习笔记(3):Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition(SPP-net)

 

目标检测——从RCNN到Faster RCNN 串烧

 






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章