以文搜图是跨模态图文检索的一部分,那么什么是跨模态图文检索?说的通俗易懂,就是实现文字和图片两种不同格式数据之间的互相搜索,通过文字描述找到最符合的图片,或者搜寻最适合图片的文字描述。不同于通过标签将文本和图片关联起来,跨模态模型能够从语义或内容含义的角度匹配不同类型的数据,这种检索方式更接近人为判断,更加“人工智能”。

如今最热门的跨模态文本图片模型莫过于 CLIP,推荐一些原理详解和基于 CLIP 搭建文本图片搜索系统的教程:从零到一,教你搭建「以文搜图」搜索服务(一)_Zilliz Planet的博客-CSDN博客_以文搜图 和 从零到一,教你搭建「CLIP 以文搜图」搜索服务(二):5 分钟实现原型_Zilliz Planet的博客-CSDN博客。我这里就不进行赘述了,接下来主要介绍大家很关心的一个问题:是否有预训练好的多语言 CLIP 模型?更直白一些,能用中文搜图片吗?

先上代码:towhee.models.clip

1. 安装 towhee.models

$ git clone https://github.com/towhee-io/towhee.git
$ cd towhee
$ python setup.py install --models

如果直接安装 pypi 包(`pip install towhee.models`),只有 0.7.4 以上版本才支持多语言 CLIP,之前版本仅支持英文文本。

无需自己处理代码,端到端的使用方法可以参考 Towhee Hub。更多的 CLIP 相关应用和工具正在开发途中。

2. 创建模型:

from towhee.models import clipmodel = clip.create_model(model_name='clip_vit_b32', pretrained=True)

首先根据模型名称创建模型并加载预训练模型,如果想要加载自己的权重或者客制化模型,可以将pretrained设为False 并直接传入非默认的模型参数值。

3. 图片编码:

import torchdummy_img = torch.rand(1, 3, 224, 224)
img_features = model.encode_image(dummy_img)

这里使用虚拟的图片数据,该数据表示一张3通道、长宽均为224的图片。真实场景中,允许多张图片的输入(第一维),但需要将图片经过处理,转换成3通道、长宽均为224的数据 (3,224,224)。因此输入的数据应该是尺寸为(n,3,224,224)torch tensor,其中 n 表示图片个数。

4. 文本编码:

# Multilingual only for supported models
text_chinese = ['测试']
text_features = model.encode_text(text, multilingual=True)

当模型支持多语言时,比如我们这里使用的 clip_vit_b32 支持多语言文本输入,那么我们可以在推理文本特征时,将 multilingual 参数设为 True。

5. 相似度判断:

img = torch.rand(1, 3, 224, 224)
text = ['测试文字1', '测试文字2']
logits_per_img, logits_per_text = model(img, text, multilingual=True)

模型也可以直接返回输入的文本和图片之间的相似度,这里的数值越高则表示越相似。


正如文中所提,更多模型和工具还在改进和开发中,欢迎关注和提建议

以文搜图,多种语言也不成问题(CLIP 支持中文)相关推荐

  1. OpenSearch图搜图、文搜图向量检索最佳实践

    一.向量检索介绍 1.1 多模态信息的典型特点-非结构化 信息可以被划分为两大类:当信息能够用数据或统一的结构加以表示,称之为结构化数据:当信息无法用数字或统一的结构表示,称之为非结构化数据.非结构数 ...

  2. 【Milvus的以文搜图】

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

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

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

  4. 人工智能AI系列 - 以图搜图,以文搜图,以图搜文的跨模态搜索

    目录: http://aias.top/ 图像&文本的跨模态相似性比对检索[支持40种语言] 本例子提供了通过文本搜图片的能力展示(模型本身当然也支持图片搜文字,或者混合搜索). 主要特性 底 ...

  5. codelite14中文语言包_Windows下CodeLite支持中文的正确设置方法

    一.准备工作 1.下载CodeLite最新版本官方下载. 如果想检验本文内容的有效性,你必须下载Windows系统下的版本. 2.下载中文语言包 论坛下载 . 如果链接无效,请直接到百度搜索. 二.软 ...

  6. 腾讯太极文生图大模型,带你一起感受祖国大好河山

    ​一.背景 随着大规模预训练模型的蓬勃发展和算力的大规模提升,业界和学界在图片生成这个领域也取得了非常大的进展.在AIGC(AI Generated Content)这个领域,随着英文Stable D ...

  7. Abbyy Finereader 15:文档对比功能不支持中文的处理方法

    问题:Abbyy 15文档对比功能中,只支持部分语言,其中就不支持中文 解决: 1.按win+R键打开运行,输入"regedit",打开注册表编辑器 2.找到目录树:计算机/HKE ...

  8. 基于CLIP实现以文精准搜图

    基于CLIP实现以文精准搜图 在使用CLIP做图文匹配时,发现只能用多个文本语句和一张图片匹配,而我想实现多个图片与文本进行匹配. 打个断点 用DEBUG看了下 在经过预处理和模型后 logits_p ...

  9. 实战 | 多种方法实现以图搜图

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI 算法与图像处理 概述 以图搜图技术是日常生活中常用 ...

最新文章

  1. 机器学习入门:线性回归及梯度下降
  2. java中关于try、catch、finally中的细节分析
  3. 基于OK6410开发板Uboot源码简单分析
  4. 眼前一亮的UI设计案例|插画世界里的网页首图
  5. Git学习笔记总结和注意事项
  6. 使用jmeter做接口测试----柠檬不萌!
  7. 小白必须要会的Github操作 确定不进来看看?
  8. @Scheduled定时任务
  9. ubuntu安装ROBOWARE
  10. 【网络技术题库整理1】局域网技术基础及应用
  11. C语言从入门到精通需要多久?你真的知道吗!
  12. 2017年5月—信息安全工程师—上午综合知识(11-15)
  13. 利用matlab实现AM调制解调
  14. MuMu模拟器进行adb操作
  15. 人工智能一大技术:强化学习(RL)
  16. 【WhaleCTF逆向题】Warmup题目writeup
  17. Head First Java学习笔记(17):包、jar存档文件和部署
  18. poi和easyExcel基于Java操作Excel学习笔记
  19. 为什么说消费主义害死人
  20. 1950-2021《中国统计年鉴》超长时间跨度动态面板数据 (70w+)实际统计年份1949-2020

热门文章

  1. html图片怎么去掉空白,css去除img图片下多余空白区域
  2. 直接在文件夹打开cmd
  3. 博客赚钱也疯狂--个人博客如何赚钱
  4. 手势控制鼠标的操作(不指屏幕实现简单触屏)
  5. map-box地图点击图标高亮事件
  6. 你可以穿裙子,但是请放长你的裙摆
  7. 香港影评会选出电影史上十大华语片
  8. python for data analysis 操作usagov_bitly_data示例
  9. 微信退款服务器系统失败怎么办,微信缴费失败怎么退款?能退回吗?
  10. abap语言去除重复项怎么写