🚀 模型卡片: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}
}
模型使用
預期用途
該模型是為研究社區提供的研究成果。我們希望這個模型能夠讓研究人員更好地理解和探索零樣本、文本條件的目標檢測。我們也希望它能用於跨學科研究,探討此類模型的潛在影響,特別是在那些通常需要識別訓練期間標籤不可用的目標的領域。
主要預期用戶
這些模型的主要預期用戶是人工智能研究人員。
我們主要設想研究人員將使用該模型來更好地理解計算機視覺模型的魯棒性、泛化能力以及其他能力、偏差和限制。