FPN设计新范式 | You Should Look At New Objects

作者 | 汽车人

编辑 | Autobot

目前,公众号正向大家广泛征稿中,欢迎童鞋们投稿,我们将有一定的稿费支持哦,详细信息请点击: 汽车人,快来投稿了!

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

3d74e76c18d2adddad4aab7c10244f8c.png

特征金字塔网络(FPN)是目标检测器的关键组件之一。然而,长期以来一直困扰研究人员的难题是,引入 FPN 后,通常会抑制大物体的检测性能。为此,本文首先重新审视了检测框架中的FPN,并从优化的角度揭示了FPN成功的本质。然后指出,大物体的性能下降是由于集成 FPN 后出现了不正确的反向传播路径。它使得骨干网的每一层都只能查看一定尺度范围内的物体。

基于这些分析,提出了两种可行的策略,以使骨干的每个级别都能够查看基于 FPN 的检测框架中的所有对象。具体来说,一种是引入辅助目标函数,使每个骨干层在训练时直接接收到各种尺度物体的反向传播信号。另一种是以更合理的方式构建特征金字塔,以避免不合理的反向传播路径。

在 COCO 基准上进行的大量实验验证了分析的合理性和我们方法的有效性。证明本文方法在各种检测框架上实现了可靠的改进(超过 2%):one-stage、two-stage、anchor-based、anchor-free 和 transformer-based的检测器。

1. 回顾FPN

1.1 Backbone网络

在目标检测中,使用Backbone网络从输入图像I中提取基本特征C。为了表述方便,假设采用的Backbone网络为ResNet。它通常由一个基本特征提取器和大量残差块组成,其中残差块可以根据输出特征图的分辨率分为4个阶段。具体而言,C 计算如下:

b0077f83bc0fe9d41f07c3d83c0a1e43.png

其中 C 由 组成, 由

402 Payment Required

1.2  FPN-free 检测框架

对于 FPN-free 检测器,网络通常利用 来执行目标的分类和回归,如下所示:

6847c4ef8a68ff790378d2b9daf13c68.png

其中引入了 以统一 和输出结果之间的各种操作,例如区域提议网络。和分别是物体的预测类别信息和位置信息。 和 分别是一个 1×1 的卷积层。在训练期间,分类和回归损失计算如下:

598be4d9bbeae84ac58d64fbfe886cea.png

其中采用的目标函数 和 取决于所使用的检测框架。 和 分别是真实分类和回归信息。λ 是用于平衡分类和回归损失的超参数。

1.3  FPN-based 检测框架

对于 FPN-based 的检测器,首先使用 C 构建特征金字塔,如下所示:

7fe902debcc2a868bec2198f9847dcad.png

其中 是构建的特征金字塔。表示上采样,比例因子为2。分别为1×1卷积层实现的横向连接,用于改变C。的通道数, 2≤l≤5 是一个线性函数,通常由一个3×3的卷积层实现。不失一般性,等式可以重写如下:

19bd70de04a08a00f3aee3bba225c8ac.png

其中 是多项式展开后对应级别的最终权重。然后,网络使用 P 预测分配给每个金字塔 level-l 的对象的分类和回归信息如下:

e977aefe90057974b5c762efe793a260.png

目标分配规则是使低分辨率金字塔特征(例如P5)负责预测大目标,而高分辨率金字塔特征(例如P2)用于预测小目标。在网络优化期间,每个金字塔 level-l 的损失计算如下:

07c8411c42c672bdc803dd66768bab11.png

1.4 分析 FPN

31fd55e61700cf438be54b78ff05657c.png

从前面可以观察到,引入 FPN 可以改变目标函数和骨干网络之间的反向传播路径。图 2 显示了 FPN-free 和 FPN-based 的检测框架之间的详细差异。在 FPN-free 检测管道中,只有主干特征 C5 直接受目标函数的监督。由于深度神经网络存在梯度消失问题,主干网络的浅层将难以通过反向传播得到有效监督。

而在 FPN-based 的检测框架中,可以观察到所有主干特征都直接在目标函数的监督下。由于该策略避免了浅层的梯度消失问题,因此骨干网络的每一层都可以接受更多的监督来训练自己的参数。作者认为,从优化的角度来看,这是 FPN-based 的检测器优于 FPN-free 检测器的关键原因。

3021751a7ac247dec8d575ed73aa3eba.png

为了进一步证明上述原理进行了实证研究,并在图 3 中展示了实验结果。FPN-Aux 和 DC5-Aux 表示在骨干网络的浅层引入辅助损失。具体来说,给定 C 首先有

b81513e03c208e0780cde6ac0b554cea.png

对于两阶段检测器,为了避免重复计算proposal,将利用Eq.(2)或Eq.(6)中计算的proposals来提取ROI。那么,辅助损失可以得到如下:

619818039b1489a84159dc3ba0d34147.png

而检测框架的最终损失是辅助损失和原始损失的总和。由于辅助损失可用于直接监督骨干网络浅层的学习,如果假设正确,从优化的角度来看,引入辅助损失应该具有与集成 FPN 类似的功能。

在图 3 中,观察到辅助损失可以提高 FPN-free 检测器的检测性能(从 39.0% 到 39.6%),并获得与 FPN-based 的检测器相当的 AP 结果(39.6% 对 39.5%)。然而,辅助损失的引入对 FPN-based 的检测器似乎没有用(从 39.5% 到 39.5%)。这一结果验证了假设,即从优化的角度来看,FPN 成功的本质是缩短了目标损失与骨干网络浅层之间的反向传播距离。

现在的问题是,为什么引入 FPN 会抑制大物体的检测性能。如图 2 所示, 是 的线性组合,因此, 可以直接监督所有主干阶段的学习。同理,、、分别具有直接约束、、的能力。

但是,如上所述, 仅用于使相应的主干层级聚焦于小目标。因此,学习到的特征 仅具有通过反向传播很好地检测小目标的能力。同时,骨干网还需要利用式(1)计算以为输入的。显然, 从 中提取较大目标的丰富语义特征是不够的。

更糟糕的是,在利用 和 计算 和 时,不利影响会进一步累积。因此, 所携带的语义信息对于预测大目标不知何故无效。这也是为什么在引入 FPN 后总有一个意想不到的现象,即整体检测性能的提升是建立在 的增加和 的降低之上的。

图 3 中的实证研究也验证了假设。可以观察到,在将辅助损失应用于 FPN-based 的检测框架后, 之间的性能改进往往与带有辅助损失的 FPN-free 检测器一致。

结果表明,由于辅助损失可以帮助主干的浅层学习特征来检测各种尺度的物体, 不再受到仅仅将 FPN 集成到检测框架中而无法预测大尺度物体的特征。换言之,中大尺度物体有效语义信息的缺乏是下降的关键原因。问题源于 , 1 ≤ i ≤ 3 在训练期间无法查看各种尺度的对象。

2. 本文方法

由于发现 的不一致变化是由于 , 1 ≤ i ≤ 3 在训练期间无法看到所有对象引起的,作者建议让主干阶段通过以下方式查看各种规模的对象, 即扩展或修改 FPN-based 的检测框架中的反向传播路径,以解决上述 减少的问题。具体来说,在本节中提出了两种策略,即引入辅助目标函数和以更合理的方式构建特征金字塔。

2.1 Auxiliary Losses

如 3.4 节所述,引入辅助损失可以帮助, 1 ≤ i ≤ 3 拥有查看所有对象的能力。然而,损失的简单总和可能是不够的。为了更合理地引入辅助损失,建议利用不确定性来更好地平衡各种类型的损失信号。具体来说,将不确定性纳入每个分类和回归辅助损失中,如下所示:

f29776192bffe3a9c8496a4083da6e90.png

其中 p 是预测结果,gt 是相应的 ground truth。L 表示损失函数,例如 和 。τ 是用于避免产生高不确定性 α 的超参数。α 生成如下:

d30b54ae1820411007c39bdbf26fc640.png

其中 x 是也用于预测 p 的特征图。w 和 b 是可学习的参数。ReLU 用于保证 α ≥ 0。

2.2 特征金字塔生成范式

以更合理的方式构建特征金字塔也是实现一致改进的有效方法。如 1.4 节所分析的,传统 FPN 构建过程中的问题是由(4)式引起的。具体来说, 应该包含来自所有主干的特征图,以便 可以帮助每个主干查看输入到 的对象。因此, 的总和,2 ≤ l ≤ 5 可以使每个主干层级拥有查看所有对象的能力。

1、Feature Grouping

为了从 中为分配到相应金字塔级别的对象选择有效的特征图,首先在 C′ 上执行通道交换,如下所示:

38f8b0c19c92e200b1b553bbb8fdc8af.png

其中⊗表示矩阵乘法。 将 reshape为 Z × HW 的大小, 将输入张量reshape为 Z × H × W 的大小,其中 Z 是通道数,H×W 是特征图的分辨率。 是一个大小为 Z × Z 的矩阵,用于实现通道交换。在实践中, 的生成方式如下:

d5d26d901291beb99eb851a2765a83f7.png

其中 的结构如图 4 所示。期望 拥有使同质特征图沿通道维度变得紧凑的能力。

1c1ff8e4d002236019e0c752111b6c74.png

然后, 沿通道维度被分成4等份,

26042e4cee16266a660ad8d000e97bc9.png

其中假设 只携带分配给金字塔层 l 的对象的有效语义信息。之后有

565584207e2f6c305afa7cb271e507b8.png

其中⊕表示连接操作。最后,特征金字塔的构造如下:

6630bf31b0eb36b656e165e1594a2695.png

2、Cascade Structure

为了更好地促进空间紧凑性,建议采用级联结构以粗到细的方式进行特征分组。具体来说,在第二阶段,首先将 作为特征分组模块的输入,从而得到 。那么,有

d3ef7d8cebac37ac5f0195a5b9d0b420.png

其中 是用于生成特征融合权重的非线性函数。在实现中, 由2个卷积块组成(一个块由卷积、归一化和激活层组成)。最后,将执行等式(16)以获得具有输入 的特征金字塔。对于级数大于 2 的情况也可以这样做。

3. 实验

3.1 辅助损失消融实验

0456524bee60142a2f35d9746d9da0b8.png

3.2 Feature pyramid generation paradigm消融实验

bfcc4b7356165569e7b41b92db215e1f.png

3.3 SOTA对比

d71c2cdd60911282779cdf39e9e534d3.png

4. 参考

[1].You Should Look at All Objects

自动驾驶之心】全栈技术交流群

自动驾驶之心是国内首个自动驾驶开发者社区,聚焦目标检测、语义分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

 
 
 
 
 
 
整理不易,请点赞和在看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值