SPPnet neck https://arxiv.org/pdf/1406.4729.pdf
1 SPP网络的目的
很简单,第一是要清楚SPPnet 用在哪里,用来的目的是什么? 用在CNN backbone的后面neck部分,能够以另类方式做池化,使得经过这一层后的输出size不变。 不同尺寸原始图像输入到CNN backbone后,得出的输出是不一样尺寸的,加个SPPnet 就OK了。
2 SPP网络如何计算
第二要清楚如何计算的,下图可能表现得不是很清楚: 这文章(https://www.cnblogs.com/xiaoboge/p/10567869.html)里的图更清楚:
3 SPP网络的应用
关于ROI pooling: (1) Fast RCNN 和 Faster RCNN里用的是ROI pooling,涉及到两个概念,一个是特征图只提取一次,二是利用anchor proposal 圈定ROI特征图,然后自适应pooling到7*7的特征图大小。和这里的SPP空间金字塔网络不太一样。 (2) Mask RCNN更狠,直接把ROI pooling换成了 ROI align,这样就不用取整操作,直接双线性插值获取输出特征图的数值。现在很多用 Faster RCNN 也是直接用 ROI align,而不用ROI pooling,凯明大神在maskrcnn论文里也提到 使用ROI align 模型更强。
关于SPP空间金字塔网络: YOLOv3 v4 v5中均使用。 YOLOv5 还改良了一下计算,改成SPPF了。
|