FPN(Feature Pyramid Networks)学习笔记

论文:Feature Pyramid Networks for Object Detection
论文连接:FPN

lateral connection横向连接、top-down architecture自顶向下
build high-level sematic feature maps at all scales 在所有尺度上构建高级语义特征图

低层的特征:语义(sematic)信息比较少,但是目标位置准确;
高层特征:语义信息比较丰富,但定位比较粗糙。

事实证明,大多数对象检测算法只使用顶级特征进行预测。此外,虽然有一些算法使用了多尺度特征融合,但融合的特征一般用于进行预测。

文中体提到的4种利用特征的算法形式

(a) Featurized image pyramids,特征化图像金字塔 (全称Feature pyramid build upon image pyramids):
即将图像做成不同的scale,然后不同scale的图像各自生成对应的不同scale的特征。对图像金字塔的每一层进行特征化的主要优势在于,它产生了一种多尺度的特征表示,其中所有层都具有很强的语义,包括高分辨率层。这个方法的缺点就在于增加了时间成本,有些算法会在测试中采用图像金字塔。
FPN(Feature Pyramid Networks)学习笔记
(b) Single feature map:
即仅采用网络最后一层的特征。这里的特征都是通过深度神经网络 (ConvNets)计算得到的,除了能够表示更高级的语义外,ConvNets对尺度变化也更具鲁棒性,因此有助于从单个输入尺度上计算的特征进行识别。像SPP net,Fast RCNN,Faster RCNN是采用这种方式。
FPN(Feature Pyramid Networks)学习笔记
(c) Pyramidal feature hierarchy:
即在前向过程中从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。deep ConvNet逐层计算特征层次,通过下采样层,特征层次具有固有的多尺度金字塔形状。这种网络特征层次结构生成了不同空间分辨率的特征图,但由不同深度,各个特征图之间有很大的语义鸿沟。高分辨率图的低级别特征会损害其对象识别的表征能力。像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的。
FPN(Feature Pyramid Networks)学习笔记
(d) Feature Pyramid Network:
顶层特征通过上采样和低层特征融合,将低分辨率、语义强的特征与高分辨率、语义弱的特征相结合,每一层都是独立预测的。
相似的结构采取的是自顶向下的、跳跃连接(skip connection)的网络结构(下图的上面一张图),目标是生成一个高分辨率的单一高级特征图(finest level,自顶向下的最后一层),并据此进行预测。经过多次上采样并融合特征到最后一步,拿最后一步生成的特征做预测。而FPN与上面这个网络结构十分相似,区别在于预测是在每一层中独立进行的。
FPN(Feature Pyramid Networks)学习笔记

模型的主要部分

输入:单尺度、任意大小的图像
输出:输出多个尺度的缩放特征图

论文的主干网络采用的是ResNets。模型的金字塔结构包括了自下而上(bottom-up)的路径、自顶向下(top-down)的路径以及横向连接(lateral connections)。

Bottom-up pathway

自下而上的路径是通过主干网络的前馈计算得到的,它计算由多个比例的特征图组成的特征层次,从下而上相邻的两个特征图的缩放步长为2。

stage:输出相同大小特征图的卷积层称为一个stage。
选择每个stage的最后一层的输出特征作为特征图的参考集,用来充实后建立金字塔结构。因为每个stage的最深层具有最强的特征。

于是,对于ResNets,用每个阶段的最后一个剩余块(residual block)作为输出,即对于ResNets的conv2,conv3,conv4,conv5的输出是{C2,C3,C4,C5}。

Top-down pathway and lateral connection

高分辨率特征是通过在金字塔的较高层次上对空间上更粗糙但语义信息更丰富的特征图进行采样获得的,然后通过与自底向上过程中获得的较低层次特征图的横向连接来增强特征,如图所示以下。
FPN(Feature Pyramid Networks)学习笔记

  1. 对粗糙分辨率的特征进行最近邻上采样,使得空间分辨率提高了2倍。
  2. 通过1 * 1的卷积核来对相邻的下一层的通过自下而上过程得到的特征图进行卷积操作,目的是为了减少channel的维数。(对于最高层的话,就是直接进行这个操作来得到金字塔最高层的feature map)
  3. 然后通过添加元素进行融合。
    上述过程反复进行直到最终得到最高分辨率图为止。于是会得到最终的特征图集{P
    2
    ,P
    3
    ,P
    4
    ,P
    5
    },对应于{C
    2
    ,C
    3
    ,C
    4
    ,C
    5
    },对应的两个空间大小相同。
    由于金字塔的所有层共享分类器和回归器,论文将所有的特征图的维度调整到了同一个大小d=256。

应用

RPN+FPN

RPN是一个滑动窗口的不分类(class-agnostic)目标检测器。在最初的RPN设计中,在单尺度卷积特征图的基础上,在密集的3 * 3滑动窗口上评估一个小的子网络,执行对象/非对象二元分类和边界盒回归。这是通过3 * 3的卷积层和两个并行的1*1的卷积层来进行分类和回归,论文称之为一个网络的head。对象/非对象标准和边界框回归目标是根据一组称为anchor的参考框定义的。anchor具有多个预定义的比例和纵横比,以覆盖不同形状的对象。
论文就是用RPN的这个head对每层特征图都执行操作。论文中提到没有必要对每个层都用不同尺寸的anchors,于是每个层都只对应了一个大小的anchor:{322,642,1282,2562,5122}分别对应{P2,P3,P4,P5,P6}。P6只是为了覆盖最大的锚框大小5122,是通过对P5进行步长为2的下采样得到的,并且它不用于后面Fast R-CNN。 但是每个anchor都有三种纵横比:{1:2,1:1,2:1}。所以整个金字塔结构将会有15种锚框。
根据锚与ground truth边界框的交并比(IoU)为anchor分配训练标签。一般地,如果某个anchor与给定的ground truth边界框中拥有最高的IoU,或与ground truth边界框的IoU超过0.7,则该anchor赋予正标签;如果与所有ground truth边界框的IoU都低于0.3,则该anchor赋予负标签。

Fast R-CNN

Fast R-CNN是一种基于区域的目标检测器,其中Region of Interest(RoI)池化用于提取特征。
一般我们通过以下方式将宽度为w、高度为h(在网络的输入图像上)的RoI分配给特征金字塔的Pk层:
FPN(Feature Pyramid Networks)学习笔记

其中224是标准的ImageNet预训练尺寸,k0是指w×h=2242的RoI应映射到的目标级别。与基于ResNet的Fast R-CNN系统类似,该系统使用C4作为单比例尺特征图,于是我们将k0设置为4。所以上式的意思是:如果RoI的尺寸变小(例如,224的1/2),则应将其映射到分辨率更高的级别(例如,k=3)。
将预测器head附加到所有层的所有RoIs上(Fast R-CNN的头是类别明确的分类器和边界框回归器)。

  1. 采用RoI pooling层来提取7 * 7的特征
  2. ReLU
  3. 2个并联的隐藏的1024-d的fc层

这些层是随机初始化的。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年4月9日 上午10:33
下一篇 2022年4月9日 上午10:49

相关推荐