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

系统升级

以图搜图系统 2.0 版在 1.0 版的基础上,升级了 Milvus 版本 ,增加了图像目标检测功能,替换了图片识别模型,并增强了在多物体图片检测的能力。

1.1 Milvus 版本升级

搭建 Milvus 以图搜图系统 1.0 版时使用的 Milvus v0.10.0,在 2.0 版中升级为最新发布的 Milvus v1.0.0。Milvus v1.0.0 新增了将日志写入到标准输出 (stdout) 的功能,修复了之前版本中内存泄漏的问题。

详见发版说明:https://www.milvus.io/cn/docs/v1.0.0/release_notes.md

1.2 图像目标检测功能

Milvus 以图搜图 2.0 版增加了图像目标检测功能。本功能中使用了 YOLOv3 增强模型——PaddleDetection。PaddleDetection 进一步提升了图像检测速度和精度,还使用了 Bag of Freebies for Training Object Detection Neural Networks 中提出的图像增强和 label smooth 等优化方法。

1.3 图片识别模型升级

Milvus 以图搜图 2.0 版将图片识别模型从 VGG 替换为 Resnet50。Resnet50 模型训练速度更快,对图片的识别精度也更高。

系统简介

Milvus 以图搜图系统 2.0 的结构如下图所示:

首先,将图片库输入到目标检测模型 YOLOv3 中,检测出库中每一张图片中包含的所有物体,并将检测出的物体分别保存成图片。

然后,将生成的图片输入到图片识别模型 Resnet50 中,转化为向量并存储到 Milvus 中。Milvus 会对每条向量生成 ID 并建立索引。其后将 ID 和对应的原始图片存储路径存储到 CacheDB 数据库中。

最后,输入一张待搜索的图片,依次进行目标检测和图片识别,并将待搜索图片转化为向量。Milvus 会对向量进行相似度计算并检索出相似图片的 ID ,根据 ID 在CacheDB 数据库中查找对应的图像存储路径,最后将检索结果返回给用户。

搭建步骤

请参考 GitHub 项目 搭建 Milvus 以图搜图系统。https://github.com/milvus-io/bootcamp/tree/1.0/solutions/image_search2

3.1 环境安装

在成功安装并启动 Milvus 后,下载 GitHub 项目到本地,安装对应的 Python 环境。

3.2 启动查询服务

安装 Python 环境后,启动查询服务,并验证环境配置是否正确。

注:Milvus 安装后需要修改 config.py 中相对应 Milvus 的参数

App.py 脚本中提供多个 API ,包括 train API 及 search API。

调用 train API 将图片库的路径传入系统中,对图片进行目标检测和图片识别,并将图片向量存储到 Milvus 中。

调用 search API 进行相似图片检索。将图片库进行目标检测、图片识别,然后在 Milvus 中进行相似图片检索,返回相似图片的 ID 和距离。

3.3 启动客户端

启动客户端查看以图搜图系统查询结果:

注:WEBSERVER_IP 为本机的 IP 地址,浏览器打开地址为<本机的 IP :8001>

结果比对

如下图所示,相较于 1.0 版,Milvus 以图搜图 2.0 版提升了多物体检测的能力:

图 1: Milvus 以图搜图 1.0 版本相似度搜索结果

图 2: Milvus 以图搜图 2.0 版本相似度搜索结果

经过多次搜索比对,我们发现如果在图片中仅包含少量物体,使用 Milvus 以图搜图系统 1.0 版本可以满足大多数用户的需求。在图片中包含多个物体的情况下,使用 Milvus 以图搜图系统 2.0 版本比使用 1.0 版本产生的检索结果准确率更高。总而言之,用户可依据自身业务和需求来选择使用 Milvus 以图搜图系统 1.0 版本或 2.0 版本。

想要了解更多 Milvus 的教程和应用场景,可以关注我们的微信公众号或者加入微信群。我们期待与你进一步交流!

About Zilliz

Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量相似度搜索引擎,以加快下一代数据平台的发展。Milvus 目前是 LF AI & Data 基金会的孵化阶段项目,能够管理大量非结构化数据集。我们的技术在新药发现、计算机视觉、推荐引擎、聊天机器人等方面具有广泛的应用。

欢迎加入 Milvus 社区

github.com/milvus-io/milvus | 源码

milvus.io | 官网

zhihu.com/org/zilliz-11| 知乎

zilliz.blog.csdn.net | CSDN 博客

space.bilibili.com/478166626 | Bilibili

基于 Milvus 的以图搜图系统 2.0相关推荐

  1. 零基础实战行人重识别ReID项目-基于Milvus的以图搜图

    目录 第一阶段,ReID的基本概念 1.1 ReID定义 1.2 技术难点 1.3 常用数据集 1.4 评价指标 1.5 实现思路 1.6 具体方案 第二阶段:复现算法 2.1 PCB的骨干网络 2. ...

  2. python+milvus实现一个以图搜图系统

    目录 引言 说明 准备数据 训练数据 安装minlvus(docker-compose方式) python集成milvus+towhee python后端启动方式 启动前端 查询数据 引言 当您听到& ...

  3. Torch、Java、Milvus快速搭建以图搜图系统

    Torch.Java.Milvus快速搭建以图搜图系统 1 原理概述 以图搜图大致原理(口水话版) 以图搜图,即通过一张图片去匹配数据库中的图片,找到最相似的N张图.在我们普通的搜索系统中,文字匹配的 ...

  4. 7 招教你轻松搭建以图搜图系统!

    作者 | 小龙 责编 | 胡巍巍 当您听到"以图搜图"时,是否首先想到了百度.Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图 ...

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

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

  6. 【Milvus的以图搜图】

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

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

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

  8. Milvus x 又拍图片管家亿级图像搜图系统

    又拍图片管家亿级图像之搜图系统的两代演进及底层原理 又拍图片管家当前服务了千万级用户,管理了百亿级图片.当用户的图库变得越来越庞大时,业务上急切的需要一种方案能够快速定位图像,即直接输入图像,然后根据 ...

  9. Milvus实战| 以图搜视频系统

    以图搜视频,顾名思义就是拿一张图片去视频底库里面搜索包含相似镜头的视频.以图搜视频中一个关键的步骤就是视频向量化,视频向量化即在视频中抽取关键帧,对每帧视频进行特征提取,将其转化为结构化的向量.至此, ...

最新文章

  1. Python创建virtualenv(虚拟环境)方法
  2. 985、211毕业,就了不起吗?
  3. Linux软raid创建和维护
  4. 网站应分析哪些方面来提升网站优化的效果呢?
  5. 类似飞秋的局域网软件_内网视频会议软件系统
  6. serverless 构建_使用Serverless,StepFunctions和StackStorm Exchange构建社区注册应用程序-Episode…...
  7. 函数式编程语言天生就慢吗?
  8. adblock去除烦人的广告
  9. linux 如何格式化ext2,Linux的Ext2文件系统(InodeBlock)详解
  10. 哈希表(HashTable),哈希冲突的避免、解决
  11. 【nginx】关于fastcgi_cache
  12. JavaScript数据类型之Number
  13. 学习python第一天总纲
  14. 题目:身份证录入系统 一、语言和环境 a)实现语言Java, 使用Android开发环境实现《身份证录入系统》APP。
  15. 使用 stress 命令对cpu进行压力测试
  16. Visual Studio 2019 路径不存在。请检查路径是否正确,然后再试。
  17. 常用元器件的识别与使用(电阻、电容、电感)
  18. -Dominant Character
  19. 信捷 XDH Ethercat 正负极限的设置
  20. 2022网易云前端+nodejs后端API项目部署全解

热门文章

  1. 管道过滤器和批处理方式
  2. C++金拱门点餐结算系统_餐厅点单结算系统
  3. python库——未完待续,紫薯布丁
  4. 谈我所经历的区块链历程
  5. ARM与嵌入式Linux的入门建议
  6. 大数据【企业级360°全方位用户画像】业务数据调研及ETL
  7. Mobileye在耶路撒冷启动自动驾驶测试,挑战极限路况
  8. RISC-V基金会董事谭章熹:RISC-V,从边缘逐渐向中央扩展
  9. 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
  10. 智能合约开发——TypeScript 基础(全)