Slide 12
Slide 12 text
Section 02 - 06
自然言語で検索できると良さそう?
CLIP[OpenAI. 2021]のImage/Text Encoderを用いて簡単な情報検索モデルが構築できる!
● 比較的シンプルに文章で画像を検索することが可能
● 車の速度や時間など画像以外で得られる情報を活用することが難しい?
Text
Encoder
Image
Encoder
検索文
“夜の信号機”
画像の
埋め込み
ベクトル
検索文の
埋め込み
ベクトル
類似した画像を検索
検索された画像
入力画像 import torch
from PIL import Image
import clip # pip install git+https://github.com/openai/CLIP.git
model, transform = clip.load("ViT-B/32", device="cuda")
image_paths = ["image1.jpg", "image2.jpg", ...]
images = [
transform(Image.open(path)).unsqueeze(0)
for path in image_paths
]
images_tensor = torch.cat(images).to("cuda")
text_tendor = clip.tokenize(["query"]).to("cuda")
with torch.no_grad():
image_f = model.encode_image(images_tensor)
text_f = model.encode_text(text_tendor)
sim = (text_f @ image_f.T).squeeze(0)
ranking = torch.argsort(sim, descending=True)
print([image_paths[i] for i in ranking])