本文主要是介绍使用Qdrant + CNCLIP + Gradio 实现图文检索,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用Qdrant + CNCLIP + Gradio 实现图文检索
效果
1、数据准备
下载链接:图文检索图片数据
import base64
import pandas as pd
from io import BytesIO
from PIL import Image
import osdata_path = "./data/MR_valid_imgs.tsv"
save_dir = "./data/images"if not os.path.exists(save_dir):os.makedirs(save_dir)data = pd.read_csv(data_path, header=None, sep='\t')for index, row in data.iterrows():image_id = row[0]image_data = row[1]img = Image.open(BytesIO(base64.urlsafe_b64decode(image_data)))img.save(os.path.join(save_dir, f"{image_id}.png"))
利用以上代码将图片和图片base64数据保存为本地png图片
2、 安装依赖
1、首先安装cn_clip
因为官方仓库有一点小bug,所以从我fork后的仓库安装
git clone https://github.com/seanzhang-zhichen/Chinese-CLIP.git
cd Chinese-CLIP
pip install -e .
注意: 必须得从源码安装,否则会报错缺少配置文件
2、安装其它依赖
pip install -r requirements.txt
3、启动web demo
python web_demo.py
其它
如果想使用 tensorrt 推理,安装 tensorrt==8.6.1 版本即可(已测试),会比torch快很多
全部代码:https://github.com/seanzhang-zhichen/image-text-retrieve/
这篇关于使用Qdrant + CNCLIP + Gradio 实现图文检索的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!