🚀 条件DETR模型(带ResNet - 101骨干网络,膨胀C5阶段)
本项目是一个基于COCO 2017目标检测数据集(118k带注释图像)进行端到端训练的条件检测变换器(Conditional DEtection TRansformer,Conditional DETR)模型。该模型由Meng等人在论文Conditional DETR for Fast Training Convergence中提出,并首次在此仓库发布。模型权重从原始权重转换为transformers
实现,并以PyTorch和Safetensors两种权重格式发布,原始权重可从原始仓库下载。
🚀 快速开始
你可以使用此原始模型进行目标检测。查看模型中心以查找所有可用的条件DETR模型。
✨ 主要特性
- 创新架构:将变换器编码器和解码器架构应用于目标检测,提出条件交叉注意力机制,解决训练收敛慢的问题。
- 训练加速:实验结果表明,对于R50和R101骨干网络,条件DETR的收敛速度快6.7倍;对于更强的骨干网络DC5 - R50和DC5 - R101,收敛速度快10倍。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
基础用法
from transformers import AutoImageProcessor, ConditionalDetrForObjectDetection
import torch
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained("Omnifact/conditional-detr-resnet-101-dc5")
model = ConditionalDetrForObjectDetection.from_pretrained("Omnifact/conditional-detr-resnet-101-dc5")
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.7)[0]
for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
box = [round(i, 2) for i in box.tolist()]
print(
f"Detected {model.config.id2label[label.item()]} with confidence "
f"{round(score.item(), 3)} at location {box}"
)
此代码应输出:
Detected cat with confidence 0.865 at location [13.95, 64.98, 327.14, 478.82]
Detected remote with confidence 0.849 at location [39.37, 83.18, 187.67, 125.02]
Detected cat with confidence 0.743 at location [327.22, 35.17, 637.54, 377.04]
Detected remote with confidence 0.737 at location [329.36, 89.47, 376.42, 197.53]
📚 详细文档
模型描述
最近开发的DETR方法将变换器编码器和解码器架构应用于目标检测,并取得了有前景的性能。在本文中,我们解决了关键问题——训练收敛慢,并提出了一种用于快速DETR训练的条件交叉注意力机制。我们的方法的动机在于,DETR中的交叉注意力高度依赖于内容嵌入来定位四个端点并预测边界框,这增加了对高质量内容嵌入的需求,从而增加了训练难度。我们的方法名为条件DETR,它从解码器嵌入中学习一个条件空间查询,用于解码器多头交叉注意力。其好处是,通过条件空间查询,每个交叉注意力头能够关注包含不同区域的带,例如一个对象端点或对象框内的一个区域。这缩小了用于对象分类和边界框回归的不同区域的定位空间范围,从而减轻了对内容嵌入的依赖并简化了训练。实验结果表明,对于R50和R101骨干网络,条件DETR的收敛速度快6.7倍;对于更强的骨干网络DC5 - R50和DC5 - R101,收敛速度快10倍。

预期用途和限制
你可以使用此原始模型进行目标检测。查看模型中心以查找所有可用的条件DETR模型。
训练数据
条件DETR模型在COCO 2017目标检测数据集上进行训练,该数据集分别包含118k/5k张带注释的图像用于训练/验证。
BibTeX引用和引用信息
@inproceedings{MengCFZLYS021,
author = {Depu Meng and
Xiaokang Chen and
Zejia Fan and
Gang Zeng and
Houqiang Li and
Yuhui Yuan and
Lei Sun and
Jingdong Wang},
title = {Conditional {DETR} for Fast Training Convergence},
booktitle = {2021 {IEEE/CVF} International Conference on Computer Vision, {ICCV}
2021, Montreal, QC, Canada, October 10-17, 2021},
}
🔧 技术细节
文档中关于技术细节部分已在“详细文档 - 模型描述”中详细说明,故此处不再重复。
📄 许可证
本项目采用Apache - 2.0许可证。
属性 |
详情 |
模型类型 |
条件DETR模型(带ResNet - 101骨干网络,膨胀C5阶段) |
训练数据 |
COCO 2017目标检测数据集,包含118k/5k张带注释的图像用于训练/验证 |