在ubuntu上搭建Milvus的以图搜图服务

1.安装milvus单机版

在这里插入图片描述

下载docker-compose.yml文件。

wget https://github.com/milvus-io/milvus/releases/download/v2.2.13/milvus-standalone-docker-compose.yml -O docker-compose.yml

在与docker-compose.yml文件相同的目录中,通过运行以下命令启动Milvus

sudo docker compose up -d

如果您的系统安装的是Docker Compose V1版本,

sudo docker-compose up -d

通过docker compose命令查看版本情况

sudo docker-compose ps

在这里插入图片描述
可以查看到Milvus单机版启动后,将有三个docker容器在运行,其中包括Milvus独立服务及其两个依赖项
在这里插入图片描述

2.安装mysql

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

3.启动后端

下载bootcamp项目,使用源码运行后端server。

git clone https://github.com/milvus-io/bootcamp
cd ../bootcamp-master/solutions/image/reverse_image_search/server/

pip install -r requirements.txt

安装时几个包涉及到版本问题,我这里torch用的2.0.1(1.7低)、opencv-python 3.4.16.59
改配置文件
bootcamp-master/solutions/image/reverse_image_search/server/src/config.py
在这里插入图片描述
运行
python main.py

4.启动前端页面

下面代码修改为自己的ip

# Modify API_URL to the IP address and port of the server.
export API_URL='http://127.0.0.1:5000'
docker run -d -p 8001:80 \
-e API_URL=${API_URL} \
milvusbootcamp/img-search-client:1.0

前端启动后的状态:
在这里插入图片描述

打开浏览器输入 你的ip:8001查看前端页面:
在这里插入图片描述

并向milvus数据库添加自己的图像数据集,点加号后。在后端…/src/main.py代码中app的post请求获取到image_path,然后依次执行do_load函数将图片提取特征向量,存入milvus数据库和mysql数据库。如上图,我服务器路径下有9张图。
在这里插入图片描述
最后可以传一张图片看查到的结果
在这里插入图片描述

5.最后提一下遇到的问题

我刚开始设置VECTOR_DIMENSION=1000,会遇到这个错误在这里插入图片描述
特征向量的维度VECTOR_DIMENSION,必须在新建数据库的时候才会生效。如果想改变存储的特征向量维度VECTOR_DIMENSION,
①必须先停止milvus容器,

docker compose down

②删除milvus的数据库volunes文件夹,切换到volumes文件夹位置。

cd ../milvus_search
sudo rm -R volumes

③重新运行milvus容器,
④重新运行后端main.py。

VECTOR_DIMENSION定义在配置文件config.py

它会在创建milvus的数据表collection时候起作用。
在这里插入图片描述

数据库中也查到存进去的数据图片
在这里插入图片描述

更多推荐