在ubuntu上搭建Milvus的以图搜图服务
在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时候起作用。

数据库中也查到存进去的数据图片

更多推荐


所有评论(0)