SPPNet对R-CNN进行了改进,首先分析R-CNN慢在哪里?
R-CNN慢就慢在卷积运算,一张图片里面有2000个候选区域需要做卷积运算
一、SPPNet做出的改进
SPPNet主要存在两点改进地方,提出了SPP层
1、减少卷积运算
R-CNN中 crop/warp 是对图片进行形状修改
二、SPPNet介绍
1、操作步骤
- 图片输入到网络先得到一个 feature map
- 原图中通过SS得到的候选区域直接映射feature map中对应位置
- 映射过来的候选区域的特征,经过SPP层(空间金字塔变换层),S输出固定大小的特征向量。
2、映射
原图经过CNN变成 feature map,原始图片通过选择选择性搜索(SS)得到了候选区域(Region of interest),现在需要将基于原始图片的候选区域映射到 feature map 中的特征向量。映射过程图参考如下:
整个映射过程具体的公式,如下:
S 在论文中等于16,也就是每个卷积层的步长乘积。(2*2*2*2 = 16)
通过以上介绍,可以得出:
特征图中的xmin',ymin' = [xmin/16] + 1, [ymin/16] + 1
特征图中的xmax',ymax' = [xmax/16] - 1, [ymax/16] - 1
3、SPP(spatial pyramid pooling)
通过spatial pyramid pooling 将候选区域的 特征图转换成固定大小的特征向量。
三、SPPNet总结
- 首先不需要做大量的运算,节约计算资源
- 加入SPP