🚀 D-FINE
D-FINE是一个用于目标检测的模型,它重新定义了DETR模型中的边界框回归任务,实现了出色的定位精度,可应用于自动驾驶、监控系统等多个领域。
✨ 主要特性
- 高精度定位:通过重新定义DETR模型中的边界框回归任务,实现了出色的定位精度。
- 关键组件:由细粒度分布细化(FDR)和全局最优定位自蒸馏(GO - LSD)两个关键组件组成。
- 广泛适用性:适用于自动驾驶、监控系统、机器人技术和零售分析等多种实时目标检测应用场景。
- 灵活部署:既适用于边缘设备,也适用于大规模系统,能在动态的现实环境中确保高精度和高速度。
📚 详细文档
概述
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](https://github.com/VladOS95 - cyber)在[@qubvel - hf](https://huggingface.co/qubvel - hf)的帮助下贡献。这是D - FINE在HF transformers库中的实现。
- _coco -> 在COCO数据集上训练的模型
- _obj365 -> 在Object365数据集上训练的模型
- _obj2coco -> 在Object365数据集上训练,然后在COCO数据集上微调的模型
性能
D - FINE是一个强大的实时目标检测器,通过重新定义DETR模型中的边界框回归任务,实现了出色的定位精度。D - FINE包含两个关键组件:细粒度分布细化(FDR)和全局最优定位自蒸馏(GO - LSD)。

训练
D - FINE在COCO(Lin等人 [2014])的train2017数据集上进行训练,并在COCO val2017数据集上进行验证。我们报告了标准的AP指标(在从0.50 - 0.95的均匀采样IoU阈值上平均,步长为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-medium-obj2coco")
model = DFineForObjectDetection.from_pretrained("ustc-community/dfine-medium-obj2coco")
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许可证。