以图搜图(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")
最新文章
- apache http server 局域网无法访问
- android学习日记21--消息提示之Toast和Notification
- ios之UI中自定义cell
- js中的模块化编写思维
- poj 1759 Garland (二分搜索之其他)
- 运行yum报错Error: Cannot retrieve metalink for reposit
- IOS发展--他们控制的定义
- 第三章 Netty入门应用
- 算法-java代码实现堆排序
- linux读取Windows的txt文件问题
- Python基础整理
- Centos6安装FreeSWITCH 1.5时./configure问题解决记录
- linux使用pam_tally2.so模块限制登录3次失败后禁止5分钟
- 什么是渲染目标(render target)&& 渲染到纹理(Render To Texture, RTT)详解
- AIX挂载NFS写入效率低效解决
- ElasticSearch 2 (26) - 语言处理系列之打字或拼写错误
- H5地理位置定位
- 【转】【WebStorm】利用WebStorm来管理你的Github
- 相似变换 SimilarityTransform 以及skimage源码
- Python Web学习笔记之WebSocket 通信过程与实现
热门文章
- toastr.js 便捷弹框怎么用?怎么本地化?
- ONNX模型分析与使用
- 软件安装——idea的安装和使用
- CodeForces 构造题专项解题报告
- npm 中设置环境NODE_ENV变量,判断失败打印process.env.NODE_ENV确实是";development";,但是判断process.env.NODE_ENV === ";development"; 是false
- 12月6日内容总结——BOM、DOM、两者查找标签的方式和操作标签的方式、操作class和css的方法、事件、jQuery类库
- 面向对象程序设计(三):C++模板operator Type类型转换
- Thymeleaf中判断Security权限 - SpringBoot
- WPF 使用动画绘制一个点赞大拇指
- 计算机网络14 Internet网络层主要功能 IP协议 路由协议 ICMP协议