图像搜索

SentenceTransformers 提供了一些模型,可以将图像和文本嵌入到同一个向量空间中。这不仅允许查找相似的图像,还能实现图像搜索

ImageSearch

安装

确保你已安装 transformers 以使用图像-文本模型,并使用最新版本的 PyTorch(测试版本为 PyTorch 1.7.0)。图像-文本模型自 SentenceTransformers 1.0.0 版本起被引入,目前仍处于实验阶段。

使用方法

SentenceTransformers 为 OpenAI CLIP 模型 提供了一个封装,该模型在多种(图像,文本)对上进行了训练。

from sentence_transformers import SentenceTransformer
from PIL import Image

# 加载 CLIP 模型
model = SentenceTransformer("clip-ViT-B-32")

# 编码一张图片:
img_emb = model.encode(Image.open("two_dogs_in_snow.jpg"))

# 编码文本描述
text_emb = model.encode(
    ["两只狗在雪中", "桌上的一只猫", "一张伦敦夜景的照片"]
)

# 计算相似度
similarity_scores = model.similarity(img_emb, text_emb)
print(similarity_scores)

你可以利用 CLIP 模型进行以下操作:

  • 文本到图像 / 图像到文本 / 图像到图像 / 文本到文本搜索

  • 你可以使用常规的 SentenceTransformers 训练代码对模型进行微调,以适应自己的图像和文本数据。

示例