1,原理

  存储:通过Core项目调取python接口,python通过使用towhee把图片转成向量存在milvus向量数据库中。

  查询:通过Core项目调取python接口,python根据查询的图片,转成向量数据,再在向量数据库中根据L2模式进行相近查询

2,安装

  2.1安装docker

    2.1.1 在windows功能中打开Hyper-V 和 容器

    2.1.2 进入https://www.docker.com/ ,下载windows版本进行安装

  2.2安装Milvus

  milvus官网地址:https://milvus.io/

    2.2.1 在任意一个盘符下创建一个文件夹(可以任意起名,例如dockermilvus),在dockermilvus中创建五个文件夹,分别为conf,db,logs,pic,wal。在conf中存放docker-compose.yml和server_config.yaml文件。

    注:docker-compose.yml是在https://github.com/milvus-io/milvus/releases/download/v2.0.2/milvus-standalone-docker-compose.yml 这个路径下下载,并改名为docker-compose.yml.

    2.2.2 使用命令提示符进入dockermilvus/conf文件夹中,执行docker-compose up -d 命令,执行安装。安装成功后再次执行此docker-compose up -d命令,查看安装文件运行状态。

    2.2.3 在命令提示符中执行 docker run -p 3000:3000 -e HOST_URL=http://192.168.10.171:3000 -e MILVUS_URL=192.168.10.171:19530 milvusdb/milvus-insight:latest 命令(运行数据库进入界面,数据库网页界面须通过3000接口进入19530接口界面)。

    2.2.4 milvus数据库迁移部署:

      1》把docker中运行的milvus镜像打包成.tar文件

      2》在命令提示符中进入个空文件夹中,执行命令

        docker save -o minio.tar minio/minio

        docker save -o etcd.tar quay.io/coreos/etcd

        docker save -o milvus-insight.tar milvusdb/milvus-insight

        docker save -o milvus.tar milvusdb/milvus

      3》在另一台电脑安装docker,在创建个文件夹(dockermilvus),文件中创建conf,db,logs,pic,wal五个文件夹,conf文件夹中放docker-compose.yml和server_config.yaml文件。

      4》minio.tar,etcd.tar,milvus-insight.tar,milvus.tar 这四个文件放到dockermilvus文件夹中

      5》执行docker load -i minio.tar

        docker load -i etcd.tar

        docker load -i milvus-insight.tar

        docker load -i milvus.tar

        docker load -i minio.tar

      6》在命令提示符中进入conf中执行docker-compose up -d

      7》再进入dockermilvus文件夹中执行命令:docker load -i milvusdb/milvus-insight.tar

      8》在命令提示符中执行 docker run -p 3000:3000 -e HOST_URL=http://192.168.10.171:3000 -e MILVUS_URL=192.168.10.171:19530 milvusdb/milvus-insight:latest 命令

  2.3 docker搭建python运行环境容器

    Python版本3.8.6

    2.3.1,创建个新的文件夹pyContainer,pyContainer文件夹中创建ty文件夹(这里放python代码),

    2.3.2,pyContainer文件夹中创建Dockerfile文件,没有后缀。

      文件内容:

      # 建立 python3.7 环境

      FROM python:3.8

      # 镜像作者

      MAINTAINER LALALA

      # 设置 python 环境变量

      ENV PYTHONUNBUFFERED 1

      # 设置pip源为国内源

      COPY pip.conf /root/.pip/pip.conf

      # 在容器内创建mysite文件夹

      RUN mkdir -p /var/www/html/mysite

      # 设置容器内工作目录

      WORKDIR /var/www/html/mysite

      # 将当前目录文件加入到容器工作目录中(. 表示当前宿主机目录)

      ADD . /var/www/html/mysite

      RUN pip install towhee

      # pip安装依赖

      RUN pip install -r requirements.txt

      RUN mkdir -p /app/

      ADD /ty /app

      WORKDIR /app/

      EXPOSE 8000   #对外端口

      CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] 对内端口

    2.3.3  pyContainer文件夹中创建pip.conf文件

      文件内容:

      [global]

      index-url = https://pypi.tuna.tsinghua.edu.cn/simple

      [install]

      trusted-host=mirrors.aliyun.com

    2.3.4 pyContainer文件夹中创建requirements.txt

      文件内容:

      Django==3.2.12

      towhee==0.9.0

      pymilvus==2.2.1

    2.3.5 在命令提示符中进入pyContainer文件夹,执行命令docker build -t mm_python .

    2.3.6 在命令提示符中执行命令docker run -it -d- p 9111:8000 mm_python启动容器。

      注意:启动容器后,通过9111端口请求python接口,这时容器会在git上下载容器内缺少的环境依赖(如CV2,resnet50_a1_0-14fe96d1.pth等,这个大概需要下载9G左右的环境包)

    2.3.7 把容器生成镜像,再打包

      在命令提示符中执行命令

      docker commit  -a "镜像作者" -m "说明"  a404c6c174a2  pycontainer:v1

      a404c6c174a2 --- 容器Id

      pycontainer:v1 --- 镜像名称

    2.3.8 打包镜像

      docker save -o pycontainer.tar pycontainer

    2.3.9 在其他docker中打开镜像包

      docker load -i pycontainer.tar

    2.3.10 运行镜像

      docker run -it -d -p 9111:8000 pycontainer

以图搜图功能实现(windows10版)的更多相关文章

  1. 以图搜图(一):Python实现dHash算法(转)

    近期研究了一下以图搜图这个炫酷的东西.百度和谷歌都有提供以图搜图的功能,有兴趣可以找一下.当然,不是很深入.深入的话,得运用到深度学习这货.Python深度学习当然不在话下. 这个功能最核心的东西就是 ...

  2. Google 以图搜图 - 相似图片搜索原理 - Java实现

    前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...

  3. Google 以图搜图 - 相似图片搜索原理 - Java实现 (转)

    前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...

  4. 以图搜图之模型篇: 基于 InceptionV3 的模型 finetune

    在以图搜图的过程中,需要以来模型提取特征,通过特征之间的欧式距离来找到相似的图形. 本次我们主要讲诉以图搜图模型创建的方法. 图片预处理方法,看这里:https://keras.io/zh/prepr ...

  5. 使用 selenium 实现谷歌以图搜图爬虫

    使用selenium实现谷歌以图搜图 实现思路 原理非常简单,就是利用selenium去操作浏览器,获取到想要的链接,然后进行图片的下载,和一般的爬虫无异. 用到的技术:multiprocessing ...

  6. [No000007]搜索引擎以图搜图的原理

    之前,Google把"相似图片搜索"正式放上了首页. 你可以用一张图片,搜索互联网上所有与它相似的图片.点击搜索框中照相机的图标. 一个对话框会出现. 你输入网片的网址,或者直接上 ...

  7. php 以图搜图

    感知哈希算法count < =5 匹配最相似count > 10 两张不同的图片var_dump(ImageHash::run('1.jpg’, '2.jpg’)); <?php c ...

  8. 谷歌百度以图搜图 "感知哈希算法" C#简单实现

    /// <summary> /// 感知哈希算法 /// </summary> public class ImageComparer { /// <summary> ...

  9. iOS去广告最简单方案!+以图搜漫

    iOS去广告 ️推荐 | 通过下载.安装.启用(一般默认启用)描述文件,即可实现通过私人dns来达到全系统的广告拦截.隐私保护功能 ️注意: 限 iOS 14 及以上版本系统使用 复制链接需在 saf ...

  10. protel DXP的类矢量图功能

    一.概述 在写论文的过程中,我们经常需要将protel DXP上的原理图贴入到WORD中.我们可以选择使用截图工具,然后再导入到WORD中.但是由于普通截图图形文件都是位图文件,当我们将图形文件导入W ...

随机推荐

  1. 本机无法配置远程服务器上的MySQL ODBC连接驱动

    1.问题描述 我想要访问远程windows服务器上的MySQL数据库,因此需要在本地ODBC驱动上配好远程服务器的MySQL.但配置好基本信息后,测试的时候出现如下问题: 2.解决方法 之所以产生这种 ...

  2. pnpm配置

    之前通过 nvm 来管理了 nodejs 版本,结果安装 pnpm 之后,安装全局依赖报错,如下: PS C:\Users\Administrator> pnpm i -g commitizen ...

  3. [超详细] [效能工具]Typora+PicGo+Github免费图床快速搭建,提升技术文档输出效率

    一.前言 在我们日常的学习和工作中,我们经常需要进行写作.尤其对于我们程序技术人员而言,工作中的技术方案文档或者接口文档等,都是经常需要用上的. 那么如果没有一个高效的工具,去帮助我们记录和创作,这将 ...

  4. TCP\ip 地址总结

    127.0.0.1 本地回环地址,一般用于测试网卡是否正常工作 192.168.1.0 代表网络地址一个网络段 192.168.1.1-254 可用网络地址 192.168.1.255 广播地址!  

  5. FFmpeg 解码内存泄漏汇总,sws_getContext函数无法释放问题

    使用FFmpeg库做的项目,调试项目的时候发现,连续解视频进行播放,会有明显内存增加问题.连续工作10个小时后就会 被linux 内核kill掉. 通过逐步注掉代码和网上查阅资料.最后发现内存泄漏有一 ...

  6. Spring Boot + WebSocket 实时监控异常

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  7. CSS-@规则(At-rules)常用语法使用总结

    At-rules规则是目前CSS中一种常见的语法规则,它使用一个"@"符号加一个关键词定义,后面跟上语法区块,如果没有则以分号结束即可. 这种规则一般用于标识文档.引入外部样式.条 ...

  8. Django框架之drf:5、反序列化器校验部分源码分析、断言、drf之请求与响应、视图组件介绍及两个视图基类、代码部分实战

    Django框架之drf 目录 Django框架之drf 一.反序列化类校验部分源码解析 二.断言 三.drf之请求 1.Request能够解析的前端传入编码格式 2.Request类中的属性和方法 ...

  9. 10月31日ATM编写逻辑描述

    目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...

  10. KingbaseES恢复被删除数据

    KingbaseES恢复被删除数据 生产环境操作请先备份整个data目录或cp 当前数据目录/home/kingbase/pg_data到新的data目录,然后在备份的data目录进行恢复被删除数据操 ...