为什么使用特征金字塔呢,是因为CNN对物体的平移是保持不变的,而对于物体的尺度变换是无法处理的,所以使用特征金字塔进行处理,下面进行介绍。

(a)Featurized image pyramid

常见的四种特征金字塔网络结构

对图像做一个特征金字塔,在每一个图像上做CNN,进行预测,但 计算与内存开销太大。

(b)Single feature map

常见的四种特征金字塔网络结构

对图像做一个CNN,相当于一个特征金字塔,不对图像做特征金字塔,在最高层做一个预测,但这存在感受野问题,越抽象感受野越大,对于小的特征可能检测不到,使用Single feature map的包括R-CNN、SPPNet、Fast R-CNN、Faster R-CNN、YOLOv1以及R-FCN系列。

(c) Pyramidal feature hierarchy

常见的四种特征金字塔网络结构

在每一层特征做预测,问题在于越底层FeatureMap的语义信息越薄弱,底层大scale的feature map语义信息少,虽然框出了小物体,但小物体容易被错分,使用Pyramidal feature hierarchy的包括SSD。SSD没有上采样过程,因为是在原有特征图上预测的,所以也不会增加额外的计算开销,但作者认为SSD没有用到足够底层的特征,而越底层的特征对检测小物体越有利。SSD用的最底层的特征是conv4_3

总结:上面abc这三种卷积方式都不是特征理想,那么怎么才能兼顾准确率(检测小物体)和速度(开销)呢?接下来就是FPN了。

(d) Feature Pyramid Network

常见的四种特征金字塔网络结构

特征金字塔网络相当于先进行传统的bottom-up自上而下的特征卷积(d图左侧),然后FPN试图融合左侧特征图的相邻的特征图。左侧模型叫bottom-up,右侧模型叫top-down,横向的箭头叫横向连接lateral connections。这么做的目的是因为高层的特征语义多,低层的特征语义少但位置信息多。

左侧模型特征图大小相差1倍,但像AlexNet一样,其实是每在同样大小的feature上卷积几次才进行一次池化操作,我们把在同样大小feature上的卷积称之为一个stage。d图这里画的图是每个stage的最后一个卷积层,因为每个stage的最后一层feature语义信息最多。

具体做法是两个特征层的较高层特征2倍上采样(上采样方法很多,上采样几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素,总之是把feature大小扩大了一倍)。较低层特征通过1×1卷积改变一下低层特征的通道数,然后简单地把将上采样和1×1卷积后的结果对应元素相加。为什么横向连接要使用1×1卷积呢,为什么不能原地不动地拿过来呢?原来在于作者想用1×1改变通道数,以达到各个level处理结果的channel都为256-d,便于后面对加起来的特征进行分类。这段文字表述的即是下图。

常见的四种特征金字塔网络结构

FPN只是提取特征的一种方法而已,这篇论文作者的应用于实验主要是在Faster R-CNN上进行的。

如有不足,欢迎交流。

相关文章:

  • 2021-09-08
  • 2021-12-09
  • 2021-06-29
  • 2021-08-24
  • 2021-08-11
  • 2022-03-14
  • 2021-07-29
  • 2021-08-29
猜你喜欢
  • 2020-11-09
  • 2021-12-30
  • 2021-08-14
  • 2021-08-12
  • 2021-07-02
相关资源
相似解决方案