license: apache-2.0
language:
- ru
metrics:
- bleu
pipeline_tag: image-to-text
widget:
- src: https://huggingface.co/dumperize/movie-picture-captioning/resolve/main/vertical_15x.jpeg
example_title: 自定义图片样本1
电影画面描述模型卡片
该模型能以电影描述的文体风格生成任意照片的说明文字。其训练数据来源于电影海报及剧情简介......纯属娱乐
模型详情
模型描述
本模型基于VisionEncoderDecoderModel架构,采用Google/vit-base-patch16-224-in21k作为编码器,DeepPavlov/rubert-base-cased作为解码器。
我们使用俄罗斯Kinoposk应用的电影海报与描述数据集对模型进行微调,使其能够生成具有商业大片风格的描述文本=)
模型来源
使用方法
from PIL import Image
import torch
from transformers import AutoTokenizer, ViTFeatureExtractor, VisionEncoderDecoderModel
tokenizer = AutoTokenizer.from_pretrained("dumperize/movie-picture-captioning")
feature_extractor = ViTFeatureExtractor.from_pretrained("dumperize/movie-picture-captioning")
model = VisionEncoderDecoderModel.from_pretrained("dumperize/movie-picture-captioning")
max_length = 128
num_beams = 4
gen_kwargs = {"max_length": max_length, "num_beams": num_beams}
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
image_path = '图片路径.jpg'
image = Image.open(image_path)
image = image.resize([224,224])
if image.mode != "RGB":
image = image.convert(mode="RGB")
pixel_values = feature_extractor(images=[image], return_tensors="pt").pixel_values
pixel_values = pixel_values.to(device)
output_ids = model.generate(pixel_values, **gen_kwargs)
preds = tokenizer.batch_decode(output_ids, skip_special_tokens=True)
print([pred.strip() for pred in preds])
偏差、风险与局限
尽管训练数据相对中立,该模型仍可能产生带有偏见的预测结果。
训练详情
训练数据
数据集来源于2022年10月俄罗斯电影公开资源kinopoisk,排除了描述文本过短/过长、海报图像空白或尺寸过小的影片。
预处理
模型在1块1080ti显卡(11G显存)上训练约24小时。
评估
指标得分
sacrebleu评分: 6.84
评估指标
采用sacrebleu评估体系。