3 计算机视觉-阅读笔记(3)
2019-04-25 本文已影响1人
深度学习模型优化
3.2.4 Feature Pyramid Networkd(FPN)
FPN要解决的一个痛点是:检测不同尺度的目标(尤其是小目标)是很困难的。,其目的是实现多个尺度的anchor输入到同一个特征提取CNN中,得到相同大小的输出特征图。
主要的思想是图像金字塔。

1) 数据流

FPN两个路径:
- 自底向上(bottom-up)。空间分辨率变小,语义增强;
- 自顶向下(top-down)。空间分辨率变大,语义减弱。

结合底层分辨率高,高层分辨率低、语义高的特点,文章介绍了SSD(Single Shot MultiBox Detector)的小目标检测效果比较差的原因。所利用的特征图如图4所示。

FPN提供了自顶向下的路径,基于语义较丰富的层从上向下来构建分辨率较高的层。如下图所示。

上面的方法会导致目标位置不准确,因此仿照ResNet的shortcut思想,增加了跳跃连接(skip connection)。
2) 自底向上

如上图左边虚线框所示为自底向上。每个卷积层减小特征图尺寸。
3) 自顶向下
如上图右边虚线框所示为自顶向下。每个卷积层增加特征图尺寸和同样大小特征图相加。
这种方法的优点是即充分利用了高层语义信息,又提高了图像分辨率,可用于实现:
- RPN
- Faster R-CNN的分类和bbox回归
4) FPN用于RPN

FPN得到由卷积得到一系列的特征(P2、P3、P4和P5等)。根据这些特征分别有
的卷积运算得到用于分类的bbox回归的结果。其实如果这里做的很好,还要用Fast R-CNN做分类干嘛,这就是one-stage检测算法了。
后面如果有时间,我会介绍下yolo系列和ssd系列的典型算法。
5) FPN用于Faster R-CNN

Fast R-CNN的步骤:
- S1 :输入一张图片;
- S2:使用backbone卷积网络,得到一组特征;
- S3:使用Region Proposal,选出候选区域;
- S4:根据候选区域位置,选择特征映射中候选区域对应位置的特征;
- S5:使用ROI pooling将这些区域转换为相同尺寸的特征图;
- S6:使用相同大小的特征图,来进行分类和bbox回归。

Faster R-CNN的步骤(对比与Fast R-CNN的不同):
- S1:FPN提取特征(Faster R-CNN产生多个特征图,Fast R-CNN产生一个特征图);
- S2:使用RPN来选出候选区域;
- S3:根据候选区域,来从一组特征中选择对应位置的特征区域(Faster R-CNN采用的原则是候选区域越大,就选择越高层的特征映射,具体计算公式为
)。
- S4:使用ROI pooling将这些区域转换为相同尺寸的特征图;
- S5:使用相同大小的特征图,来进行分类和bbox回归。
6) 实验结果
