基于CLIP实现以文精准搜图

在使用CLIP做图文匹配时,发现只能用多个文本语句和一张图片匹配,而我想实现多个图片与文本进行匹配。


打个断点 用DEBUG看了下 在经过预处理和模型后 logits_per_image以及logits_per_text的

tensor([[25.5625, 20.0938, 19.7500]], device=‘cuda:0’, dtype=torch.float16)

推测这三个float数值分别代表了这三个文本与一张图片的匹配程度,而最后的
probs = logits_per_image.softmax(dim=-1).cpu().numpy()
也只是使用 softmax层进行一些权重、对数等变换处理下变成更规范的格式
再使用仅仅第一个语句与该图片匹配,tensor中数值仍为25.5625
所以验证猜想成立 在经过model(image,text)时就已经确定图文匹配结果。

将获得图文匹配度封装成函数,并返回匹配度的数值

def match(str1,sent):device = "cuda" if torch.cuda.is_available() else "cpu"model, preprocess = clip.load("ViT-B/32", device=device)image = preprocess(Image.open(str1)).unsqueeze(0).to(device)text = clip.tokenize([sent]).to(device)with torch.no_grad():image_features = model.encode_image(image)text_features = model.encode_text(text)logits_per_image, logits_per_text = model(image, text)similarity = str(logits_per_image)[9:13]res = int(similarity)return res

利用for循环,使用字典存放多张图片的绝对路径和图文匹配度
看代码就懂了

 '...............................................'sent = input("请输入图片关键词:")getPic(sent)#获取图片path0 ='C:\\Users\\DELL\\Desktop\\CLIP-main\\'+ sentsimilar_key = []similar_value = []for filename in os.listdir(path0):if filename.endswith('jpg') or filename.endswith('png'):#  存储图片的文件夹绝对路径str1 = path0 +'\\'+filenameprint(str1)similar_key.append(str1)sim = match(str1,sent)#将得到的多张图片匹配你输入的图片关键词similar_value.append(sim)# 存放图片绝对路径和图文相似度的字典similar_dict = dict(zip(similar_key, similar_value))print(similar_dict)similar_value.sort(reverse=True)print(similar_value)result = ' '# 找到图文相似度最高的那个图片的绝对路径for key, value in similar_dict.items():if value == similar_value[0]:result = keybreakimg = Image.open(result)img.show()

执行玩显示出最匹配你需求的那张图片。

爬虫抓取图片并存储路径的步骤不做介绍。

从头到尾可一键执行的代码打包一起放在资源里。

用pyqt 做了一个前端

本人新手 小白 勿喷

基于CLIP实现以文精准搜图相关推荐

  1. 用“大白话”精准搜图,OpenAI的CLIP惊艳了所有人 | 在线可玩

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 别再怕图片搜索结果牛头不对马嘴了,你可以试试这个精准图片搜索,来自OpenAI最新的技术CLIP. 只需一句"大白话"描 ...

  2. 以图搜图 图像匹配_图像匹配,基于深度学习DenseNet实现以图搜图功能

    原标题:图像匹配,基于深度学习DenseNet实现以图搜图功能 度学习的发展使得在此之前以机器学习为主流算法的相关实现变得简单,而且准确率更高,效果更好,在图像检索这一块儿,目前有谷歌的以图搜图,百度 ...

  3. 图像匹配,基于深度学习DenseNet实现以图搜图功能

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 度学习的发展使得在此之前以机器学习为主流算法的相关实现变得简单,而且准确率更高,效果更好,在图 ...

  4. 零基础实战行人重识别ReID项目-基于Milvus的以图搜图

    目录 第一阶段,ReID的基本概念 1.1 ReID定义 1.2 技术难点 1.3 常用数据集 1.4 评价指标 1.5 实现思路 1.6 具体方案 第二阶段:复现算法 2.1 PCB的骨干网络 2. ...

  5. 以文搜图,多种语言也不成问题(CLIP 支持中文)

    以文搜图是跨模态图文检索的一部分,那么什么是跨模态图文检索?说的通俗易懂,就是实现文字和图片两种不同格式数据之间的互相搜索,通过文字描述找到最符合的图片,或者搜寻最适合图片的文字描述.不同于通过标签将 ...

  6. 有人用YOLOv5和CLIP做了一个找图神器!搜图、裁剪一步到位!在线可试玩...

    转载自:机器之心 | 编辑:蛋酱 给 Crop-CLIP 一个口令,就能自动搜图,还能帮忙裁剪出图片中的关键部分. 经常找图的人都知道,根据检索关键词组寻找理想中的照片是件很麻烦的事情. 打开搜索引擎 ...

  7. 【Milvus的以文搜图】

    0. 介绍 以文搜图指的是,根据文本描述,从图像数据库中检索与文本内容相似的图像数据并返回.通过在CSDN中搜索以文搜图,找到了如下两篇文章: 从零到一,教你搭建「以文搜图」搜索服务(一)_Zilli ...

  8. 从零到一,教你搭建「以文搜图」搜索服务(一)

    一图胜千言: don't waste my time, show me the image 为什么「以文搜图」如此重要?以文本的方式发出问题,再以图片的方式返回答案,这种信息获取范式,连我奶奶都说好. ...

  9. 搜图、裁剪一步到位,有人用YOLOv5和CLIP做了一个找图神器,在线可试用

    给 Crop-CLIP 一个口令,就能自动搜图,还能帮忙裁剪出图片中的关键部分. 经常找图的人都知道,根据检索关键词组寻找理想中的照片是件很麻烦的事情. 打开搜索引擎或无版权图片网站,输入关键词,如果 ...

最新文章

  1. 和达摩院深度绑定,阿里云下一个十年,成为“云上的阿里巴巴”
  2. Yann LeCun“隔纸对话”黄铁军:图灵机上的深度学习能模拟世界吗?
  3. Lucene打分规则与Similarity模块详解
  4. 华为杯数学建模优秀论文_【优秀论文】2019数维杯国际大学生数学建模竞赛B题优秀论文...
  5. 在成长中遇到的挫折事件对你的影响_孩子一遇到困难就退缩?3个方法培养孩子逆商,提升抗挫折能力...
  6. win7用html做桌面,win7系统怎么制作主题桌面 win7系统制作主题桌面方法
  7. 下载Linux系统内文件到Windows
  8. GB2312/GBK编码规则及单片机汉显字库算法
  9. 方兴东:让曲线告诉创业的痛楚和狂喜
  10. 《老司机,带带我》之考驾照
  11. 【论文阅读】APdrawing GAN (CVPR19)
  12. java apdu读取社保卡_使用javax.smartcardio的用于智能卡的ISO 7816 APDU
  13. 135编辑器如何插入文件
  14. 微信小程序组件、web-view、h5之间交互
  15. sfsfdgsdfg
  16. 关于利用ADS进行多频多阻抗匹配的方法
  17. 不准把水放在计算机旁英语翻译,英语翻译translationpra水ctice.ppt
  18. 蒙提霍尔问题:上帝视角 + 暴力数学
  19. 运营商大数据精准营销获客的优点
  20. 车辆检测算法matlab,机器学习实践 - 车辆检测

热门文章

  1. 失望时想起了你是什么歌_你是空你是空色即是空的空空什么歌 《想起了你》哪里听...
  2. 苹果支付返回html,苹果应用内支付,服务器端的实现
  3. 制作多关卡系统 func_brush
  4. 游戏建模入门教程:绝地求生—PUBG的游戏模型制作流程
  5. 在Python应用中Telegram 机器人搭建消息提醒
  6. Et aliquam sunt quasi harum unde.Deserunt impediSofort wohnen früh aus t quidem vel dolorum ducimus.
  7. tf 2.0 -- Model -- 模型
  8. ctc center-loss在字符识别形近字分类中的使用
  9. GoDaddy域名过户PUSH攻略
  10. heapdump file must have .hprof extention