1 SSPNet论文出处

SSPNet(Spatial Pyramid Pooling Network),中文名字是空间金字塔池化网络
SSPNet论文出自《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
一篇较好的解读SSPNet的博客

1.1 为什么会提出SSPNet

SSPNet的中文名称是空间金字塔池化网络,SSPNet的提出,是为了解决R-CNN遇到的一个拼劲问题,也就是R-CNN在候选区提取时,每张图片都需要经过一次CNN,运行速度很慢。如果你有2000张图片的话,那么你需要经过2000次CNN网络,这样的计算速度是非常慢的。 在了解SSPNet之前,让我们先了解一下R-CNN的工作原理,才能对其进行改进。

SSPNet完美解决上述R-CNN遗留的两个问题:

  • R-CNN在生成了候选区域后,需要对每个区域进行统一尺寸的压缩或放大,当候选集的长与宽差别较大时强行压缩至比例为1:1时会使图像产生变形和丢失图像的原始特征
  • R-CNN生成了多个候选集后需要全部输入到CNN中,当生成了2000个候选集时,就需要对图片进行2000次单模型特征提取,这无疑是效率低下的

1.2 SSPNet的解决方案

针对R-CNN遗留的两个问题,SSPNet提出了如下的解决方案:

  • SPPNet网络结构图如下所示,在输入时直接输入整张图像,只需要对整张图像做一次卷积操作,同时会生成整张图像的候选集特征映射(Feature Map),这样候选集对应的特征图可以直接传递到下一层,这样一来对图像进行2000次的计算就变成了1次,大大增加了网络的效率。
  • SPPNet中另一关键模块就是金字塔池化层(Spatial Pyramid Pooling Layer),这一层的设计思路是通过池化操作将任意尺寸的输入都转换成固定大小输出因为在池化层中只要池化的核结构不变,输入的维度就不会变化。Kaiming He等人正是利用了池化输出固定的原理避免了原始R-CNN模型中需要缩放图片候选集的操作

SPPNet在R-CNN拥有的区域提取、卷积层、池化层、全连接层、SVM分类器和Bounding-Box回归网络结构基础上,加入了候选集特征图映射和SPP Pooling层。将R-CNN网络的预测速度提升了数十倍,极大地优化了网络的计算法复杂度
SSPNet的结构图如下所示:
image

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
微信公众号