🚀 OWL - ViT モデルカード
OWL - ViT(Vision Transformer for Open - World Localization の略)は、ゼロショットのテキスト条件付き物体検出モデルです。このモデルを使うことで、1つまたは複数のテキストクエリを用いて画像内の物体を検出することができます。
🚀 クイックスタート
以下のコード例を参考に、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 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}")
✨ 主な機能
- ゼロショットのテキスト条件付き物体検出が可能で、学習時に見たことのない物体のラベルを用いて物体検出を行うことができます。
- CLIP をマルチモーダルバックボーンとして使用し、画像とテキストの特徴を効果的に取得します。
📚 ドキュメント
🔧 技術詳細
モデルの概要
OWL - ViT は、Matthias Minderer らによって Simple Open - Vocabulary Object Detection with Vision Transformers で提案されました。このモデルは、CLIP をマルチモーダルバックボーンとして使用し、画像エンコーダとして ViT - L/14 Transformer アーキテクチャを、テキストエンコーダとしてマスクされた自己注意 Transformer を用います。
モデルの構造
- 画像エンコーダ:ViT - L/14 Transformer アーキテクチャを使用し、画像から視覚的な特徴を抽出します。
- テキストエンコーダ:マスクされた自己注意 Transformer を使用し、テキストから特徴を抽出します。
- 分類とボックスヘッド:各トランスフォーマー出力トークンに軽量な分類とボックスヘッドを取り付け、物体の検出と分類を行います。
学習方法
CLIP バックボーンは、公開されている画像 - キャプションデータを用いて最初から学習され、その後、物体検出の目的でボックスとクラス予測ヘッドと一緒にファインチューニングされます。
モデルの日付
2022年5月
モデルのタイプ
Property |
Details |
Model Type |
モデルは、画像エンコーダとして ViT - L/14 Transformer アーキテクチャを持つ CLIP バックボーンを使用し、テキストエンコーダとしてマスクされた自己注意 Transformer を使用します。これらのエンコーダは、対照損失を通じて(画像、テキスト)ペアの類似性を最大化するように学習されます。 |
Training Data |
モデルの CLIP バックボーンは、公開されている画像 - キャプションデータで学習されました。これは、いくつかのウェブサイトをクロールし、YFCC100M などの一般的に使用される既存の画像データセットを組み合わせて行われました。OWL - ViT の予測ヘッドは、COCO や OpenImages などの公開されている物体検出データセットでファインチューニングされます。 |
モデルの使用
意図された使用法
このモデルは、研究コミュニティ向けの研究成果として意図されています。研究者がゼロショット、テキスト条件付き物体検出をよりよく理解し、探索するのに役立つことを期待しています。また、このようなモデルの潜在的な影響に関する学際的な研究にも使用できることを期待しています。
主な意図された使用法
これらのモデルの主な意図されたユーザーは、AI 研究者です。研究者がコンピュータビジョンモデルのロバスト性、汎化能力、その他の機能、バイアス、制約をよりよく理解するために使用されることを想定しています。
データ
モデルの CLIP バックボーンは、公開されている画像 - キャプションデータで学習されました。これは、いくつかのウェブサイトをクロールし、YFCC100M などの一般的に使用される既存の画像データセットを組み合わせて行われました。データの大部分はインターネットのクロールから得られており、これはデータがインターネットに最も接続されている人々と社会をより代表していることを意味します。OWL - ViT の予測ヘッドは、CLIP バックボーンと一緒に、COCO や OpenImages などの公開されている物体検出データセットでファインチューニングされます。
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},
}
📄 ライセンス
Apache - 2.0