向量数据库 快速搭建以图搜图应用实践

随着数据智能技术的不断发展,图像搜索技术在各行各业中的应用越来越广泛。传统的图像搜索技术往往依赖于图像的元数据或标签,存在信息更新不及时、垂直领域知识匮乏、搜索精度不高等问题。如何推进图像搜索技术在各行业、各业务场景的落地,成为各方普遍关注的问题。目前,基于向量检索的图像搜索技术正成为解决这些问题的有效方法,并逐渐成为数据智能时代的一个主要趋势。

相关产品
向量数据库 产品页,含版本规格、价格与购买入口。

一、背景信息

图片向量检索技术通过将图片转换为高维向量,并在向量空间内计算相似度,实现高效、精准的图像搜索。这篇会探讨如何结合腾讯云向量数据库和 CLIP(Contrastive Language-Image Pre-Training)图像处理模型,构建一站式的图搜应用解决方案。腾讯云向量数据库以其高性能、高可用性、大规模数据处理能力、低成本和简单易用性等优势,为用户提供了强大的向量数据存储和检索能力。结合 CLIP 模型,可实现通过向量相似性检索的方式搜索图片,并提升图像搜索的准确性和效率,适用于电商推荐、内容审核、智能相册等多种图像处理任务。

二、准备工作

1. 选型并购买向量数据库实例。具体操作,请参见 购买实例。

2. 客户端运行环境准备。

类别 要求
地域与网络环境 使用腾讯云外网访问,需手动配置白名单,开通外网功能。具体操作,请参见 开启外网访问。使用腾讯云内网方式访问,确保购买的 CVM 所处地域与向量数据库为同地域,且 VPC 和安全组策略能正常连通向量数据库实例。
客户端 使用腾讯云外网方式,可使用本地客户端操作环境即可。使用腾讯云内网方式,推荐选择 云服务器 CVM,如 SA3.LARGE8、SA3.2XLARGE16等规格。
Python 环境依赖 推荐 Python 版本 >= 3.8。安装 Python SDK 执行pip3 install tcvectordb命令,可直接安装最新版本。

3. 下载 graph_emb_demo1030.zip 压缩包,并将其上传于运行环境。

4. 下载图像文件 vdb_test_graphs.zip,存放于本地环境。

三、快速搭建

1. 登录客户端运行环境,执行 pip3 install tcvectordb,安装向量数据库最新的 Python SDK。

2. 使用 unzip 命令,解压 graph_emb_demo1030.zip 压缩包。

3. 进入压缩包解压后的文件夹,执行pip3 install -r requirements.txt 命令,安装 SDK 通用依赖,模型 SDK 以及相关依赖组件。

4. 使用 vim conf/config.ini 命令,根据参数注释修改相关配置并保存。

[vector_db]# 腾讯云向量数据库访问地址。address=http://xxx:xxx# 向量数据库实例密钥key=xxxxxxxx# AI类向量数据库ai_db=test_ai_db# 向量数据库集合名ai_collection=test_ai_graph_collection# CLIP 模型以及存放路径[download_model]local_model_path=models/model_name=openai/clip-vit-base-patch32[graph_upload]local_graph_path=graphs/[server]# 启动服务的地址和端口name=127.0.0.1port=8080

配置项 参数名 参数含义 配置说明
[vector_db] address 向量数据库实例的内网地址或外网地址。建议使用内网方式。 请登录 向量数据库控制台,在实例详情页面网络信息区域直接复制访问地址。具体操作,请参见 查看实例信息。
 key 向量数据库实例 API 密钥,用于进行身份认证。 请登录 向量数据库控制台,在密钥管理页面直接复制密钥。具体操作,请参见 密钥管理。
 ai_db AI 类数据库名。 Database 命名要求如下:只能使用英文字母,数字,下划线_、中划线-,并以英文字母开头。长度要求:[1,128]。
 ai_collection AI 数据库集合视图名。 CollectionView 命名要求如下:只能使用英文字母,数字,下划线_、中划线-,并以英文字母开头。长度要求:[1,128]。
[download_model] local_model_path CLIP 模型存放路径。 脚本运行将下载 CLIP 模型,需指定其客户端存放路径。本示例使用相对路径,指定于压缩包所在文件夹models下。
 model_name CLIP 模型名称。 默认为openai/clip-vit-base-patch32模型。如需更换为其他 CLIP 模型,请参见 Huggingface Models。注意格式:Hugging face 仓库名/模型名称。
[graph_upload] local_graph_path 图像文件压缩包存放路径。 本示例使用相对路径,指定于压缩包所在文件夹 graph下。
[server] name 客户端运行环境 IP 地址。 –
 port 运行环境分配的端口。 注意避免端口冲突。

5. 执行python3 main.py,运行脚本,生成图搜应用前端访问链接。

6. 复制 Running on local URL 后面的访问链接,在浏览器访问链接,显示 Tencent VectorDB AI Demo — Graph search 配置向导页面。

注意:在浏览器访问图搜应用,切勿关闭后端运行环境正在运行的进程。

7. 在模型下载页面,单击开始下载模型,下载 CLIP 模型,模型文件将保存在配置文件中 local_model_path 指定的路径,默认下载至 `models/` 目录。

注意:说明:

8. 切换至向量数据库初始化界面,单击初始化向量数据库,将自动在指定的实例创建向量数据库与集合,进行初始化,界面显示初始化进度,等待任务完成。

9. 切换至文件上传界面,在上传图片或ZIP压缩包区域,将已准备的图像文件 vdb_test_graphs.zip 直接拖放或者上传至应用程序,等待显示上传完成,单击下方的上传文件,程序将自动将图像文件上传于配置文件 config.ini 中 local_graph_path 指定的路径,并将图片向量化写入已创建的向量数据库中。

10. 切换至图搜图界面,在左侧上传图片进行检索区域,将需检索的图片拖放或上传于此处,单击 Submit,程序将自动检索,并在右侧检索结果区域显示其检索的结果。

遵循上述步骤,你将能够顺利运行图搜图 Demo 应用,上传图片集合,并利用图搜图功能查找相似图片。如果你有任何其他疑问,欢迎随时联系腾讯云向量数据库团队获取支持。

四、安装虚拟环境

如果你遇到环境之间依赖包冲突,可通过安装虚拟环境来解决。遵循以下步骤,确保虚拟环境安装所有必需的依赖。

五、使用 venv 创建虚拟环境

1. 创建虚拟环境。

python -m venv img_search_demo

2. 激活虚拟环境。

·在 windows 操作系统

img_search_demo\\Scripts\\activate

·在 macOS 或者 Linux 系统

source img_search_demo/bin/activate

3. 安装所需的依赖。

pip install -r requirements.txt

六、使用 conda 创建虚拟环境

1. 创建虚拟环境。

conda create –name img_search_demo python=3.9

2. 激活虚拟环境。

conda activate img_search_demo

3. 安装所需的依赖。

pip install -r requirements.txt

赞 (0)
上一篇 4天前
下一篇 4天前