论文:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(ECCV 2014)
1、候选区域选择(Region Proposal:可能出现目标的位置)
用Selective Search方法从每张图像上选取约2000个region proposal
2、获取特征图
通过神经网络获取整张图片的特征图,保持了原始输入的比例关系,包括空间位置等信息。
实际操作:将图像缩放到短边为256,再从中间、四个角裁出224×224。图像通过水平翻转和颜色变换进行数据增强,将裁剪的图片resizing到180*180,将224和180尺度的图片交替训练,模拟不同的输入尺寸(输入的尺寸理论上可以任意大小,文中给出的理由是GPU的实现更适合运行在固定输入图像上)
3、特征映射
将region proposal映射到特征图上得到各个region proposal对应的特征图谱(不需要对每个region proposal重复提取特征,减少计算量)
4、spp层
spp替换pool5,对各个候选框对应的feature map进行金字塔池化,提取出固定长度的特征向量,
- 这样就可以不用将region proposal resize到同一个尺寸,避免改变region proposal 的比例
- 融合了feature map不同的尺度的特征,使算法更robust
后面的步骤与R-CNN类似,使用SVM算法对得到的特征向量分类识别,最后两层全连接层会使用Dropout,learning rate起始值是0.01,当错误率停滞后就除以10,测试时将输入缩放到180到224之间进行多尺度测试,其缺点还是流程太复杂