3 计算机视觉-阅读笔记(3)

3.2.4 Feature Pyramid Networkd(FPN)

FPN要解决的一个痛点是:检测不同尺度的目标(尤其是小目标)是很困难的。,其目的是实现多个尺度的anchor输入到同一个特征提取CNN中,得到相同大小的输出特征图。

主要的思想是图像金字塔。

《3 计算机视觉-阅读笔记(3)》 图1 左:图像金字塔;右:特征金字塔

1) 数据流

《3 计算机视觉-阅读笔记(3)》 图2 FPN

FPN两个路径:

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

《3 计算机视觉-阅读笔记(3)》 图3 FPN自底向上

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

《3 计算机视觉-阅读笔记(3)》 图4 SSD结构

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

《3 计算机视觉-阅读笔记(3)》 图5 FPN自顶向下的路径(不含skip connection)

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

2) 自底向上

《3 计算机视觉-阅读笔记(3)》 图6 增加skip connection

如上图左边虚线框所示为自底向上。每个卷积层减小特征图尺寸。

3) 自顶向下
如上图右边虚线框所示为自顶向下。每个卷积层增加特征图尺寸和同样大小特征图相加。

这种方法的优点是即充分利用了高层语义信息,又提高了图像分辨率,可用于实现:

  • RPN
  • Faster R-CNN的分类和bbox回归

4) FPN用于RPN

《3 计算机视觉-阅读笔记(3)》 图7 FPN用于RPN

FPN得到由《3 计算机视觉-阅读笔记(3)》卷积得到一系列的特征(P2、P3、P4和P5等)。根据这些特征分别有《3 计算机视觉-阅读笔记(3)》的卷积运算得到用于分类的bbox回归的结果。其实如果这里做的很好,还要用Fast R-CNN做分类干嘛,这就是one-stage检测算法了。

后面如果有时间,我会介绍下yolo系列和ssd系列的典型算法。

5) FPN用于Faster R-CNN

《3 计算机视觉-阅读笔记(3)》 图8 Fast R-CNN

Fast R-CNN的步骤:

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

《3 计算机视觉-阅读笔记(3)》 图9 Faster R-CNN

Faster R-CNN的步骤(对比与Fast R-CNN的不同):

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

6) 实验结果

《3 计算机视觉-阅读笔记(3)》 图10 实验结果比对

    原文作者:深度学习模型优化
    原文地址: https://www.jianshu.com/p/ad6998949ca4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞