Transformers 文档

视频处理器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

视频处理器

视频处理器是一种工具,负责为视频模型准备输入特征,并处理其输出的后处理。它提供诸如调整大小、归一化和转换为 PyTorch 等转换。

视频处理器扩展了图像处理器的功能,允许模型处理具有与图像不同的参数集的视频。它充当原始视频数据和模型之间的桥梁,确保输入特征针对 VLM 进行了优化。

使用 from_pretrained() 从 Hugging Face Hub 或本地目录中的视频模型加载视频处理器配置(图像大小、是否归一化和重新缩放等)。每个预训练模型的配置应保存到 [video_preprocessor_config.json] 文件中,但旧模型可能将配置保存在 preprocessor_config.json 文件中。请注意,后者不推荐使用,将来会删除。

用法示例

这是一个使用 llava-hf/llava-onevision-qwen2-0.5b-ov-hf 模型加载视频处理器的示例

from transformers import AutoVideoProcessor

processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf")

目前,如果将基础图像处理器用于视频,它会将每帧视为单独的图像并逐帧应用转换来处理视频数据。虽然功能正常,但这种方法效率不高。使用 AutoVideoProcessor 允许我们利用快速视频处理器,利用 torchvision 库。快速处理器可以一次性处理整个视频批次,无需迭代每个视频或帧。这些更新引入了 GPU 加速,显著提高了处理速度,特别是对于需要高吞吐量的任务。

快速视频处理器适用于所有模型,并在初始化 AutoVideoProcessor 时默认加载。当使用快速视频处理器时,您还可以设置 device 参数以指定进行处理的设备。默认情况下,如果输入是张量,则在与输入相同的设备上进行处理,否则在 CPU 上进行处理。为了进一步提高速度,在使用“cuda”作为设备时,我们可以编译处理器。

import torch
from transformers.video_utils import load_video
from transformers import AutoVideoProcessor

video = load_video("video.mp4")
processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf", device="cuda")
processor = torch.compile(processor)
processed_video = processor(video, return_tensors="pt")
< > 在 GitHub 上更新