🚀 D-FINE
D-FINE是一个强大的实时目标检测模型,它通过重新定义DETR模型中的边界框回归任务,实现了出色的定位精度。该模型可用于自动驾驶、监控系统、机器人技术和零售分析等多种场景。
✨ 主要特性
- 创新性架构:由细粒度分布细化(FDR)和全局最优定位自蒸馏(GO - LSD)两个关键组件构成。
- 高精度定位:重新定义DETR模型中的边界框回归任务,实现出色的定位精度。
- 广泛适用性:适用于自动驾驶、监控系统、机器人技术和零售分析等多种场景。
- 训练数据丰富:可在COCO、Object365等数据集上进行训练。
📚 详细文档
概述
D-FINE模型由Yansong Peng、Hebei Li、Peixi Wu、Yueyi Zhang、Xiaoyan Sun、Feng Wu在论文D-FINE: Redefine Regression Task in DETRs as Fine-grained Distribution Refinement中提出。此模型由 VladOS95-cyber 在 @qubvel-hf 的帮助下贡献,是D-FINE在HF transformers库中的实现。
- _coco -> 在COCO数据集上训练的模型
- _obj365 -> 在Object365数据集上训练的模型
- _obj2coco -> 先在Object365数据集上训练,然后在COCO数据集上微调的模型
性能
D-FINE是一个强大的实时目标检测器,通过重新定义DETR模型中的边界框回归任务,实现了出色的定位精度。它包含两个关键组件:细粒度分布细化(FDR)和全局最优定位自蒸馏(GO - LSD)。

训练
D-FINE在COCO(Lin等人 [2014])的train2017数据集上进行训练,并在COCO val2017数据集上进行验证。我们报告了标准的AP指标(在均匀采样的IoU阈值范围从0.50 - 0.95,步长为0.05的情况下取平均值),以及在实际场景中常用的APval5000指标。
应用
D-FINE非常适合在各种应用中进行实时目标检测,如自动驾驶、监控系统、机器人技术和零售分析。其增强的灵活性和易于部署的设计使其适用于边缘设备和大规模系统,同时确保在动态的现实环境中具有高精度和高速度。
💻 使用示例
基础用法
import torch
import requests
from PIL import Image
from transformers import DFineForObjectDetection, AutoImageProcessor
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("ustc-community/dfine-nano-coco")
model = DFineForObjectDetection.from_pretrained("ustc-community/dfine-nano-coco")
inputs = image_processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=torch.tensor([image.size[::-1]]), threshold=0.3)
for result in results:
for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]):
score, label = score.item(), label_id.item()
box = [round(i, 2) for i in box.tolist()]
print(f"{model.config.id2label[label]}: {score:.2f} {box}")
📄 许可证
本项目采用Apache-2.0许可证。