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)和训练日志。

快速上手

  1. 环境 – 创建 Python 3.11 的 conda 环境,安装 requirements.txt
  2. 数据 – 仓库支持 COCO‑2017、Objects365、CrowdHuman 或任何符合 COCO 格式的数据集。路径设置详情见 README。
  3. 训练 – 通过 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
    
  4. 测试 / 微调 – 使用 --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;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目