SPP-net

    参考文献:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    SPP-net的思路其实很简单,就是为了解决传统卷积神经网络在含有FC(全连接层)的时候,只能输入固定尺寸的图片的弊端。在传统带有FC的网络中,若想输入不同尺寸的图片,必须先将它们进行裁剪或resize。

SPP-net_第1张图片

如何实现SPP:

    我们知道,卷积层和池化层对于特征的尺寸是没有要求的,也就是可以输入任意尺寸的特征,只不过网络在建好后,输入不同尺寸的特征则输出尺寸也不一样。而全连接层对于输入特征的尺寸有着严格的要求。基于此,作者的思路就是:在网络的最后一层卷积层(conv_5)之后,将原来的pooling层换成Spatial Pyramid Pooling层,目的是把不同尺寸的conv_5的输出,变成相同尺寸的FC的输入。实现过程其实也很简单:

SPP-net_第2张图片

1.  首先我们有conv_5的输出特征(比如13x13尺寸)

2.  构建多层金字塔(比如三层),利用金字塔将原始特征分成1x1,2x2,4x4等不同尺度

3. 对于每个金字塔中的每块小区域,求取其最大pool,作为此小区域的特征输出

4. 则总共对应的输出尺寸为:1+4+16=21

因此,SPP能够将任意尺寸的输入,经过空间金字塔池化结构,将输出特征统一规划为相同的尺寸,以供后面的FC输入。

你可能感兴趣的:(机器学习)