点击下方卡片,关注「集智书童」公众号
DETR的引入代表了目标检测的一种新范式。然而,其解码器使用共享的Query和交叉注意力层进行分类和框定位,导致结果不佳。作者观察到,即使对于同一目标,视觉特征图中的不同感兴趣区域适合执行Query分类和框定位任务。显著的区域为分类提供了重要信息,而它们周围的边界更有利于框回归。不幸的是,这两个任务之间的空间不对齐严重阻碍了DETR的训练。
因此,在这项工作中,作者专注于在DETR中解耦定位和分类任务。为了实现这一目标,作者引入了一种称为空间解耦DETR(SD-DETR)的新设计方案,其中包括一个任务感知的Query生成模块和一个分离的特征学习过程。作者精心设计了任务感知的Query初始化过程,并对解码器中的交叉注意力块进行了分割,以允许任务感知的Query匹配不同的视觉区域。
与此同时,作者还观察到高分类置信度和精确定位的预测不对齐问题存在,因此作者提出了一种对齐损失,以进一步引导空间解耦DETR的训练。
通过大量实验证明,与先前工作相比,作者的方法在MSCOCO数据集上取得了显著的改进。例如,作者将Conditional DETR的性能提高了4.5个AP。通过在两个任务之间进行空间解耦,作者的方法克服了不对齐问题,大大提高了DETR在目标检测中的性能。
1. 简介
目标检测是计算机视觉中的一个关键问题,传统的检测器依赖于卷积来提取图像的信息表示,包括单级和多级检测器。与之相反,最近的工作,如DETR,打破了这一范式。DETR由编码器和解码器组成,编码器使用自注意力机制提取图像特征,解码器使用这些特征与目标Query进行交互来估计目标的位置和类别。它是一个端到端的解决方案,不需要后处理,如非极大值抑制(NMS)。
然而,观察到匹配Query与视觉特征图的位置先验不足会减缓DETR的收敛速度。因此,随后的工作着重于通过开发各种技术来初始化目标Query来改进性能。另一方面,先前的基于RCNN的目标检测工作表明,共享用于分类和定位任务的检测头可能会导致性能不佳,因为分类和定位分支可能具有冲突的学习目标,它们的实际感兴趣区域可能不对齐。
为解决这个问题,Double-Head R-CNN将检测头解耦为两个专门的分类和定位分支。虽然检测头的解耦可以产生令人满意的性能,但由于供给两个分支的特征来自相同的Proposal,通过ROI池化的使用,两个任务之间仍然存在冲突。
此外,由于DETR严重依赖于注意力机制进行信息提取,因此不能直接将先前基于Anchor或卷积特征的解耦方法转移到基于DETR的检测器。
作者的研究强调了分类和定位任务之间的不对齐问题也存在于DETR中,这个问题长时间被忽视。为了说明这个问题,作者进行了一项试点研究,通过创建两个解码器的副本,完全解耦了分类和定位分支。然后,作者可视化了两个分支的神经元激活图,如图1所示。
第二和第三列分别显示了用于分类和定位分支的交叉注意力图。每个分支的突出激活明显不同,表明存在重要的语义不对齐。进一步的分析显示,目标内不同位置的特征对分类和定位任务作出不同的贡献。例如,在目标内的显著区域为分类提供了重要信息,而目标周围的边界更有利于框的定位。
为了利用这一观察结果,作者为DETR解码器提出了一种解耦设计方案,如图2所示。然而,作者并不简单地采用两个完全隔离的分支。相反,作者只将解码器中的交叉注意力块分成两个分支,允许分类和定位在与视觉特征图的不同区域进行Query匹配。重要的是,这两个分支共享自注意层,使它们能够相互合作以检测相同的目标。通过为分类和定位任务解耦交叉注意力,作者提出的方法在现有的DETR检测器上实现了更好的性能。
此外,作者强调了DETR解码器的Query初始化对于实现良好的性能和收敛速度的重要性。在原始的DETR中,输入Query由内容Query和随机初始化的位置嵌入组成。然而,在解耦分类和定位分支后,初始化内容和位置嵌入变得至关重要。
为了解决这个问题,作者引入了一个基于Anchor框学习任务特定Query的模块。首先,作者找到Anchor框内的一些有区别的点,然后内容嵌入初始化是从编码器的特征图中对这些有区别的点进行采样。而位置嵌入是使用这些点的偏移的正弦嵌入来生成的。
作者还观察到在准确分类和精确定位之间存在不对齐的问题,导致高分类置信度与相对较低的IoU分数,或者反之亦然。
受到对齐标签分配机制的启发,作者进一步提出了一种对齐损失,以指导作者解耦的DETR学习框架中高分类置信度和精确定位的一致性。
作者总结作者的贡献如下:
-
揭示了DETR的分类和定位分支之间特征和预测不对齐的问题,这显着限制了DETR-like检测器的性能。
-
对分类和定位分支的特征学习过程进行了解耦。作者将解码器中的交叉注意力块分成两个分支,允许这两个分支与视觉特征图的不同区域进行匹配。作者为这两个分支设计了任务感知的Query生成以更好地初始化Query。作者还提出了一个对齐损失,以指导高分类置信度和精确定位之间的一致性。
-
将结构集成到多种DETR的变种中,对MSCOCO数据集进行了大量实验,结果表明作者的方法可以显著提高性能。
3.方法
3.1. 重新审视通用DETR流程
DETR是一个灵活的端到端检测器,将目标检测视为一种集合预测问题。它预定义了多个Query,并引入了一种基于Transformer编码器-解码器架构的一对一集匹配方案。每个GT被分配给特定的Query,作为分类和定位的监督目标。
具体来说,给定输入图像I,可以通过Backbone和Transformer编码器来生成其视觉特征F。让表示预定义的与数据无关的Query。可以通过以下方式生成输出Query嵌入:
其中是在Query 之间传播信息的自注意力,是吸收来自F的知识以支持分类和定位的交叉注意力,是前馈网络。这些操作按顺序堆叠L次以建立DETR的解码器。在传递后,Q被更新。然后,DETR在上应用任务特定的预测头,以生成一组预测,可以表示为:
其中,是目标分类或定位的预测,表示两个头。最后,DETR采用一对一二分图匹配将GT分配给。在原始的DETR训练中,Eq. (1)中的所有操作都使用共享权重解码器。
3.2. 空间解耦DETR
如上所分析,不同任务(分类和定位)中的共享Query以及不同Query中的共享交叉注意力操作造成的固有冲突极大地限制了DETR类检测器的性能。例如,在某些显著区域的特征可能对分类具有丰富的信息,而在边界周围的特征可能更有利于边界定位。DETR中的完全共享范式妨碍了它学习更好的任务特定特征以进一步提高性能。
为了解决这个潜在问题,作者引入了空间解耦的DETR,通过从两个方面解耦任务来减轻这种冲突,即解耦的特征学习(DFL)和任务感知Query生成。在DFL中,通过以下方式调整Eq.(1):
其中和分别由任务感知的Query生成模块生成,交叉注意力模块和FFN模块在和之间不共享。这个生成过程如下所示:
其中Rbox是一系列Anchor定框。作者使用minidetector模块来初始化这些Anchor框。是任务感知的Query生成过程,将在第3.2.2节中介绍。
通过解耦交叉注意力和FFN中的Query和特征学习,作者的空间解耦DETR可以自适应地学习更好的任务感知特征表示。它适用于大多数现有的基于DETR的检测器,同时引入了很少的额外开销。作者的空间解耦DETR的整体流程如图3所示。
3.2.1 解耦的特征学习
为了充分利用网络的能力,作者需要为这两个子任务设计一个解耦的特征学习架构。最简单的方法是直接分割Transformer解码器,但由于两个分支之间的信息传播不足以及模型参数显著增加,导致设计不够优化。
在这项工作中,作者保持了共享的自注意力块,并分割了解码器中的交叉注意力块。这两个分支共享自注意力块,以增强它们之间传播的信息。在获得任务感知的目标Query初始化后,作者将分类Query和定位Query连接到自注意力块。因此,自注意力块的输出将是。然后,作者将分成两部分,分别为C维向量的两个分支。这两个特征将分别与来自编码器的图像特征输出进行交叉注意力。每个分支将搜索其匹配的兴趣区域并提取相关特征,从而避免这两个分支之间的特征不对齐。
在进行交叉注意力时,作者将从分割的自注意力中输出的内容Query和基于任务感知Anchor先验初始化的位置嵌入连接以形成用于条件匹配的目标Query。交叉注意力的输出和经过归一化、FFN和残差连接层,然后进入下一个解码器阶段。然后,分类头和框回归头将采取最终阶段解耦特征输出作为输入,并最终获得目标的类别和位置。
3.2.2 任务感知的Query生成
在前一节中,作者分割了解码器中的交叉注意力块,进行了解耦特征学习。在本节中,作者专注于生成任务感知的Query,以使每个分支的交叉注意力集中在各自的兴趣区域,并消除特征冲突。
作者引入任务感知的Query生成模块。在mini-detector的基础上,作者首先获得一组Anchor框。接下来,作者修改了语义对齐匹配模块。具体而言,作者使用ROIAlign从编码特征F的Anchor框区域的编码特征F中提取区域级特征。
为了有效捕捉Anchor框内的目标特征,作者选择最具辨别性的点以生成目标内容嵌入。如图3所示,作者使用ConvNet和MLP来获取每个区域内这些点的坐标,经过RoIAlign获得区域特征后。
这些辨别性点对于目标识别和定位至关重要。作者采用双线性插值来获取它们的特征。然后,作者计算每个分支的平均特征和偏移量的平均特征。随后,作者使用这些平均特征来更新Query内容嵌入。与此同时,作者使用位置编码函数PE来生成平均偏移量的位置嵌入,用于更新可学习Query的位置嵌入。
3.2.3 任务对齐学习
在前两节中,作者讨论了在DETR中解耦分类和定位分支。然而,在从目标Query生成预测时,精确分类和精确定位之间的不对齐显著阻碍了学习的有效性。这种不对齐指的是Query产生高分类得分但交并比(IoU)分数相对较低,或者反之亦然的情况。
受先前的标签分配工作的启发,作者对DETR的损失函数进行了修改。作者的目标是确保同时实现高分类得分和精确定位。为了实现这一目标,作者测量每个Query的任务对齐度,即基于分类得分和IoU的高阶组合来计算对齐度。
具体而言,作者设计了以下指标来计算每个Query的对齐度:
在这里,代表分类得分,表示IoU值。参数α和β用于控制对齐度指标中两个任务的相对影响。然后,作者在训练过程中使用替代正样本的二进制标签,这鼓励学习过程动态地优先考虑高质量的Query。分类任务的二元交叉熵(BCE)可以重写为:
在这里,和分别表示正样本和负样本的数量,γ是聚焦参数。为了进一步提高匹配效率,作者多次重复正标签以提供更丰富的正监督信号。
3.3. 讨论
图4展示了分类和定位分支的交叉注意力图。这些图是通过对点积进行标准化并可视化8个交叉注意头的平均图,例如,从COCO数据集中随机采样的图像。这些空间注意力图表明,分类和定位任务具有不同的高激活区域,这支持了作者的假设,即不同目标位置的特征对这些任务的贡献是不同的。
定位分支倾向于更高的激活目标边缘,而分类分支更关注整体目标,特别是显著区域。通过解耦这两个分支,每个分支都更灵活地捕捉其独特的信息。
4. 实验
4.1. 消融实验
作者对作者的空间解耦DETR中的每个组件进行了全面的分析,并评估了它们对最终结果的影响,如表2所示。表格表明,作者的空间解耦DETR的性能随着不同模块的引入逐渐改进。在表的顶部行,作者展示了作者的基线,即使用minidetector的Conditional DETR的结果。通过使用解耦的特征学习,即解耦了交叉注意力层但保持了共享的自注意,作者实现了1.4 AP性能提升,突显了解耦的必要性。
此外,通过任务感知的Query生成,为每个分支生成更具信息量的内容和位置嵌入初始化,作者进一步提高了性能至43.6。
最后,通过改进原始DETR的损失函数,以解决高置信度分类和精确定位中的预测不一致问题,作者将性能显着提高至45.5。作者的工作的这三个贡献都旨在解决DETR的分类和定位中的不对齐问题。
完全分割解码器的比较
在本节中,作者研究了解码器中不同解耦结构的影响。最直接的解耦结构是解码器的直接副本,其中分类分支完全与定位分支解耦。
然而,如表3所示,这种结构只导致性能提升了0.5。完全解耦忽略了两个分支之间的信息传播。因此,在作者的设计中,作者分割了交叉注意并共享自注意,以保留不同分支Query之间传播的信息,从而提高了0.9并引入了更少的额外参数。
4.2 SOTA对比
4.3 可视化
5. 参考
[1]. Decoupled DETR: Spatially Disentangling Localization and Classification for Improved End-to-End Object Detection.
6. 推荐阅读
大模型即插即用 | 微调无门?Adapter Expert和门控注意力让你微调大模型不再是梦想!
Inner-IoU来啦 | YOLOv6用SIoU是尽头吗?通过辅助边界框计算IoU也很攒劲涨点
再也不担心造数据啦 | TPSeNCE开源,让CV图像变换到雨天/雪天/夜晚都不是大问题
点击上方卡片,关注「集智书童」公众号