一文搞懂SPP(Spatial pyramid pooling)

来源:互联网 发布:香港房价数据库 编辑:程序博客网 时间:2024/06/06 12:25

1、简介

空间金字塔池化,使得任意大小的特征图都能够转换成固定大小的特征向量,这就是空间金字塔池化的意义(多尺度特征提取出固定大小的特征向量),送入全连接层。整体框架大致为:输入图像,卷积层提取特征,空间金字塔池化提取固定大小特征,全连接层。

具体的流程图如下:

 

2、具体算法的大体流程

 输入图像,进行多尺度提取特征,融合特征,传入全连接层

3、关键步骤解释:

现在我们来看RCNN网络。假设我们现在输入的tensor shape(None,None,None,3),如果没有SPP层,那么我们提取RP之后,需要将RP进行crop以达到同一尺寸,然后送入CNN中进行分类。现在有了SPP层,我们可以输入不同尺寸的图片,无需crop,从而达到前面几层的网络参数共享。

如果base net使用VGG,现在假使前面卷积层提取的feature map尺寸为(N,W,H,512),其中N为一个batch的图片数,W,H为任意值,那么怎样获得统一尺度的特征向量呢?网络结构如下:

Feature Map               (N,W,H,512)

上图蓝色层:                 (N,W,H,512),每个蓝色子方框:(N,W/4,H/4,512)

上图绿色层:                 (N,W,H,512),每个绿色子方框:(N,W/2,H/2,512)

上图灰色层:                 (N,W,H,512),每个灰色子方框:(N,W,H,512) -------其实就相当于原feature map

然后我们对以上3个图层中的子方框分别进行global maxpooling:

              K.max(子方框, axis=(1, 2))

则,每个颜色的子方框max之后的shape为:(N,512)

蓝色层一共有16个子方框,绿色层一共有4个,灰色层有1个,最终再将所有经过global maxpooling的特征向量融合,得到(N,512*21),最后在输入全连接层。


阅读全文
0 0