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