基于GIT模型的智能图像描述生成器

发布于:2024-12-18 ⋅ 阅读:(154) ⋅ 点赞:(0)
  1. 导入必要的库:
from transformers import AutoProcessor, AutoModelForVision2Seq  # 用于加载和使用模型
from PIL import Image  # 处理图像
import requests  # 下载网络图片
from IPython.display import Image as IPImage, display  # 显示图像
  1. 主要函数 analyze_image:
def analyze_image(image_path_or_url):
    # 函数接受图片路径或URL作为输入
  1. 加载模型:
processor = AutoProcessor.from_pretrained("microsoft/git-base-coco")
model = AutoModelForVision2Seq.from_pretrained("microsoft/git-base-coco")
# 使用微软预训练的COCO数据集模型
  1. 图片加载逻辑:
# 判断是网络图片还是本地图片
if image_path_or_url.startswith('http'):
    image = Image.open(requests.get(image_path_or_url, stream=True).raw)
else:
    image = Image.open(image_path_or_url)
  1. 图像处理和生成描述:
# 处理图片
inputs = processor(images=image, return_tensors="pt")

# 生成文字描述
generated_ids = model.generate(
    pixel_values=inputs["pixel_values"],
    max_length=50,  # 最大生成长度
    num_beams=4,    # beam search参数
)

# 将生成的ID转换为文字
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
  1. 测试代码:
image_url = "https://pics.jjsos.cn/FnpgQBCcIk-wwY7Z1rze12Yy8ul5"
result = analyze_image(image_url)
print("图片描述:", result)

这个程序的主要功能是:

  • 可以处理本地图片或网络图片
  • 使用预训练的模型自动生成图片的文字描述
  • 支持错误处理
  • 可以在Jupyter环境中显示图片

使用场景:

  • 图像自动描述
  • 图像内容理解
  • 辅助视觉障碍人士理解图片内容
  • 图像数据的自动标注

网站公告

今日签到

点亮在社区的每一天
去签到