Peterande/D-FINE
D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement [ICLR 2025 Spotlight]
D‑FINE – 基于细粒度分布精炼的实时目标检测
是什么 – D‑FINE 是基于 DETR(DEtection TRansformer)架构的一系列目标检测器。作者将传统的边界框回归重新诠释为 细粒度分布精炼(FDR)问题,并引入了 全局最优定位自蒸馏(GO‑LSD)模块。结果是,一系列模型(‑N, ‑S, ‑M, ‑L, ‑X)在 NVIDIA T4 上实现了数百 FPS 的实时速度,同时达到了最先进的 COCO/AP 分数。
核心思想
- FDR:不直接预测单一框坐标,而是预测可能位置的离散分布,并迭代精炼,从而在不增加计算成本的前提下实现更精确的定位。
- GO‑LSD:一种自蒸馏机制,教会模型生成全局最优的框预测,同样无需额外推理开销。
- 无额外开销:两种技巧均内置于训练流程中;推理阶段使用与原始 DETR 相同的轻量级主干(HGNetV2 变体)和 Transformer 解码器。
模型库 – 提供以下数据集的预训练检查点:
- COCO(标准检测基准) – 五个尺寸(约 4 M 到 62 M 参数),AP 从 ‑N 的 42.8 % 到 ‑X 的 55.8 %。
- Objects365 + COCO – 先在更大的 Objects365 数据集上预训练,再在 COCO 上微调,AP 提升至最高 59.3 %。
- 仅 Objects365 – 希望获得强泛化检测器以在自有数据上微调的用户。
所有检查点均附带配置文件(YAML)和训练日志。
快速上手
- 环境 – 创建 Python 3.11 的 conda 环境,安装
requirements.txt。 - 数据 – 仓库支持 COCO‑2017、Objects365、CrowdHuman 或任何符合 COCO 格式的数据集。路径设置详情见 README。
- 训练 – 通过
export model=l(n/s/m/l/x)选择模型大小,使用torchrun在多 GPU 上启动训练,例如:CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 \ --nproc_per_node=4 train.py -c configs/dfine/dfine_hgnetv2_${model}_coco.yml \ --use-amp --seed=0 - 测试 / 微调 – 使用
--test-only或-t <ckpt>的类似命令即可。
性能
- 延迟在单个 T4 GPU(fp16,TensorRT 10.4)上以批量大小 1 测量。最小模型(‑N)约 2 ms(≈472 FPS),最大模型(‑X)约 13 ms(≈77 FPS)。
- FLOPs 从 ‑N 的 7 GFLOPs 到 ‑X 的 202 GFLOPs。
- 仓库包含一个视频演示,D‑FINE 在一个具有挑战性的街景片段中优于 YOLO‑11。
许可与说明
- 代码采用 Apache 2.0 许可。在 Objects365 上训练的检查点继承该数据集的许可限制;不自动授权用于商业用途。
- 项目持续维护(更新记录至 2024‑11‑07),并提供 Hugging Face Space 用于交互式推理。
适合谁使用
- 需要快速、高精度 Transformer 基础检测器的研究人员。
- 希望在无需大型 DETR 变体高计算成本的情况下,直接使用实时应用(如视频分析、机器人)模型的实践者。
- 任何希望在自定义 COCO 格式数据集上微调的用户;仓库提供数据准备和类别映射调整的脚本。
以上所有细节均直接取自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目