milvus+以图搜图
01 Dec 2020
|
|
Milvus 能够帮助用户轻松应对海量非结构化数据(图片/视频/语音/文本)检索。单节点 Milvus 可以在秒内完成十亿级的向量搜索,分布式架构亦能满足用户的水平扩展需求。
在 Ubuntu/CentOS 上使用docker安装 Milvus
1.docker info,确定docker已经安装
2.拉取 Milvus 镜像(拉取仅需 CPU 的镜像)
docker pull milvusdb/milvus:0.9.1-cpu-d052920-e04ed5
3.下载配置文件
mkdir -p /home/$USER/milvus/conf
cd /home/$USER/milvus/conf
wget https://raw.githubusercontent.com/milvus-io/milvus/v0.9.1/core/conf/demo/server_config.yaml
注意:万一你遇到无法通过 wget 命令正常下载配置文件的情况,你也可以在 /home/$USER/milvus/conf 路径下创建 server_config.yaml 文件,然后复制粘贴 server config 文件 的内容。
4.启动 Milvus Docker 容器
sudo docker run -d --name milvus_cpu_0.9.1 \
-p 19530:19530 \
-p 19121:19121 \
-v /home/$USER/milvus/db:/var/lib/milvus/db \
-v /home/$USER/milvus/conf:/var/lib/milvus/conf \
-v /home/$USER/milvus/logs:/var/lib/milvus/logs \
-v /home/$USER/milvus/wal:/var/lib/milvus/wal \
milvusdb/milvus:0.9.1-cpu-d052920-e04ed5
使用Milvus实现以图搜图
项目代码:https://github.com/zgd716/search_image
项目运行流程:
一、图片预处理:
准备搜索的图片库
提取图片库全部图片的特征值
将特征值存入milvus和图片地址持久化(存入数据库)
二、用户上传图片:
将图片保存服务器
提取该图片的特征值
运用欧式距离算法与图片库特征值,进行相似度计算,展示相似度最高的top k 张图片
前置条件环境配置完毕、milvus安装完毕且开启。
1.python ImageTrain.py,提取特征,存放到milvus中
2.运行manage.py,测试以图搜图功能