基于矢量的图像搜索的威力和陷阱

在 Milvus 中设置图像相似性搜索的实践指南,以及为什么视觉复制并不总是足够的。基于矢量的图像搜索的力量和陷阱一文首先出现在走向数据科学上。

来源:走向数据科学

。用户希望看到相关结果,并且希望快速获得结果。因此,电子商务团队不断努力提高性能和感知搜索质量,以保持用户满意并防止用户流失。

请看下面三张图片。

从视觉角度来看它们看起来很相似,但这些图像中的项目完全不相关。这种对比展示了图像搜索的能力和固有的缺点。

本文中使用的所有图像均来自我们用于实验和测试的内部数据库。

图像搜索的一个用例是检测重复产品。虽然产品标题和描述当然可以用于查找重复项,但某些列表的标题略有(甚至完全)不同,但使用完全相同的图像。检测这些列表也非常重要。

由于电子商务平台通常为数百万种产品提供服务,因此我们需要高效的工具和方法来大规模执行任何类型的搜索。

在本文中,我将向您展示如何设置图像矢量嵌入的矢量数据库并在该数据库中执行搜索。我还将详细解释基于矢量的图像搜索的优点和局限性。

这是文章的粗略概要:

  • 将图像转换为向量:将视觉数据转换为可搜索的嵌入。
  • 创建 Milvus 集合:建立 Milvus 集合,它是 Milvus 向量数据库中数据组织的主要逻辑单元。
  • 执行图像搜索:在此集合中搜索目标图像。
  • 解释结果:查看一些示例并解释搜索结果。
  • 让我们从获取向量开始。

    将图像转换为矢量

    我们需要一个嵌入模型来将图像转换为向量。我们可以训练自己的模型,但有几个可用的现成模型,包括免费和付费的。

    image_vector 变量是大小为 512 的 Numpy 数组。

    创建 Milvus 集合

    然后,我们为集合定义一个架构:

    相同图像