模型:
google/owlvit-base-patch16
OWL-ViT(全称Vision Transformer for Open-World Localization)是由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于 Simple Open-Vocabulary Object Detection with Vision Transformers 年提出的。OWL-ViT是一种零样本条件化目标检测模型,可用于使用一个或多个文本查询查询图像。
OWL-ViT使用CLIP作为其多模态主干,其中使用类似ViT的Transformer提取图像特征,并使用因果语言模型提取文本特征。为了使用CLIP进行目标检测,OWL-ViT移除了视觉模型的最后一个标记池化层,将轻量级分类和边界框头部连接到每个Transformer输出标记上。通过使用从文本模型获得的类别名嵌入来替换固定的分类层权重,实现了开放词汇的分类。作者首先从头开始训练CLIP,并使用两部分匹配损失将其与分类和边界框头部进行端到端的微调,使用标准的检测数据集。可以使用一个或多个文本查询来执行零样本条件化目标检测。
2022年5月
该模型使用带有ViT-B/16 Transformer架构的CLIP主干作为图像编码器,并使用掩码自注意力Transformer作为文本编码器。这些编码器通过对比损失训练以最大化(图像,文本)对的相似性。CLIP主干从头开始进行训练,并与目标检测目标一起进行了微调,包括边界框和类别预测头。
import requests from PIL import Image import torch from transformers import OwlViTProcessor, OwlViTForObjectDetection processor = OwlViTProcessor.from_pretrained("google/owlvit-base-patch16") model = OwlViTForObjectDetection.from_pretrained("google/owlvit-base-patch16") 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 image sizes (height, width) to rescale box predictions [batch_size, 2] target_sizes = torch.Tensor([image.size[::-1]]) # Convert outputs (bounding boxes and class logits) to COCO API results = processor.post_process(outputs=outputs, target_sizes=target_sizes) i = 0 # Retrieve predictions for the first image for the corresponding text queries text = texts[i] boxes, scores, labels = results[i]["boxes"], results[i]["scores"], results[i]["labels"] # Print detected objects and rescaled box coordinates score_threshold = 0.1 for box, score, label in zip(boxes, scores, labels): box = [round(i, 2) for i in box.tolist()] if score >= score_threshold: print(f"Detected {text[label]} with confidence {round(score.item(), 3)} at location {box}")
该模型旨在成为研究社区的研究成果。我们希望该模型能够帮助研究人员更好地理解和探索零样本、条件化目标检测。我们还希望它能用于跨学科研究,以评估此类模型的潜在影响,特别是在常常需要识别在训练中不可用的对象的领域。
主要预期使用者这些模型的主要预期使用者是AI研究人员。
我们主要想象该模型将由研究人员使用,以更好地理解计算机视觉模型的鲁棒性、泛化性和其他能力、偏见和约束。
模型的CLIP主干是在公开可用的图像字幕数据上进行训练的。通过一些网站的抓取和使用常用的现有图像数据集,如 YFCC100M ,组合数据进行训练。数据中的大部分来自我们对互联网的抓取。这意味着数据更具代表性,更适应与互联网相连接的人和社会。 OWL-ViT的预测头部以及CLIP主干是在公开可用的目标检测数据集上进行微调的,例如 COCO 和 OpenImages 。
@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}, }