FPN模型结构精讲

1. 四种利用特征的形式

图1

(a)图像金字塔:将图像做成不同scale,不同scale的图像生成对应的不同scale的特征,此为手工设计的阶段。优点:对每一种尺度的图像进行特征提取,能产生多尺度的特征表示,所有等级的特征图都具有较强的语义信息,甚至包括一些高分辨率的特征图。缺点:推理时间大幅度增加;由于内存占用巨大,不能训练一个端到端的深度神经网络;在训练时,网络只是针对于某一个特点的分辨率进行训练,可能与推理时产生“矛盾”,但有些算法会在测试时候采用图像金字塔。

(b)利用单个高层特征图进行预测:像SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征。例如RPN网络利用单个高层特征图进行物体的分类和bounding box的回归。显著特点是速度快,卷积网络可表示高级语义特征,尺度变化的鲁棒性也很强,取代了手工设计特征。

(c)多尺度特征融合:利用卷积神经网络来设计的,卷积网络本身就是一个多层的金字塔型,直接利用卷积网络中间层的特征图,这样也就不会有多余的计算消耗,但是这样的设计不适用于目标识别,网络前几层的特征图只包含低级别特征。像SSD(Single Shot Detector)采用这种方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。作者认为SSD算法中没有用到足够低层的特征,而在作者看来足够低层的特征对于检测小物体是很有帮助的。

(d)为了解决以上三种结构的不足之处,本文提出了FPN(Feature Pyramid Network)。FPN 是一个全卷积网络,可以输入任意尺寸大小的图片,基础网(backbone)使用的是ResNet。FPN使每一层不同尺度的特征图都具有较强的语义信息,其顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。能够在增加较少计算量的前提下融合低分辨率语义信息较强的特征图和高分辨率语义信息较弱但空间信息丰富的特征图。FPN的独特之处在于,它是在以特征金字塔为基础结构上,对每一层级的特征图分别进行预测。

2. FPN针对的问题

        在以往的faster rcnn进行目标检测时,无论是RPN还是Fast rcnn,ROI都作用于最后一层,对于显著物体的检测当然就没有什么问题,然是小目标检测一直是一个问题。现在的很多网络都使用了利用单个高层特征(比如说Faster R-CNN利用下采样四倍的卷积层——Conv4,进行后续的物体的分类和bounding box的回归),但是这样做有一个明显的缺陷,即小物体本身具有的像素信息较少,在下采样的过程中极易被丢失,为了处理这种物体大小差异十分明显的检测问题,经典的方法是利用图像金字塔的方式进行多尺度变化增强,但这样会带来极大的计算量。

        而FPN主要解决的问题是目标检测在处理多尺度变化问题时的不足,提出了特征金字塔的网络结构,能在增加极小的计算量的情况下,处理好物体检测中的多尺度变化问题。

3. FPN结构

图2

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

一个自底向上的线路,一个自顶向下的线路,横向连接(lateral connection)。图中放大的区域就是横向连接。

4. 自下而上的路径(Bottom-up pathway

这指的是基础网络CNN的前向传播,为每一个阶段定义一个金字塔级别,FPN利用每一次pooling前(特征图长宽缩小2倍)的特征图构造特征金字塔(通过卷积计算), 因为每个阶段的最深层应该具有最强的特征。

前馈Backbone的一部分,每一级往上用step=2的降采样。输出size相同的网络部分叫一级(stage),选择每一级的最后一层特征图作为Up-bottom pathway的对应相应层数,经过1 x 1卷积过后element add的参考。

图3

如图3是Faster R-CNN的网络结构,左列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}。

对于ResNets,作者使用了每个阶段的最后一个残差结构的特征激活输出。将这些残差模块输出表示为{C2, C3, C4, C5},对应于conv2,conv3,conv4和conv5的输出,并且注意它们相对于输入图像具有{4, 8, 16, 32}像素的步长。

5. 横向连接(lateral connections

结合低层高分辨率的特征,把语义更强的高层特征图进行上取样,然后把该特征横向连接(lateral connections )至前一层特征,因此高层特征得到加强。值得注意的是,横向连接的两层特征在空间尺寸上要相同。这样做应该主要是为了利用底层的定位细节信息。

如图4中紫色尖头为连接细节。把高层特征做2倍上采样(反卷积),然后将其和对应的前一层特征结合(首先对前一层经过1 * 1的卷积核,改变channels,使得和后一层的channels相同,这里1*1的卷积核的主要作用是减少卷积核的个数,也就是减少了feature map的个数,并不改变feature map的尺寸大小),使用像素间的加法来结合,重复迭代该过程,生成最精细的特征图。

图4

6. 自下而上的路径(Top-down pathway

自顶向下的过程通过上采样(up-sampling)的方式将顶层的小特征图放大到上一个stage的特征图一样的大小。上采样方法采用的是最近邻值插值法:其可以在上采样的过程中最大程度地保留特征图的语义信息(有利于分类),从而与bottom-up 过程中相应的具有丰富的空间信息(高分辨率,有利于定位)的特征图进行融合,从而得到既有良好的空间信息又有较强烈的语义信息的特征图。

图5

最上层的特征图通过1x1的卷积(压缩通道)后,产生的特征图作为自上而下路径(Top-down)的起点,然后逐步上采样,每次使长宽扩大两倍,上采样后的特征图与(自下而上路径中对应大小相同)特征图在同样进行1x1的卷积(压缩通道)后相结合(对应元素相加)。在自上而下路径中的特征图都生成完后,然后我们在每个融合图上进行3 * 3的卷积,来生成最后的特征图,这是为了减少上采样的其他影响。最后的特征图为{P2、P3、P4、P5},与{C2、C3、C4、C5}相匹配。

自上而下的路径以及横向连接中产生的所有特征图的通道数固定为256,并且这些额外的卷积层中没有非线性的激活函数,因为实验证明这样的影响也非常小。

7. 总结

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

(2)贡献

·可用于检测物体的多尺度问题:

利用了深度卷积网络固有的多尺度金字塔等级构建特征金字塔

·使用较少的额外花费:

解决了大量计算和内存消耗问题

·提高了物体检测的准确率:

小目标的检测依靠低层高分辨率,使用高层的特征图来加强低层特征图的语义信息,以增加小物体检测精度。这种融合使得不同特征层检测尺度不一样的物体。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPN (Feature Pyramid Network) 是一种用于目标检测和语义分割任务的神经网络架构。它由 Tsung-Yi Lin 等人在论文 "Feature Pyramid Networks for Object Detection" 中提出。 FPN 的主要目标是解决目标检测任务中的多尺度问题。传统的目标检测方法通常使用单一尺度的特征图进行预测,这会导致小目标难以被准确检测到,而大目标则可能丢失细节信息。FPN 使用了一种金字塔式的特征提取方法,将不同尺度的特征图进行融合,以便在不同尺度上进行目标检测FPN 的核心思想是通过建立自顶向下和自底向上的路径来构建特征金字塔。自底向上的路径从底层的高分辨率特征图开始,通过下采样操作逐渐降低分辨率,生成一系列特征图。自顶向下的路径则通过上采样操作逐渐增加分辨率,将高层语义信息传递到低层特征图中。最后,不同层级的特征图通过横向连接进行融合,形成一个多尺度的特征金字塔。 在目标检测任务中,FPN 可以用作特征提取网络的一部分,提供多尺度的特征图用于目标检测器的预测。它可以帮助检测器更好地适应不同尺度的目标,并提高检测精度。 在语义分割任务中,FPN 可以用于生成密集的像素级预测。通过将特征金字塔的不同层级特征图进行上采样和融合,可以得到高分辨率的语义分割结果。 总结来说,FPN 是一种有效解决多尺度问题的神经网络架构,可用于目标检测和语义分割任务。通过构建特征金字塔,提供多尺度的特征图,从而提高模型在不同尺度上的表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值