论文要点
DEIM(DETR with Improved Matching for Fast Convergence)是一套面向实时目标检测的训练框架,核心目标很明确:在保留 DETR 系列端到端思路的前提下,把原本偏慢的收敛速度拉起来。
研究背景
目标检测一直是计算机视觉里的基础任务,在自动驾驶、机器人导航、无人机巡检这些场景里都离不开它。DETR 的思路很干净,直接用 Transformer 做端到端检测,通过匈牙利匹配完成一对一监督,省掉了手工设计的 NMS。不过,这套方案的短板也很突出——训练收敛慢,尤其在小目标场景里,学习效率不够理想。
DEIM 解决了什么问题
DEIM 主要围绕两个方向做改进:
- Dense O2O Matching:通过让一张图里出现更多目标实例,增加正样本密度,让训练信号更充足。论文里提到可以借助马赛克、混合增强这类常见数据增强手段,在不破坏一对一匹配框架的前提下扩大有效监督。
- MAL(Matchability-Aware Loss):针对不同质量的匹配样本设计更合理的损失权重,尤其照顾低质量匹配,让模型在训练早期也能更稳定地学到东西。

实验结论
论文实验显示,DEIM 能明显加快 DETR 系列的收敛,并在精度和训练效率之间取得更好的平衡。它和 RT-DETR、D-FINE 等实时检测器结合后,性能依然有竞争力,尤其在小目标检测上表现更突出。
在不额外依赖新数据的情况下,DEIM 训练出的实时模型已经能超过不少主流实时检测器。论文里给出的结果也说明,这套训练策略对'想要保留 DETR 思路,又不想忍受漫长训练周期'的场景很有吸引力。
基于 DEIM-D-FINE-S 训练 VisDrone2019 无人机数据集
这部分我直接用 DEIM-D-FINE-S 在 VisDrone2019 上做了一次实战。环境是 NVIDIA RTX 4090 24G,Python 3.8,PyTorch 2.3.1 + cu121。
数据集说明
VisDrone 是天津大学团队发布的无人机视角数据集,训练集、验证集、测试集规模分别为 6471、548、1610 张。原始标注里一共有 12 类,但其中'忽略区域'和 'others' 并不算有效目标,所以实际训练时只保留 10 个类别:
- pedestrian
- people
- bicycle
- car
- van
- truck
- tricycle
- awning-tricycle
- bus
- motor
为了省去繁琐的数据转换,这里直接使用已经整理好的 COCO 格式数据集进行训练。
环境安装
先建一个独立环境:
conda create -n deim python=3.8.13
安装 PyTorch 时,版本要求大于 2.0.1,这里直接用 2.3.1:
# CUDA 11.8
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 12.1
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia
# CPU Only
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 cpuonly -c pytorch


