1. 克隆源码
2. 创建虚拟环境及配置
- 创建虚拟环境
conda create -n env_clip python==3.8.10
- 进入虚拟环境
conda activate env_clip
- 安装
pytorch
pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
- 安装
clip-interrogator
pip install clip-interrogator==0.6.0
- 安装
requirements.txt
库pip install -r requirements.txt
3. 下载远程相关文件
3.1 下载Salesforce相关文件失败
- 运行代码时,会访问国外的网站下载文件,导致访问失败,所以手动下载
![在这里插入图片描述](https://img-blog.csdnimg.cn/95da1590c3fe4cb093ed4e673a53f85c.png#pic_center)
- 解决: 下载相关文件
- 根据报错:
Salesforce/blip-image-captioning-large
失败 - 参数文件路径在:
clip-interrogator-main\clip_interrogator\clip_interrogator.py
![在这里插入图片描述](https://img-blog.csdnimg.cn/59c5974ae1a747ee92b190de4e299a16.png#pic_center)
- 这几个文件都要远程下载
- 但是我运行代码时只用到了
Salesforce/blip-image-captioning-large
,根据自己需求下载 【我全下了】 - 下载链接 【链接打不开,自己想办法】
- 在根目录创建:
config_data
文件夹,将下载的文件放在里面
![在这里插入图片描述](https://img-blog.csdnimg.cn/71d33c21438543ab9d8d7ab78aa5bbeb.png#pic_center)
- 修改目录地址文件
clip-interrogator-main\clip_interrogator\clip_interrogator.py
- 将
Salesforce
改为config_data
![在这里插入图片描述](https://img-blog.csdnimg.cn/8113118f1d044c2dbcd2a014ebd42ad2.png#pic_center)
3.2 下载cache相关文件失败
![在这里插入图片描述](https://img-blog.csdnimg.cn/3304307175a14025be8101387415d161.png#pic_center)
- 有个文件下载成功了,默认创建
cache
文件夹,保存在此文件夹
![在这里插入图片描述](https://img-blog.csdnimg.cn/3448bdcef7d04a31ba6c715e6415432a.png#pic_center)
- 手动下载链接 【链接打不开,自己想办法】
- 放在
cache
文件夹中
![在这里插入图片描述](https://img-blog.csdnimg.cn/c9fd3b90008045d19aa28849771bae95.png#pic_center)
3.3 解决库不完整问题
clip-interrogator-main\predict.py
文件cog
爆红
![在这里插入图片描述](https://img-blog.csdnimg.cn/9dd2acb0457045798193b8ebb0086aa3.png#pic_center)
- 解决:查库找不到这个文件,在git上找到了相关文件
4. 测试代码
4.1 脚本一
from PIL import Image
from clip_interrogator import Config, Interrogator
image = Image.open('data/1.png').convert('RGB')
ci = Interrogator(Config(clip_model_name="ViT-L-14/openai"))
print(ci.interrogate(image))
- 生成文本结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/861087d4f64e41c19b4e6dfc526b883e.png#pic_center)
4.2 脚本二
from clip_interrogator import Config, Interrogator, LabelTable, load_list
from PIL import Image
ci = Interrogator(Config())
image = Image.open('data/page1_1.jpg').convert('RGB')
table = LabelTable(load_list('clip_interrogator/data/flavors.txt'), 'flavors', ci)
best_match = table.rank(ci.image_to_features(image), top_count=1)[0]
print(best_match)
- 生成文本结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/97da3d801805417e88deec509a271a89.png#pic_center)
4.3 测试run_cli.py文件
- 添加文件路径,设置
default
默认路径
- 图生文整个文件夹
parser.add_argument('-f', '--folder',default=r'/images', help='path to folder of images')
- 图生文一张图片
parser.add_argument('-i', '--image',default=r'data/page1_1.jpg', help='image file or url')
- 结果和
脚本一
一样
4.4 测试run_gradio.py文件
- 安装
gradio
库pip install gradio
- 打开
url
![在这里插入图片描述](https://img-blog.csdnimg.cn/5c0496f90a9d44f488649d9797fbaeb6.png#pic_center)
- 前端界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/ae29f020518c45c0903827ba10617082.png#pic_center)
- 上传图片结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/7e35d5dc154748548e1acd870fba956b.png#pic_center)