项目介绍:blip-large-long-cap
项目概述
blip-large-long-cap项目是一个图像描述生成模型,适用于为图像创建长句描述。这些长句描述非常适合用于生成文本到图像的提示,或者为文本到图像的数据集生成描述。这个模型来自于对BLIP(Big Vision-Language Pretrained Model)大规模图像描述模型的微调版本。
主要功能
blip-large-long-cap模型支持条件和非条件的图像描述生成。用户可以通过Python程序和Pytorch库来实现这两种模式的图像描述。
应用示例
使用Pytorch模型在CPU上运行
通过安装相关库如requests
、PIL
及transformers
,用户可以在本地计算机上运行模型,即使没有专门的GPU。在代码中,BlipProcessor被用来处理输入图像,BlipForConditionalGeneration被用来生成描述。
示例代码:
import requests
from PIL import Image
from transformers import BlipProcessor, BlipForConditionalGeneration
processor = BlipProcessor.from_pretrained("unography/blip-large-long-cap")
model = BlipForConditionalGeneration.from_pretrained("unography/blip-large-long-cap")
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
inputs = processor(raw_image, return_tensors="pt")
pixel_values = inputs.pixel_values
out = model.generate(pixel_values=pixel_values, max_length=250)
print(processor.decode(out[0], skip_special_tokens=True))
输出结果为对图像的详细描述,例如"一个女人坐在沙滩上,穿着格子衬衫和狗项圈。女人正在和位于图像左侧的狗互动。背景为一个平静的海边和金色的天空。"
使用Pytorch模型在GPU上运行
如果用户有支持CUDA的GPU,他们可以将模型加载到GPU上,以提高处理速度。以下代码展示了如何在全精度模式下运行模型。
示例代码:
import requests
from PIL import Image
from transformers import BlipProcessor, BlipForConditionalGeneration
processor = BlipProcessor.from_pretrained("unography/blip-large-long-cap")
model = BlipForConditionalGeneration.from_pretrained("unography/blip-large-long-cap").to("cuda")
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
inputs = processor(raw_image, return_tensors="pt").to("cuda")
pixel_values = inputs.pixel_values
out = model.generate(pixel_values=pixel_values, max_length=250)
print(processor.decode(out[0], skip_special_tokens=True))
这个模型同样可以以半精度(float16
)模式运行,进一步提高效率。例如,对大多数消费者级别显卡,使用半精度模式可以省下显存并在推理过程中提高速度。
数据集和许可
blip-large-long-cap项目使用的训练数据集包括unography/laion-14k-GPT4V-LIVIS-Captions。该模型使用BSD-3-Clause许可证,允许自由使用、修改和分发。
通过这个项目,用户能够实现高效的图像描述生成,这为图像处理、计算机视觉领域的研究和开发提供了极大的便利。