【以图搜图】GPUNPU适配万物识别模型和Milvus向量数据库

目录

  • 以图搜图
    • 介绍
    • 项目地址
      • Milvus
      • cv_resnest101_general_recognition
    • 代码使用流程
    • 结果展示
    • 模型部署环境
    • Milvus部署及使用
      • docker安装
      • docker-compose安装
      • Milvus可视化工具Attu
        • 进入网页端
    • Data数据示例
    • 点个赞再走呗!比心💞️

以图搜图

• 🤖 ModelScope • 📃 Milvus

介绍

本文档旨在介绍如何使用 ModelScope 中的通用领域模型(iic/cv_resnest101_general_recognition)以及搭配 Milvus 向量数据库实现以图搜图的功能。这项技术能够有效地从大量图片中迅速识别出与目标图片相似的图片,为图像检索任务提供了一种高效的解决方案

项目地址

https://github.com/AnitaSherry/search_by_Image

Milvus

  • 数据库类型: Milvus 向量数据库
  • 数据库特点: Milvus 是一个开源的向量相似性检索引擎,专注于高性能的向量相似性搜索。它支持多种相似性搜索算法,并提供了可扩展的架构,适用于大规模的向量数据存储和检索。
  • 数据库描述: Milvus 向量数据库能够帮助用户轻松应对海量非结构化数据(图片/视频/语音/文本)检索。单节点 Milvus 可以在秒内完成十亿级的向量搜索,分布式架构亦能满足用户的水平扩展需求。

cv_resnest101_general_recognition

  • 模型名称: iic/cv_resnest101_general_recognition
  • 模型类型: 视觉分类
  • 模型描述: 该模型基于 ResNeSt101 架构,经过大规模数据集的预训练和精调,具有较强的图像识别能力。它能够识别通用领域中的各种物体、场景和图案

代码使用流程

  1. 下载模型:

    python model_structure/modescope_init.py
    

    记录好模型下载后的路径,一般情况下模型路径为:

    Linux_ModelFile="/root/.cache/modelscope/hub/damo/cv_resnest101_general_recognition/pytorch_model.pt"
    Windows_ModelFile='C:\\Users\\Administrator\\.cache\\modelscope\\hub\\damo\\cv_resnest101_general_recognition\\pytorch_model.pt'
    
  2. 建立向量库:

    python milvus_manage/mlivus_create.py --host 192.168.10.60 
    

    host 为 milvus 数据库所在服务器地址

  3. 图像转向量:

    pyhon Image_vectorization.py  --host 192.168.10.60  --data data
    

    data目录中直接存放图片

  4. 搜索功能使用:

    python webui.py --host 192.168.10.60 --server_port 9090 --limit 4
    

    limit限制搜索图片数量

结果展示

在这里插入图片描述

模型部署环境

pip install docker==6.1.3
pip install docker-compose==1.29.2
pip install gradio==3.50.2
pip install pymilvus==2.3.6

其他的缺什么装什么

Milvus部署及使用

mkdir Milvus
cd Milvus
wget https://github.com/milvus-io/milvus/releases/download/v2.2.13/milvus-standalone-docker-compose.yml -O docker-compose.yml
sudo docker-compose up -d
sudo docker-compose ps

通过命令查看显示信息如下

      Name                     Command                  State                            Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd         etcd -advertise-client-url ...   Up (healthy)   2379/tcp, 2380/tcp
milvus-minio        /usr/bin/docker-entrypoint ...   Up (healthy)   0.0.0.0:9000->9000/tcp, 0.0.0.0:9001->9001/tcp
milvus-standalone   /tini -- milvus run standalone   Up (healthy)   0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp

验证连接

docker port milvus-standalone 19530/tcp

停止Milvus

sudo docker-compose down

停止后删除数据

sudo rm -rf  volumes

docker安装

sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version

输出示例

Docker version 18.09.0, build 172f8da

docker-compose安装

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v

输出示例

docker-compose version 1.29.2, build unknown

Milvus可视化工具Attu

docker run -p 8000:3000  -e MILVUS_URL=0.0.0.0:19530 zilliz/attu:dev

https://github.com/zilliztech/attu/issues/415
dev版本可以支持arrch昇腾服务器,本人和Attu官方人员沟通后得到版本,x86系统可以使用v2.3.8版本

进入网页端

启动docker后,在浏览器中访问“http://{your machine IP}:8000”,点击“Connect”进入Attu服务

Milvus Address 填写{your machine IP}:19530

Milvus Database (optional) 如果创建过数据库直接填写数据库名称,如果没有填写default,创建一个名为default的数据库

Milvus Username (optional) 和 Milvus Password (optional) 无需填写,因为默认是关闭鉴权的

Data数据示例

链接:https://pan.baidu.com/s/1eEDYq0oCBxmVRrIhophgCQ?pwd=c50e 
提取码:c50e

点个赞再走呗!比心💞️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[视觉基础知识]: 点云数据

https://pointclouds.org/documentation/tutorials/pcd_file_format.html PCD 不是第一种支持 3D 点云数据的文件类型。尤其是计算机图形学和计算几何学社区,已经创建了多种格式来描述使用激光扫描仪获取的任意多边形和点云。其中一些格式包括: PLY - …

Go微服务实战——服务的监控与链路追踪(监控数据可视化)

链路追踪背景 对于早期系统或者服务来说,开发人员一般通过打日志的方式来进行埋点(常用的数据采集方式),然后再根据日志系统和性能监控定位及分析问题。对于单体的应用通过日志系统完全可以定位到问题,从而排查异常。…

Jpg图片怎么变成gif?三步在线转换gif动画

JPG是一种常见的图像格式,而GIF动态则是一种流行的动态图像格式。如果你想将多张JPG图片合成为一个GIF动画,下面是一些简单的方法来帮助你完成这个任务。通过使用Gif动画制作工具-GIF中文网,上传多张jpg格式图片轻松一键在线转换gif动画&…

uniapp H5打开应用商店

/* 点击事件 */downApp() {let sysInfo uni.getSystemInfoSync()if (sysInfo.osName ios) { // ios/* 跳转到ios商店 id后面接的就是苹果id */window.location.replace(itms-appss://apps.apple.com/cn/app/id6479005866)} else { // androidthis.detectDeviceBrand(sysInfo…

【shell】定时检查说明

想法:定一个时间,然后查询需要格式的相关文件,移到一个新的文件夹下面 文件单独检查 进入账号su root之后,进入到crontab -e进行添加 #凌晨1点10分 0点30分 10 1 * * * /data/edw_ods/check_st/1move_file.sh 30 0 * * * /data…

Python爬虫获取接口数据

Python爬虫获取接口数据 正常人的操作​​​​​​​​​​爬虫的思路标题获取请求信息标题请求转换为代码完整代码请求返回信息执行程序获取静态网页数据的教程,适用于我们要爬取的数据在网页源代码中出现,但是还是有很多的数据是源代码中没有的,需要通过接口访问服务器来获…

Docker与containerd:容器技术的双璧

🐇明明跟你说过:个人主页 🏅个人专栏:《Docker幻想曲:从零开始,征服容器宇宙》 🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、Docker和containerd的背景…

ISO9001质量管理体系是什么,ISO9001认证详细介绍

ISO9001质量管理体系是国际标准化组织(ISO)制定的一套质量管理标准,旨在帮助企业建立有效的质量管理体系,提高产品和服务的质量水平,增强企业的竞争力和市场信誉。ISO9001认证则是企业按照ISO9001标准建立起质量管理体…

cobbler批量装机工具,可以实现同时装多台或多台不同系统的主机,也可以实现定制安装

cobbler批量装机工具 文章目录 cobbler批量装机工具1. cobbler简介2. cobbler服务端部署uos3. 客户端安装(内存和cpu可以多个点,以免后面出错)4.cobbler服务端部署centos75.客户端安装6.cobbler服务端部署centos87.客户端安装8.cobbler服务端部署rockylinux99.客户端…

还在苦苦寻找Gin的学习资料么?学习Gin框架,看它就欧了

学习 Go Gin 框架可以按照以下步骤进行: 理解基本概念: 确保你对 Go 语言有一定的了解,并理解 Web 框架的基本概念。Gin 是一个基于 Go 语言的轻量级 Web 框架,因此,你需要了解 HTTP 请求、路由处理、中间件等概念。 …

面试笔记——Redis(集群方案:主从复制、哨兵模式和分片集群)

主从复制 在 Redis 主从集群中,一个主节点(Master)负责处理客户端的读写请求,而多个从节点(Slave)则负责复制主节点的数据,并对外提供读取服务——解决高并发问题。 主节点(Master&…

最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程

原文链接:最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598050&idx5&sn70fd3f5946d581ad9c1363295b130ef5&chksmfa823e05cdf5b713baf9cf1381bfb2455ad675a0b21e194bef8b76f35d6aa77…

C++初阶 | [九] list 及 其模拟实现

摘要:介绍 list 容器,list 模拟实现,list与vector的对比 list(带头双向循环列表) 导入:list 的成员函数基本上与 vector 类似,具体内容可以查看相关文档(cplusplus.com/reference/list/list/)&…

vue2知识总结

1.如何调用子组件的方法 直接通过this.$refs.节点.方法&#xff0c;如&#xff1a;this.$refs.company.getDetail() <Mygs v-if"mygs" :coType"coType" :deptId"deptId" valueParent"valueParent" ref"company" /> …

Linux中使用vim编辑器的时候提示:发现交换文件“XXX.swap“

目录 问题描述解决方案 问题描述 有时候vim编辑文件的时候 系统突然卡了 无奈只能强制退出关机 然后重启 这个时候想重新回来继续编辑刚刚的文件 注意:我这种操作方式 虽然之后可以继续正常编辑了 但是发现文件是没有保存的 vim XXX进去有如下提示 解决方案 注意:我这种操作…

JavaScript 什么是纯函数,有哪些常见的纯函数

什么是纯函数 纯函数是指那些不依赖于外部状态&#xff0c;也不改变外部状态的函数。在JavaScript中&#xff0c;纯函数的返回值仅由其输入参数决定&#xff0c;而且执行纯函数不会产生副作用&#xff0c;比如修改全局变量或修改传入的参数。 常见的纯函数 JavaScript中一些常…

理论学习:深度学习里什么是置信度

什么是置信度 在深度学习中&#xff0c;置信度通常指的是模型对其预测结果的确信程度。这种概念在分类问题中尤其常见&#xff0c;其中模型会为每个类别分配一个概率值&#xff0c;这个值表示模型认为输入数据属于该类别的可能性有多大。置信度是模型输出的一部分&#xff0c;…

c++带符号的大整数计算器

定制魏:QTWZPW,获取更多源码等 目录 题目 要求 类声明 构造函数 核心算法实现说明 总体设计 测试与结论 加法测试 减法测试 乘法测试 除法测试 总结 完整代码 题目 为带符号大整数定义一个类。 将带符号大整数表示成两个值:一个是绝对值,用无符号大整数表示,一…

基于python的变配电室运行状态评估与预警系统flask-django-nodejs-php

近年来,随着我国工业化、城镇化步伐的不断加快&#xff0c;城市配电网络取得令人瞩目的发展成果。变配电室是供配电系统的核心&#xff0c;在供配电系统中占有特殊的重要地位[1]。变配电室电气设备运行状态和环境信息缺乏必要的监测评估预警手段&#xff0c;如有一日遭遇突发情…

OpenGL学习笔记【1】——简介

一、OpenGL概念 OpenGL (Open Graphics Library&#xff0c;译名&#xff1a;开放式图形库开放式图形库) 是一种用于渲染 2D 和 3D 图形的跨语言、跨平台的编程接口(API)。 二、OpenGL跨语言 OpenGL 是一个 C 语言库&#xff0c;因此理解 C 语言&#xff08;或 C&#xff09;的…