图像搜索
SentenceTransformers 提供的模型允许将图像和文本嵌入到同一个向量空间中。这使得查找相似图像以及实现图像搜索成为可能。

安装
请确保您已安装 transformers 以使用图像-文本模型,并使用最新版本的 PyTorch(经 PyTorch 1.7.0 测试)。图像-文本模型已在 SentenceTransformers 1.0.0 版本中添加。图像-文本模型仍处于实验阶段。
用法
SentenceTransformers 为 OpenAI CLIP 模型提供了一个封装,该模型已在各种(图像,文本)对上进行训练。
from sentence_transformers import SentenceTransformer
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 similarities
similarity_scores = model.similarity(img_emb, text_emb)
print(similarity_scores)
您可以使用 CLIP 模型进行
文本到图像 / 图像到文本 / 图像到图像 / 文本到文本 搜索
您可以使用常规的 SentenceTransformers 训练代码,在您自己的图像和文本数据上对其进行微调。
示例
Image_Search.ipynb (Colab 版本) 展示了一个使用来自 Unsplash 的 25,000 张免费图片进行文本到图像和图像到图像搜索的更大示例。
Image_Search-multilingual.ipynb (Colab 版本) 是一个用于 50 多种语言的多语言文本到图像搜索的示例。
Image_Clustering.ipynb (Colab 版本) 展示了如何执行图像聚类。给定来自 Unsplash 的 25,000 张免费图片,我们找到相似图像的簇。您可以控制聚类的敏感程度。
Image_Duplicates.ipynb (Colab 版本) 展示了如何在大量照片集中查找重复和近似重复的图像的示例。
Image_Classification.ipynb (Colab 版本) 是(多语言)零样本图像分类的示例。