FPN(特征金字塔)论文详解

FPN(特征金字塔)

论文:Feature Pyramid Networks for Object Detection
下载链接:
github: Caffe

将多阶段的特征图融合在一起,这就相当于既拥有了高层的语义信息,又拥用了底层的轮廓信息。自下而上特征图与自上而下特征图(线性插值)做加法操作,

解决问题:
《Feature Pyramid Networks for Object Detection》这篇论文主要解决的问题是 目标检测在处理多尺度变化问题时的不足,现在的很多网络都使用了利用单个高层特征(比如说Faster R-CNN利用下采样四倍的卷积层——Conv4,进行后续的物体的分类和bounding box的回归),但是这样做有一个明显的缺陷,即小物体本身具有的像素信息较少,在下采样的过程中极易被丢失,为了处理这种物体大小差异十分明显的检测问题,经典的方法是利用图像金字塔的方式进行多尺度变化增强,但这样会带来极大的计算量。所以这篇论文提出了特征金字塔的网络结构,能在增加极小的计算量的情况下,处理好物体检测中的多尺度变化问题。

Abstract

FPN(特征金字塔)论文详解
论文利用深度卷积网络固有的多尺度、金字塔层次结构来构建具有边际额外(极小)成本的特征金字塔。开发了一个具有横向连接的自顶向下体系结构,用于构建各种尺度的高级语义特征图。这种结构被称为特征金字塔网络(FPN),作为一种通用特征提取器在许多应用中都有显著的改进.

; 1. Introduction

识别大小不同的物体是计算机存在的一个挑战,主要在于卷积过程中小目标的特征消失现象。

下图FIg1展示了4种利用特征的形式:
(a) 图像金字塔,即将图像做成不同的scale,然后不同scale的图像生成对应的不同scale的特征。这种方法的缺点在于增加了时间成本。有些算法会在测试时候采用图像金字塔。
(b)像 SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征。
(c)像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的。
(d)本文作者是采用这种方式, 顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。

FPN(特征金字塔)论文详解
(a)Feature pyramids built upon image pyramids ( featurized image
pyramid)

通过图像金字塔来构建不同尺度的特征金字塔。

FPN(特征金字塔)论文详解
这种方法的优点有:

(1). 对每一种尺度的图像进行特征提取,能够产生多尺度的特征表示,并且所有等级的特征图都具有较强的语义信息,甚至包括一些高分辨率的特征图。

这种方法的缺点有:

(1). 推理时间大幅度增加;

(2). 由于内存占用巨大,用图像金字塔的形式训练一个端到端的深度神经网络变得不可行;

(3). 如果只在测试阶段使用图像金字塔,那么会造成一个问题:由于训练时,网络只是针对于某一个特点的分辨率进行训练,推理时运用图像金字塔,可能会在训练与推理时产生”矛盾”。

(b) 常见的目标检测网络

FPN(特征金字塔)论文详解
利用单个高层特征图进行预测。

例如Faster R-CNN中的RPN层就是利用单个高层特征图进行物体的分类和bounding box的回归。

FPN(特征金字塔)论文详解
© 金字塔型特征层级 ConvNet’s pyramidal feature hierarchy

比如SSD one-stage目标检测模型就是再次利用不同层多尺度的特征图。

但是SSD并没有解决以下问题:

低层特征图语义信息不够和低层特征图的分辨率也不高。

FPN(特征金字塔)论文详解
(d) 特征金字塔 Feature Pyramid Networks

为了解决以上三种结构的不足之处,这篇论文提出了FPN,即使每一层不同尺度的特征图都具有较强的语义信息。

这种网络结构,能够在增加较少计算量的前提下融合低分辨率语义信息较强的特征图和高分辨率语义信息较弱但空间信息丰富的特征图。

其实在这篇论文之前,也有人提到得出一张既具有高分辨率又具有较强语义信息的特征图进行预测,由于该方法只是对最后一层进行predict,导致输出结果有限。但FPN的独特之处在于,它是在以特征金字塔为基础结构上,对每一层级的特征图分别进行预测。

FPN(特征金字塔)论文详解
论文的思想其实影响了后序的很多网络,比较典型的有Yolov3,结构图如下:
FPN(特征金字塔)论文详解

以及Yolov4还进行了更进一步的升级

FPN(特征金字塔)论文详解

3.FPN网络详解

作者的算法大致结构如下Fig3:一个 自底向上的线路,一个 自顶向下的线路, 横向连接(lateral connection)。图中放大的区域就是横向连接,这里11的卷积核的主要作用是减少卷积核的个数,也就是减少了feature map的个数,并不改变feature map的尺寸大小。
FPN(特征金字塔)论文详解
(1). Bottom-up pathway*

前馈Backbone的一部分,每一级往上用step=2的降采样。

输出size相同的网络部分叫一级(stage),选择每一级的最后一层特征图,作为Up-bottom pathway的对应相应层数,经过1 x 1卷积过后element add的参考。

例如,下图是fasterRCNN的网络结构,左列ResNet用每级最后一个Residual Block的输出,记为{C1,C2,C3,C4,C5}。

FPN用2~5级参与预测(因为第一级的语义还是太低了),{C2,C3,C4,C5}表示conv2,conv3,conv4和conv5的输出层(最后一个残差block层)作为FPN的特征,分别对应于输入图片的下采样倍数为{4,8,16,32}。

FPN(特征金字塔)论文详解
(2). Top-down pathway and lateral connections

自顶向下的过程通过上采样(up-sampling)的方式将顶层的小特征图。放大到上一个stage的特征图一样的大小。

上采样的方法是最近邻插值法:

FPN(特征金字塔)论文详解
对于使用最近邻插值法的个人思考:使用最近邻值插值法,可以在上采样的过程中最大程度地保留特征图的语义信息(有利于分类),从而与bottom-up 过程中相应的具有丰富的空间信息(高分辨率,有利于定位)的特征图进行融合,从而得到既有良好的空间信息又有较强烈的语义信息的特征图。

FPN(特征金字塔)论文详解
具体过程为:C5层先经过1 x 1卷积,改变特征图的通道数(文章中设置d=256,与Faster R-CNN中RPN层的维数相同便于分类与回归)。M5通过上采样,再加上(特征图中每一个相同位置元素直接相加)C4经过1 x 1卷积后的特征图,得到M4。这个过程再做两次,分别得到M3,M2。M层特征图再经过3 x 3卷积(减轻最近邻近插值带来的混叠影响,周围的数都相同),得到最终的P2,P3,P4,P5层特征。

另外,和传统的图像金字塔方式一样,所有M层的通道数都设计成一样的,本文都用d=256。

; 应用

作者扩展了很多应用,在目标检测和语义分割上,这里就不详细介绍,从对比结果来看,确实得到了很好的提升,验证了方法的有效性。

总结

作者提出的FPN(Feature Pyramid Network)算法同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。并且预测是在每个融合后的特征层上单独进行的,这和常规的特征融合方式不同。

参考链接: https://zhuanlan.zhihu.com/p/92005927
参考链接: https://blog.csdn.net/WZZ18191171661/article/details/79494534

Original: https://blog.csdn.net/frighting_ing/article/details/121365765
Author: Fighting_1997
Title: FPN(特征金字塔)论文详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/687516/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球