D-FINE环境搭建&推理测试

 引子

        在目标检测领域,内卷严重的实时目标检测 (Real-time Object Detection) 领域,性能与效率始终是难以平衡的核心问题。绝大多数现有的 SOTA 方法仅依赖于更先进的模块替换或训练策略,导致性能逐渐趋于饱和。前阵子YOLOv11横空出世(感兴趣的童鞋可以移步YOLOv11环境搭建&推理测试_yolo11测试-CSDN博客),我一直感觉实时目标检测已经差不多到头了,这不,又来了一篇卷的文章。这才过去这么短的时间,为了打破这一性能和效率的瓶颈,来自中科大的研究团队提出了 D-FINE,重新定义了边界框回归任务。OK,那就让我们开始吧。

一、模型介绍

        不同于传统的固定坐标预测,D-FINE 创新了两种方法:细粒度分布优化 (FDR) 和全局最优定位自蒸馏 (GO-LSD)。通过将回归任务转化为细粒度的分布优化任务,D-FINE 不仅显著简化了优化难度,还能够更精确地建模每条边界的不确定性。此外,D-FINE 将定位知识 (Localization Knowledge) 融入到模型输出,通过高效的自蒸馏策略在各层共享这些知识,因而在不增加额外训练成本的前提下,实现了性能的进一步显著提升。凭借这些创新,D-FINE 在 COCO 数据集上以 78 FPS 的速度取得了 59.3% 的平均精度 (AP),远超 YOLOv10、YOLO11、RT-DETR v1/v2/v3 及 LW-DETR 等竞争对手,成为实时目标检测领域新的领跑者。目前,D-FINE 的所有代码、权重以及工具已开源,包含了详细的预训练教程和自定义数据集处理指南。

 

        让我们看下与YOLOv11的对比,左边是D-FINE的超大杯,右边是YOLOv11的,大眼看过去,对于逆光模糊的场景,D-FINE确实效果要好很多。

二、环境安装

代码仓库

git clone GitHub - Peterande/D-FINE: D-FINE: Redefine Regression Task of DETRs as Fine-grained Distribution Refinement 💥💥💥

环境安装

docker run --rm -it --gpus=all -v /datas/work/zzq:/workspace pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel bash

cd /workspace/D-FINE/D-FINE-master

pip install -r requirements.txt -i Simple Index

pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install onnxsim -i https://pypi.tuna.tsinghua.edu.cn/simple

三、测试推理

(1)训练

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

(2)测试

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 --test-only -r model.pth

(3)推理

python tools/inference/torch_inf.py -c configs/dfine/dfine_hgnetv2_x_coco.yml -r models/dfine_x_obj2coco.pth --im-file bus.jpg --device cuda:0

(4)导出

python tools/deployment/export_onnx.py --check -c configs/dfine/dfine_hgnetv2_x_coco.yml -r models/dfine_x_obj2coco.pth

 

posted @ 2024-11-11 09:10  要养家的程序猿  阅读(128)  评论(0编辑  收藏  举报