Sentence Transformers 2.2 : 使用方法 : 画像検索

Sentence Transformers 2.2 : 使用方法 : 画像検索 (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 11/29/2022 (v2.2.2)

* 本ページは、UKPLab/sentence-transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス

クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :

◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

  • 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
  • sales-info@classcat.com  ;  Web: www.classcat.com  ;   ClassCatJP

 

Sentence Transformers 2.2 : 使用方法 : 画像検索

SentenceTransformers は画像とテキストを同じベクトル空間に埋め込みことを可能にするモデルを提供しています。これは類似の画像を見つけて 画像検索 を実装することを可能にします。

 

インストール

画像-テキスト-モデルを使用するために torchvision をインストールしていることと、最近の PyTorch バージョン (PyTorch 1.7.0 でテスト) を使用していることを確認してください。画像-テキスト-モデルは SentenceTransformers version 1.0.0 で追加されました。画像-テキスト-モデルはまだ実験的段階にあります。

 

使用方法

SentenceTransformers は、様々な (image, text) ペアで訓練された OpenAI CLIP モデル のラッパーを提供しています。

from sentence_transformers import SentenceTransformer, util
from PIL import Image

#Load CLIP model
model = SentenceTransformer('clip-ViT-B-32')

#Encode an image:
img_emb = model.encode(Image.open('two_dogs_in_snow.jpg'))

#Encode text descriptions
text_emb = model.encode(['Two dogs in the snow', 'A cat on a table', 'A picture of London at night'])

#Compute cosine similarities 
cos_scores = util.cos_sim(img_emb, text_emb)
print(cos_scores)

(訳注 : 以下の出力は訳者による実験結果)

tensor([[0.3069, 0.1010, 0.1086]])

CLIP モデルは以下のために使用できます :

  • テキスト-to-画像 / 画像-to-テキスト / 画像-to-画像 / テキスト-to-テキスト検索

  • 通常の SentenceTransformers 訓練コードを使用して貴方自身の画像 & テキストデータ上でそれを微調整することができます。

 

Examples

  • Image_Search.ipynb (Colab 版) は Unsplash の 25,000 のフリーの写真を使用してテキスト-to-画像 & 画像-to-テキスト検索のためのより大きな例を記述しています。

  • Image_Search-multilingual.ipynb (Colab 版) 50+ 言語の多言語 text2image 検索のサンプル。

  • Image_Clustering.ipynb (Colab 版) は画像クラスタリングを実行する方法を示します。Unsplash の 25,000 のフリー写真が与えられたとき、類似画像のクラスタを見つけます。クラスタリングの感度を制御できます。

  • Image_Duplicates.ipynb (Colab 版) 写真の大規模なコレクションで重複した、または重複に近い画像を見つけるサンプルを示します。

  • Image_Classification.ipynb (Colab 版) (多言語) ゼロショット画像分類のサンプル。

 

以上