以图搜图(demo创建流程)
window10添加向量数据库以及调用

创建docker
1,在windows功能中打开Hyper-V 和 容器
2,进入https://www.docker.com/ ,下载windows版本进行安装
创建milvus及连接
1,创建milvus文件夹,在文件夹下建立conf,db,logs,pic,wal五个文件夹,把docker-compose.yml和server_config.yaml放如conf文件夹中,使用命令提示符进入到conf文件夹中,执行docker-compose up -d,执行结束后,再执行docker-compose up -d来查看运行状态,然后运行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 。在docker中即可看到

点击3000端口,通过3000接口进入到milvus界面。
2,python程序
1》创建集合
from pymilvus import FieldSchema, DataType, CollectionSchema, connections, Collection
#创建存储字段
id = FieldSchema(
name="id",
dtype=DataType.INT64,
is_primary=True,
)
vec = FieldSchema(
name="vec",
dtype=DataType.FLOAT_VECTOR,
dim=2048
)
schema = CollectionSchema(
fields=[id, vec],
description="Test search"
)
collection_name = "animal"
print("#########连接数据库##############")
connections.connect(
alias="default",
host='192.168.10.171',
port='19530'
)
print("#########根据上面得信息创建集合##############")
collection = Collection(
name=collection_name,
schema=schema,
using='default',
shards_num=2
)
print("#########关闭连接##############")
connections.disconnect("default")
2》添加数据
#print("#########连接数据库##############")
from towhee import pipeline
from pymilvus import connections, Collection
connections.connect(
alias="default",
host='192.168.10.171',
port='19530'
)
#print("#########插入数据##############")
p = pipeline('image-embedding')
output = p('http://localhost:54867/7.jpg')
data = [
[7],
[output],
]
collection = Collection("animal")
mr = collection.insert(data)
print(mr)
3》查询数据
import towhee
from django.http import HttpResponse
from pymilvus import connections,Collection
from towhee import pipeline
#获取图片向量查询的数据
def selectData(request):
connections.connect(host='192.168.10.171', port='19530')
t = (
towhee.glob['path']('E://milvus//coreCode//getImages//getImages//wwwroot//7.jpg')
.image_decode['path', 'img']()
.image_embedding.timm['img', 'vec'](model_name='resnet50')
.milvus_search['vec', 'results'](collection='animal')
.select['results']() # 选择指定列;
.to_list()
)
tr = "";
for i in t:
for j in i.results:
tr = tr + " " + str(j.id)
return HttpResponse(tr, content_type="application/json")
def selectvector(request):
#print("#########连接数据库##############")
connections.connect(
alias="default",
host='192.168.10.171',
port='19530'
)
#print("#########查询数据##############")
p = pipeline('image-embedding')
output = p('http://localhost:54867/7.jpg')
collection = Collection("animal")
search_params = {"metric_type": "L2", "params": {"nprobe": 1}, "search_length": 100}
tt = collection.search(
data=[output],
anns_field="vec",
param=search_params,
offset=0,
limit=3,
expr=None
)
#print("#########查询结果##############")
return HttpResponse(tt, content_type="application/json")
以图搜图(demo创建流程)的更多相关文章
- 以图搜图之模型篇: 基于 InceptionV3 的模型 finetune
在以图搜图的过程中,需要以来模型提取特征,通过特征之间的欧式距离来找到相似的图形. 本次我们主要讲诉以图搜图模型创建的方法. 图片预处理方法,看这里:https://keras.io/zh/prepr ...
- 使用 selenium 实现谷歌以图搜图爬虫
使用selenium实现谷歌以图搜图 实现思路 原理非常简单,就是利用selenium去操作浏览器,获取到想要的链接,然后进行图片的下载,和一般的爬虫无异. 用到的技术:multiprocessing ...
- Google 以图搜图 - 相似图片搜索原理 - Java实现
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- 以图搜图(一):Python实现dHash算法(转)
近期研究了一下以图搜图这个炫酷的东西.百度和谷歌都有提供以图搜图的功能,有兴趣可以找一下.当然,不是很深入.深入的话,得运用到深度学习这货.Python深度学习当然不在话下. 这个功能最核心的东西就是 ...
- Google 以图搜图 - 相似图片搜索原理 - Java实现 (转)
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- [No000007]搜索引擎以图搜图的原理
之前,Google把"相似图片搜索"正式放上了首页. 你可以用一张图片,搜索互联网上所有与它相似的图片.点击搜索框中照相机的图标. 一个对话框会出现. 你输入网片的网址,或者直接上 ...
- php 以图搜图
感知哈希算法count < =5 匹配最相似count > 10 两张不同的图片var_dump(ImageHash::run('1.jpg’, '2.jpg’)); <?php c ...
- 谷歌百度以图搜图 "感知哈希算法" C#简单实现
/// <summary> /// 感知哈希算法 /// </summary> public class ImageComparer { /// <summary> ...
- 【Java基础】Java类的加载和对象创建流程的详细分析
相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下. 实例问题 实例代码 Parent类 package ...
- Java类的加载和对象创建流程的详细分析
相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下: package com.test; public ...
随机推荐
- 降本超30%,智聆口语通过 TKE 注册节点实现 IDC GPU 节点降本增效实践
背景介绍 腾讯云智聆口语评测(Smart Oral Evaluation,SOE)是腾讯云推出的中英文语音评测产品,支持从儿童到成人全年龄覆盖的语音评测,提供单词.句子.段落.自由说等多种评测模式,从 ...
- 【前端调试】- 借助Performance分析并优化性能
欢迎阅读本系列其他文章 [前端调试]- 更好的调试方式 VSCode Debugger [前端调试]- 断点调试的正确打开方式 介绍 首先简单过一下Performance的使用,打开网页点击控制台Pe ...
- .Net6 使用 Ocelot + Consul 看这篇就够了
前言 卯兔敲门,新的一年,祝大家前'兔'似锦!希望大家假后还能找到公司的大门 O(∩_∩)O !书接上文,我们使用了 Consul实现了服务注册与发现,对Consul不熟悉的同学可以先看看.这篇文章我 ...
- 对象数组- 什么是ArrayList类
对象数组 引入--对象数组 使用学生数组,存储三个学生对象,代码如下: public class Student { private String name; private int age; pub ...
- Docker修改已有容器的端口映射
Docker修改已有容器的端口映射 背景 拉取了jenkins的镜像,启动容器的时候端口就映射了8080,但这个演示环境要用到jenkins node,其中默认的代理端口是50000.漏了,就想着能否 ...
- XML02
组成部分: 1. 文档声明 1. 格式: 2. 属性列表: * version:版本号,必须的属性 * encoding:编码方式.告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1 * ...
- vue3 vite 使用NProgress.js纳米级进度条
NProgress.js 官网:https://ricostacruz.com/nprogress/ 安装方式: npm install nprogress 使用方法 在router 的index.j ...
- tomcat7 与 tomcat8 加载 jar包的顺序
本文为博主原创,转载请注明出处: 最近在进行服务的环境升级,将 服务的tomcat7升级到 tomcat8:当把 tomcat 升级到 tomcat8 的时候,进行服务启动异常,报 jar 包冲突的 ...
- Redis 源码解读之逐出策略
Redis 源码解读之逐出策略 背景和问题 本文想解决的问题: redis 触发逐出的时机是怎样的? redis 逐出策略有哪些? 如何在海量的 key 中快速找到逐出评价值(idle)最高的key, ...
- 【ARM架构】armv8 系统安全概述
ARMv8-A 系统中的安全 一个安全或可信的操作系统保护着系统中敏感的信息,例如,可以保护用户存储的密码,信用卡等认证信息免受攻击. 安全由以下原则定义: 保密性:保护设备上的敏感信息,防止未经授权 ...