目标检测之FPN、AugFPN、NAS-FPN

article/2025/9/22 7:07:42

针对小目标的检测有提升的文章。 未完待续~

Feature Pyramid Networks for Object Detection

FPN是一种多尺度的目标检测算法。大多数目标检测算法都是采用顶层特征来做预测的,但是我们知道:低层的特征语义信息较少,但是位置信息丰富;高层的特征语义信息丰富,位置信息粗略。虽然也有些多尺度特征融合的方法,但是一般采用融合后的特征做预测,但是FPN是在不同特征层独立进行预测的。

4种利用特征的形式:
在这里插入图片描述
(a)图像金字塔:将图像做成不同的scale,不同scale的图像生成对应的不同scale的特征。缺点在于时间成本高。有些算法会在测试时候采用图像金字塔。
(b)像SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征。
(c)像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的
==(d)==本文作者是采用这种方式,顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。
在这里插入图片描述
如图一个带有skip connection的网络结构在预测的时候是在finest level(自顶向下的最后一层)进行的简单讲就是经过多次上采样并融合特征到最后一步,拿最后一步生成的特征做预测

下面一个网络结构和上面的类似,区别在于预测是在每一层中独立进行的

作者的主网络采用ResNet。
算法结构分为三部分:

  1. 自底向上的线路
  2. 自顶向下的线路
  3. 横向连接(lateral connection)
    图中放大的区域就是横向连接,这里1*1的卷积核的主要作用是减少卷积核的个数,也就是减少了feature map的个数,并不改变feature map的尺寸大小。
    在这里插入图片描述
    自底向上:网络的前向过程。在前向过程中,feature map的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,作者将不改变feature map大小的层归为一个stage,因此每次抽取的特征都是每个stage的最后一个层输出,这样就能构成特征金字塔。

自顶向下:采用上采样(upsampling)进行,而横向连接则是将上采样的结果和自底向上生成的相同大小的feature map进行融合(merge)。在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积目的是消除上采样的混叠效应(aliasing effect)。并假设生成的feature map结果是P2,P3,P4,P5,和原来自底向上的卷积结果C2,C3,C4,C5一一对应。

作者一方面将FPN放在RPN网络中用于生成proposal,原来的RPN网络是以主网络的某个卷积层输出的feature map作为输入,简单讲就是只用这一个尺度的feature map。但是现在要将FPN嵌在RPN网络中,生成不同尺度特征并融合作为RPN网络的输入。在每一个scale层,都定义了不同大小的anchor,对于P2,P3,P4,P5,P6这些层,定义anchor的大小为322,642,1282,2562,512^2,另外每个scale层都有3个长宽对比度:1:2,1:1,2:1。所以整个特征金字塔有15种anchor。

正负样本的界定和Faster RCNN差不多:如果某个anchor和一个给定的ground truth有最高的IOU或者和任意一个Ground truth的IOU都大于0.7,则是正样本。如果一个anchor和任意一个ground truth的IOU都小于0.3,则为负样本

看看加入FPN的RPN网络的有效性,如下表Table1。网络这些结果都是基于ResNet-50。评价标准采用AR,AR表示Average Recall,AR右上角的100表示每张图像有100个anchor,AR的右下角s,m,l表示COCO数据集中object的大小分别是小,中,大。feature列的大括号{}表示每层独立预测。
在这里插入图片描述

  1. 从(a)(b)(c)的对比可以看出FRN的作用确实很明显。另外(a)和(b)的对比可以看出高层特征并非比低一层的特征有效。
  2. (d)表示只有横向连接,而没有自顶向下的过程,也就是仅仅对自底向上(bottom-up)的每一层结果做一个11的横向连接和33的卷积得到最终的结果,有点像Fig1的(b)。从feature列可以看出预测还是分层独立的。作者推测(d)的结果并不好的原因在于在自底向上的不同层之间的semantic gaps比较大(只做横向连接不好的原因)。
  3. (e)表示只有自顶向下的过程,但是没有横向连接,即向下过程没有融合原来的特征。这样效果也不好的原因在于目标的location特征在经过多次降采样和上采样过程后变得更加不准确
  4. (f)采用finest level层做预测(参考Fig2的上面那个结构),即经过多次特征上采样和融合到最后一步生成的特征用于预测,主要是证明金字塔分层独立预测的表达能力。显然finest level的效果不如FPN好,原因在于PRN网络是一个窗口大小固定的滑动窗口检测器,因此在金字塔的不同层滑动可以增加其对尺度变化的鲁棒性。另外(f)有更多的anchor,说明增加anchor的数量并不能有效提高准确率

另一方面将FPN用于Fast R-CNN的检测部分。除了(a)以外,分类层和卷积层之前添加了2个1024维的全连接层。细节地方可以等代码出来后再研究。
实验结果如下表Table2,这里是测试Fast R-CNN的检测效果,所以proposal是固定的(采用Table1(c)的做法)。与Table1的比较类似,

  • (a)(b)(c)的对比证明在基于区域的目标卷积问题中,特征金字塔比单尺度特征更有效
  • (c)(f)的差距很小,作者认为原因是ROI pooling对于region的尺度并不敏感。因此并不能一概认为(f)这种特征融合的方式不好

博主个人认为要针对具体问题来看待,像上面在RPN网络中,可能(f)这种方式不大好,但是在Fast RCNN中就没那么明显。
在这里插入图片描述
在这里插入图片描述
同理,将FPN用于Faster RCNN的实验结果如下表Table3。
在这里插入图片描述
Table4是和近几年在COCO比赛上排名靠前的算法的对比。注意到算法在小物体检测上的提升是比较明显的
在这里插入图片描述
另外作者强调这些实验并没有采用其他的提升方法(比如增加数据集,迭代回归,hard negative mining),因此能达到这样的结果实属不易。

总结

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

AugFPN: Improving Multi-scale Feature Learning for Object Detection

论文地址
顾名思义,AugFPN就是在经典FPN结构的基础上做了改进。FPN网络的最大贡献就是把多尺度特征金字塔网络引入到了Faster RCNN等检测网络中,从而有效的提升了网络的检测性能

Abstract

经典的FPN网络通过利用多尺度特征学习大大提升了检测网络的检测性能,然而这种设计本身背后就存在一些缺陷,使得多尺度的特征不能被网络完全的利用起来
本文通过提出一种新的特征金字塔网络结构AugFPN,可以有效的克服这些缺陷。

AugFPN的创新之处在于三个组成成分,分别是:

  • Consistent Supervision(一致性监督):缩小了特征融合前不同尺度特征之间的语义差距
  • Residual Feature Augumentation (残差特征增强):通过残差特征增强提取比率不变的上下文信息,减少特征映射在最高金字塔层次的信息丢失
  • Soft ROI Selection(软RoI选择):自适应地学习更好的RoI特征

至于这三个模块是如何克服FPN的缺陷的,下文会有详细的分析。最后就是使用了AugFPN,无论是在大的backbone,还是小的backbone,是one-stage检测,还是two-stage检测网络上,都在coco数据集上取得了明显的涨点。

FPN结构存在的缺陷

在这里插入图片描述
FPN从结构上可以划分为三个部分,即分别是:

  1. before feature fusion
  2. top- down feature fusion
  3. after feature fusion

FPN的三个缺陷也正好对应着这三个阶段:
1. 特征混合之前
我们知道,FPN在特征混合之前,backbone的不同stage学习到的特征需要先经过11卷积进行一个降维,降到通道数相同才能进行特征相加。然而不同stage学习到的特征感受野是不一样的,包含的语义信息也不同。把两个语义信息差距较大的特征直接相加,势必会减弱多尺度特征的表达能力
简言之:特征求和前不同层次特征之间的语义差异
2. 自顶向下的特征融合
自顶向下的特征融合过程就是将顶层的高级特征和底层的低级特征相融合的过程,这样虽然底层的特征得到了来自顶层的高级特征的加强,然而由于**顶层的特征经过1
1降维,势必会造成信息损失**。
简言之:金字塔顶层层次特征的信息丢失
3. 特征混合之后
我们知道,FPN中每个候选区域(ROI)的特征都是根据proposal的尺度来决定相应的特征图从哪一层选择,然而那些忽略的层也是包含着丰富信息的,它们对最终的分类和回归结果也有着影响。直接忽略了其它层的特征势必会影响到最终的检测结果。
简言之:RoIs的启发式分配策略

AugFPN对应结构

针对FPN中存在的这三个缺陷,这篇论文依次提出三个结构用于解决这三个缺陷。
在这里插入图片描述

  • Consistent Supervision
    作者对混合之后的特征图M2-M5做了一个监督。具体做法是,对RPN网络得到的每一个候选区域都分别映射到M2~M5上得到相应的feature map,然后直接对这些feature map做分类和回归,可以得到一个损失函数。将这一损失和网络本身的损失做一个加权求和。由于在测试阶段,这个分支是不参与计算的,所以Consistent Supervision对模型最终的参数和计算量没有影响
  • Residual Feature Augmentation
    由于FPN特征融合之前需要先进行1x1的特征降维,这会导致M5的信息损失。为了避免这种信息损失,作者提出了一种很巧妙的办法。因为C5的信息是没有损失的,如果能够将C5的信息融合到M5上,就可以有效减少这种信息损失了。为此作者提出了ASF的结构,如Figure 3(a)所示。首先按照比例不变,对C5进行自适应池化操作,然后对每个尺度的特征图进行1*1降维,然后对降维后的特征进行上采样,对上采样之后的特征按照学习到的权重进行相加,把相加完之后的特征称之为M6,再将M6和M5进行相加作为最终的没有损失的M5。
    在这里插入图片描述
  • Soft RoI Selection
    FPN中ROI对应的特征是根据ROI的尺度选择对应提取的层,一般小的ROI对应低级特征,大的ROI对应高级特征(我的理解,高级感受野更大,负责检测大的目标)。然而事实上,这并不是一种最优的办法。因为有时候两个相同大小的ROI可能会被分到不同层的特征,即使某个ROI被分到了某一层,但其实其它层的特征也包含着描述这个ROI的信息。因此,论文提出了一种Soft RoI Selection的办法。具体做法是,对于任意一个ROI,我们都会提出它在不同层的特征图上所对应的特征,然后利用网络本身学习权重参数,将这些不同层上的特征进行求和作为这个ROI最终的特征,这一结构和Residual Feature Augmentation中使用的自适应求和操作是一样的。
总结

本文先分析了FPN的三点缺陷,然后针对这三点缺陷依次提出三种解决策略。

NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection

Summary

目前最先进的卷积结构用于目标检测是手工设计的。
在这里,我们的目标是一个更好的学习可扩展特征金字塔结构,用于目标检测。在一个覆盖所有交叉尺度连接的可扩展搜索空间中,采用神经网络结构搜索,发现了一种新的特征金字塔结构。架构名为NAS-FPN,由自顶向下和自下而上的连接组合而成,可以跨范围地融合特性

为了发现一个更好的FPN架构,作者充分利用了神经网络搜索技术[Neural architecture search with rein- forcement learning.],使用强化学习训练了一个控制器来在给定的搜索空间中选择最好的模型结构。控制器使用在搜索空间内子模型的准确率来作为更新参数的反馈信号(reward signal)。因此,通过这样的试错,控制器会学到越来越好的结构,搜索空间在架构成功搜索的过程中起到了很重要的作用。对于FPN的可拓展性,在搜索的过程中,作者强制让FPN重复N次然后concatenation到一起形成一个大的架构。

一句话解释:FPN就是用来特征融合的层,之前都是手工设计,现在尝试神经网络搜索设计!其实就是优化FPN。
在这里插入图片描述
NAS-FPN使用强化学习的方式对FPN网络自动搜索,在coco数据集上得到了最好的FPN结果。可以理解为连连看,然后连出一个最好的。如下图:a图为原始的FPN, 好看整齐。然后在一步一步搜索的reward下,结构组件变化。由b—>f变为最终的结果。虽然不好看。


http://chatgpt.dhexx.cn/article/AYSojwv0.shtml

相关文章

FPN网络和RPN网络介绍

原文链接 神经网络特征提取过程中,一般底层特征具有良好的空间信息,高层的具有良好的语义信息。原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层…

Neck网络 FPN + PAN 改进解读

呃 这篇文章的目的在于补充一些知识以便于理解Neck部分的网络 特征提取网络 与 目标检测之间的关系 一个特征提取网络,假设有1000层,开始的特征图包含的细节信息就很多,而随着网络的加深,特征提取网络经过多次被卷积和池化操作&…

FPN论文笔记

FPN论文笔记 现在看FPN和Inception并行结构融合有点像,FPN上采样同时横向连接相加,Inception是堆叠几个感受野不同的feature,融合的思想有点相似。 FPN是什么? Feature Pyramid Networks,用于特征抽取(feature extr…

FPN算法一览

FPN应该是2017年CV顶会的优秀论文,基于目标检测做的研究,在小物体检测方面较为具有吸引力。 1.FPN 源论文:feature pyramid networks for object detection 参考代码:FPN 同时利用低层特征高分辨率和高层特征的高语义信息&…

目标检测中的各种FPN

早期的目标检测算法,无论是一步式的,还是两步式的,通常都是在Backbone的最后一个stage(特征图分辨率相同的所有卷积层归类为一个stage)最后一层的特征图,直接外接检测头做目标检测。此种目标检测算法&#…

FPN(在FasterRCNN里面是如何运用的)

FPN(Feature Pyramid Networks) FPN解决了什么问题? 答:FPN的提出是为了实现更好的feature maps融合,一般的网络都是直接使用最后一层的feature maps,虽然最后一层的feature maps 语义强,但是位置和分辨率都比较低&…

深度学习之FPN+PAN

一、FPN 检测不同尺度的物体具有挑战性,尤其是对于小物体,我们可以使用不同尺度的同一图像的金字塔来检测物体(下左图)但是,处理多尺度图像非常耗时并且内存需求太高而无法同时进行端到端训练,因此创建了一…

FPN全解-最全最详细

这篇论文是CVPR2017年的文章,采用特征金字塔做目标检测,有许多亮点,特来分享。 论文:feature pyramid networks for object detection 论文链接:https://arxiv.org/abs/1612.03144 论文概述: 作者提出的…

FPN和PAN的内容及区别

FPN和PAN都是用于解决在目标检测中特征金字塔网络(FPN)在多尺度检测任务上的不足的方法。下面分别详细介绍一下它们的原理和区别。 FPN FPN全称Feature Pyramid Network,是由FAIR在2017年提出的一种处理多尺度问题的方法。FPN的主要思路是通过构建金字塔式的特征图…

深度学习之FPN和PAN

注:借鉴整理,仅供自学,侵删 FPN是自顶向下,将高层的强语义特征传递下来,对整个金字塔进行增强,不过只增强了语义信息,对定位信息没有传递。PAN就是针对这一点,在FPN的后面添加一个自…

FPN网络介绍

目录 前言一.FPN网络二.网络创新点 前言 上一篇博文我们介绍了FCN结构,这篇博文我们来简答的介绍下FPN网络,FPN (Feature Pyramid Network) 是一种用于图像语义分割、物体检测等任务的神经网络结构。是针对目标检测提出的结构。 一.FPN网络 先来看下FP…

FPN+PAN结构,SPP结构

一、FPNPAN FPN 高维度向低维度传递语义信息(大目标更明确) PAN 低维度向高维度再传递一次语义信息(小目标也更明确) 二、SPP 深层的feature map携带有更强的语义特征,较弱的定位信息。而浅层的feature map携带有…

FPN+PAN结构学习

yolo4的neck结构采用该模式,我们将Neck部分用立体图画出来,更直观的看下两部分之间是如何通过FPN结构融合的。 如图所示,FPN是自顶向下的,将高层特征通过上采样和低层特征做融合得到进行预测的特征图。Neck部分的立体图像&#xf…

FPN网络理解

1.什么是FPN fpn设计动机:1.高层特征向低层特征融合,增加低层特征表达能力,提升性能 2.不同尺度的目标可以分配到不同层预测,达到分而治之。 fpn设计细节:1*1的卷积是让最左侧的三个特征图的通道保持一致,从…

FPN详述

简介 为了使用更多的语义信息,目标检测模型一般在卷积神经网络最后一层的特征图上进行后续操作(随着不断地下采样,语义信息更丰富,空间信息更稀少),而这一层对应的下采样率一般是比较大的,如16…

FPN与Unet的异同

来源:目标检测的FPN和Unet有差别吗? - 知乎 (zhihu.com) 作者:CW不要無聊的風格 链接:https://www.zhihu.com/question/351279839/answer/1598104355 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业…

FPN以及其他结构FPN——Bi-FPN重点(仅供自己学习使用)

FPN FPN特征金字塔结构。 由于目标检测中对小物体检测很困难,因为卷积过程中,大物体的像素点多,小物体的像素点少,随着卷积的深入,大物体的特征容易被保留,小物体的特征越往后越容易被忽略。所以产生了FPN结…

FPN(Feature Pyramid Networks)详解

图像金字塔结构 图a 图a是在传统的图像处理当中是比较常见的一个方法。针对我们要检测不同尺度的目标时,会将图片缩放成不同的尺度,然后将每个尺度的图片依次通过我们的算法进行预测。 优点是它创建的多尺度特征的所有层次都包含很强的语义特征&#xf…

FPN解读

前两篇博客中都说到了FPN这个神器,今天就花了点时间看了下这篇论文,喜欢这个很赞很干净的结构。 Motivation 凡是都要从motivation说起,哈哈哈。rcnn系列在单个scale的feature map做检测(b),尽管conv已经对scale有些鲁棒了&#…

目标检测之FPN网络详解

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达特征图金字塔网络FPN(Feature Pyramid Networks)是2017年提出的一种网络,FPN主要解决的是物体检测中的多尺度问题,通过简单…