图像搜索
SentenceTransformers 提供了将图像和文本嵌入到同一向量空间的模型。这允许找到相似的图像以及实现图像搜索。
安装
确保您已安装 transformers 以使用 image-text-models,并使用最新的 PyTorch 版本(已使用 PyTorch 1.7.0 测试)。Image-Text-Models 已在 SentenceTransformers 版本 1.0.0 中添加。Image-Text-Models 仍处于实验阶段。
使用方法
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 版本) 多语言 text2image 搜索示例,支持 50 多种语言。
Image_Clustering.ipynb (Colab 版本) 展示了如何执行图像聚类。给定来自 Unsplash 的 25,000 张免费图片,我们找到了相似图像的集群。您可以控制聚类的敏感程度。
Image_Duplicates.ipynb (Colab 版本) 展示了一个示例,说明如何在大型照片集中查找重复和近似重复的图像。
Image_Classification.ipynb (Colab 版本) (多语言) 零样本图像分类示例。