社区计算机视觉课程文档

视频处理基础

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

视频处理基础

随着 Transformer 的兴起,视觉 Transformer 已成为各种计算机视觉任务的重要工具。视觉 Transformer 在涉及图像和视频的计算机视觉任务中表现出色。

然而,了解这些模型如何以不同方式处理图像和视频对于实现最佳性能和准确结果至关重要。

理解视觉 Transformer 的图像处理

对于图像数据,视觉 Transformer 通常通过将单个静止图像分割成不重叠的图像块,然后单独转换这些图像块来处理它们。假设我们有一个 224x224 的图像,将其分割成 16x16 的图像块,其中每个图像块包含 14x14 像素。这种基于图像块的处理不仅减少了计算量,而且还使模型能够有效地捕获图像中的局部特征。然后,每个图像块通过一系列自注意力层和前馈神经网络来提取语义信息。得益于这种分层处理技术,视觉 Transformer 能够捕获图像中的高级和低级特征。由于视觉 Transformer 单独处理图像块,并且 Transformer 默认没有机制来跟踪输入的 H位置,因此图像的空间上下文可能会丢失。为了解决这个问题,视觉 Transformer 通常包含位置编码,以捕获图像中每个图像块的相对位置。通过合并位置信息,模型可以更好地理解不同图像块之间的空间关系,并增强其识别对象和模式的能力。

注: CNN 旨在学习空间特征,而视觉 Transformer 旨在学习空间和上下文特征。

图像和视频处理之间的主要区别

视频本质上是帧序列,处理它们需要捕获和合并运动信息的技术。在图像处理中,Transformer 忽略帧之间的时间关系,即它只关注帧的空间信息。

时间关系是深入理解视频内容的主要因素,因此我们需要针对视频的单独算法。图像和视频处理之间的主要区别之一是输入中额外添加了一个轴——时间。从视频中提取 token 或嵌入视频片段有两种主要方法。

均匀帧采样

这是一种标记输入视频的直接方法,我们均匀采样ntn_t输入视频片段中的帧,使用与图像处理相同的方法独立嵌入每个 2D 帧,并将所有这些 token 连接起来。

如果nhnwn_h*n_w从每个帧中提取不重叠的图像块,然后将总计ntnhnwn_t*n_h*n_w'的 token 将通过 Transformer 编码器转发。均匀帧采样是一种标记方案,我们从视频片段中采样帧并执行简单的 ViT 标记。

Tubelet 嵌入

此方法将视觉 Transformer 的图像嵌入扩展到 3D 并对应于 3D 卷积。它是一种替代方法,其中从输入体中提取不重叠的时空“管状块”并进行线性投影。

首先,我们从视频中提取管状块。这些管状块包含帧的图像块以及时间信息。然后将这些管状块展平以构建视频 token。直观地,此方法在标记化期间融合时空信息,与“均匀帧采样”不同,后者通过 Transformer 融合来自不同帧的时间信息。

时间信息在视频处理中的重要性

在视频处理中包含时间信息对于一些计算机视觉任务至关重要。其中一个任务是动作识别,旨在对视频中的动作进行分类。时间信息对于视频字幕等任务也至关重要,其目标是生成视频内容的文本描述。

通过考虑帧之间的时间关系,视觉 Transformer 可以生成更具上下文相关性的字幕。例如,如果一个人在一个帧中奔跑,然后在下一个帧中跳跃,模型可以生成反映这一系列动作的字幕。此外,时间处理对于视频目标检测和跟踪等任务也很重要。

总而言之,视频和图像处理之间的主要区别在于时间信息的存在以及视频数据带来的特殊困难,例如更高的内存和存储需求。图像和视频处理的选择取决于特定的计算机视觉任务和数据的特征。

< > 在 GitHub 上更新