🚀 モデルカード: OWLv2
OWLv2モデル(Open-World Localizationの略)は、画像内の物体をテキストクエリで検出することができるゼロショット物体検出モデルです。このモデルは、CLIPをバックボーンとして使用し、画像とテキストの特徴を抽出します。
🚀 クイックスタート
OWLv2モデルは、ゼロショットでの物体検出を可能にするモデルです。以下のコード例を参考に、モデルを使用することができます。
基本的な使用法
import requests
from PIL import Image
import torch
from transformers import Owlv2Processor, Owlv2ForObjectDetection
processor = Owlv2Processor.from_pretrained("google/owlv2-base-patch16-ensemble")
model = Owlv2ForObjectDetection.from_pretrained("google/owlv2-base-patch16-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")
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_object_detection(outputs=outputs, threshold=0.1, 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
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}")
✨ 主な機能
- ゼロショットでの物体検出: 学習時に見たことのない物体の検出が可能です。
- テキストクエリによる物体検出: 画像内の物体をテキストで指定して検出することができます。
- 多言語対応: 様々な言語のテキストクエリに対応しています。
📚 ドキュメント
🔧 技術詳細
モデルの概要
OWLv2モデルは、CLIPをバックボーンとして使用し、画像とテキストの特徴を抽出します。画像エンコーダとしてViT-B/16 Transformerアーキテクチャを使用し、テキストエンコーダとしてマスク自己注意Transformerを使用しています。これらのエンコーダは、対照損失を通じて(画像、テキスト)ペアの類似度を最大化するように学習されています。
モデルの日付
2023年6月
モデルのタイプ
プロパティ |
詳細 |
モデルタイプ |
このモデルは、画像エンコーダとしてViT-B/16 Transformerアーキテクチャを持つCLIPバックボーンを使用し、テキストエンコーダとしてマスク自己注意Transformerを使用しています。これらのエンコーダは、対照損失を通じて(画像、テキスト)ペアの類似度を最大化するように学習されています。CLIPバックボーンは最初から学習され、物体検出の目的でボックスとクラス予測ヘッドと一緒に微調整されています。 |
学習データ |
モデルのCLIPバックボーンは、公開されている画像キャプションデータで学習されました。これは、いくつかのウェブサイトをクロールし、YFCC100Mなどの一般的に使用される既存の画像データセットを使用することで行われました。データの大部分は、インターネットのクロールから得られています。これは、データがインターネットに最も接続されている人々や社会をより代表していることを意味します。OWL-ViTの予測ヘッドは、CLIPバックボーンと一緒に、COCOやOpenImagesなどの公開されている物体検出データセットで微調整されています。 |
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}
}
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で公開されています。