空间金字塔池化(spatial pyramid pooling)是把经过CNN(提特征)之后形成的任意不同尺寸的feature map转变成相同大小的特征向量,然后送入全连接网络fc中
为什么使用SPP:在全连接时,权重矩阵(上一层的输出,人为指定的数,,比如(4,8))在多次训练之后,这个已经固定了(因为训练就是要得到合适的权重),所以当最开始输入的image的大小发生改变时,无法与得到的权重矩阵进行全连接。这个时候就需要用到SPP了,不同尺寸的feature map,如下:如4x4,2x2,1x1的三种特征图,分别会形成16,4,1个格子,我们对这21个格子分别进行最大池化,分别找到每个格子的最大值,最终输出得到一个神经元。。。最终把一张任意大小的图片转化成了一个21维的向量!
整体过程:Image -->cnn(进行提特征)–>spp -->fc
fc = 16x256 + 4x256 + 1x256 =10752的一维向量
如图