本地生成图片描述可以先用 BLIP 给照片写一段英文候选,再人工核对主体、动作和场景。适合整理自有图库或辅助起草图片说明。它不会保证描述中的每个物体都真的存在,生成句子应作为待确认文本。
准备一张容易验证的图片
选择自有的 photo.jpg,主体明确、文字不多。先手工记录三点:画面里是什么、正在做什么、哪些细节无法确定。不要用模型描述证明人物身份、医疗结论或照片来源。

python -m pip install torch "transformers==4.57.1" pillow
本例按 Transformers 4.57.1 与模型卡的专用类调用,使用 CPU 和 RGB 图片。首次需联网获取权重;本文未下载 BLIP 执行推理,下面没有冒充真实图片输出的描述样例。
用专用类生成描述
保存为 caption_local.py,与 photo.jpg 放在一起,运行 python caption_local.py。
from PIL import Image
import torch
from transformers import BlipProcessor, BlipForConditionalGeneration
name = "Salesforce/blip-image-captioning-base"
processor = BlipProcessor.from_pretrained(name)
model = BlipForConditionalGeneration.from_pretrained(name).eval()
image = Image.open("photo.jpg").convert("RGB")
inputs = processor(images=image, return_tensors="pt")
with torch.inference_mode():
ids = model.generate(**inputs, max_new_tokens=30)
caption = processor.decode(ids[0], skip_special_tokens=True)
print(caption)
max_new_tokens=30 限制本次生成长度,不是保证 30 个英文单词。原图先转 RGB,避免把透明通道或灰度通道直接交给预期三通道的处理流程。
描述核对表
- 主体:模型写到的动物、人物或物体是否真的出现?
- 动作:静态站立是否被说成跑步,举杯是否被说成饮酒?
- 关系:数量、相对位置、前景与背景是否误写?
- 不可确认信息:职业、情绪、地点专名等是否被无依据补上?
把描述拆成事实片段,逐项在图片上找到证据;找不到的片段删除或改为不确定表达。保存原英文候选和人工修改版,避免后续把修改后的结论当成模型原输出。
为什么先输出英文
本例使用该模型卡展示的英文描述路径,不承诺直接得到可靠中文。需要中文时再翻译已核对的英文,并回查数量、主体和动作是否发生变化。
图片里有小字不意味着 caption 会准确做 OCR。若任务是提取账单或表格文字,应另用适合的文字识别工具并核对原文。
资料与适用范围
本文依据 2026 年 10 月 1 日读取的项目资料编写。安装后请记录实际依赖版本;版本升级时先用小样本核对接口和输出。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30689.html