一款使用硬件加速加载视频帧序列的库,以便进行 机器学习 训练
NVVL (NVIDIA Video Loader) 是一个用于从压缩视频文件中加载随机视频帧序列的库,以便方便 机器学习 训练。它使用 FFmpeg 的库来解析和读取视频文件中的压缩包,以及 NVIDIA GPU 上可用的视频解码硬件,以卸载和加速这些包的解码,在 GPU 设备内存中提供可用于训练的张量。NVVL 还可以在加载帧时执行数据增强。可以使用 GPU 专用的纹理映射单元对帧进行缩放、裁剪和水平翻转。输出可以是 RGB 或 YCbCr 色空间,标准化为 [0, 1] 或 [0, 255],以及 float,half 或 uint8 张量。
请注意,虽然我们希望您会发现 NVVL 很有用,但它是 NVIDIA 研究小组在进行研究项目时编写的示例代码。我们会尽力回答问题并修复出现的小 bug,但这不是 NVIDIA 支持的产品,大部分内容以原样提供。
使用压缩的视频文件而不是单独的帧图像文件,可以显著减少训练过程中对存储和 I/O 系统的需求。将视频数据集存储为视频文件,可节省一位数级别的磁盘空间,从而使更大的数据集既能够放在系统 RAM 中,也能够放在本地 SSD 中,以实现快速访问。在加载过程中,需要从磁盘中读取更少的字节。使用更小、更快的存储设备,并在加载时读取更少的字节,都可以缓解从磁盘中读取数据的瓶颈问题,随着 GPU 的发展,这种问题只会变得更糟。
暂无开放 Issues,或尚未同步最近议题。