许可协议:apache-2.0
标签:
示例图片:
- 来源:https://huggingface.co/datasets/mishig/sample_images/resolve/main/savanna.jpg
示例标题:热带草原
- 来源:https://huggingface.co/datasets/mishig/sample_images/resolve/main/football-match.jpg
示例标题:足球比赛
- 来源:https://huggingface.co/datasets/mishig/sample_images/resolve/main/airport.jpg
示例标题:机场
模型卡片:OWLv2
模型详情
OWLv2模型(全称“开放世界定位”)由Matthias Minderer、Alexey Gritsenko和Neil Houlsby在论文《扩展开放词汇目标检测》中提出。与OWL-ViT类似,OWLv2是一种零样本文本条件目标检测模型,可通过一个或多个文本查询对图像进行检索。
该模型采用CLIP作为多模态骨干网络,其中视觉特征通过类ViT的Transformer提取,文本特征则通过因果语言模型获取。为了将CLIP应用于检测任务,OWL-ViT移除了视觉模型的最终令牌池化层,并在每个Transformer输出令牌上附加了轻量级的分类和边界框预测头。通过用文本模型生成的类别名称嵌入替换固定分类层权重,实现了开放词汇分类。作者首先从头训练CLIP,然后使用双向匹配损失在标准检测数据集上端到端微调分类头和边界框头。可通过单条或多条文本查询实现零样本文本条件目标检测。
模型日期
2023年6月
模型类型
该模型采用ViT-B/16架构的CLIP骨干网络作为图像编码器,并使用掩码自注意力Transformer作为文本编码器。这些编码器通过对比损失最大化(图像,文本)对的相似性。CLIP骨干网络从头开始训练,并与边界框和类别预测头共同通过目标检测目标进行微调。
相关文档
Transformers库调用示例
import requests
from PIL import Image
import torch
from transformers import Owlv2Processor, Owlv2ForObjectDetection
processor = Owlv2Processor.from_pretrained("google/owlv2-base-patch16")
model = Owlv2ForObjectDetection.from_pretrained("google/owlv2-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)
# 定义目标图像尺寸(高度,宽度)用于缩放边界框预测 [batch_size, 2]
target_sizes = torch.Tensor([image.size[::-1]])
# 将输出(边界框和类别逻辑值)转换为COCO API格式
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"检测到物体'{text[label]}',置信度{round(score.item(), 3)},位置{box}")
模型用途
预期用途
本模型旨在作为研究社区的科研产出。我们希望该模型能帮助研究者更好地理解和探索零样本文本条件目标检测,并促进跨学科研究此类模型的潜在影响,特别是在需要识别训练时标签不可见物体的领域。
主要预期用途
这些模型的主要目标用户是AI研究人员。我们预计研究者将主要利用该模型来理解计算机视觉模型的鲁棒性、泛化能力以及其他特性、偏见和限制。
数据
模型的CLIP骨干网络在公开可用的图像-标题数据上训练。数据来源包括对部分网站的爬取以及YFCC100M等常用现有图像数据集。大部分数据来自网络爬取,这意味着数据更倾向于代表互联网使用程度较高的群体和社会。OWL-ViT的预测头与CLIP骨干网络共同在COCO和OpenImages等公开目标检测数据集上进行了微调。
(v2版本待更新)
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}
}