搭建自己的Milvus以图搜图服务

3 篇文章 0 订阅
2 篇文章 0 订阅

        为了实现以图搜图,本次实现的是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-rc6icon-default.png?t=N7T8https://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.icon-default.png?t=N7T8https://github.com/milvus-io/bootcamp

准备工作

ubuntu安装docker和docker-compose

1.docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2.docker-compose

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引擎

在milvus的git官网readme中有install milvus的地址:

Install Milvus Standalone · Open Source Vector Database designed for AI applicationsInstallation instructions for the standalone version of Milvus.icon-default.png?t=N7T8https://milvus.io/docs/v2.0.0/install_standalone-docker.md

1.下载docker-compose.yml文件

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

2.启动docker-compose(即启动milvus容器)

# 启动
docker-compose up -d

# 查看容器
sudo docker-compose ps

# 关闭
docker-compose down

正常会运行三个milvus容器

二、部署bootcamp项目

1.启动mysql数据库

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

sudo docker ps

sudo docker kill container_name

 可以看到此时共四个容器

2.启动后端服务

下载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

 后端运行成功后的状态

3.启动前端页面

下面代码修改为自己的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上也有介绍,可以参考:

bootcamp/solutions/reverse_image_search/quick_deploy at master · milvus-io/bootcamp · GitHubDealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc. - bootcamp/solutions/reverse_image_search/quick_deploy at master · milvus-io/bootcampicon-default.png?t=N7T8https://github.com/milvus-io/bootcamp/tree/master/solutions/reverse_image_search/quick_deploy

三、使用milvus以图搜图

1.向milvus数据库添加自己的图像数据集

         点击加号后,在后端main.py代码中app的post请求获取到image_path,然后依次执行do_load函数将图片提取特征向量,存入milvus数据库和mysql数据库。

 

最后显示共有多少张图像在数据库中。 

2.添加查询图像

点击上传一张图像,会按照相似度从高到低返回相似图像。

 

 

四、问题记录

  1、特征向量的维度VECTOR_DIMENSION,必须在新建数据库的时候才会生效。

        如果想改变存储的特征向量维度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

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值