02 SPPnet

参考:https://www.cnblogs.com/gongxijun/p/7172134.html

http://www.cnblogs.com/chaofn/p/9305374.html

一, Pooling features from arbitrary windows on feature maps. The feature maps are computed from the entire image. The pooling is performed in candidate windows.

02 SPPnet_第1张图片

 

1) 特征图feature A 的256个通道,每个通道都切分为16个小的特征图,然后使用对应大小的池化核(即小的特征图大小)对其进行池化得到16x256维特征;

2) 将这个特征图feature A的256通道,每个通道都切分为4个小的特征图,然后使用对应的大小的池化核对其进行池化得到4x256维特征;

3) 将这个特征图feature A的256通道,每个通道都使用和通道图一样的大小的池化核对其进行池化,这个每个通道得到1一个值,所有通道处理一遍,得1x256维特征;

这样不管输入的特征图A大小如何,他们连起来都是一个固定长度的特征向量(维度:16x256+4x256+1x256),将这个向量输入到后面的全连接层。

 

注:关键是池化核的大小是变化的

二,与R-CNN对比

1,R-CNN算法过程:

           候选框 (选择搜索算法)——> 提特征(预训练好的网络)——> 分类 (以这些特征训练SVM分类器)——> 拟合边界框回归器,

2,SPPnet算法过程和R-CNN一样,只是在提特征方式上做了改进:把整张待检测的图片,输入CNN中,进行一次性特征提取,得到feature maps,然后在feature maps中找到各个候选框的区域,再对各个候选框采用金字塔空间池化,提取出固定长度的特征向量。

3,回顾R-CNN的特征提取过程:对于每一个候选框,缩放候选框大小以适合CNN的输入,做一次前向运算,将第五个池化层的输出(就是对候选框提取到的特征)存到硬盘

4,这样SPPnet相对于R-CNN的优点是:SPPnet计算feature map只需要一次前向运算(论文原文because R-CNN repeatedly applies the deep convolutional network to about 2,000 windows per image, it is time-consuming)

即RCNN是:多个regions+多次CNN+单个pooling,而SPP则是: 单个图像+单次CNN+多个region+多个pooling,画个图直观点:

02 SPPnet_第2张图片

02 SPPnet_第3张图片

 

相关论文:

Spatial pyramid pooling in deep convolutional networks for visual recognition
@inproceedings{he2014spatial,
  title={Spatial pyramid pooling in deep convolutional networks for visual recognition},
  author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},
  booktitle={European conference on computer vision},
  pages={346--361},
  year={2014},
  organization={Springer}
}

 

你可能感兴趣的:(Deep,Learning,Object,Detection)