为了实现以图搜图,本次实现的是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

准备工作

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-composesudo chmod +x /usr/local/bin/docker-composedocker-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.https://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.7sudo docker pssudo 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 srcpython 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/bootcamphttps://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/volumessudo rm -R volumes

搭建自己的Milvus以图搜图服务相关推荐

  1. 使用Milvus搭建以图搜图服务

    使用Milvus搭建以图搜图服务 介绍 安装Milvus Java调用Milvus插入.查询 引入Maven依赖 创建Milvus客户端 实现Milvus插入向量数据 实现Milvus 查询向量 结尾 ...

  2. 以图搜图服务快速搭建

    以图搜图服务快速搭建 电商公司,管理的商品少则几千,多则上百万.如何帮助用户从多如牛毛的商品中找到类似的商品就成了问题. 以图搜图就可以很好的帮助解决这个问题,通过 Towhee(resnet50 模 ...

  3. 使用elasticSearch搭建本地以图搜图服务

    使用elasticSearch的向量检索实现以图搜图 文章目录 使用elasticSearch的向量检索实现以图搜图 前言 快速开始 安装elasticsearch和kibana 创建索引 下载项目 ...

  4. 推荐系统工程篇之搭建以图搜图服务

    基于内容的召回在推荐系统中是比较常见的召回策略,常见有基于用户或物品的标签召回或者基于用户的年龄,地域等召回,一般该策略的实现是基于开源软件 Elasticseach 实现的.虽然召回的结果都比较合理 ...

  5. 工程篇之搭建以图搜图服务

    基于内容的召回在推荐系统中是比较常见的召回策略,常见有基于用户或物品的标签召回或者基于用户的年龄,地域等召回,一般该策略的实现是基于开源软件 Elasticseach 实现的.虽然召回的结果都比较合理 ...

  6. 手把手写深度学习(16):用CILP预训练模型搭建图文检索系统/以图搜图/关键词检索系统

    前言:CLIP is all yuo need!CLIP在text-to-image.图像检索.视频理解.图像编辑.自监督学习等领域都展示了极强的统治力,这篇博客手把手教大家搭建自己的图文检索系统,能 ...

  7. 【Milvus的以图搜图】

    0. 介绍 Milvus官方在bootcamp项目中给开发者提供多种解决方案,包含常见的以图搜图.人脸检索.DNA相似性检索.视频检索等等,具体可以参考bootcamp项目. 本文主要就bootcam ...

  8. 基于 Milvus 的以图搜图系统 2.0

    Milvus 以图搜图 1.0 版本自发布以来便受到广大用户的欢迎.近日,Zilliz 推出了 Milvus 以图搜图系统 2.0 版.本文将介绍 Milvus 以图搜图系统 2.0 版的主要更新内容 ...

  9. 搭建自己的以图搜图系统(二):深入优化搭建生产级别的图搜系统

    概述 本文是"搭建自己的以图搜图系统"系列的第二篇,在第一篇内容中我们了解了如何利用"机器学习框架 Towhee ¹"和"向量数据库 Milvus ² ...

  10. “以图搜图”引擎及网站合集(转)

    转载---http://blog.csdn.net/forthcriminson/article/details/8698175 1.QBIC http://www.research.ibm.com/ ...

最新文章

  1. c语言long int表示范围_C语言编程第9讲——这些C语言整数类型的知识点你掌握了吗...
  2. KingPaper初探Java之方法声明及重载
  3. How to setup SLF4J and LOGBack in a web app - fast--转载
  4. H264学习方法历程资料
  5. 重磅 | 《机器学习综述》算法分类及特征工程手写笔记
  6. 罗永浩与锤子手机撇清关系;微软回应「高管传奇」经历;Rust 1.38 稳定版发布 | 极客头条...
  7. python种颜色循环_如何用Python做一个RGB和16进制的互转工具
  8. java多线程编程synchronized关键字
  9. ctf misc 图片题知识点
  10. go编译为linux可执行文件,go编译可执行文件
  11. 时间序列学习(1):平稳性、自相关性
  12. 小程序基本标签与语法
  13. gitlab 企业级私有仓库搭建
  14. 关于Edge被篡改:打开的主页被改动、收藏夹被改动等问题
  15. C++界面开发框架Qt新手入门指南 - 如何创建Qt Quick UI项目
  16. ADB常用命令和Monkey命令
  17. Chrome安装JsonView插件指南
  18. Android adb 安装 apk无法安装错误排查
  19. 刺激战场模拟器过检测的被封号了怎么办?电脑控制手机玩游戏了解一下
  20. 解锁Pin码| Message | Registrant | AT+CREG | AT+COPS

热门文章

  1. html基本词汇app,背单词APP哪个最好 可以自定义单词卡片的英语学习APP推荐
  2. 触动人心的手机端页面设计
  3. 浙江工商大学计算机研究生院,浙江工商大学研究生院
  4. 产品思考 - 不剪发的Tony老师
  5. dark lust百度云 shell_Girlvania summer_lust+Expansion_Pack-LegsFeet.zip
  6. Taro微信小程序使用getUserProfile获取微信用户头像昵称等信息
  7. 黑马程序员SpringBoot基础篇SSMP整合案例
  8. 用了半年的时间,把python学到了能出书的程度
  9. 【WAF技巧拓展】————4、web应用防火墙逃逸技术(一)
  10. 多目标优化问题中常见分解方法的理解