FPN:目标检测的特征金字塔网络

FPN(Feature Pyramid Network)是一种利用卷积网络内在多尺度特性的目标检测方法,通过自顶向下和侧向连接构建特征金字塔,确保每一层特征都包含高级语义信息。这种方法解决了传统图像金字塔计算密集的问题,适用于不同尺度目标的检测,尤其对小目标检测表现出色。FPN结构已被广泛应用到多种视觉任务中,如Faster R-CNN和YOLOv3。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:Sci-Hub | [IEEE 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) - Honolulu, HI (2017.7.21-2017.7.26)] 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) - Feature Pyramid Networks for Object Detection | 10.1109/cvpr.2017.106

目录

0、写在前面

1、动机

2、FPN结构

3、写在后面


0、写在前面

在目标检测时,若要检测具有不同尺度的目标,通常都是用特征金字塔的方法。但是,由于该方法属于计算密集型和内存密集型,所以近期的深度学习目标检测都没有采用。本文作者利用了卷积网络自身固有的多尺度特性以及金字塔层级结构,构造了一种特征金字塔结构,且只增加了一点微小的计算代价。这种结构称作Feature Pyramid Network (FPN),是一种自顶向下带有侧向连接的网络结构。经过作者的实验验证,基于FPN的Faster RCNN达到了SOTA。

FPN同SPP一样,都使用了视觉领域的一个经典结构:图像金字塔。金字塔结构天生对多尺度友好,因此也极大地影响了后续的研究。FPN在经典一阶段目标检测网络YOLOv3中也被广泛使用,并在各类任务中都能看到其身影,也方便集成到各类网络结构中。

下面主要就FPN的结构及其思想进行介绍。

1、动机

标准的图像金字塔如图1(a)所示,在原始图像上,进行不同尺度的缩放,可以得到一系列分辨率的图像,然后分别提取特征,就得到了特征金字塔。这种结构在手工设计特征的时代被大量使用,但现在手工特征已被ConvNets所替代。ConvNets通过逐级提取高级语义特征,然后使用最后的卷积层输出用于后续任务,如图1(b)所示。在ConvNets时代,同样需要图像金字塔来提升性能,比如各种比赛中使用的多尺度训练和多尺度测试。但这种用法比较占用计算资源,且推理时间较长,不适合实时任务。

但图像金字塔并不是唯一的金字塔结构,还有一种是特征金字塔结构。比如,在ConvNets的结构中,通常包含多个layers,每个layer进行一次下采样,这样一来,对于整个ConvNets结构,其本身就是一个金字塔结构。SSD是第一次尝试利用这种金字塔结构的网络,其方式如图1(c)所示。但是SSD这种方式有个弊端,就是低层级layer输出的feature maps中包含的语义信息不够丰富,所以,通常都会从较高层级的layer(如VGG的conv4-3)开始使用,并增加几个新的layers。因此,这就错失了利用低层级高分辨率空间信息的机会,而这些空间信息又对小目标检测非常有用。

基于以上考虑,本文提出了FPN,利用ConvNets本身的金字塔结构, 并使得从低到高每个层级都产生包含强语义的feature maps,结构如图1(d)所示。

类似的方法也有研究,如图2上半部分的结构,但是其目标是构造一个单一的输出结果,FPN与之不同之处仅仅在于对每一层都独立输出一个结果。如图2下半部分。

2、FPN结构

关于FPN的结构,已经在图1(d)和图2下半部分中有所展示,其结构无非就是对ConvNets的每一层feature maps进行自顶向下的特征融合,从而使得每层输出都具有了高级语义信息。至于不同分辨率的layer如何转化,以及同分辨率的layer如何融合,可以参考图3:

从图3可以看出:低分辨率的feature maps通过2倍上采样得到与低一级feature maps相同的分辨率,然后对低级feature maps使用1*1卷积进行通道降维,最后将两者相加(addition),就完成了该层的特征融合。

总体而言,FPN包含了一个自底向上的路径、一个自顶向下的路径,还有一些侧向(同级)连接:

  • 自底向上的路径:就是backbone中ConvNets的forward过程,该过程通常包含了不同分辨率的层级,如VGGs、ResNets,对于每个层级都可以定义为一个金字塔层级;
  • 自顶向下的路径:这一条路径也就是将低分辨率-高语义信息的高级feature maps一步步上采样到高分辨率的过程,同时保持了其高语义信息;
  • 侧向连接:也即将backbone中的layer和自定向下路径中的同分辨率的layer连接在一起,连接方式如图3所示。

我们可以体会下这个过程:

一张图片作为输入,其经过backbone中的卷积层,一层一层进行特征抽象,得到的feature maps分辨率越来越低,但其中的语义信息越来越抽象越来越高级;

然后,我们从分辨率最低、但语义信息抽象的顶层feature maps开始,先进行上采样(注意:单纯的上采样,虽然使其分辨率变大,但空间信息并没有变多),然后和backbone中同分辨率的feature map相融合,那么得到的feature maps一定是在保留了高级语义信息的同时,也在空间信息上更加丰富了;

就这样,经过一层一层的上采样+addition融合,我们就可以得到多层的feature maps输出,且每一层都具有高级语义信息;

那么,对每一层都有了高级语义信息,又有什么用呢?答案很显而易见,就是用于检测具有不同尺度的目标:最上层分辨率最低,每个特征在原图的感受野最大,所以用于检测大目标;中间层用于检测中等目标,最下层分辨率最高,相应的其感受野也最小,因此适合检测小目标

PS:其实,YOLOv3就是用的这种方式。此外,这个结构是不是很像Encoder-Decoder结构?就像图2的上半部分那样,在语义分割的网络设计中,经常看见其影子。可见,各种视觉任务中的方法很多都是异曲同工,都可以互相借鉴,这也提示我们多了解各种任务中的方法,从而在需要的时候,能够想到一些额外的解决方案。

3、写在后面

FPN结构是不同于图像金字塔的另一种金字塔结构,其利用了ConvNets本身的特点,在特征的层面上建立了金字塔,并通过上采样+addition的方式将每一层都赋予了高级语义特征,从而在每个层级都可以输出预测结果。这种方式,对不同尺度的对象都具有一定的检测效果,从而整体提升了目标检测的性能。此外,这种结构已经广泛的应用到了各种任务中,如语义分割等。学习并利用好FPN的特性,必定能够对我们的工作带来一定帮助。

AppMgr Pro III(App 2 SD) 支持应用程序2 sd更多的三星/ ASUS / HTC设备,需要升级到最新的ROM,联系设备制造有关如何升级或何时将发布app 2 sd启用ROM。 AppMgr(也称为App 2 SD)是一个全新的设计应用程序,提供以下组件: ★移动应用程序:将应用程序移动到内部或外部存储,以获得更多可用的应用程序存储 ★隐藏应用程序:隐藏系统(内置)应用程序抽屉中的应用程序 ★冻结应用程序:冻结应用程序,以便它们不会使用任何CPU或内存资源 ★应用程序管理器:管理批量卸载,移动应用程序或与朋友共享应用程序的应用 需要root卸载程序吗?从Play下载我们的新App Usage应用程序! *超过30,000,000次下载!* ★最新的UI风格,主题 ★批量卸载应用程序 ★批量移动应用程序到外部存储 ★通知安装可移动应用程序 ★从应用程序抽屉隐藏应用程序 ★冻结应用程序到停止状态 ★1 - 点击清除所有缓存 ★批清除应用程序缓存或数据 ★在Google Play上批量查看应用程序 ★导出应用程序列表 ★从导出的应用程序列表中安装应用程序 ★快速卸载或通过拖放操作移动应用程序 ★按名称,大小或安装时间排序应用程序 ★分享与朋友定制的应用程序列表 ★支持主屏幕小部件 ★支持Android 2/3/4/5 ★支持“Move2SD Enabler” ★可定制的通知声音,振动和光 移动应用程序: 您的应用程序存储空间不足吗?如果它支持移动到SD卡,你是否讨厌检查每个应用程序?您想要一个能自动为您执行此操作的应用程序,并且可以在移动应用程序时通知您吗?此组件通过设备的“设置”简化了应用在设备外部或内部存储上的移动。有了这个,您将可以更好地控制不断扩展的应用程序集合。这对于有内存管理问题的人来说至关重要。 隐藏应用 您不关心运营商添加到Android的所有应用吗?那么,现在你可以摆脱它们!此组件使您可以从应用程序抽屉中隐藏系统(内置)应用程序。 冻结应用程序 您可以冻结应用程序,以便它们不会使用任何CPU或内存资源并消耗零电池。您可以冻结要保留在设备中的应用程序,但不希望它们运行或卸载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AICVHub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值