使用blip2进行图片输入文本输出

多模态的重要模型blip2,官方提供模型可以直接用来图片生成文本

github地址:https://github.com/salesforce/LAVIS/tree/main/projects/blip2

个人相当于跑了一下blip2的demo,记录下过程,供今后需要参考:

1、首先是环境安装,跟着官网走:https://github.com/salesforce/LAVIS/tree/7f00a0891b2890843f61c002a8e9532a40343648#installation

其中,salesforce-lavis我装的时候遇到了问题,可能是服务器网络问题,如果安装有问题,可以尝试pypi下载压缩包进行安装:

pypi网址:https://pypi.org/project/salesforce-lavis/

安装命令:

python 复制代码
pip install salesforce-lavis-1.0.2.tar.gz

期间如果提示缺什么库,按要求装上就可以了

我装的版本:

python 复制代码
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.1 -c pytorch
pip install salesforce-lavis
cd /.../.../LAVIS-main/
pip install -e .
pip install accelerate

期间碰到了transformer的问题,从transformer库导入有问题,我降低了版本,我目前的版本是
transformer==4.35.2

环境装完后,需要下载blip2的模型:

网址:https://huggingface.co/models?other=blip-2

一般是下载上面这个模型,也有其他的可以下载,

具体网址:https://huggingface.co/Salesforce/blip2-opt-2.7b/tree/main

把上面页面中的所有文件下载下来,放到blip2的工作空间中

然后就可以跑官方提供的demo了。

python 复制代码
from PIL import Image
import requests
from transformers import Blip2Processor, Blip2ForConditionalGeneration
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"

processor = Blip2Processor.from_pretrained("my_blip2/blip2-opt-2.7b")
model = Blip2ForConditionalGeneration.from_pretrained(
    "my_blip2/blip2-opt-2.7b", torch_dtype=torch.float16
)
model.to(device)
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

inputs = processor(images=image, return_tensors="pt").to(device, torch.float16)

generated_ids = model.generate(**inputs)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0].strip()
print(generated_text)

上面的image可以换成自己的图片:

python 复制代码
imgfile = '../../xxx.jpg'
image= Image.open(imgfile).convert('RGB')

或者根据个人需求改成批量化生成文本的代码也可以

相关推荐
IT_Octopus3 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148113 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
CCblandy5 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
kaixin_啊啊5 小时前
【用于更准确 G×E 基因组预测的大规模作物数据集与基于深度学习的多模态融合框架】论文学习
人工智能·深度学习·学习
Cc.Y6 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
拿本唠嗑AI研究6 小时前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology
deepseek236 小时前
AI 模型隐藏任意能力拆解:把加密神经网络塞进宿主权重,能力评估为什么在密码学上抓不到
人工智能·深度学习·神经网络·密码学·模型安全
Smoothcloud润云6 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu
jsjzsl26 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
2601_954811826 小时前
机器视觉教学套件选型指南:五维技术参数对比与课程体系评估
python·数码相机