DEIM: DETR with Improved Matching for Fast Convergence

Abstract

  • 我们推出 DEIM,这是一种创新且高效的训练框架,旨在加速基于 Transformer 的架构 (DETR) 的实时对象检测的收敛。为了减轻 DETR 模型中一对一 (O2O) 匹配固有的稀疏监督,DEIM 采用了密集的 O2O 匹配策略。这种方法通过使用标准数据增强技术合并额外的目标来增加每个图像的阳性样本数量。虽然密集的 O2O 匹配可以加快收敛速度,但它也会引入大量可能影响性能的低质量匹配。为了解决这个问题,我们提出了可匹配性感知损失(MAL),这是一种新颖的损失函数,可以优化不同质量级别的匹配,从而增强密集 O2O 的有效性。在 COCO 数据集上进行的大量实验验证了 DEIM 的功效。

  • 当与 RT-DETR 和 D-FINE 集成时,它可以持续提高性能,同时减少 50% 的训练时间。值得注意的是,与 RT-DETRv2 配合使用,DEIM 在 NVIDIA 4090 GPU 上的一天训练中实现了 53.2% 的 AP。此外,经过 DEIM 训练的实时模型的性能优于领先的实时目标检测器,DEIM-D-FINE-L 和 DEIM-D-FINE-X 在 NVIDIA T4 GPU 上以 124 FPS 和 78 FPS 分别实现 54.7% 和 56.5% AP,而无需额外数据。我们相信 DEIM 为实时目标检测的进步设定了新的基准。我们的代码和预训练模型可在[Intellindust-AI-Lab/DEIM: CVPR 2025] DEIM: DETR with Improved Matching for Fast Convergence 获取。

  • DEIM(CVPR 2025)——它不改架构,是构建在 RT-DETR/D-FINE 之上的「训练框架级」工作。DEIM 把 DETR 收敛慢归因为「匹配」的双重缺陷——O2O 每目标仅 1 正样本(Fig.3:O2O <10 vs O2M 80+,差 10 倍)的数量稀疏,与「低 IoU+高置信」低质量匹配在 VFL 下梯度平坦的质量缺陷。Dense O2O 增 N(目标数)、MAL 提质量,二者互补。Dense O2O 的本质是把「增加监督」从模型侧(Group DETR/Co-DETR 复制 decoder/head)挪到数据侧(mosaic/mixup 增目标),computation-free、推理零开销。

  • DETR 慢收敛的根因是 O2O 正样本太少,不是 query 不够 —— 可以通过"增 target 数 N"而非"增每 GT 的匹配数 M"来实现 Dense O2O。

  • VFL 在 DETR 稀疏匹配下对低 IoU 匹配几乎无惩罚(loss 平坦),导致低质匹配 persist,阻碍性能 —— 提出 MAL 把 target 从 q 改成 q^γ,去掉 α,统一正负样本形式。Dense O2O + MAL 组合,在 RT-DETRv2 / D-FINE 上训练 epoch 减半、AP 反涨,单 4090 一天 ResNet50 跑 53.2 AP。

Introduction

  • 目标检测是计算机视觉的一项基本任务,广泛应用于自动驾驶、机器人导航等领域。对高效检测器不断增长的需求刺激了实时检测方法的发展。特别是,YOLO 因其在延迟和准确性之间的令人信服的权衡而成为实时目标检测的主要范例之一。 YOLO 模型被广泛认为是基于卷积神经网络的一级检测器。一对多(O2M)分配策略已广泛应用于YOLO系列,其中每个目标框与多个锚点相关联。众所周知,这种策略是有效的,因为它提供了密集的监督信号,可以加速收敛并提高性能。然而,它会为每个对象生成多个重叠的边界框,需要手工设计的非极大值抑制 (NMS) 来消除冗余,从而引入延迟和不稳定。

  • 基于 Transformer 的检测 (DETR) 范式 的出现引起了人们的广泛关注,它利用多头注意力来捕获全局上下文,从而增强定位和分类。 DETR采用一对一(O2O)匹配策略,利用匈牙利算法在训练期间在预测框和 GT对象之间建立唯一的对应关系,从而消除了对NMS的需要。这个端到端框架为实时对象检测提供了一种引人注目的替代方案。

  • 然而,收敛缓慢仍然是 DETR 的主要局限性之一,我们假设原因有两个。 稀疏监督:O2O匹配机制只为每个目标分配一个正样本,大大限制了正样本的数量。相比之下,O2M 产生的正样本多出数倍。正样本的稀缺限制了密集监督,从而阻碍了有效的模型学习——特别是对于小对象,密集监督对于性能至关重要。 ❷低质量匹配:与依赖密集锚点(通常> 8000)的传统方法不同,DETR 采用少量(100 或 300)随机初始化的查询。这些查询缺乏与目标的空间对齐,导致训练中出现大量低质量匹配,其中匹配框与目标的 IoU 较低,但置信度得分较高。

  • 为了解决 DETR 中监督的稀缺问题,最近的研究通过将 O2M 分配纳入 O2O 训练中,放宽了 O2O 匹配的限制,从而为每个目标引入辅助正样本以增强监督。 Group DETR 通过使用多个查询组来实现这一点,每个查询组具有独立的 O2O 匹配,而 Co-DETR 则结合了来自 Faster R-CNN 和 FCOS 等对象检测器的 O2M 方法。尽管这些方法成功地增加了正样本的数量,但它们也需要额外的解码器,这增加了计算开销,并且存在像传统检测器一样产生冗余高质量预测的风险。

  • 相比之下,我们提出了一种新颖而简单的方法,称为密集一对一(密集 O2O)匹配。我们的关键思想是增加每个训练图像中的目标数量,从而在训练过程中生成更多的正样本。值得注意的是,这可以使用马赛克 和混合 增强等经典技术轻松实现,这些技术为每个图像生成额外的正样本,同时保留一对一匹配框架。密集的 O2O 匹配可以提供与 O2M 方法相当的监督级别,而不会增加通常与 O2M 方法相关的复杂性和开销

  • 尽管尝试使用先验来改进查询初始化,这使得围绕对象的查询分布更加有效。这些改进的初始化方法通常依赖于从编码器中提取的有限特征信息,倾向于将查询聚集在一些突出的对象周围。相反,大多数非显着对象缺乏附近的查询,导致低质量的匹配。当使用 Dense O2O 时,这个问题变得更加明显。随着目标数量的增加,显着目标和非显着目标之间的差距越来越大,导致尽管匹配数量整体增加,但低质量匹配却增加。在这种情况下,如果损失函数在处理这些低质量匹配方面存在局限性,那么这种差异将持续存在,从而阻碍模型获得更好的性能。

  • DETRs中现有的损失函数,如变焦距损失(VFL) ,适用于低质量匹配数量相对较低的密集锚点。它们主要惩罚高质量的匹配,尤其是具有高IoU但低置信度的匹配,并丢弃低质量的匹配。为了解决低质量匹配和进一步提高密集O2O,我们提出匹配感知损失(MAL)。MAL通过合并匹配查询和具有分类置信度的目标之间的IoU,基于匹配性来调整惩罚。MAL在高质量比赛中的表现与VFL相似,但更重视低质量比赛,提高了训练期间有限阳性样本的利用率。此外,MAL 提供了一个比VFL更简单的数学公式。

  • 提议的DEIM将密集O2O与MAL相结合,以创建有效的训练框架。我们在COCO 数据集上进行了大量实验来评估DEIM的有效性。图1 (a)中的结果显示,DEIM显著加速了RTDETRv2 和D-FINE 的收敛,并且也实现了改进的性能。具体来说,我们的方法只需要一半的训练历元,就可以分别比RT-DETRv2和D-FINE快0.2和0.6 AP。此外,我们的方法能够在单个4090 GPU上训练基于ResNet50的DETR模型,在一天内实现53.2%的mAP(大约24个时期)。通过引入更高效的模型,我们还引入了一组新的实时检测器,其性能优于现有模型,包括最新的YOLOv11 ,为实时对象检测设定了新的最先进水平(SoTA)(图1 (b))。这项工作的主要贡献总结如下:

    • 我们介绍了DEIM,一个简单灵活的实时目标检测训练框架。

    • DEIM分别通过提高密集O2O和MAL匹配的数量和质量来加速融合。

    • 使用我们的方法,现有的实时检测器可以获得更好的性能,同时将训练成本减半。具体来说,我们的方法超过了YOLOs,并在与D-FINE中的高效模型配对后,在实时对象检测方面建立了新的SoTA。

    • 在这里插入图片描述

    • 图一。与COCO上最先进的实时物体探测器的比较。与最先进的实时对象检测器相比,所提出的DEIM在平均精度(AP)和延迟(b)方面实现了更快的收敛(a)和更好的性能。

  • 一个不改架构、只改「匹配策略 + 损失函数 + 训练调度」的可插拔训练框架,让实时 DETR 训练时间减半、精度刷到 SOTA。DEIM 并非重新设计 backbone/encoder/decoder,而是构建于 RT-DETR/D-FINE 之上。以 DETR 家族(RT-DETR/D-FINE)流水线为底座分析,并明确标注 DEIM 的三个改动点(Dense O2O、MAL、训练调度)落在匹配分支与损失分支。

  • 两阶段(Faster R-CNN 族):Anchor + RPN + RoI Align + 手工 NMS,流水线长、超参多(anchor scale/ratio、NMS threshold),端到端性差,实时场景吃紧。

  • 单阶段 YOLO 族(v5/v8/v9/v10/v11):One-to-Many (O2M) 分配,每 GT 配多个 anchor,靠密集监督加速收敛,但推理必带 NMS → 延迟、不稳定、batch 推理难优化,且 Anchor 设计对任务有偏。

  • 原始 DETR 族:One-to-One (O2O) 匈牙利匹配、端到端无 NMS,但收敛极慢(500 epoch)、query 稀疏、小目标弱

  • Carion DETR (ECCV’20) 首次把目标检测建模成 Set Prediction,用匈牙利 O2O 替代 Anchor+ NMS,理论上干净。但落地卡在两个点:

    • 慢收敛:O2O 每 GT 只有 1 个正样本,监督密度远低于 O2M(论文 Fig.3:O2O 单图正样本常 <10,SimOTA O2M 能 >80)。
    • 低质匹配多:300 个随机 query 与 GT 空间不对齐,大量匹配 IoU 极低但置信度被推高。
  • 后续 Deformable DETR → DINO → RT-DETR → D-FINE 一路在注意力稀疏化、query 初始化、回归方式上改,但匹配本身(O2O 稀疏 + VFL 偏重高 IoU) 这块在实时 DETR 上没被根治。

  • 两个具体子问题:

    • 如何在不引入 O2M 那种多 decoder / 辅助 head 开销的前提下,把 O2O 的正样本数提上去
    • VFL 在 DETR 稀疏 query 下对低 IoU 匹配几乎不惩罚,怎么改 loss 让低质匹配也被优化?
  • DETR 支线:Carion DETR → Deformable → DINO → RT-DETR / D-FINE → DEIM(训练框架层创新,非架构层)

    • Group DETR / H-DETR:多 query group 近似 O2M,但要 K 个并行 decoder,算力和显存直接 ×K。
    • Co-DETR:加 O2M 辅助 head(FCOS / Faster R-CNN),额外参数 + 实现复杂
    • DEIM Dense O2O:不动 query 数、不动 decoder、不动匹配算法,只靠 mosaic / mixup 增 target 数 N → 监督密度↑,理论上是"另一条路"。
  • 类别 具体内容
    理论创新 Dense O2O 把 O2O 监督密度公式重写为"增 N 而非增 M";MAL 简化 VFL 数学形式
    架构创新 ——DEIM 不动 backbone / encoder / decoder / query 设计
    工程优化创新 mosaic+mixup 调度、DataAug warmup、50% epoch 后关 Dense O2O、MAL 单超参 γ
  • 实时 DETR(RT-DETRv2 / D-FINE)整体流水线

    • 输入 640×640×3
         ↓
      CNN Backbone (ResNet50/101 或 HGNetv2)
         ↓ 多尺度特征 [P3,P4,P5] 例:80×80, 40×40, 20×20
         ↓
      Hybrid Encoder (CNN+self-attn 交替,RT-DETR 特色)
         ↓
      Encoder 输出 dense feature → Top-k 选 anchor point → 初始化 decoder query (D-FINE 还做 distribution refinement)
         ↓
      Transformer Decoder (6-layer, deformable cross-attn)
         ↓ 输出 300 queries × (cls + box)
         ↓
      Hungarian O2O 匹配 → 计算 Loss
      推理:直接 top-k score 出框,无 NMS
      
    • Backbone 输出:P3(1/8) 80×80×256, P4(1/16) 40×40×256, P5(1/32) 20×20×256(以 640 输入为例)

    • Encoder 后维度不变,序列总长度 ~ (80²+40²+20²)=8400

    • Decoder query:300(RT-DETRv2)或 100/300(D-FINE 可调)

    • 输出:Q × (C+1 cls + 4 box)

  • 模块 RT-DETRv2 / D-FINE 原有设计 DEIM 是否改动
    CNN 骨干 ResNet / HGNetv2, ImageNet-1k 预训练 不动
    Hybrid Encoder CNN+self-attn, 多尺度 不动
    Decoder + query init Top-k from encoder, deformable attn 不动
    匹配 & Loss Hungarian O2O + VFL(cls) + L1+GIoU(reg) Dense O2O(数据层)+ MAL(loss 层)
  • Dense O2O 插在数据增强层:mosaic(4 图拼 1)、mixup(2 图叠加)→ 单图 GT 数 N 从 avg~10 提到 ~25(Tab.12)。匹配算法本身还是匈牙利 O2O,M_i=1 不变,变的是 N

  • MAL 插在 cls loss 计算处:把 VFL 换掉,reg loss 仍是 L1+GIoU 不变。

  • 设计取舍:作者刻意不动架构 → 推理零开销、可插拔、兼容任何 O2O DETR。

Related Work

  • transformer (DETR)的目标探测代表了从传统CNN架构到transformer 的转变。通过使用匈牙利算法进行一对一匹配,DETR消除了手工制作NMS作为后处理的需要,并实现了端到端的对象检测。然而,它的缺点是收敛速度慢,计算量大。

  • 增加阳性样本。一对一匹配将每个目标限制为单个阳性样本,提供的监督远少于O2M,并且阻碍了优化。一些研究探索了在O2O框架内增加监管的方法。例如,DETR groups 采用“groups”的概念来近似O2M。它使用K组查询,其中K > 1,并在每组内独立执行O2O匹配。这允许每个目标被分配K个阳性样本。然而,为了防止组之间的通信,每个组需要单独的解码器层,最终导致K个并行解码器。

  • H-DETR 中的混合匹配方案类似于DETR组。Co-DETR 揭示了一对多分配方法有助于模型学习更多独特的特征信息,因此它提出了一种协作混合分配方案,通过一对多标签分配的辅助头来增强编码器表示,如更快的R-CNN 和FCOS 。现有的方法旨在增加每个目标的阳性样本数量,以加强监督。相比之下,我们的密集O2O探索了另一个方向——增加每个训练图像的目标数量,以有效地促进监督。与需要额外解码器或磁头并因此增加训练资源消耗的现有方法不同,我们的方法是无计算的。

  • 优化低质量的匹配。稀疏和随机初始化的查询缺乏与目标的空间对齐,导致高比例的低质量匹配,这阻碍了模型收敛。一些方法已经将先验知识引入到查询初始化中,例如锚查询、DAB-DETR 、DN-DETR 和密集相异查询。最近,受两阶段范例的启发,DINO 和RTDETR 等方法利用编码器密集输出的顶级预测来细化解码器查询。这些策略使得更接近目标区域的查询初始化更加有效。

  • 然而,低质量的匹配仍然是一个重大挑战。在RT-DETR 中,采用变焦距损失(VFL)来降低分类置信度和盒子质量之间的不确定性,从而增强实时性能。然而,VFL主要是为低质量匹配较少的传统检波器设计的,并侧重于高IoU优化,而低IoU匹配由于其最小和平坦的损耗值而未得到充分优化。在这些高级初始化的基础上,我们引入了可匹配性感知损失,以更好地优化不同质量水平的匹配,从而显著增强密集O2O匹配的有效性。

  • 降低计算成本。标准的注意力机制涉及密集计算。为了提高效率和促进与多尺度特征的交互,已经开发了几种高级注意,例如可变形注意、多尺度可变形注意、动态注意和级联窗口注意。此外,最近的研究集中在创造更有效的编码器。例如,Lite DETR 引入了一个编码器模块,在高级和低级功能之间交错更新,而RTDETR 在其编码器中结合了CNN和self-attention。

  • 两种设计都显著降低了资源消耗,尤其是RT-DETR。RT-DETR是DETR框架内的第一个实时目标检测模型。基于这种混合编码器,D-FINE 通过额外的模块进一步优化RTDETR,并通过迭代更新概率分布而不是预测固定坐标来优化回归过程。这种方法使D-FINE能够在延迟和性能之间实现更有利的平衡,略微超过最近的YOLO模型。利用实时检测器中的这些进步,我们的方法在降低训练成本的情况下实现了令人印象深刻的性能,在实时对象检测方面远远优于YOLO模型

Method

论点 A:Dense O2O——通过增大目标数 N 达到 O2M 级监督密度,且零额外算力。 论据:Fig.3 对比一 epoch 内 Hungarian(O2O)与 SimOTA(O2M)的正样本分布,O2O 锐峰 <10,O2M 宽分布可达 80+;Fig.6 显示加入 Dense O2O 后正样本显著增多;Fig.2c 示意 4 图拼接后 1 目标变 4 目标、4 正样本。

论点 B:MAL——改进 VFL,让低质量匹配获得非平凡梯度。 论据:式(4) 用 q^γ 替代 q 作正样本目标、移除 α;Fig.4 低 IoU=0.05 时 MAL 损失随置信度上升更陡、VFL 几乎不变,高 IoU=0.95 时两者相当;Fig.2e/f 的 loss landscape 对比。

论点 C:两者协同——数量与质量互补。 论据:Tab.6 消融,RT-DETRv2-R50 baseline 72ep=53.4 AP;加 Dense O2O 36ep 即达 53.6;再加 MAL 升至 53.9;D-FINE-L 同样 72→36ep 由 54.0→54.6。

论点 D:训练调度三件套。 Data Aug Warmup(前 4 epoch 关闭高级增强以简化注意力学习)+ FlatCosine LR + 训练 50% 后关闭 Dense O2O + 末 2 epoch 关增强。

Preliminaries
  • O2M vs. O2O。O2M分配策略在传统的对象检测器中被广泛采用,并且它的监督可以表述如下:

    • l o s s = ∑ i = 0 N ∑ j = 0 M i f ( ˆ y i j , y i ) , ( 1 ) loss = \sum^N_{i=0}\sum^{M_i}_{j=0} f(ˆyij , yi), (1) loss=i=0Nj=0Mif(ˆyij,yi),(1)

    • 其中,N是目标总数,Mi是第I个目标的匹配数,yˇij表示第I个目标的第j个匹配,yi表示第I个 GT 标签,f是损失函数。O2M通过增加Mi来增强监督,即,向每个目标分配多个查询(Mi > 1)并因此提供密集监督,如图2a所示。相反,O2O分配仅将每个目标与通过匈牙利算法确定的单个最佳预测配对,这最小化了平衡分类和定位误差的成本函数(图2b)。O2O可以被认为是O2M的一个特例,其中所有目标的Mi = 1

    • 在这里插入图片描述

    • 图二。我们提议的DEIM的插图。黄色、红色和绿色方框分别代表GT、阳性和阴性样品。“位置”表示阳性样本。上图:我们的密集O2O(图2c)可以提供与O2M(图2a)相同质量的阳性样本。下图:对于低质量匹配,使用VFL [40]和MAL时的损失值由⋆标记,表明MAL可以更有效地优化那些情况。

  • 焦点损失。引入焦点损失(FL) 是为了防止在训练过程中大量的易负样本淹没检测器,而是将焦点转向一组稀疏的硬样本。它作为DETRs 中的默认分类损失,定义如下:

    • F L ( p , y ) = ( − α ( 1 − p ) γ l o g ( p ) y = 1 − ( 1 − α ) p γ l o g ( 1 − p ) y = 0 , ( 2 ) FL(p, y) = ( −α(1 − p) γ log(p) y = 1 −(1 − α)p γ log(1 − p) y = 0, (2) FL(p,y)=(α(1p)γlog(p)y=1(1α)pγlog(1p)y=0,(2)

    • 其中y ∈ {0,1}指定地面实况类,p ∈ [0,1]表示前景类的预测概率。参数γ控制简单样本和困难样本之间的平衡,而α调整前景类和背景类之间的权重。在FL中,只考虑样本的类别和置信度,而不考虑包围盒的质量,即定位。

Improving matching efficiency: Dense O2O
  • 一对一 (O2O) 匹配方案通常用于基于 DETR 的模型,将每个目标仅与一个预测查询进行匹配。这种方法通过匈牙利算法实现,允许端到端训练并消除对 NMS 的需要。然而,O2O 的一个关键限制是,与 SimOTA 等传统的一对多 (O2M) 方法相比,它生成的正样本要少得多。这会导致监督稀疏,从而减慢训练过程中的收敛速度

  • 为了更好地理解这个问题,我们在 MS COCO 数据集 上使用 ResNet50 主干网络训练 RTDETRv2 。我们比较了匈牙利 (O2O) 和 SimOTA (O2M) 策略产生的阳性匹配数量。如图 3a 所示,O2O 在每张图像 10 个正匹配项下产生尖锐的峰值,而 O2M 生成更广泛的分布,具有更多的正匹配项,有时单张图像的正样本超过 80 个。图 3b 进一步强调,在极端情况下,SimOTA 生成的匹配数量大约是 O2O 的 10 倍。这表明 O2O 的正匹配较少,可能会减慢优化速度。

    • 在这里插入图片描述

    • 图3。锚/查询匹配比较。使用一对多(SimOTA )和一对一(匈牙利)匹配方案比较一个COCO时期中每个图像的匹配锚点/查询的数量。

  • 我们建议密集 O2O 作为一种有效的替代方案。该策略保留了O2O的一对一匹配结构(Mi = 1),但增加了每张图像的目标数量(N),实现更密集的监督。例如,如图2c所示,我们将原始图像复制到四个象限并将它们组合成单个合成图像,保持原始图像尺寸。这将目标数量从 1 个增加到 4 个,提高了等式 1 中的监督水平。 同时保持匹配结构不变。密集的 O2O 实现了与 O2M 相当的监管水平,但没有增加复杂性和计算开销

  • find . -print | awk -F/ '{for(i=1;i<NF-1;i++) printf("│   "); if(NF>1) printf("├── "); print $NF}'
    
    find . -maxdepth 2 -print | awk -F/ '{for(i=1;i<NF-1;i++) printf("│   "); if(NF>1) printf("├── "); print $NF}'
    
    find . -maxdepth 2 -type d -print | awk -F/ '{for(i=1;i<NF-1;i++) printf("│   "); if(NF>1) printf("├── "); print $NF}'
    
    find . -maxdepth 4 -print | sort | awk -F/ '
    function flush_omitted() {
      if(omitted > 0) {
        for(i=1; i<prev_depth-1; i++) printf("│   ")
        printf("├── ... (还有 %d 项)\n", omitted)
      }
    }
    
    {
      # 当前项的父目录
      parent = $1
      for(i=2; i<NF; i++) parent = parent "/" $i
      if(parent == "") parent = "."
      depth = NF   # 深度(字段数)
    
      # 如果父目录改变,打印前一个目录的省略信息,然后重置
      if(parent != prev_parent) {
        flush_omitted()
        count = 0
        omitted = 0
        prev_parent = parent
        prev_depth = depth
      }
    
      count++
      if(count <= 5) {
        for(i=1; i<depth-1; i++) printf("│   ")
        if(depth>1) printf("├── ")
        print $NF
      } else {
        omitted++
      }
    }
    END {
      flush_omitted()
    }'
    
Improving matching quality: Match ability Aware Loss
  • VFL 的局限性。基于 FL 构建的 VariFocal Loss (VFL) 已被证明可以提高目标检测性能,特别是在 DETR 模型中 。 VFL 损失表示为:

    • V F L ( p , q , y ) = ( − q ( q l o g ( p ) + ( 1 − q ) l o g ( 1 − p ) ) q > 0 − α p γ l o g ( 1 − p ) q = 0 , ( 3 ) VFL(p, q, y) = ( −q(q log(p) + (1 − q) log(1 − p)) q > 0 −αpγ log(1 − p) q = 0, (3) VFL(p,q,y)=(q(qlog(p)+(1q)log(1p))q>0αpγlog(1p)q=0,(3)

    • 其中 q 表示预测边界框与其目标框之间的 IoU。对于前景样本(q > 0),目标标签设置为q,而背景样本(q = 0)的目标标签为0。VFL结合了IoU来提高DETR中查询的质量。

  • 然而,VFL 在优化低质量比赛时有两个关键限制:i)。低质量的匹配。 VFL 主要关注高质量比赛(高 IoU)。对于低质量匹配(低 IoU),损失仍然很小,从而阻止模型细化对低质量框的预测。然而,对于低质量匹配(IoU 较低,例如图 2d),损失仍然很小(在图 2e 中用 ⋆ 标记)。 ii) 阴性样本。 VFL将没有重叠的匹配视为负样本,这减少了正样本的数量并限制了有效的训练

  • 由于传统检测器具有密集的锚点和一对多的分配策略,这些问题对于传统检测器来说不太成问题。然而,在 DETR 框架中,查询稀疏且匹配更加严格,这些限制变得更加明显。

  • 可匹配性感知损失。为了解决这些问题,我们提出了可匹配性感知损失(MAL),它扩展了 VFL 的优势,同时减轻了其缺点。 MAL将匹配质量直接纳入损失函数中,使其对低质量匹配更加敏感。 MAL 的公式为:

    • M A L ( p , q , y ) = ( − q γ l o g ( p ) − ( 1 − q γ ) l o g ( 1 − p ) y = 1 − p γ l o g ( 1 − p ) y = 0. ( 4 ) MAL(p, q, y) = ( −q γ log(p) − (1 − q γ ) log(1 − p) y = 1 −p γ log(1 − p) y = 0.(4) MAL(p,q,y)=(qγlog(p)(1qγ)log(1p)y=1pγlog(1p)y=0.(4)
  • 与 VFL 相比,我们引入了一些小但重要的变化。具体来说,目标标签从 q 修改为 q γ ,简化了正负样本的损失权重,并删除了用于平衡正负样本的超参数 α 。这一变化有助于避免过分强调高质量的盒子,并改善整体训练过程。从 VFL(图 2e)和 MAL(图 2f)之间的损耗情况可以很容易地看出这一点。请注意,第 4.5 节中提供了 γ 的影响。

  • 与 VFL 的比较。我们比较了 MAL 和 VFL 在处理低质量和高质量比赛方面的情况。在低质量匹配的情况下(IoU = 0.05,图 4a),与几乎保持不变的 VFL 相比,随着预测置信度的增长,MAL 显示损失急剧增加。对于高质量比赛(IoU = 0.95,图 4b),MAL 和 VFL 表现相似,证实 MAL 提高了训练效率,而不会影响高质量比赛的性能。

    • 在这里插入图片描述

    • 图4。VFL与 MAL 的比较。VFL和我们的MAL在低质量(IoU = 0.05,图4a)和高质量(IoU = 0.95,图4b)匹配情况下的比较。

  • """DEIM 参考实现(论文解读工程落地与数学验证),仅依赖 numpy。"""
    import numpy as np
    
    def focal_loss(p, y, alpha=0.25, gamma=2.0, eps=1e-7):
        p = np.clip(p, eps, 1 - eps)
        pos = -alpha * (1 - p) ** gamma * np.log(p)
        neg = -(1 - alpha) * p ** gamma * np.log(1 - p)
        return np.where(y == 1, pos, neg)
    
    def varifocal_loss(p, q, alpha=0.75, gamma=1.5, eps=1e-7):
        p = np.clip(p, eps, 1 - eps)
        pos = -alpha * (q * np.log(p) + (1 - q) * np.log(1 - p))
        neg = -alpha * p ** gamma * np.log(1 - p)
        return np.where(q > 0, pos, neg)
    
    def mal(p, q, gamma=1.5, eps=1e-7):
        p = np.clip(p, eps, 1 - eps)
        pos = -(q ** gamma * np.log(p) + (1 - q ** gamma) * np.log(1 - p))
        neg = -p ** gamma * np.log(1 - p)
        return np.where(q > 0, pos, neg)
    
    def box_cxcywh_to_xyxy(b):
        cx, cy, w, h = b[..., 0], b[..., 1], b[..., 2], b[..., 3]
        return np.stack([cx-0.5*w, cy-0.5*h, cx+0.5*w, cy+0.5*h], -1)
    
    def iou_xyxy(a, b):
        A = a[:, None, :]; B = b[None, :, :]
        inter = (np.maximum(0.0, np.minimum(A[...,2], B[...,2]) - np.maximum(A[...,0], B[...,0]))
                * np.maximum(0.0, np.minimum(A[...,3], B[...,3]) - np.maximum(A[...,1], B[...,1])))
        aa = (A[...,2]-A[...,0])*(A[...,3]-A[...,1]); ab = (B[...,2]-B[...,0])*(B[...,3]-B[...,1])
        return inter / (aa + ab - inter + 1e-7)
    
    def hungarian_match_greedy(pred_logits, pred_boxes, tgt_labels, tgt_boxes,
                               cost_class=2.0, cost_bbox=5.0, cost_giou=2.0):
        cost_cls = -pred_logits[:, tgt_labels]
        cost_l1 = np.abs(pred_boxes[:, None, :] - tgt_boxes[None, :, :]).sum(-1)
        iou = iou_xyxy(box_cxcywh_to_xyxy(pred_boxes), box_cxcywh_to_xyxy(tgt_boxes))
        cost_giou = -(iou - (1 - iou))
        C = cost_class*cost_cls + cost_bbox*cost_l1 + cost_giou*cost_giou
        row, col, used = [], [], set()
        for i in range(C.shape[0]):
            for j in np.argsort(C[i]):
                if j not in used: used.add(int(j)); row.append(i); col.append(int(j)); break
        return np.array(row), np.array(col)
    
    def demo_loss_landscape():
        print("== MAL vs VFL loss landscape (Fig.4 verification) ==")
        ps = np.linspace(0.01, 0.99, 50)
        for iou, tag in [(0.05, "low-quality"), (0.95, "high-quality")]:
            v = varifocal_loss(ps, np.full_like(ps, iou))
            m = mal(ps, np.full_like(ps, iou))
            idx = int(np.argmin(np.abs(ps - 0.9)))
            print(f"  IoU={iou:>4} [{tag:12}] VFL[p=.9]={v[idx]:.4f} MAL[p=.9]={m[idx]:.4f} "
                  f"dL(p .1->.9) VFL={v[-1]-v[0]:+.4f} MAL={m[-1]-m[0]:+.4f}")
    
    if __name__ == "__main__":
        demo_loss_landscape()
        np.random.seed(0)
        Q, C = 6, 3
        logits = np.random.rand(Q, C); logits /= logits.sum(1, keepdims=True)
        boxes = np.random.rand(Q, 4); tgt = np.random.rand(3, 4)
        r, c = hungarian_match_greedy(logits, boxes, np.array([0,1,2]), tgt)
        print("match rows->cols:", list(zip(r.tolist(), c.tolist())))
    
  • DEIM 复用 RT-DETR/D-FINE 流水线,只在数据侧、损失侧、调度侧插入改动。640×640 输入,N_q=300 query:

  • Image (B,3,640,640)
      |  Backbone (ResNet50/101 或 HGNetv2)
      v  C3(80x80) C4(40x40) C5(20x20)
      |  Hybrid Encoder (RT-DETR)
      |   |- AIFI: 仅对 C5 做自注意力  -> 捕获高层语义
      |   +- CCFM: 跨尺度特征融合      -> 注入多尺度细节
      v  编码特征 + memory
      |  Decoder
      |   |- Query 初始化: encoder top-k 选址 (D-FINE 再 refine)
      |   |- Cross-Attention(query <-> memory)
      |   +- Self-Attention(query <-> query)
      v  N_q 个预测 (class_logits, box_cxcywh)
      |  Hungarian Matching (O2O)   <- DEIM 改动1: Dense O2O 增大 N_target
      v  Loss (cls + L1 + GIoU)      <- DEIM 改动2: cls 损失 VFL->MAL
      v  梯度回传                    <- DEIM 改动3: 训练调度
    

Experiments

Training details
  • 对于密集 O2O,我们应用马赛克增强 和混合增强 来为每个图像生成额外的正样本。这些增强的影响将在 4.5 节中讨论。我们使用 AdamW 优化器 在 MS-COCO 数据集 上训练我们的模型。使用标准数据增强,例如颜色抖动和缩小,如 RT-DETR 和 D-FINE 中所示。我们采用平坦余弦学习率调度器并提出一种新颖的数据增强调度器。在最初的几个训练周期(通常是四个周期)中使用数据增强预热策略来简化注意力学习

  • 在 50% 的训练周期后禁用 Dense O2O 会带来更好的结果。在 RT-DETRv2 之后,我们在最后两个时期关闭了数据增强。我们的 LR 和 DataAug 调度程序如图 5 所示。我们的主干网在 ImageNet1k 上进行了预训练。我们在分辨率为 640 × 640 的 MS-COCO 验证集上评估我们的模型。补充材料中提供了有关超参数的其他详细信息。

Comparisons with real-time detectors
  • 我们将我们的方法集成到D-FINE-L 和D-FINEX 中,构建我们的DEIM-D-FINE-L和DEIM-D-FINEX。然后,我们评估这些模型,并根据最先进的模型对其实时对象检测性能进行基准测试,包括YOLOv8 、YOLOv9 、YOLOv10 、YOLOv11 以及基于DETR的模型,如RT-DETRv2 和D-FINE 。表1 从时期、参数、GFLOPs、延迟和检测精度方面比较了这些模型。补充材料中包含了较小型号变体(S和M)的其他比较。

    • 在这里插入图片描述

    • 表1。与COCO val2017上的实时物体探测器的比较。通过将我们的方法集成到D-FINE-L 和DFINE-X 中,我们构建了DEIM-D-FINE-L和DEIM-D-FINE-X。我们将我们的方法与基于YOLO和基于DETR的实时对象检测器进行了比较。⋆表示NMS的调整置信度为0.01。

  • 我们的方法在训练成本、推理延迟和检测准确性方面优于当前最先进的模型,为实时对象检测设置了新的基准。请注意,D-FINE 是一项非常新的工作,它通过结合蒸馏和边界框细化增强了RT-DETRv2 的性能,使其成为领先的实时检测器。我们的DEIM进一步提升了D-FINE的性能,实现了0.7的AP增益,同时将训练成本降低了30%,并且没有增加推理延迟。在小目标检测中观察到最显著的改进,其中D-FINE-X 在用我们的方法训练时,如DEIM-D-FINE-X一样实现1.5 AP增益

  • 当直接与YOLOv11-X 比较时,我们的DEIM-D-FINE-L优于这种SoTA模型,实现了稍高的性能(54.7对54.1 AP),并将推理时间减少了20% (8.07 ms对10.74 ms)。虽然YOLOv10 使用混合O2M和O2O分配策略,但我们的模型始终优于YOLOv10,证明了密集O2O的有效性。

  • 尽管与其他基于DETR的模型相比,我们的方法在小物体检测方面有了显著的改进,但是与YOLO模型相比,我们的方法显示了小物体AP的轻微下降。例如,YOLOv9-E 在小对象上比D-FINEL 快大约1.4 AP,尽管我们的模型实现了更高的整体AP (56.5对55.6)。这一差距强调了DETR架构内小物体检测的持续挑战,并提出了进一步改进的潜在领域

Comparisons with ResNet -based DETRs
  • 大多数DETR研究使用ResNet 作为主干,为了能够全面比较现有的DETR变体,我们还将我们的方法应用于RTDETRv2 ,这是一种最先进的DETR变体。结果总结在表2中。与需要500个历元进行有效训练的原始DETR不同,包括我们在内的最新DETR变体在提高模型性能的同时减少了训练时间。我们的方法显示了最显著的改进,在仅仅36个时期后就超过了所有的变体。具体来说,DEIM在使用ResNet-50 和ResNet-101 主干的RT-DETRv2上减少了一半的训练时间,并分别增加了0.5和0.9的AP。此外,使用ResNet-50 主干,它比DINO-DeformableDETR 快2.7 AP。

    • 在这里插入图片描述

    • 表二。与基于ResNet的DETRs在COCO val2017上的比较。通过将我们的方法整合到ResNet50 和ResNet101 中,我们构建了DEIM-RT-DETRv2-R50和DEIM-RT-DETRv2-R101。我们将我们的方法与使用ResNet50 或ResNet101 作为主干的竞争性基于detr的对象检测器进行比较。

  • DEIM还显著增强了小物体探测能力。例如,在实现与RT-DETRv2 相当的整体AP的同时,我们的DEIM-RT-DETRv2-R50在小物体上超过RT-detrv 2 1.3 AP。对于更大的ResNet101主干,这种改进甚至更明显,其中我们的DEIM-RT-DETRv2-R101在小对象上比RT-DETRv2-R101快2.1 AP。将训练扩展到72个时期进一步提高了整体性能,特别是对于ResNet-50主干,表明较小的模型受益于额外的训练。

Comparisons on CrowdHuman
  • CrowdHuman 是一个基准数据集,旨在评估密集人群场景中的对象检测器。按照D-FINE中提供的配置,我们将D-FINE和我们提出的方法应用于CrowdHuman数据集。如表3中所示,我们的方法(使用DEIM增强的D-FINE-L)比D-FINE-L显著提高了1.5 AP。特别是,我们的方法在小对象(AP)和高质量检测(AP75)上实现了显著的性能提升(提高3%以上),证明了其在挑战性场景中更准确地检测对象的能力。此外,该实验强调了DEIM在不同数据集上的强大泛化能力,证实了其鲁棒性。
    • 在这里插入图片描述

    • 表3。比较的D-FINE和当与我们的DEIM对CrowdHuman 。两者都经过120个纪元的训练。

Analysis
  • 在以下研究中,我们使用RT-DETRv2 与ResNet50 配对进行实验,并报告在MS-COCO val2017上的性能,除非另有说明。

  • 实现密集O2O的方法。我们探索了两种实现密集O2O的方法:mosaic 和mixup 。Mosaic是一种数据扩充,将四幅图像合并为一幅,而mixup以随机比例叠加两幅图像。这两种方法都有效地增加了每幅图像的目标数量,增强了训练过程中的监督。

  • 如表4中所示。与没有目标增强的训练相比,mosaic和mixup都导致12个时期后的显著改善,突出了密集O2O的有效性。此外,结合mosaic和mixup加速了模型收敛,进一步强调了增强监督的好处。我们进一步跟踪了一个训练时期内每幅图像的阳性样本数,结果如图6所示。相比传统O2O,密集O2O显著增加了正面样本。

    • 在这里插入图片描述

    • 表4。镶嵌和混合增强策略不同组合的密集O2O方法的比较。概率值表示在训练期间在每个小批量中应用镶嵌和混合的可能性。

  • 总体而言,密集O2O通过增加每个图像的目标数来加强监管,从而加快模型收敛。Mosaic和mixup是实现这一目标的简单、计算高效的技术,它们的有效性表明了在训练期间探索其他方法来增加目标数量的进一步潜力。

  • MAL中γ的影响(公式4).表5中的结果显示了24个时期后不同γ值对MAL的影响。基于这些实验,我们根据经验将γ设置为1.5,因为它会产生最佳性能。

    • 在这里插入图片描述

    • 表5。MAL中γ的影响(公式4).我们在COCO val2017上报告了24个时期的性能。

  • 密集O2O和MAL的有效性。表6展示了两个核心组件的有效性:密集O2O和MAL。密集O2O显著加快了模型收敛,仅用36个时期就实现了与基线相似的性能,而原始模型需要72个时期。当与MAL结合时,我们的方法进一步提高了性能。这种改进在很大程度上是由更好的盒子质量推动的,这与我们优化低质量匹配以提高高质量盒子预测的目标相一致。总体而言,密集O2O和MAL在RT-DETRv2和DFINE上持续提供性能增益,证明了它们的健壮性和可推广性

    • 在这里插入图片描述

    • 表6。密集O2O和MAL的冲击。我们用RT-DETRv2-R50 和D-FINE-L 进行实验。

  • 训练速度。我们提供了一个使用Mosaic的高效实现,在批处理中进行缓存和混合。表7显示了单个4090 GPU上的一个历元训练时间,其中DEIM几乎与基线一样快(1.183比1.181),并且收敛所需的训练时间更少(71比85小时)。这突出了我们的方法在保持效率的同时提高了收敛性。

    • 在这里插入图片描述

    • 表7。以GPU小时为单位的训练时间。

  • 从对象365微调。我们直接采用来自D-FINE的预训练的Object365权重,并比较使用和不使用DEIM的微调结果。如表8中所示。DEIM用更少的微调时期获得更好的性能。它进一步验证了DEIM提供一致的收益,即使在较大的数据集上进行预训练。

    • 在这里插入图片描述

    • 表8。Object365预训练的微调结果。

Conclusion

  • 在这篇论文中,我们提出了DEIM,一种通过改进匹配来加速基于DETR的实时目标检测器的收敛的方法。DEIM集成了密集的O2O匹配,增加了每幅图像的阳性样本数,与MAL相结合,MAL是一种新的损失,旨在优化不同质量的匹配,特别是增强低质量的匹配。这种组合大大提高了训练效率,使DEIM在更少的时期内取得了优于YOLOv11等型号的成绩。DEIM展示了相对于RT-DETR和D-FINE等SoTA DETR模型的明显优势,显示了在检测准确性和训练速度方面的可测量收益,而没有牺牲推理延迟。这些特性使DEIM成为实时应用的高效解决方案,具有进一步完善和应用于其他高性能检测任务的潜力。

Supplementary Material

  • 数据集和指标。我们在COCO 数据集上评估我们的方法,在train2017上训练DEIM,并在val2017上验证它。报告了标准COCO指标,包括AP(在0.50至0.95的IoU阈值上平均,步长为0.05)、AP50、AP75和不同对象规模的AP:APS、APM和APL。

  • 实施细节。我们使用D-FINE 和RT-DETRv2 框架实现并验证了我们的方法。大多数超参数遵循其原始设置,不同之处详见表9 和Tab 10。受RTMDet 中的FlatCosine LR调度器的启发,我们提出了一种适用于密集O2O的新型数据扩充调度器。DETRs中的注意机制对于提取精确的目标特征用于定位和分类是至关重要的。然而,在没有归纳偏见的情况下从零开始学习注意力可能具有挑战性。为了减轻这种情况,我们引入了数据增强预热策略,称为DataAug预热,它通过在初始时期禁用高级数据增强来简化学习。图5示出了用于60个训练时期的平余弦LR和建议的DataAug调度器的例子。

    • 在这里插入图片描述

    • 图5。我们提出的用于学习速率和数据扩充调度器的新训练方案的示例。

    • 在这里插入图片描述

    • 表9。用DEIM训练的D-FINE模型的不同超参数。

    • 在这里插入图片描述

    • 表10。用DEIM训练的RT-DETRv2模型的不同超参数。

Comparison with Lighter YOLO Detectors
  • 我们在表11中给出了与更轻量级实时模型(S和M尺寸)的比较结果。基于强大的实时检测器RTDETRv2 和D-FINE ,我们的DEIM实现了全面的重大改进。值得注意的是,在RTDETRv2中,所有三种型号都显示出大约1 AP的改进,其中DEIM-RT-DETRv2-M⋆实现了显著的1.3 AP增益。与其他方法相比,我们的方法实现了最新的sota 效果。
Additional Results
  • 小修改的有效性。我们对D-FINE-L和D-FINE-X进行了一些小的修改,包括解冻主干中的BN层,采用FlatCosine LR调度器,以及用路斯替换解码器激活功能。经过36个时期的训练后,我们观察到这些变化对D-FINE-L没有影响,但使D-FINEX的AP提高了0.1(55.4比55.5)。这种配置被用作我们实验的新基线。

  • 有/无密集O2O之间的阳性样本数。在一个时期的训练中,我们比较了使用和不使用密集O2O的相同训练图像中的阳性样本的数量,如图6所示。加入密集O2O后,阳性样本数显著增加。这进一步支持了我们关于密集O2O有效增强监管的主张。

    • 在这里插入图片描述

    • 图6。#在一个训练纪元中有和没有密集O2O的正面样本。基数表示没有密集O2O。

  • 阳性样本数量的研究。我们通过修改密集O2O来调整训练过程中每幅图像的平均对象数。如表12中所示。当该数字从10(无密集O2O)增加到25(默认密集O2O)时,性能会显著提高,但在50(最大密集O2O)时会下降。这种下降很可能是由于正负比率的不平衡以及太多对象导致的数据分布偏移。值得注意的是,平均有25个对象符合本研究中使用的默认实验设置,对应于默认的密集O2O配置。

  • 训练与验证准确性。如表12中所示。DEIM实现了较高的验证精度和略低的训练精度,表明训练集上的过拟合减少,对新样本的适应性提高。

    • 在这里插入图片描述

    • 图7。D-FINE-L与DEIM的定性比较。在每个成对的图像中,左侧来自D-FINE-L,而右侧由DEIM-D-FINE-L预测(得分阈值= 0.5)。

Visualizations
  • 我们在图7中给出了定性比较结果。这些结果表明,DEIM有效地解决了D-FINE-L面临的两个关键问题:高置信度重复预测和假阳性。例如,在顶行中,单个风筝被错误地分配了四个高度重叠的边界框,每个都具有高置信度得分。此外,如最下面一行所示,D-FINEL将一个插座和一个壁挂式对象错误分类为时钟,而未能检测到瓶子。通过在训练过程中引入DEIM,探测器成功解决了这些挑战。这种可视化突出了DEIM带来的显著进步,强调了其提高检测准确性的潜力。

对比传统检测框架的本质改变

  • vs YOLO O2M:DEIM 仍是无 NMS 的 O2O,但训练时通过增 N 逼近 O2M 的监督密度,推理保持干净。
  • vs Group/Co-DETR:DEIM 零额外 decoder / head,mosaic 是"免费"的(COCO 上已标配)。
  • vs 原始 DETR:DEIM 不是改 query 初始化(那是 DINO/RT-DETR 干的事),而是改"每图有几个 GT 可供匹配"。

完整严谨数学推导(底层理论支撑)

1. O2O 二分图匈牙利匹配

设预测集 Y ^ = { y ^ i } i = 1 Q \hat Y=\{\hat y_i\}_{i=1}^Q Y^={y^i}i=1Q,GT 集 Y = { y j } j = 1 N Y=\{y_j\}_{j=1}^N Y={yj}j=1N(Q≥N,pad ∅)。 Hungarian 求解: σ ^ = a r g min ⁡ σ ∈ S Q ∑ i = 1 Q L m a t c h ( y σ ( i ) , y ^ i ) \hat σ=arg\min_{σ∈SQ}∑_{i=1}^QL_{match}(yσ(i),\hat y_i) σ^=argminσSQi=1QLmatch(yσ(i),y^i)

匹配代价(RT-DETRv2 默认): L m a t c h ( y i , y ^ j ) = λ c l s ⋅ C E ( p j , c i ) + λ l 1 ∥ b j − b ^ i ∥ 1 + λ g i o u ⋅ G I o U ( b j , b ^ i ) L_{match}(y_i,\hat y_j)=λcls⋅CE(p_j,c_i)+λ_{l_1}∥b_j−\hat b_i∥_1+λgiou⋅GIoU(b_j,\hat b_i) Lmatch(yi,y^j)=λclsCE(pj,ci)+λl1bjb^i1+λgiouGIoU(bj,b^i)

匹配完成后,训练 loss 只对 matched pair 算 cls+reg,其余 query 算负类

2. Dense O2O 的监督密度公式(论文 Eq.1 视角)

O2M 原形式: l o s s = ∑ i = 1 N ∑ j = 1 M i f ( y ^ i j , y i ) loss=∑_{i=1}^N∑^{M_i}_{j=1}f(\hat y_{ij},y_i) loss=i=1Nj=1Mif(y^ij,yi)

O2O 是 Mi=1特例。Dense O2O 保持 Mi=1,但把 N 通过 mosaic/mixup 放大 → 总正样本数 = N(原先)× 拼图倍数。Fig.3 极端 O2M 是 O2O 的 ~10×,Dense O2O(mosaic=4) 约 4×,再叠 mixup 可更高。

3. VFL vs MAL 完整推导(重点)

VFL V F L ( p , q , y ) = { − q [ q l o g p + ( 1 − q ) l o g ( 1 − p ) ] , q > 0 ( f g ) − α p γ l o g ( 1 − p ) , q = 0 ( b g ) VFL(p,q,y)=\left\{\begin{matrix} −q[qlogp+(1−q)log(1−p)], & q>0 (fg) \\ −αp^γlog(1−p), & q=0 (bg) \end{matrix}\right. VFL(p,q,y)={q[qlogp+(1q)log(1p)],αpγlog(1p),q>0(fg)q=0(bg) 其中 q = I o U ( b p r e d , b g t ) q=IoU(b_{pred},b_{gt}) q=IoU(bpred,bgt),p是前景置信。FG 项展开看:target = q,weight = q → 等价于用 q 同时当 target 当 weight。

  • 高 q(高 IoU):q≈1,退化为 −logp,强推 cls。

  • 低 q(低 IoU,如 0.05):q 很小 → loss 值本身小 + weight 也小 → 梯度几乎消失(Fig.2e 星标)。

MAL(论文 Eq.4):$MAL(p,q,y)=\left{\begin{matrix}
−qγlogp−(1−qγ)log(1−p), & y=1\
−p^γlog(1−p), & y=0
\end{matrix}\right. $ 改写 fg 项为标准 BCE 形式 M A L f g = − [ q γ l o g p + ( 1 − q γ ) l o g ( 1 − p ) ] MAL_{fg}=−[q^γlogp+(1−q^γ)log(1−p)] MALfg=[qγlogp+(1qγ)log(1p)] 即 target = qγ(而非 VFL 的 q),且 weight 被吸收进 target 里,不再有 VFL 那个额外的外层 q。对比关键点:

  • FG target:VFL 是 q,MAL 是 qγ。γ>1 时,低 q 被进一步压低 target,但注意——MAL 的梯度是 ∂ ∂ p = − ( q γ / p ) ⋅ p \frac∂{∂p}=−(q^γ/p)⋅p p=(qγ/p)p ?我们直接对 p 求导看低 IoU 敏感性:对 fg 项 L = − q γ l o g p − ( 1 − q γ ) l o g ( 1 − p ) : ∂ L ∂ p = − q γ p + 1 − q γ 1 − p L=−q^γlogp−(1−q^γ)log(1−p):\frac {∂L}{∂p}=−\frac{q^γ}p+\frac{1−q^γ}{1-p} L=qγlogp(1qγ)log(1p)pL=pqγ+1p1qγ

当 q→0+(低质匹配),qγ→0,梯度 → 1 1 − p \frac1{1−p} 1p1,即低质匹配被当作"接近 bg"推低置信,而不是 VFL 那样外层再乘 q 把梯度压没。这就是 Fig.4a IoU=0.05 时 MAL 曲线陡升的数学原因。

  • BG 项:MAL 和 Focal Loss bg 形式一致 −pγlog(1−p),去掉了 VFL 的 α → 少一个超参。

  • 正负样本定义:VFL 把"q=0(无 IoU 重叠)"单独当 bg;MAL 按 y=0/1 分(y=1 即该 query 被匈牙利判为正),IoU=0 但仍被匹配的 query 也会走 fg 分支 → 避免 VFL 把这部分"判 bg"浪费正样本(论文 3.3 第二段 ii)。

4. 端到端无 NMS 的数学依据

Set Prediction 视角:模型输出固定 Q 个预测,匈牙利已保证每个 GT 至多一个预测匹配,推理时只需按 score 阈值过滤 + 可选 top-k,理论上不会像 YOLO 那样同一 GT 对应多个 anchor 必须 NMS 消重。数学上 O2O 的 bijection 性质是 NMS-free 的根。

5. 位置编码与无 Anchor(基座 DETR 继承)

DEIM 沿用 RT-DETRv2 的 sinusoidal + learned 位置编码挂 encoder、decoder 用 object queries(D-FINE 用 encoder top-k 初始化替代可学习 query)。无手工 Anchor 的数学根因:query 通过 cross-attn 直接从 image feature 取点,box 由 MLP 直接回归 (cx,cy,w,h) 或 D-FINE 的 distribution refinement,不需要 Anchor box 作参考系。

数据侧(Dense O2O 的实现)

# 训练配置(DEIM 挂在 RT-DETRv2 / D-FINE 的 yaml 上)
train_pipeline:
  mosaic_prob: 0.5      # 每 batch 50% 走 4图拼接
  mixup_prob: 0.5       # 在 mosaic 基础上再叠 mixup,或独立 50%
  aug_warmup_epochs: 4  # 前 4 ep 关 mosaic/mixup,保 attention 稳定
  dense_o2o_off_epoch: 0.5  # 50% 训练进度后关 Dense O2O(Tab. 隐含 trick)
  • Mosaic:4 张图随机缩放后拼 2×2,GT box 坐标按象限平移 → N 变 ~4×(Tab.12 avg obj ~25)。Mixup:两张图按 λ∈[0.4,0.6] 叠加,GT 保留两套 → N 变 ~2×。缓存优化(Tab.7 单 epoch 1.183 vs 基线 1.181 GPU-hour):mosaic 结果 cache + batch 内 mixup,几乎零额外开销

  • import torch
    import torch.nn as nn
    
    class MAL(nn.Module):
        def __init__(self, gamma=1.5):
            super().__init__()
            self.gamma = gamma
    
        def forward(self, pred_score, iou, target):
            """
            pred_score: [B, Q, C] sigmoid 后置信, 这里取 foreground prob p
            iou:        [B, Q] 匈牙利匹配后的 IoU=q
            target:     [B, Q] 0/1, 是否被匹配为正(y)
            """
            p = pred_score.clamp(1e-6, 1-1e-6)
            q_gamma = iou.pow(self.gamma)
    
            # y==1: -q^γ log p - (1-q^γ) log(1-p)
            # y==0: -p^γ log(1-p)
            loss = target * ( - q_gamma * torch.log(p) - (1 - q_gamma) * torch.log(1 - p) ) \
                 + (1 - target) * ( - p.pow(self.gamma) * torch.log(1 - p) )
            return loss.mean()
    
  • 对比 VFL 实现:VFL fg 项是 -q * (q * log(p) + (1-q)*log(1-p)),多了一次 q 乘 → MAL 在数学上更干净,γ 一家独大。

不动架构 → 原生 DETR 的 300 query 上限、小目标弱、长序列 attn 贵这些问题 DEIM 一个都没碰。它只是让"训得更快+涨点",不是让"模型本身更强"。Dense O2O 有天花板:Tab.12 ~50 obj 反而掉,说明不是越密越好,mosaic 4 是 COCO 经验值,换数据集未必。MAL 仍依赖匈牙利输出的 IoU=q —— 如果匹配本身就错了(query 离 GT 很远被强行配对),q 很小 MAL 也救不了,根在 query 初始化不在 loss

两阶段 Faster R-CNN:RPN 生成候选框 + RoI pooling 二次分类,依赖手工 anchor、多阶段流水线、超参繁多、NMS 后处理不可微。单阶段 YOLO 用密集 anchor(通常 >8000)+ 一对多(O2M)分配(如 SimOTA),收敛快但每个目标产生多个重叠框,必须 NMS 去重。论文明确指出 NMS「introducing latency and instability」——置信度阈值与 IoU 阈值的微调既敏感又与数据分布耦合,是部署侧的顽疾。行业瓶颈可归纳为四点:anchor/先验框设计成本高;NMS 后处理非端到端、引入延迟与抖动;多阶段或多头流水线工程复杂;正样本分配策略(ATSS/SimOTA/OTA)各自为政、缺乏统一数学框架。

但在 DEIM 发表前,DETR 谱系存在两个公认空白:一是收敛极慢(原 DETR 需 500 epoch,COCO AP 仅 42);二是实时性不足,直到 RT-DETR(CVPR 2024)才出现首个实时 DETR,D-FINE(2024)再以分布回归优化精度。DEIM 正是在「实时 DETR 已可部署,但训练成本仍高」的节点切入。将 DETR 收敛慢归因为「匹配」的双重缺陷:

  • 匹配效率(数量):O2O 每个目标仅 1 个正样本,监督稀疏(Fig.3 显示 O2O 每图 <10 正样本,O2M 可达 80+,极端差 10 倍)。
  • 匹配质量(损失):稀疏且随机初始化的 query 缺乏空间对齐,产生大量「低 IoU + 高置信」的低质量匹配;现有 VFL 只惩罚高质量匹配,对低质量样本梯度近乎平坦。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐