赞
踩
为了实现以图搜图,本次实现的是Reverse Image Search(反向图像搜索)。学习使用开源的milvus向量数据库项目进行本地部署。项目代码地址:
GitHub - milvus-io/milvus at 2.0.0-rc6An open-source vector database for embedding similarity search and AI applications. - GitHub - milvus-io/milvus at 2.0.0-rc6https://github.com/milvus-io/milvus/tree/2.0.0-rc6GitHub - milvus-io/bootcamp: Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc.Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc. - GitHub - milvus-io/bootcamp: Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc.
https://github.com/milvus-io/bootcamp
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
-
- sudo chmod +x /usr/local/bin/docker-compose
-
-
- docker-compose --version
在milvus的git官网readme中有install milvus的地址:
wget https://github.com/milvus-io/milvus/releases/download/v2.0.0-rc6/milvus-standalone-docker-compose.yml -O docker-compose.yml
- # 启动
- docker-compose up -d
-
- # 查看容器
- sudo docker-compose ps
-
- # 关闭
- docker-compose down
正常会运行三个milvus容器
- sudo docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
-
- sudo docker ps
-
- sudo docker kill container_name
可以看到此时共四个容器
下载bootcamp项目,使用源码运行后端server,不使用docker启动。
git clone https://github.com/milvus-io/bootcamp
1.安装需求库
- cd ../milvus_deploy/bootcamp/solutions/reverse_image_search/quick_deploy/server/
-
- pip install -r requirements.txt
2. 在config.py中配置自己的host和port。
vim server/src/config.py
3.运行main.py
- cd src
-
- python main.py
后端运行成功后的状态
下面代码修改为自己的ip
- # Modify API_URL to the IP address and port of the server.
- $ export API_URL='http://172.16.20.10:5000'
- $ docker run -d -p 8001:80 \
- -e API_URL=${API_URL} \
- milvusbootcamp/img-search-client:1.0
可以将其写入shell脚本中start_client.sh 执行。
sh start_clint.sh
前端启动后的状态:
打开浏览器输入127.0.0.1:8001查看前端页面:
官方的部署流程在git上也有介绍,可以参考:
点击加号后,在后端main.py代码中app的post请求获取到image_path,然后依次执行do_load函数将图片提取特征向量,存入milvus数据库和mysql数据库。
最后显示共有多少张图像在数据库中。
点击上传一张图像,会按照相似度从高到低返回相似图像。
如果想改变存储的特征向量维度VECTOR_DIMENSION,①必须先停止milvus容器,②删除milvus的数据库volunes文件夹,③重新运行milvus容器,④重新运行后端main.py。
VECTOR_DIMENSION定义在config.py
它会在创建milvus的数据表collection时候起作用。
在milvus_helper.py的40行
volumes文件夹位置。
- cd ../milvus_deploy/volumes
-
- sudo rm -R volumes
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。