【以图搜图】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

点个赞再走呗!比心💞️

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【java】10.面向对象

一、类和对象 1.1 类和对象的理解 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 * 类 * 类的理解 * 类是对现实生活中一类具有共同属性和行为的事物的抽象 * 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合 * 简单理解&am…

C#、.NET版本、Visual Studio版本对应关系及Visual Studio老版本离线包下载地址

0、写这篇文章的目的 由于电脑的环境不同,对于一个老电脑找到一个适配的vscode环境十分不易。总结一下C#、.NET、Visual Studio版本的对应关系,及各个版本Visual Studio的下载地址供大家参考 1、C#、.NET版本、Visual Studio版本对应关系如下 2、Visua…

使用paddleocr

paddle快速开始 具体安装流程 安装shapely库报错怎么办? 选定下载paddleocr2.2时报错 原因是因为python版本不支持: 之后重新创建新的环境,安装python3.8再来一遍 【重新选取对应whl文件,确认文件名是否可用】 之后是可以了…

ARM Coresight 系列文章 11.1 -- CoreSight Cortex-M33 CTI 详细介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 CTI 的工作原理CTI 主要特点CTI的使用场景CTI 的工作原理 CTI 允许不同的调试和追踪组件之间基于特定事件进行交互。例如,当一个断点被命中时,CTI 可以用来触发内存的追踪捕捉或者外部仪器的行为,反之亦然。这种…

C#多态性

文章目录 C#多态性静态多态性函数重载函数重载 动态多态性运行结果 C#多态性 静态多态性 在编译时,函数和对象的连接机制被称为早期绑定,也被称为静态绑定。C# 提供了两种技术来实现静态多态性。分别为: 函数重载 运算符重载 运算符重载将…

iPhone语音备忘录误删?掌握这几个技巧轻松恢复【详】

语音备忘录是一款强大的应用程序,它允许用户使用语音输入功能来快速记录想法、提醒、待办事项等。无论是在行进间、工作中还是日常生活中,语音备忘录都是一个非常实用的工具,可以帮助您随时随地记录重要信息,而无需打字或者手动输…

什么是Vector Database?

此为看完视频What is a Vector Database?后的笔记。 作者首先对数据库做了分类,其中RTweb表示real time web app。 然后对用例做了分类,最后一个就是适合于AI的近似搜索。 好处,包括灵活性,可扩展性和性价比。 本视频最重要的…

数据清洗(一)Excel

一、引言 线上出现问题之后的数据清洗是少不了的,有的可以直接通过接口或者mq补偿,有的写sql更新db就可以,但是在匹配关系比较复杂的时候就需要建立临时表做关联匹配,数据量不大可以直接用excel进行匹配。 二、Excel清洗数据 作者…

Windows系统服务器宝塔面板打开提示Internal Server Error错误

1、cmd运行bt命令 2、尝试输入16修复程序 3、如果不行,输入17升级程序

你知道弧幕影院如何制作吗?其应用领域竟如此广泛!

“沉浸式”作为如今备受热议的内容展示形式,其有着多种可实现的途径,其中弧幕影院作为一项有着独特视觉效果、沉浸式观影体验的技术类型,便是大多数影院、主题公园等娱乐场景的必备设计展项,这种弧幕影院通常使用大型的半圆形屏幕…

PyQt:实现菜单栏的点击拖动效果

一、整体步骤 1.设计UI文件 2.调用显示 3.效果展示 二、设计UI文件 1.添加 Scroll Area控件,作为菜单栏的布置区域 2.设置 Scroll Area控件的属性 3.Scroll Area控件内放置 按钮控件 组成菜单栏 此处,放置了需要了6个按钮,并设置按钮的固…

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…

科学认识并正确运用人工智能技术赋能国际传播

以下文章来源:学习时报 加强国际传播能力建设,全面提升国际传播效能,形成同我国综合国力和国际地位相匹配的话语权,已成为实现中国式现代化需要解决好的一个重大问题。文生视频模型Sora,是继ChatGPT之后又一推动传播智…

SinoDB系统数据库

在SinoDB数据库的一个实例中,存在多个数据库,分为系统数据库和用户数据库。系统数据库在实例初始化时自动创建,存放实例级别上的监控信息、数据字典信息,用户能够访问而不能修改这些数据。用户数据库由用户根据需要创建&#xff0…

MyBatis3源码深度解析(十九)MyBatis日志实现

文章目录 前言第七章 MyBatis日志实现7.1 Java日志体系7.1.1 常用日志框架7.1.2 Java日志发展史7.1.3 日志接口与日志实现的绑定 7.2 MyBatis日志实现7.2.1 Log接口7.2.2 LogFactory工厂7.2.3 MyBatis日志自动查找7.2.4 MyBatis日志类型配置 7.3 小结 前言 日志是Java应用中必…

信驰达车规蓝牙模块RF-BM-2642QB1I赋能汽车T-Box

近年来,随着人们对数据传输需求的增长,传统网络布线的通讯方式逐渐显现出满足不了的局限性,与此同时,各种无线传输技术迅速发展。汽车工业同样需要无线通讯技术,但红外技术、802.11、HomeRF等技术在汽车工业中存在一定…

axure和蓝湖上查看页面的说明和上传文件

蓝湖上传文件 入口 可添加链接和文件 文件可添加 PDF,word,Excel等,不能添加压缩包,可在线预览文件内容 axure元件说明 在原型上添加说明 axure发布页 axure预览页或发布到axure的服务器上,查看页面说明的方法 点…

python中如何解析Html

在最近需要的需求中,需要 python 获取网页内容,并从html中获取到想要的内容。这里记录一下两个比较常用的python库对html的解析。 1. BeautifulSoup 它是一个非常流行的python脚本库,用于解析HTML和XML文档。如果你对 java 很熟悉&#xff…

如何在Linux系统部署Dupal CMS结合内网穿透实现无公网IP访问web界面

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&a…

美摄科技剪同款SDK解决方案全面升级

视频内容已成为企业宣传、品牌塑造和市场营销的重要载体。然而,如何快速、高效地制作出高质量的视频内容,成为摆在众多企业面前的一大难题。针对这一挑战,美摄科技凭借深厚的技术积累和创新能力,推出了全新的剪同款SDK解决方案&am…