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;未推測任何額外功能。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案