DAB-DETR
DAB-DETR 是一款基于 Transformer 架构的目标检测开源模型,源自 ICLR 2022 获奖论文。它旨在解决经典 DETR 模型训练收敛缓慢、对位置信息利用不足等核心痛点。
传统 DETR 依赖抽象的内容向量作为查询(Query),而 DAB-DETR 创新性地提出使用“动态锚框”作为查询。该方法直接将边界框的坐标信息输入 Transformer 解码器,并在网络层间动态更新这些坐标。这种设计不仅引入了明确的位置先验知识,提升了查询与图像特征的匹配度,还允许模型利用框的宽高信息来调节位置注意力图。从原理上看,这相当于以级联方式执行软 ROI 池化,使模型能更快速地聚焦目标。
在同等设置下(如使用 ResNet50-DC5 骨干网络训练 50 个周期),DAB-DETR 在 MS-COCO 基准测试中取得了优于同类模型的检测精度(AP 达 45.7%),显著加速了训练过程。
这款工具非常适合计算机视觉领域的研究人员和算法开发者使用。如果你正在探索高效的 Transformer 检测方案,或希望深入理解检测模型中"Query"的机制并复现前沿成果,DAB-DETR 提供了清晰的代码实现和理论验证,是极具价值的参考项目。
使用场景
某自动驾驶团队正在开发城市道路感知系统,急需提升模型对密集车辆和行人的检测精度与训练效率。
没有 DAB-DETR 时
- 训练收敛极慢:传统 DETR 模型需要数百个 epoch 才能收敛,导致算法迭代周期长达数周,严重拖慢研发进度。
- 小目标漏检率高:由于缺乏显式的位置先验,模型在远距离行人或小型车辆的检测上表现不佳,容易丢失关键目标。
- 查询机制不直观:原有的内容查询(Content Query)难以直接关联物理坐标,开发者很难通过调整锚框来优化注意力机制。
- 特征匹配效率低:解码器难以快速定位感兴趣区域(ROI),导致在复杂拥堵场景下的推理稳定性不足。
使用 DAB-DETR 后
- 训练速度显著提升:利用动态锚框作为查询输入,模型在仅 50 个 epoch 内即可达到高精度,将研发迭代周期从数周缩短至几天。
- 小目标检测更精准:通过引入明确的坐标先验并逐层动态更新,大幅提升了模型对远处行人及小型车辆的召回率。
- 查询机制物理意义明确:直接将边界框坐标作为查询向量,使开发者能更直观地理解和调控模型的空间注意力分布。
- 级联池化效果更佳:实现了类似软 ROI 池化的级联处理,显著增强了复杂交通场景下的特征对齐能力与推理鲁棒性。
DAB-DETR 通过将动态锚框融入查询机制,从根本上解决了 Transformer 检测模型收敛慢和小目标感知弱的难题,让高精度实时感知落地成为可能。
运行环境要求
- Linux
需要 NVIDIA GPU,需编译 CUDA 算子,测试环境为 CUDA 11.1
未说明

快速开始
# DAB-DETR
这是我们ICLR 2022论文“DAB-DETR”的官方PyTorch实现。
最新动态
[2022年9月22日]:我们发布了一个工具箱detrex,其中包含了最先进的基于Transformer的目标检测算法。该工具箱包括性能更优的DINO模型。欢迎大家使用!
[2022年7月12日]:DINO的代码现已开放![DINO代码链接]。
[2022年6月]:我们发布了一种统一的目标检测与分割模型Mask DINO,在三大分割任务上均取得了最佳成绩(COCO实例分割排行榜AP为54.5,COCO全景分割排行榜PQ为59.4,ADE20K语义分割排行榜mIoU为60.8)!代码将在此处提供:MaskDINO代码链接。
[2022年5月28日]:DN-DETR的代码已在此处开放:DN-DETR代码链接!
[2022年5月22日]:我们发布了用于可视化推理结果的Notebook文件inference_and_visualize.ipynb。
[2022年4月14日]:我们发布了用于绘制类似DETR模型对比图的.pptx文件,供需要在论文中绘制模型架构图的研究者参考。
[2022年4月12日]:我们修复了文件datasets/coco_eval.py中的一个错误。CocoEvaluator类的参数useCats默认应设置为True。
[2022年4月9日]:我们的代码正式开源!
[2022年3月9日]:我们创建了一个仓库Awesome Detection Transformer,用于整理和展示关于目标检测与分割领域Transformer相关的工作。欢迎关注!
[2022年3月8日]:我们的新工作DINO在MS-COCO榜单上创造了新的记录,AP达到63.3%。[DINO代码链接]。
[2022年3月8日]:我们的新工作DN-DETR已被CVPR 2022接收![DN-DETR代码链接]。
[2022年1月21日]:我们的工作已被ICLR 2022接收。
摘要
本文提出了一种新颖的查询表示方法,即在DETR(DEtection TRansformer)中使用动态锚框,并深入探讨了查询在DETR中的作用。该方法直接将边界框坐标作为Transformer解码器的输入查询,并逐层动态更新这些坐标。采用边界框坐标不仅能够利用显式的先验位置信息来提升查询与特征之间的相似性,从而缓解DETR训练收敛缓慢的问题,还允许我们通过边界框的宽高信息来调节位置注意力图。这种设计清晰地表明,DETR中的查询可以被理解为以级联方式逐层执行软ROI池化操作。因此,在相同实验设置下,我们的方法在类似DETR的目标检测模型中取得了MS-COCO基准测试的最佳性能,例如使用ResNet50-DC5作为骨干网络并在50个epoch内训练时,AP可达45.7%。此外,我们还进行了大量实验来验证上述分析及所提方法的有效性。
模型

模型 zoo
我们提供了基于 R50 主干网络的模型,包括 DAB-DETR 和 DAB-Deformable-DETR(更多细节请参阅我们论文 附录 C)。
| 名称 | 主干网络 | 边界框 AP | 日志/配置文件/检查点 | 在 我们的论文中的位置 | |
|---|---|---|---|---|---|
| 0 | DAB-DETR-R50 | R50 | 42.2 | Google Drive | 清华云 | 表 2 |
| 1 | DAB-DETR-R50(3 pat)1 | R50 | 42.6 | Google Drive | 清华云 | 表 2 |
| 2 | DAB-DETR-R50-DC5 | R50 | 44.5 | Google Drive | 清华云 | 表 2 |
| 3 | DAB-DETR-R50-DC5-fixxy2 | R50 | 44.7 | Google Drive | 清华云 | 表 8、附录 H。 |
| 4 | DAB-DETR-R50-DC5(3 pat) | R50 | 45.7 | Google Drive | 清华云 | 表 2 |
| 5 | DAB-Deformbale-DETR (仅可变形编码器)3 |
R50 | 46.9 | 作为 DN-DETR 的基线 | |
| 6 | DAB-Deformable-DETR-R50-v24 | R50 | 48.7 | Google Drive | 清华云 | 扩展了表 5 和附录 C 中的结果。 |
注释:
- 1:带有 (3 pat) 标记的模型使用了多模式嵌入进行训练(详情请参阅 Anchor DETR 或我们的论文 https://arxiv.org/abs/2201.12329)。
- 2:“fixxy” 表示我们在训练过程中使用随机初始化的锚点,并且不更新其参数(更多细节请参阅我们论文 附录 H)。
- 3:DAB-Deformbale-DETR(仅可变形编码器)是我们 DAB-DETR 的多尺度版本。更多细节请参阅 DN-DETR。
- 4:此处的结果优于我们论文中的数值,因为我们训练时使用了不同的损失系数。具体细节请参考我们的配置文件。
使用方法
安装
我们以优秀的 DETR 项目作为代码库,因此对于 DAB-DETR 不需要额外的依赖。而对于 DAB-Deformable-DETR,则需要手动编译可变形注意力算子。
我们已在 python=3.7.3, pytorch=1.9.0, cuda=11.1 环境下测试过这些模型,其他版本也可能适用。
- 克隆本仓库
git clone https://github.com/IDEA-opensource/DAB-DETR.git
cd DAB-DETR
- 安装 PyTorch 和 torchvision
请按照 https://pytorch.org/get-started/locally/ 上的说明进行安装。
# 示例:
conda install -c pytorch pytorch torchvision
- 安装其他所需包
pip install -r requirements.txt
- 编译 CUDA 算子
cd models/dab_deformable_detr/ops
python setup.py build install
# 运行单元测试(应显示所有检查均为 True)
python test.py
cd ../../..
数据
请下载 COCO 2017 数据集,并按以下方式组织:
COCODIR/
├── train2017/
├── val2017/
└── annotations/
├── instances_train2017.json
└── instances_val2017.json
运行
我们以标准的 DAB-DETR-R50 和 DAB-Deformable-DETR-R50 为例,演示如何进行训练和评估。
使用我们的预训练模型进行推理
请参阅 inference_and_visualize.ipynb。
评估我们的预训练模型
从 此链接 下载我们的 DAB-DETR-R50 模型检查点,并执行以下命令。您预计最终的 AP 大约为 42.2。
对于我们的 DAB-Deformable-DETR(下载地址),预期的最终 AP 为 48.7。
# 对于 dab_detr:AP 为 42.2
python main.py -m dab_detr \
--output_dir logs/DABDETR/R50 \
--batch_size 1 \
--coco_path /path/to/your/COCODIR \ # 替换为您自己的 COCO 路径
--resume /path/to/our/checkpoint \ # 替换为您自己的检查点路径
--eval
# 对于 dab_deformable_detr:AP 为 48.7
python main.py -m dab_deformable_detr \
--output_dir logs/dab_deformable_detr/R50 \
--batch_size 2 \
--coco_path /path/to/your/COCODIR \ # 替换为您自己的 COCO 路径
--resume /path/to/our/checkpoint \ # 替换为您自己的检查点路径
--transformer_activation relu \
--eval
训练自己的模型
同样,你也可以在单个进程中训练我们的模型:
# 对于dab_detr
python main.py -m dab_detr \
--output_dir logs/DABDETR/R50 \
--batch_size 1 \
--epochs 50 \
--lr_drop 40 \
--coco_path /path/to/your/COCODIR # 将参数替换为你自己的COCO数据集路径
分布式运行
然而,由于训练耗时较长,我们建议在多设备上进行训练。
如果你计划在使用Slurm调度的集群上训练模型,以下是一个示例命令:
# 对于dab_detr:42.2 AP
python run_with_submitit.py \
--timeout 3000 \
--job_name DABDETR \
--coco_path /path/to/your/COCODIR \
-m dab_detr \
--job_dir logs/DABDETR/R50_%j \
--batch_size 2 \
--ngpus 8 \
--nodes 1 \
--epochs 50 \
--lr_drop 40
# 对于dab_deformable_detr:48.7 AP
python run_with_submitit.py \
--timeout 3000 \
--job_name dab_deformable_detr \
--coco_path /path/to/your/COCODIR \
-m dab_deformable_detr \
--transformer_activation relu \
--job_dir logs/dab_deformable_detr/R50_%j \
--batch_size 2 \
--ngpus 8 \
--nodes 1 \
--epochs 50 \
--lr_drop 40
最终的AP值应与我们的结果相近。(DAB-DETR为42.2,DAB-Deformable-DETR为48.7)。我们的配置文件和日志(参见model_zoo)也可作为参考。
注意:
- 结果对批量大小较为敏感。我们默认使用16(每张GPU 2张图像 × 8张GPU)。
或者在单节点上使用多进程运行:
# 对于dab_detr:42.2 AP
python -m torch.distributed.launch --nproc_per_node=8 \
main.py -m dab_detr \
--output_dir logs/DABDETR/R50 \
--batch_size 2 \
--epochs 50 \
--lr_drop 40 \
--coco_path /path/to/your/COCODIR
# 对于dab_deformable_detr:48.7 AP
python -m torch.distributed.launch --nproc_per_node=8 \
main.py -m dab_deformable_detr \
--output_dir logs/dab_deformable_detr/R50 \
--batch_size 2 \
--epochs 50 \
--lr_drop 40 \
--transformer_activation relu \
--coco_path /path/to/your/COCODIR
模型详解

类DETR模型对比
源文件可在这里找到。

链接
DINO:具有改进去噪锚框的DETR,用于端到端目标检测。
Hao Zhang*, Feng Li*, Shilong Liu*, Lei Zhang, Hang Su, Jun Zhu, Lionel M. Ni, Heung-Yeung Shum
arXiv 2022。
[论文] [代码]
DN-DETR:通过引入查询去噪加速DETR训练。
Feng Li*, Hao Zhang*, Shilong Liu, Jian Guo, Lionel M. Ni, Lei Zhang。
IEEE计算机视觉与模式识别会议(CVPR)2022。
[论文] [代码]
许可证
DAB-DETR采用Apache 2.0许可证发布。更多信息请参阅LICENSE文件。
版权所有 © IDEA。保留所有权利。
根据Apache许可证第2.0版(“许可证”)授权;除非符合许可证规定,否则不得使用这些文件。您可以在http://www.apache.org/licenses/LICENSE-2.0获取许可证副本。
除非适用法律要求或书面协议另有约定,否则根据“AS IS”基础分发的软件不提供任何形式的保证或条件,无论是明示还是暗示。有关特定语言的权限和限制,请参阅许可证条款。
引用
@inproceedings{
liu2022dabdetr,
title={{DAB}-{DETR}: Dynamic Anchor Boxes are Better Queries for {DETR}},
author={Shilong Liu and Feng Li and Hao Zhang and Xiao Yang and Xianbiao Qi and Hang Su and Jun Zhu and Lei Zhang},
booktitle={International Conference on Learning Representations},
year={2022},
url={https://openreview.net/forum?id=oMI9PjOb9Jl}
}
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。