点击下方卡片,关注「集智书童」公众号



本论文提出了一种改进的DETR检测器,保持了“简单”的特性:使用单一尺度的特征图和全局交叉注意力计算,而没有特定的局部约束,与之前领先的基于DETR的检测器形成对比,后者重新引入了多尺度和局部性的架构归纳偏见到解码器中。

作者展示了在“简单”设计内两种简单的技术出奇制胜,以弥补多尺度特征图和局部性约束的不足。

  • 第一种是将一个BBox到像素的相对位置偏差(BoxRPB)项添加到交叉注意力的公式中,这个项可以很好地引导每个查询关注对应的目标区域,同时提供编码的灵活性。

  • 第二种是基于Mask图像建模(MIM)的Backbone预训练,有助于学习具有精细定位能力的表示,并且在弥补多尺度特征图的依赖方面至关重要。

通过整合这些技术和最近在训练和问题制定方面的进展,改进的“简单”DETR相对于原始的DETR检测器表现出了显著的改进。通过利用Object365数据集进行预训练,它在使用Swin-L Backbone的情况下实现了63.9的mAP准确率,这在竞争激烈的最新检测器中是非常有竞争力的,所有这些检测器都严重依赖多尺度特征图和基于区域的特征提取。

代码:https://github.com/impiga/Plain-DETR

1、简介

最近NLP领域的革命性进展突显了将任务特定的 Head 或解码器保持尽可能通用、简单和轻量化的重要性,并将主要精力转向构建更强大的大规模基础模型。然而,计算机视觉社区通常继续专注于任务特定 Head 的调整和复杂性,导致设计变得越来越繁重和复杂。

基于DETR的目标检测方法的发展也遵循了这个轨迹。原始的DETR方法令人印象深刻,因为它放弃了复杂和领域特定的设计,比如多尺度特征图和需要专门理解特定目标检测问题的基于区域的特征提取。然而,该领域的后续发展重新引入了这些设计,虽然提高了训练速度和准确性,但也违反了“更少的归纳偏见”的原则。

在这项工作中,作者的目标是改进原始的DETR检测器,同时保持其“简单”的特性:没有多尺度特征图,也没有交叉注意力计算的局部性设计。这是具有挑战性的,因为目标检测器需要处理不同尺度和位置的目标。尽管最新的训练和问题制定方面取得了一些进展,如表1所示,但普通DETR方法仍然远远落后于利用多尺度特征图和基于区域的特征提取设计的最新检测器。

那么,在解决多尺度和任意位置目标的架构“归纳偏见”方面,作者该如何补偿呢?作者的探索发现,在这种情况下,尽管不是全新的,但两种简单的技术出奇制胜:

  1. BBox到像素的相对位置偏差(BoxRPB)

  2. Mask图像建模(MIM)预训练

BoxRPB受到了视觉Transformer中相对位置偏差(RPB)项的启发,它编码了像素之间的几何关系,并增强了平移不变性。BoxRPB将RPB扩展到编码4D框和2D像素之间的几何关系。作者还提出了一种用于高效计算的轴向分解方法,与使用完整项相比,不会损失精度。

作者的实验表明,BoxRPB项可以很好地引导交叉注意力计算,使其专注于各个目标(见图4),并将检测准确性显著提高了+8.9 mAP,达到了COCO基准上37.2 mAP的普通DETR Baseline (见表2)。

MIM预训练的利用是提高普通DETR性能的另一项关键技术。作者的结果还表明,在普通DETR Baseline 的基础上,MIM预训练可以显著提高+7.4 mAP(见表2),这可能归因于它的精细定位能力。虽然MIM预训练已经被证明可以适度提高其他检测器的性能,但在普通设置中,它的影响深远。

此外,这项技术已经被证明是消除从Backbone中使用多尺度特征图的必要性的关键因素,从而利用分层Backbone或单一尺度 Head 的检测器。

通过整合这些技术和在训练和问题制定方面的最新进展,作者改进的“简单”DETR在原始DETR检测器的基础上取得了显著的改进,如图1所示。

此外,作者的方法在利用Object365数据集进行预训练时实现了63.9 mAP的准确性,使其与依赖多尺度特征图和基于区域特征提取技术的最新目标检测器(如级联R-CNN和DINO等)相比,具有很高的竞争力。

除了这些成果,作者的方法还示范了如何在设计任务特定 Head 或解码器时最小化架构“归纳偏见”,而不是依赖于特定于检测的多尺度和局部化设计。作者的研究希望激发未来的研究,使用通用的普通解码器,例如DETR的解码器,来解决更广泛范围的视觉问题,以最小的努力,从而使该领域能够更多地将精力转向开发大规模基础视觉模型,类似于NLP领域的情况。

2. 现代化的普通DETR Baseline

2.1. 原始DETR的回顾

原始DETR检测器由3个子网络组成:

  • Backbone网络,用于从图像中提取图像特征。作者将输入图像表示为。如果使用传统的ConvNet,如ResNet,则Backbone网络可以提供多尺度特征图。空间分辨率通常是输入图像的。原始的DETR检测器在当时使用了主流的Backbone架构ResNet作为其Backbone网络,并且使用了原始的ResNet或带有扩张阶段5网络的变种。现在,主流的Backbone网络已经演变成了视觉Transformer,作者将在实验中使用,例如Swin Transformer。

  • Transformer编码器,用于增强图像特征。它应用于,通过上的线性投影获得。Transformer编码器通常由多个堆叠的Transformer块组成,例如原始DETR中的6个。

  • 全局Transformer解码器,使用一组随机初始化的目标查询,从图像特征图中解码目标边界框。Transformer解码器通常也包括多个层,每个层包括自注意力块、交叉注意力块和前馈块。每个解码器层将生成一组具有标签和边界框的目标,由一组匹配损失驱动。

DETR框架具有以下几个优点,包括:

  1. 在概念上直观且通用适用。它将目标检测视为像素到目标的“翻译”任务,具有将图像像素解码成问题目标的通用概念。

  2. 由于使用端到端的集合匹配损失,因此需要最少的领域知识,例如自定义标签分配和手工设计的非极大值抑制。

  3. 避免了领域特定的多尺度特征图和基于区域的特征提取。

2.2. 增强型普通DETR Baseline

基本设置

作者的基本设置大部分遵循原始的DETR框架,除了以下的调整:

  1. 作者使用更强大的Swin-TBackbone网络,而不是原始的ResNet50 Backbone;

  2. 作者通过反卷积操作从创建一个的特征图,而不是将扩张操作添加到Backbone网络的最后一个阶段,以简化目的;

  3. 作者将查询的数量设置为300,Transformer解码器的dropout比率设置为0;

  4. 作者使用1×的调度设置(12个Epoch)进行高效的消融研究。如表1所示,这个基本设置在COCO验证集上产生了22.5的mAP。

接下来,作者将一些最新的训练和问题制定的进展融入到基本设置中,并逐渐提高检测精度,如表1所示。

将Transformer编码器合并到Backbone网络中

Backbone网络和Transformer编码器的作用是对图像特征进行编码。作者发现,通过利用Vision Transformer Backbone网络,作者能够将Transformer编码器的计算预算合并到Backbone网络中,略微提高了性能,可能是因为有更多的参数进行了预训练。

具体来说,作者使用了Swin-S Backbone网络,并移除了Transformer编码器。这种方法与原始的Swin-T加6层Transformer编码器相比,计算FLOPs相似。这种方法简化了整个DETR框架,只包括一个Backbone(编码器)和一个解码器网络。

更好的分类使用Focal Loss

使用Focal Loss替换默认的交叉熵损失,将检测精度从23.1 mAP提高到31.6 mAP。

迭代优化

作者遵循迭代优化方案,使每个解码器层对前一个解码器层产生的最新边界框进行边界框增量预测,而不像原始的DETR在每个Transformer解码器层内使用独立的预测。这个策略将检测精度提高了+1.5 mAP,达到了33.1 mAP。

基于内容的查询

根据图像内容生成目标查询。选择置信度最高的300个预测作为后续解码过程的查询。用于生成目标查询的是一个集合匹配损失,因此保持了不需要领域特定的标签分配策略的优点。这个修改使检测精度提高了+0.9 mAP,达到了34.0 mAP。

Look forward twice

作者采用了向前看两次的策略,以利用先前Transformer解码器层中精炼的边界框信息,从而更有效地优化相邻Transformer解码器层之间的参数。这个修改产生了+0.8 mAP的改进。

混合查询选择

原始的一对一集合匹配在训练正样本方面效果不佳。有一些方法通过辅助的一对多集合匹配损失来改善效果。作者选择了混合匹配方法,因为它保留了不需要额外的手工标注噪声或分配设计的优点。这个修改使检测精度提高了+2.0 mAP,达到了最终的37.2 mAP。

3. BBox到像素的相对位置偏差

在这一节中,作者介绍了一项简单的技术,即BBox到像素的相对位置偏差(BoxRPB),这项技术对于弥补缺乏多尺度特征和明确的局部交叉注意力计算非常关键。

原始的DETR解码器采用标准的交叉注意力计算:

其中X和O分别是每个目标查询的输入和输出特征;Q、K和V分别是Query、Key和Value特征。

如图4所示,原始的交叉注意力计算通常会在普通DETR框架内关注与目标无关的图像区域。作者推测这可能是其精度远低于多尺度和明确局部设计的原因之一。受到像素到像素相对位置偏差在视觉Transformer架构中的成功启发,作者探讨了用于交叉注意力计算的BBox到像素相对位置偏差(BoxRPB)的使用:

其中B是由BBox和像素之间的几何关系确定的相对位置偏差。

与原始的相对位置偏差(RPB)定义在2D相对位置上不同,BoxRPB需要处理一个更大的4D几何空间。接下来,作者介绍两种实现变体。

一种简单的BoxRPB实现

作者改编了连续RPB方法来计算4D BBox到像素相对位置偏差。原始的连续RPB方法通过应用于相应的2D相对坐标上的元网络来为每个相对位置配置产生偏差项。在将这种方法扩展为BoxRPB时,作者使用左上角和右下角来表示一个BBox,并使用这些角点与图像像素点之间的相对位置作为元网络的输入。

将相对坐标表示为,BBox到像素相对位置偏差可以定义为:

其中B的形状为,其中M表示注意力Head的数量,K表示预测边界框的数量,W、H表示输出特征图的宽度和高度;MLP网络由两个线性层组成:线性→ReLU→线性。这两个线性层的输入/输出形状分别为:

作者的实验表明,这种简单的实现已经非常有效,如表3a所示。然而,它将消耗大量的GPU计算和内存预算,因此不实际。

分解的BoxRPB实现

现在,作者提出了一种更高效的BoxRPB实现。作者不是直接计算4D输入的偏差项,而是考虑将偏差计算分解为两个项:

其中分别是关于轴和轴的偏差。它们的计算方式如下:

分解后的BoxRPB实现的整个过程也在图2中说明。内的两个线性层的输入/输出形状分别为:。类似地,内的两个线性层的输入/输出形状遵循相同的模式。

通过分解,计算FLOPs和内存消耗都大大减少,而准确性几乎保持不变,如表3a所示。这种基于分解的实现在作者的实验中是默认的。

图4显示了BBox到像素的相对位置偏差对交叉注意力计算的影响。总的来说,BoxRPB项使关注更加集中在目标和边界上,而没有BoxRPB的交叉注意力可能会关注许多无关的区域。这可能解释了BoxRPB项如何显著提高了8.9个mAP,如表2所示。

4. 更多改进

在这一节中,作者介绍另外两项可以进一步改善普通DETR框架的技术。

4.1、MIM预训练

作者利用最近的掩膜图像建模预训练的先进技术,这些技术已经显示出更好的局部性。具体来说,作者使用SimMIM预训练权重来初始化Swin Transformer Backbone网络,这些权重是在没有标签的ImageNet上学习的。

如表2所示,MIM预训练相对于作者的普通DETR Baseline 带来了+7.4个mAP的提升。与其他检测器相比,在普通DETR框架上进行的MIM预训练的显著增益可能突显了对普通DETR框架的学习本地化能力的重要性。

在已经涉及BoxRPB的更高 Baseline 上,MIM预训练仍然可以带来+2.6个mAP的增益,达到48.7个mAP。

此外,作者注意到,MIM预训练对于使作者放弃多尺度Backbone特征也至关重要,几乎没有损失准确性,如表5b和5c所示。

4.2、重新参数化的边界框回归

作者想要强调的另一项改进是在执行边界框回归时进行边界框的重新参数化。

原始的DETR框架和大多数其变种直接将边界框的中心和大小缩放到[0,1]。由于大目标主导了损失计算,因此它在检测小目标时会遇到困难。相反,作者将l-th解码器层的边界框中心和大小重新参数化为:

其中是(l−1)-th解码器层的预测未归一化边界框位置和大小。表2显示,这种修改可以提高整体检测性能,+2.2 AP。特别是,在小目标上实现了更大的+2.9 AP的提高。

5. 消融研究与分析

5.1. BBox相对位置偏差的重要性

在表3中,作者研究了BoxRPB方案中每个因素的影响,并在以下讨论中报告了详细的比较结果。

轴向分解的影响

模拟2D相对位置而不进行任何分解是与作者的轴向分解方案相比的一个朴素 Baseline ,可以参数化为。这个 Baseline 需要二次计算开销和内存消耗,而分解后的成本降低到线性复杂度。

在表3a中,作者比较了这两种方法,并发现轴向分解方案在性能上达到了可比较的水平(50.9 vs. 50.8),同时需要更低的内存占用(9.5G vs. 26.8G)和更小的计算开销(5.8G FLOP vs. 265.4G FLOP)。

BBox点的影响

表3b显示了仅使用中心点或两个角点的比较。作者发现仅应用中心点可以将 Baseline (表2的第四行)提高+1.7 AP。然而,其性能不如使用两个角点的性能。

特别是,虽然这两种方法实现了可比较的AP50结果,但利用角点可以将AP75提高+2.2。这表明,不仅位置(中心),而且查询框的尺度(高度和宽度)对于精确建模相对位置偏差非常重要。

隐藏维度的影响

作者研究了方程5中隐藏维度的影响。如表3c所示,较小的隐藏维度为128将导致性能下降0.5,表明位置关系并不简单,需要更高维度的空间来建模。

与其他方法的比较

作者研究了选择其他方案来计算方程2中的调制项B的影响。作者与以下几种代表性方法进行了比较:

  1. 条件交叉注意力方案,它根据条件空间(位置)查询嵌入和空间关键查询嵌入之间的内积来计算调制项。

  2. DAB交叉注意力方案,它基于条件交叉注意力,并进一步使用框宽度和高度信息调制位置关注图。

  3. 空间调制交叉注意力方案(SMCA),它设计了手工制作的查询空间先验,使用类似于2D高斯的权重图来实现,以约束关注的特征在目标查询的初始估计周围。

表3d报告了详细的比较结果。作者的方法在所有方法中表现最佳。具体来说,条件交叉注意力模块在仅使用中心点的情况下实现了与作者的设置(表3b的第一行)相似的性能。DAB交叉注意力和SMCA略优于条件交叉注意力模块,但它们仍然落后于BoxRPB,分别差2.5 AP和2.2 AP。

作者还根据其官方开源代码将BoxRPB与基于DAB交叉注意力进行了比较。用BoxRPB替换DAB位置模块实现了+1.8个mAP的性能提升。

5.2. 与局部注意力方案的比较

在这一节中,作者将作者的全局注意力模式与其他代表性的局部交叉注意力机制进行了比较,包括可变形交叉注意力、RoIAlign、RoI采样(在感兴趣区域内采样固定点)以及BBox Mask。作者详细说明了这些方法之间的关键差异。如表4所示,作者的方法超越了所有局部交叉注意力的变种。此外,作者观察到大目标对作者的方法有更大的改进。DETR中也报告了类似的观察结果,这可能是因为基于全局注意力模式的更有效的长距离上下文建模。

5.3. 关于MIM预训练

作者探索了在使用或不使用MIM预训练的情况下,如何使用Backbone和解码器特征图的不同方式。作者评估了三种不同的架构配置的性能,如图3所示。作者如下讨论和分析结果。

MIM预训练带来了一致的收益

通过比较在相同架构配置下的实验结果,作者发现使用MIM预训练始终可以实现更好的性能。例如,如表5所示,在配置中,使用MIM预训练相对于使用监督预训练提高了1.5 AP,在配置中提高了2.9 AP。

解码器可以去掉多尺度特征图

通过比较表5a和表5b的结果,作者发现使用高分辨率特征图可以与甚至超越使用多尺度特征图的性能。例如,在使用或不使用MIM预训练时都达到了可比较的性能。

这一观察结果并不平凡,因为大多数现有的检测头仍然需要多尺度特征作为输入,这使得构建一个竞争力强的单尺度纯DETR成为可能。作者希望这一发现可以简化未来检测框架的设计。

无需来自Backbone的多尺度特征图

通过比较表5b和表5c的结果,作者分析了从Backbone中去除多尺度特征图的影响。在使用监督预训练的Backbone时,仅采用来自Backbone的最后一个特征图将损害性能。

例如,在使用监督预训练的Backbone时,达到了46.4 AP,比(47.0 AP)差0.6 AP。然而,在使用MIM预训练的Backbone时,达到了50.2 mAP,与 (50.3 AP)的性能相当。

这些结果表明,MIM预训练可以降低对多尺度特征图的依赖。

从Backbone获得单一尺度特征图和从解码器获得单一尺度特征图已足够

基于以上观察,作者可以得出一个令人惊讶但重要的简单结论,即通过使用作者提出的BoxRPB方案和MIM预训练,完全可以消除Backbone和Transformer解码器中需要多尺度特征图的需要。

5.4. 应用于纯ViT

在这一节中,作者通过将作者的方法应用于纯ViT,构建了一个简单而有效的全纯目标检测系统。作者的系统只在全纯Transformer编码器-解码器架构中使用单一分辨率特征图,没有任何多尺度设计或处理。作者将作者的方法与COCO数据集上的最先进的级联Mask R-CNN进行了比较。为了公平比较,作者使用了经过MAE预训练的ViT-Base作为Backbone,并对目标检测器进行了∼50个Epoch的训练。

如表8所示,作者的方法在没有依赖于多尺度特征图的情况下实现了与级联Mask R-CNN相当的结果,以更好地定位不同目标尺度。

值得注意的是,作者的方法没有使用通常被认为对目标检测有益的实例Mask注释进行训练。

5.5. 交叉注意力图的可视化

图4显示了具有或没有BoxRPB的模型的交叉注意力图。对于具有BoxRPB的模型,交叉注意力集中在单个目标上。相反,没有BoxRPB的模型的交叉注意力会关注具有相似外观的多个目标。

6. 系统级结果

6.1、SOTA对比

在本节中,作者将作者的方法与其他最先进的方法进行了比较。表7显示了结果,该表中报告的所有实验都使用Swin-Large作为Backbone。由于其他工作通常会应用编码器来增强Backbone特征,为了公平比较,作者还在Backbone之上堆叠了12个基于窗口的单尺度Transformer层(特征维度为256)。

通过36个训练Epoch,作者的模型在COCO test-dev集上实现了60.0的AP,超过了DINO-DETR 1.4 AP。进一步引入Objects365作为预训练数据集,作者的方法在test-dev集上达到了63.9的AP,比DINO-DETR和DETA有明显的提升。这些强大的结果验证了全纯DETR架构没有固有的缺点,可以实现高性能。

6.2、更简单的ViT结果

表8报告了基于纯ViT的更多比较结果。作者使用了主文第5.4节中描述的默认设置,采用了经过MAE预训练的ViTBase作为Backbone,并对模型进行了∼50个Epoch的训练。根据结果,作者观察到:

  1. 作者的方法将纯DETR Baseline 从46.5 AP提升到53.8 AP,仅使用全局交叉注意力方案处理单一尺度特征图
  2. 作者的方法胜过了强大的基于DETR的目标检测器,例如使用局部交叉注意力方案来利用多尺度特征图的Deformable DETR

6.3、Runtime Comparison with Other Methods

作者在表9中进一步分析了不同交叉注意力调制的Runtime成本。与标准交叉注意力相比,BoxRPB略微增加了运行时,但与其他位置偏置方法具有相当的速度。

6.4、More Details of Local Attention Scheme

图5展示了作者的方法与局部交叉注意力方法(如可变形交叉注意力、RoIAlign、RoI采样以及框Mask)之间的区别。大多数局部交叉注意力方法需要使用特殊的采样和插值机制构建稀疏的key-value空间。作者的方法使用所有图像位置作为key-value空间,并学习一个框到像素的相对位置偏差项(图(e)中的梯度粉色圆形区域)来调整注意力权重。这使得作者的方法比先前的方法更加灵活和通用。

6.5、关于COCO val的系统级比较

表10比较了在使用Swin-Large作为Backbone网络时,作者的方法与以前的最新方法。在36个训练Epoch内,作者的模型在COCO验证集上实现了59.8的AP,超过了DINO-DETR的1.3个AP。通过使用Objects365的预训练,作者的方法获得了63.8 AP,远高于DINO-DETR。这些结果表明,借助作者的方法,改进后的普通DETR可以在没有固有限制的情况下实现竞争性能。

7、参考

[1]. DETR Doesn’t Need Multi-Scale or Locality Design.

8、推荐阅读

SAMed/MedSAM以及SwinUNet都不敌,SAMUS才是UNet与SAM结合的正确的道路,一路SOTA没对手!


D-LKA Attention | D-LKA注意力同时拥有SA注意力和大卷积核的能力


小目标检测的福音 | 一文全览3年来Transformer是怎么在小目标领域大杀四方的?


扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称


想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶
AI模型部署落地实战👉CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入集智书童-知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!


免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

点击下方“阅读原文”,
了解更多AI学习路上的「武功秘籍」

内容中包含的图片若涉及版权问题,请及时与我们联系删除