Transformers 文档
视频处理器
并获得增强的文档体验
开始使用
视频处理器
视频处理器是一种工具,负责为视频模型准备输入特征,并处理其输出的后处理。它提供诸如调整大小、归一化和转换为 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")