Feature pyramids are as basic component in recognition systems for detecting objects at different scales.
in this paper, we exploit the inherent multi-scale, pyramids hierarchy of deep convolutional networks to construct feature pyramids with marginal extra cost. A top-down architecture with lateral connections is developed for building high-level semantis feature maps at all scales.
简介
利用金字塔方法去检测不同尺度下的物体,已经在很多方面进行了应用。
- 传统方法:SIFT,HOG –> DPM
- 深度学习:SSD
结构如下:
- a) 利用图像金字塔构建特征金字塔,然后针对不同尺度进行分别独立计算【速度慢】
- b) 利用单个最高层的特征层去计算【目前流行的方法】
- c) 针对ConvNet中的不同尺度,分别去计算【卷积神经网络在特征金字塔上拥有天然的优势】
- d) 本文提出了一种新的方法,在b,c基础上,增加了横向连接【精度更高】
分析:
- 特征层越高,特征表达能力越强【覆盖的信息越多】
- 特征层越低,特征表达能力相对较弱【覆盖的信息较少】
- 将两者有机的结合在一起,可以更佳丰富不同尺度下的特征表达能力。
特征金字塔Feature Pyramid Networks
说明:
- 特征金字塔总的每一层都是和上一层的特征融合
- 卷积网络的最高层网络C5通过一个1x1卷积生成金字塔的最高层P5
- 其他卷积层都是通过上一层的金字塔特征上采样和对应的卷积层(经过1x1卷机)相加得到
- 金字塔特征中的每一层都进过一个3x3的卷积,生成最终的特征
- 所有的金字塔特征中的每一层的深度都是256-d
- 所有额外的卷积都【上述提到的1x1卷积和3x3卷积】不采用非线性**函数
- 特征金字塔上的每一层特征都进行检测和分类
- 特征金字塔与卷积层对应关系
{P2,P3,P4,P5} –>{C2,C3,C4,C5} ,对应特征的尺寸是相同的
FPN应用
FPN在RPN上的应用
- 将RPN上的单尺度特征替换为FPN,在每一层特征上,增加一个3x3卷积核两个1x1卷积进行分类和box回归
- 每一个特征层采用单一尺度的anchor进行预测【因为金字塔本身就已经考虑多尺度问题了】
-
{P2,P3,P4,P5,P6} 分别对应的anchor面积为{322,642,1282,2562,5122}
-
- 每一个特征层采用多比例的anchor
-
{1:2,1:1,2:1}
-
- 正样本:
IoU>0.7 - 负样本:
IoU<0.3
FPN在RCNN上的应用
- 首先通过RPN产生一系列的ROI候选区域
-
针对每一个候选区域的大小,选在在FPN上进行RoiPool操作
-
k=⌊k0+log2(wh√224))⌋ - 其中:
参数 说明 224 是ImageNet的标准输入 k0 基准值,设置为5,代表P5层的输出 w,h 表示ROI区域的长和宽 - 从而,如果Roi是112*112的大小,那么,
k=k0−1=5−1=4 ,说明,该Roi应该使用P4的特征层。
-
实验
| 参数 | 说明 |
|---|---|
| 800 | 图像短边缩放到800 |
| 2 | batch per GPU |
| 0.0001/0.9 | decay rate和momentum |
| 0.02/0.002 | 学习率:前30K用0.02,后10K用0.002 |
实验1:
- 对比不同特征层
说明:
- 通过对比发现FPN相比conv4,conv5效果都好
- 通过ablation实验,证明了RPN的top-down金字塔的效果要:
- d)采用类似fig1种的b结构,但是将其他层的特征通过3x3/1x1卷积进行叠加到最高层作为特征输出
- 因为不同特征层之间存在着semantic gap,从而效果不好
- e)采用top-down金字塔,但是不尽兴lateral相加操作
- 虽然分辨率也提高了,但是由于没有和对应层的特征信息,从而位置精度不够
- f)只采用FPN中的
P2 分辨率最高的一层作为特征层,并把所有的anchor放在这一层使用- FPN是通过固定的窗口来扫描所有特征层,从而增加了尺度不变形的鲁棒性
- 单独采用
P2 ,特征图尺寸更大,导致产生更多的anchor(750k) - 实验说明,更多的anchor并不能带来更好的效果
- d)采用类似fig1种的b结构,但是将其他层的特征通过3x3/1x1卷积进行叠加到最高层作为特征输出
实验2
- 基于Fast RCNN框架,固定proposal个数进行比较
说明:
- 采用实验1中的table1(c)模型的RPN结果,作为本实验的proposal
- RoiPool输出的大小为14x14
- 结论同实验1
实验3
- 利用Faster RCNN框架+FPN进行物体检测
说明:
- Faster RCNN+FPN可以达到最好的效果AP=33.9
实验4
- 与历年模型对比
说明:
- 利用Faster RCNN+FPN在COCO数据集上达到了最好的效果。
实验5
- 对比不同的基础网络
说明:
- 基础网络ResNet-101比ResNet-50效果要好,因为其表达能力更好
实验6
- 图像分割
说明:
- FPN进行图像分割可以达到非常好的效果【roipool–> 14x14】
总结
FPN可以有效的将不同尺度下的特征进行数据融合,并保留每一个尺度下的位置敏感性。
- 尺度不变形
- 位置信息更佳准确
参考文献
https://arxiv.org/pdf/1612.03144.pdf
http://blog.csdn.net/dcxhun3/article/details/59055974
http://blog.csdn.net/zchang81/article/details/76155460