🚀 模型卡片:OWLv2
OWLv2 模型是一个零样本、文本条件的目标检测模型,它能够使用一个或多个文本查询对图像进行查询。该模型使用 CLIP 作为多模态骨干网络,结合视觉和文本特征进行目标检测。
🚀 快速开始
使用 Transformers 库调用模型
import requests
from PIL import Image
import torch
from transformers import Owlv2Processor, Owlv2ForObjectDetection
processor = Owlv2Processor.from_pretrained("google/owlv2-large-patch14-ensemble")
model = Owlv2ForObjectDetection.from_pretrained("google/owlv2-large-patch14-ensemble")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
texts = [["a photo of a cat", "a photo of a dog"]]
inputs = processor(text=texts, images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
target_sizes = torch.Tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs=outputs, target_sizes=target_sizes, threshold=0.1)
i = 0
text = texts[i]
boxes, scores, labels = results[i]["boxes"], results[i]["scores"], results[i]["labels"]
for box, score, label in zip(boxes, scores, labels):
box = [round(i, 2) for i in box.tolist()]
print(f"Detected {text[label]} with confidence {round(score.item(), 3)} at location {box}")
✨ 主要特性
- 零样本目标检测:可以使用文本查询在图像中检测目标,无需针对特定目标进行训练。
- 多模态骨干网络:使用 CLIP 作为骨干网络,结合视觉和文本特征。
- 开放词汇分类:通过用从文本模型获得的类名嵌入替换固定的分类层权重,实现开放词汇分类。
📚 详细文档
🔧 技术细节
模型详情
OWLv2 模型(开放世界定位的缩写)由 Matthias Minderer、Alexey Gritsenko、Neil Houlsby 在 Scaling Open-Vocabulary Object Detection 中提出。与 OWL-ViT 一样,OWLv2 是一个零样本、文本条件的目标检测模型,可以使用一个或多个文本查询对图像进行查询。
该模型使用 CLIP 作为其多模态骨干网络,使用类似 ViT 的 Transformer 来获取视觉特征,并使用因果语言模型来获取文本特征。为了将 CLIP 用于检测,OWL-ViT 移除了视觉模型的最终令牌池化层,并为每个 Transformer 输出令牌附加一个轻量级的分类和边界框头。通过用从文本模型获得的类名嵌入替换固定的分类层权重,实现开放词汇分类。作者首先从头开始训练 CLIP,并使用二分匹配损失在标准检测数据集上对分类和边界框头进行端到端的微调。可以使用每张图像的一个或多个文本查询来执行零样本、文本条件的目标检测。
模型日期
2023 年 6 月
模型类型
该模型使用具有 ViT-L/14 Transformer 架构的 CLIP 骨干网络作为图像编码器,并使用掩码自注意力 Transformer 作为文本编码器。这些编码器通过对比损失进行训练,以最大化(图像,文本)对的相似性。CLIP 骨干网络从头开始训练,并与边界框和类别预测头一起针对目标检测任务进行微调。
属性 |
详情 |
模型类型 |
该模型使用具有 ViT-L/14 Transformer 架构的 CLIP 骨干网络作为图像编码器,并使用掩码自注意力 Transformer 作为文本编码器。这些编码器通过对比损失进行训练,以最大化(图像,文本)对的相似性。CLIP 骨干网络从头开始训练,并与边界框和类别预测头一起针对目标检测任务进行微调。 |
训练数据 |
模型的 CLIP 骨干网络在公开可用的图像 - 字幕数据上进行训练,通过爬取一些网站和使用常用的现有图像数据集(如 YFCC100M)组合而成。大部分数据来自互联网爬取,这意味着数据更能代表与互联网连接最紧密的人群和社会。OWL-ViT 的预测头与 CLIP 骨干网络一起在公开可用的目标检测数据集(如 COCO 和 OpenImages)上进行微调。 |
📄 许可证
本项目采用 Apache-2.0 许可证。
BibTeX 引用
@misc{minderer2023scaling,
title={Scaling Open-Vocabulary Object Detection},
author={Matthias Minderer and Alexey Gritsenko and Neil Houlsby},
year={2023},
eprint={2306.09683},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
模型使用
预期用途
该模型是为研究社区提供的研究成果。我们希望这个模型能够让研究人员更好地理解和探索零样本、文本条件的目标检测。我们也希望它能用于跨学科研究,探讨此类模型的潜在影响,特别是在那些通常需要识别训练期间标签不可用的目标的领域。
主要预期用户
这些模型的主要预期用户是人工智能研究人员。
我们主要设想研究人员将使用该模型来更好地理解计算机视觉模型的鲁棒性、泛化能力以及其他能力、偏差和限制。