什么是SPP网络

SPPNet作用

其全称是:spatial pyramid pooling layer (空间金字塔池化层),从字面意思就能看出来他是利用一组不同尺度大小的pooling算子进行操作,然后拼接结果。金字塔这三个字的含义就是采用了一组一组不同尺度大小的pooling算子,形象地表示从大到小就像一个金字塔一样。

使输入图像尺寸不受限制。卷积神经网络中,如何解决输入不是固定的size?

1)resize输入成固定大小的输入
2)替换网络中的全连接层,对最后的卷积层使用global average pooling
3)加入SPP layer


Global average pooling

例如:最后一层特征图大小为6*6*10,(width,hight,channels),global average pooling就是将6*6大小的特征图平均采样为一个值,这样最后就输出1*10大小的特征向量,这种方式就只和通道数有关,而与特征图大小没有关系了。

SPP layer

使用不同的size,stride,对全连接层前的卷积层进行不同池化大小的pooling,然后拼接,这样最终的输出一定是(p1*p1+p2*p2+…)*channels, 所以对输入尺寸没有了要求。

什么是SPP网络_第1张图片

 什么是SPP网络_第2张图片

什么是SPP网络_第3张图片

SPPNet主要的贡献就是可以使输入尺寸不固定,其他步骤和RCNN类似。

论文中训练时使用了两种方式:一是固定输入尺寸的图片(single size),二是使用180*180,224*224大小的输入(multi-size),最后在卷积层和全连接层之间加入了SPP pooling layer,论文得出的结论:

spp-pooling层能提升准确率
multi-size training能提高准确率
整张图片比单个照片中的crop作为输入能提高准确率
 

你可能感兴趣的:(深度学习基础,深度学习,神经网络,人工智能)