前言 论文指出,大规模目标的性能下降是由于集成FPN后出现了不正确的反向传播路径。它使得骨干网络的每一层仅具有查看特定尺度范围内的目标的能力。基于这些分析,提出了两种可行的策略,以使主干的每一层都能够查看基于FPN的检测框架中的所有目标。
一种是引入辅助目标函数,使每个主干层在训练期间直接接收各种尺度目标的反向传播信号。另一种是以更合理的方式构造特征金字塔,以避免不合理的反向传播路径。在COCO基准上的大量实验验证了分析的正确性和方法的有效性。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。目前公众号正在征稿中,可以获取对应的稿费哦。
QQ交流群: 444129970。群内有大佬负责解答大家的日常学习、科研、代码问题。
论文:https://arxiv.org/pdf/2207.07889.pdf
代码:未公开
创新思路
随着深度神经网络的发展,近年来在目标检测方面取得了显著进展,目标检测旨在检测预定义类别的目标。最先进的检测器成功的共同点是使用特征金字塔网络(FPN)。
但在引入FPN后,发现总体检测性能的提高是建立在小目标(APS)平均精度的提高和大目标(APL)平均精度下降的基础上。例如,图1中基于MMDetection和Detectron2的实验证明了这种现象。
图1.基于MMDetection和Detectron2比较ResNet-50-DC5和ResNet-50FPN之间的检测性能。
本文做出了两个假设,说明为什么引入FPN有效。
1.FPN的使用有助于通过融合多个低级和高级特征图来获得更好的表示。
2.每个金字塔级别可以负责检测特定尺度范围内的目标。
这两种假设应得出相同的结论,即AP的增加是由于AP、APM和APL的共同增加。然而,图1中APL的意外下降表明无FPN和基于FPN的检测框架之间存在其他关键差异,但很少有研究注意到这一点。
因此,在本文中,作者提出从优化的角度研究FPN。除了多尺度特征融合和分治之外,FPN改变的反向传播路径也将直接影响检测框架的性能。实现具有不同尺度范围的目标的AP的一致改进的关键点是使每个主干阶段能够在训练期间看到所有目标。基于这一原理,作者提出了扩展和修正基于FPN的检测框架中现有的反向传播路径。
本文的主要贡献
1. 这是首次从优化的角度说明FPN成功的本质。此外,还提供了新的视角来解释为什么引入传统的FPN会从这个角度抑制大型目标的性能。
2. 提出了引入由不确定性引导的辅助目标函数,以缓解APS、APM和APL的不一致变化。由于该策略在测试期间没有额外的计算开销,因此可以保持检测器的推理速度不降低。
3. 提出了一种新的特征金字塔概括范式。其关键思想是使各种尺度目标的反向传播信号能够直接传递到骨干网络的各个层次。还进一步设计了级联结构,以实现更稳健的平均精度(AP)改进。
4. 在COCO 基准上进行的大量实验验证了分析的合理性和解决方案的有效性。本文的方法在各种框架下(one-stage, two-stage, anchor-based, anchor-free and transformer-based detectors.)的检测性能提高了2%以上。
准备
基于FPN的检测框架
对于基于FPN的检测器,首先使用C构建特征金字塔,如下所示:
在不失一般性的前提下,将式(4)改写为:
然后,网络使用P来预测分配到每个金字塔层次l的目标的分类和回归信息如下:
目标分配规则是用低分辨率金字塔特征(如P5)来预测大尺度目标,用高分辨率金字塔特征(如P2)来预测小尺度目标。在网络优化过程中,金字塔每一级l的损失计算如下:
FPN分析
引入FPN可以改变目标函数和骨干网之间的反向传播路径。图2显示了不使用FPN和基于FPN的检测框架之间的差异。在无FPN检测管道中,只有骨干特征C5直接受目标函数的监督。
图2。无FPN检测框架和基于FPN检测框架的反向传播路径的比较
由于深度神经网络中存在梯度消失问题,骨干网的浅层(即{fs0, fs1, fs2, fs3})将难以通过反向传播得到有效监督。而在基于FPN的检测框架中,所有的骨干特征都直接处于目标函数的监督之下。由于该策略避免了浅层的梯度消失问题,使得骨干网络的每一层都可以接受更多的监督来训练自己的参数。
为论证上述原理,作者进行了研究,实验结果如图3所示。
图3.不同设置下的检测性能。
FPN-Aux和DC5-Aux在骨干网络的浅层引入辅助损失。有
对于两级检测器,为了避免重复计算方案,将利用Eq.(2)或Eq.(6)计算的方案提取ROI。
则辅助损失如下:
检测框架的最终损失为辅助损失与原始损失之和。从图3中可以看出,辅助损失可以提高无FPN检测器的检测性能(从39.0%提高到39.6%),并获得与基于FPN检测器相似的AP结果(39.6% vs . 39.5%)。但是辅助损失的引入对于基于FPN的检测器(从39.5%到39.5%)是无用的。这一结果验证了作者从优化角度的假设,FPN成功的本质是缩短了目标损失与骨干网络浅层之间的反向传播距离。
方法
辅助损失
由于引入辅助损失可以帮助拥有查看所有目标的能力,作者提出了将不确定性纳入到各个分类和回归辅助损失中,如下:
α如下生成,
特征金字塔生成范式
功能分组
为了从C′={C′2、C′3、C′4、C′5}中为分配给相应金字塔级别的目标选择有效特征映射,首先对C′执行通道交换,如下所示:
Mk是用于实现信道交换的大小为Z×Z的矩阵。Mk如下:
其中Gk的结构如图4所示。
图4.Gk的结构示意图
然后,将Xk沿通道尺寸分成四分之一,
假设Xk,l,只携带分配给金字塔级别l的目标的有效语义信息。之后,有
最后构造特征金字塔如下,
级联结构
为了更好地提高空间紧凑性,作者提出使用级联结构以从粗到细的方式进行特征分组。在第二阶段,首先将P′l作为特征分组模块的输入,从而ˆP′l
最后,将执行等式(16)以获得具有输入P′l的特征金字塔。
实验
表1.辅助损失的消融实验
表2.特征金字塔生成范式的消融实验
图5.学习特征的可视化
表3.将级联特征分组模块集成到各种检测框架后对AP的改进
表4.实例分割任务的实验结果
结论
论文从优化的角度确定了FPN成功的本质。基于该原理,说明了FPN的引入将抑制大目标检测性能的原因。进一步得出结论,解决{APS,APM,APL}中不一致问题的关键是使每个主干级别能够查看所有目标。
因此,作者提出了两种策略来实现这一目标。一种是引入了辅助损失,使得包含所有目标信息的辅助信号可以直接通过骨干网络的浅层。另一种是将级联特征分组结构集成到现有的FPN中,这也可以修正目标函数和骨干网络浅层之间的反向传播路径。
大量的实验证明了分析的正确性和策略的有效性。本文的方法在没有任何干扰的情况下,为12种不同的检测框架带来了一致的性能改进。
搞了个QQ交流群,打算往5000人的规模扩展,还专门找了大佬维护群内交流氛围,大家有啥问题可以直接问,主要用于算法、技术、学习、工作、求职等方面的交流,征稿、公众号或星球招聘、一些福利也会优先往群里发。感兴趣的请搜索群号:444129970
加微信群加知识星球方式:关注公众号CV技术指南,获取编辑微信,邀请加入。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。目前公众号正在征稿中,可以获取对应的稿费哦。
其它文章
ECCV 2022 | ScalableViT:重新思考视觉Transformer面向上下文的泛化
ECCV 2022 | RFLA:基于高斯感受野的微小目标检测标签分配
Pytorch转onnx详解
Pytorch 加速数据读取
各种神经网络层和模块的计算量和参数量估计总结
迁移科技-工业机器人3D视觉方向2023校招-C++、算法、方案等岗位
文末赠书 |【经验】深度学习中从基础综述、论文笔记到工程经验、训练技巧
ECCV 2022 | 通往数据高效的Transformer目标检测器
ECCV 2022 Oral | 基于配准的少样本异常检测框架
CVPR 2022 | 网络中批处理归一化估计偏移的深入研究
CVPR2022 | 自注意力和卷积的融合
CVPR2022 | 重新审视池化:你的感受野不是最理想的
CVPR2022 | A ConvNet for the 2020s & 如何设计神经网络总结
计算机视觉中的论文常见单词总结
计算机视觉中的高效阅读论文的方法总结