论文:《Feature Pyramid Networks for Object Detection》
主要内容
建立一个自上而下的途径和横向连接,将低分辨率、语义强的特征与高分辨率、语义弱的特征相结合的特征金字塔,在各个层面都有丰富的语义,并能从单一的输入图像比例中快速构建。该方法将任意大小的单尺度图像作为输入,并以完全卷积的方式在多个层次上输出不同比例大小的特征图。这个过程独立于骨干卷积架构
FPN结构
自下而上的途径
自下而上的途径是骨干网络的前馈计算,它计算的特征层次由几个尺度的特征图组成,缩放步长为2。通常有许多层产生相同大小的输出图,我们说这些层处于同一网络阶段。对于我们的特征金字塔,我们为每个阶段定义一个金字塔层。我们选择每个阶段最后一层的输出作为我们的特征图参考集,我们将充实这些特征图来创建我们的金字塔。这种选择是很自然的,因为每个阶段的最深层应该有最强的特征。 例如ResNet网络,有四个卷积块,表明有四个不同大小的特征图输出。这是主干网络提供的,FPN结构直接拿来用。舍弃第一个卷积因为他需要太大的内存
总结: 在自下而上的途径中,FPN只获取特征图尺寸发生变化的输出,并且这个输出是特征图尺寸发生变化前的最后一个输出
自上向下的路径和横向连接
自上而下的途径通过对来自金字塔高层的空间上较粗但语义上较强的特征图进行上采样,幻化出更高的分辨率特征。然后,这些特征通过横向连接与来自自下而上途径的特征一起增强。每个横向连接将来自自下而上途径和自上而下途径的相同空间大小的特征图合并起来。自下而上的特征图具有较低的语义,但由于其被子采样的次数较少,其激活的定位更为准确。 下图是自上而下特征图的结构。对于较粗分辨率的特征图,我们将空间分辨率上采样2倍(为简单起见,使用近邻上采样)。然后,上采样的特征图与相应的自下而上的特征图(经过1x1个卷积层以减少通道尺寸)通过元素相加的方式合并起来。这个过程反复进行,直到生成最精细的分辨率地图。为了开始迭代,我们只需在C5上附加一个1x1卷积层以产生最粗的分辨率地图。最后,我们在每个合并的特征图上附加一个3x3卷积层,生成最终的特征图,这是为了减少上采样的混叠效应。 因为金字塔的所有层次都使用共享的分类器/回归器,就像传统的特征图像金字塔一样,我们在所有的特征图中固定了特征维度(通道数,表示为d)。在本文中,我们设定d=256,因此所有额外的卷积层都有256通道的输出。在这些额外的层中没有非线性,我们根据经验发现这些非线性的影响很小。 总结: 将自上而下的特征图和相对应的自下而上的特征图通过逐像素相加的方式融合,在最粗的分辨率中,使用1个1x1的卷积来调整通道数,文中默认将通道数设置为256,对较粗的分辨率用近邻采样法进行2倍上采样(特征尺寸*2)。对于横向连接部分,直接使用1个1x1的卷积层来调整通道数。
|