SPP论文原理理解

改进

在检测上,改进R-CNN:用金字塔池化代替wrap,只对图像进行一次卷积,大大缩短rcnn卷积耗时。
这里写图片描述

原理

使用spatial pyramid layer在特征图上提取特征,可以将任意大小的图像池化生成固定长度的图像表示,以适应FC layer。(任意尺寸输入固定大小输出

这里写图片描述
输入:宽高为w,hconv5的特征图
输出:维度K*M(适应FC的尺寸,根据需要自由设定)

    k为filter个数,图中是256
    M是块的总数:16+5+1=21块

L-level pyramid pooling
共三层,每层代表三种不同刻度的划分,每一种刻度我们称之为:金字塔的一层
windows size池化尺寸计算:
若金字塔的某一层输出的块为n*n个特征,需要用Windows size进行池化

windows size大小为:win=(w/n,h/n),上取整
步长str=(w/n,h/n),下取整

RCNN目标检测改进

 值得一提的是,sppnet提出的这种金字塔池化来实现任意图片大小进行CNN处理的这种思路,得到了大家的广泛认可,以后的许多模型,或多或少在这方面都是参考了这种思路,就连rg大神,在后来提出的fast-rcnn上也是收益于这种思想的启发。
改的cnn网络部分

提取region proposal部分依然用的是selective search

变:CNN部分,结构用的是ZF-5(单尺度训练),金字塔用了{6x6 3x3 2x2 1x1},共50个bin

分类器也是用了SVM,后处理也是用了cls-specific regression

将图片缩放到s∈{480,576,688,864,1200}的大小,先对一整张图进行卷积得到特征图,于是得到了6个feature map。尽量让region在s集合中对应的尺度接近224x224,然后再将ss算法提供的2000多个候选区域的位置记录下来,通过比例映射到整张图的feature map上提取出候选区域的特征图B,然后将B送入到金字塔池化层中,进行权重计算.。

如何将图像的ROI映射到feature map?

映射的是ROI的两个角点,左上角和右下角,这两个角点就可以唯一确定ROI的位置了。
将feature map的pixel映射回来图片空间
从映射回来的pixel中选择一个距离角点最近的pixel,作为映射。

作者直接给出了一个很方便我们计算的公式:假设(x’,y’)表示特征图上的坐标点,坐标点(x,y)表示原输入图片上的点,那么它们之间有如下转换关系:
(x,y)=(S*x’,S*y’)
其中S的就是CNN中所有的strides的乘积。比如paper所用的ZF-5:
S=2*2*2*2=16
而对于Overfeat-5/7就是S=12
左上:这里写图片描述

右下:这里写图片描述

ref

https://blog.csdn.net/u011534057/article/details/51219959
https://blog.csdn.net/linolzhang/article/details/54344350

猜你喜欢

转载自blog.csdn.net/qq_35608277/article/details/80192753
今日推荐