🚀 模型卡片:OWL - ViT
OWL - ViT(开放世界定位视觉变换器的缩写)是一个零样本的文本条件目标检测模型,它能够使用一个或多个文本查询对图像进行查询,为目标检测领域带来了新的解决方案和研究方向。
🚀 快速开始
使用transformers
库调用OWL - ViT模型进行目标检测的示例代码如下:
import requests
from PIL import Image
import torch
from transformers import OwlViTProcessor, OwlViTForObjectDetection
processor = OwlViTProcessor.from_pretrained("google/owlvit-large-patch14")
model = OwlViTForObjectDetection.from_pretrained("google/owlvit-large-patch14")
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")
outputs = model(**inputs)
target_sizes = torch.Tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs=outputs, threshold=0.1, target_sizes=target_sizes)
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作为多模态骨干网络,结合视觉和文本特征进行目标检测。
- 开放词汇分类:通过用文本模型获得的类名嵌入替换固定的分类层权重,实现开放词汇分类。
📚 详细文档
🔧 技术细节
模型提出
OWL - ViT由Matthias Minderer、Alexey Gritsenko等人在论文Simple Open - Vocabulary Object Detection with Vision Transformers中提出。
模型架构
- 骨干网络:使用CLIP作为多模态骨干网络,其中视觉模型采用类似ViT - L/14的Transformer架构作为图像编码器,文本模型使用掩码自注意力Transformer作为文本编码器。
- 特征提取:移除视觉模型的最终令牌池化层,为每个Transformer输出令牌附加一个轻量级的分类和边界框预测头。
- 训练方式:首先从头开始训练CLIP,然后在标准检测数据集上使用二分匹配损失对分类和边界框预测头进行端到端的微调。
模型日期
2022年5月
模型类型
该模型使用CLIP骨干网络,其中图像编码器采用ViT - L/14 Transformer架构,文本编码器采用掩码自注意力Transformer。通过对比损失训练这些编码器,以最大化(图像,文本)对的相似度。CLIP骨干网络从头开始训练,并与边界框和类别预测头一起针对目标检测任务进行微调。
信息表格
属性 |
详情 |
模型类型 |
该模型使用CLIP骨干网络,图像编码器采用ViT - L/14 Transformer架构,文本编码器采用掩码自注意力Transformer。通过对比损失训练以最大化(图像,文本)对的相似度,CLIP骨干网络从头开始训练,并与边界框和类别预测头一起针对目标检测任务进行微调。 |
训练数据 |
模型的CLIP骨干网络在公开可用的图像 - 文本对数据上进行训练,数据来源包括抓取部分网站和使用常用的现有图像数据集(如YFCC100M)。OWL - ViT的预测头和CLIP骨干网络在公开可用的目标检测数据集(如COCO和OpenImages)上进行微调。 |
📄 许可证
本模型采用Apache - 2.0许可证。
BibTeX引用
@article{minderer2022simple,
title={Simple Open-Vocabulary Object Detection with Vision Transformers},
author={Matthias Minderer, Alexey Gritsenko, Austin Stone, Maxim Neumann, Dirk Weissenborn, Alexey Dosovitskiy, Aravindh Mahendran, Anurag Arnab, Mostafa Dehghani, Zhuoran Shen, Xiao Wang, Xiaohua Zhai, Thomas Kipf, Neil Houlsby},
journal={arXiv preprint arXiv:2205.06230},
year={2022},
}
📄 模型使用
预期用途
本模型旨在作为研究成果供研究社区使用。我们希望该模型能帮助研究人员更好地理解和探索零样本、文本条件目标检测。同时,也希望它能用于跨学科研究,特别是在那些通常需要识别训练期间标签不可用的目标的领域。
主要预期用户
本模型的主要预期用户是AI研究人员。
主要预期用途
研究人员主要会使用该模型来更好地理解计算机视觉模型的鲁棒性、泛化能力以及其他能力、偏差和局限性。