以图搜图功能实现(windows10版)
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版)的更多相关文章
- 以图搜图(一):Python实现dHash算法(转)
近期研究了一下以图搜图这个炫酷的东西.百度和谷歌都有提供以图搜图的功能,有兴趣可以找一下.当然,不是很深入.深入的话,得运用到深度学习这货.Python深度学习当然不在话下. 这个功能最核心的东西就是 ...
- Google 以图搜图 - 相似图片搜索原理 - Java实现
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- Google 以图搜图 - 相似图片搜索原理 - Java实现 (转)
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- 以图搜图之模型篇: 基于 InceptionV3 的模型 finetune
在以图搜图的过程中,需要以来模型提取特征,通过特征之间的欧式距离来找到相似的图形. 本次我们主要讲诉以图搜图模型创建的方法. 图片预处理方法,看这里:https://keras.io/zh/prepr ...
- 使用 selenium 实现谷歌以图搜图爬虫
使用selenium实现谷歌以图搜图 实现思路 原理非常简单,就是利用selenium去操作浏览器,获取到想要的链接,然后进行图片的下载,和一般的爬虫无异. 用到的技术:multiprocessing ...
- [No000007]搜索引擎以图搜图的原理
之前,Google把"相似图片搜索"正式放上了首页. 你可以用一张图片,搜索互联网上所有与它相似的图片.点击搜索框中照相机的图标. 一个对话框会出现. 你输入网片的网址,或者直接上 ...
- php 以图搜图
感知哈希算法count < =5 匹配最相似count > 10 两张不同的图片var_dump(ImageHash::run('1.jpg’, '2.jpg’)); <?php c ...
- 谷歌百度以图搜图 "感知哈希算法" C#简单实现
/// <summary> /// 感知哈希算法 /// </summary> public class ImageComparer { /// <summary> ...
- iOS去广告最简单方案!+以图搜漫
iOS去广告 ️推荐 | 通过下载.安装.启用(一般默认启用)描述文件,即可实现通过私人dns来达到全系统的广告拦截.隐私保护功能 ️注意: 限 iOS 14 及以上版本系统使用 复制链接需在 saf ...
- protel DXP的类矢量图功能
一.概述 在写论文的过程中,我们经常需要将protel DXP上的原理图贴入到WORD中.我们可以选择使用截图工具,然后再导入到WORD中.但是由于普通截图图形文件都是位图文件,当我们将图形文件导入W ...
随机推荐
- WCH沁恒 CH37系列芯片选型以及常见问题的处理(CH376/CH378)
选型 型号 接口 功能 备注 电源 CH372 并口 USB_Device 全速 USB 设备接口,兼容 USB V2.0 3.1-3.6 4.2-5.4 CH374 SPI/并口 Host/Devi ...
- Go语言的赞和喷
(原发于 GitHub Pages,2019-01-01 23:22:43) 2019 年,我回来了. 不知不觉中,我入 PHP 的坑已经 3 年有余,入 Go 的坑也大半年了.作为不评论不舒服斯基星 ...
- Java环境搭载的低级错误
关于Java环境搭载的问题 在按照狂神的教程在Dos窗口执行了javac hello.java后在执行java hello报错"" 发现路径文件夹内并未生成class文件 检查了环 ...
- LVGL 中图片使用问题
此笔记主要是记录在 LVGL 中使用图片的几种方式,以及使用过程中遇到的问题.最近在 ARM linux 中使用 LVGL 时,发现加载图片变得很卡,一开始还好,当连续加载的图片变多后,特别是动画的过 ...
- webpack配置less以及js中引入的图片问题
1.问题重现 当我做了这个配置以后,发现less里的图片可以正常展现到页面,但是js里的图片以及其他文件都不能正常展现,都报404 原始配置如下: // 如果有額外的.babelrc配置的話就可以使用 ...
- 异常概念&异常体系-异常分类
异常概念&异常体系 异常,就是不正常的意思.在生活中:医生说,你的身体某个部分有异常,该部位和正常相比有点不同,该部位的功能将受影响,在程序中的意思就是: 异常:指的是程序在执行过程中,出现的 ...
- Unity之UGUI鼠标进入离开&&拖拽实现
Unity之UGUI鼠标进入离开&&拖拽实现 前言: __小黑最近在写项目的时候就有个疑惑,UGUI中的Button组件,他的点击事件是怎么实现的!?我们自己能不能写一个!?之后在项目 ...
- cannot load "mso.dll" vs2008 web开发问题
已成功解决办法: ①将VS 2008安装包WCUWebDesignerCoreWebDesignerCore.exe提取并重新安装: ②将C:Program Files/Common Files/Mi ...
- C语言补漏--内存管理-完结
1.内存分布 2.内存操作函数 数组清空 2. 内存拷贝函数 数组拷贝 3.内存对比 总结 堆区开辟 内存泄漏只申请不释放,导致内存空间持续增长,导致推出 内存污染向没有申请的内存空间写数据 向堆区 ...
- 郁金香 fs寄存器
为什么我们在追eax要挂主线程呢,这是因为它的数据来源在fs中 004D1000 为什么是这个呢 $ ==> 0392FFDC 指向SEH链表指针 $+4 03930000 线程堆栈顶部(地址最 ...