社区计算机视觉课程文档
视频处理基础
并获取增强的文档体验
开始入门
视频处理基础
随着 transformers 的兴起,Vision Transformers 已成为各种计算机视觉任务的重要工具。Vision Transformers 非常擅长处理涉及图像和视频的计算机视觉任务。
然而,理解这些模型如何不同地处理图像和视频对于获得最佳性能和准确的结果至关重要。
理解 Vision Transformers 的图像处理
在处理图像数据时,Vision Transformers 通常通过将单个静态图像分割成非重叠的图像块,然后单独转换这些图像块来处理图像。假设我们有一张 224x224 的图像,将其分割成 16x16 的图像块,其中每个图像块由 14x14 像素组成。这种基于图像块的处理不仅减少了计算量,而且还允许模型有效地捕捉图像中的局部特征。然后,每个图像块都通过一系列自注意力层和前馈神经网络,以提取语义信息。得益于这种分层处理技术,Vision Transformers 能够捕捉图像中的高层和低层特征。由于 Vision Transformers 单独处理图像块,并且 transformers 默认没有任何机制来跟踪输入的位置,因此图像的空间上下文可能会丢失。为了解决这个问题,Vision Transformers 通常包含位置编码,以捕捉图像中每个图像块的相对位置。通过结合位置信息,模型可以更好地理解不同图像块之间的空间关系,并增强其识别物体和模式的能力。
注意: CNN 旨在学习空间特征,而 Vision Transformers 旨在学习空间和上下文特征。
图像和视频处理之间的主要区别
视频本质上是帧序列,处理视频需要捕获和整合运动信息的技术。在图像处理中,transformer 忽略了帧之间的时间关系(时间轴),即它只关注帧的空间信息(空间轴)。
时间关系是深入理解视频内容的关键因素,因此我们需要针对视频的单独算法。图像和视频处理之间的主要区别之一是输入中增加了一个额外的时间轴。从视频中提取 tokens 或嵌入视频剪辑主要有两种方法。
均匀帧采样
这是一种直接的输入视频 tokens 化方法,其中我们均匀地采样帧,从输入视频片段中,使用与图像处理相同的方法独立地嵌入每个 2D 帧,并将所有这些 tokens 连接在一起。
如果个非重叠图像块是从每一帧中提取的,那么总共有个 tokens 将被转发到 transformer 编码器中。均匀帧采样是一种 tokens 化方案,其中我们从视频片段中采样帧并执行简单的 ViT tokens 化。
Tubelet 嵌入
此方法将 Vision Transformer 的图像嵌入扩展到 3D,并对应于 3D 卷积。这是一种替代方法,其中从输入卷中提取非重叠的时空“tubes”并进行线性投影。
首先,我们从视频中提取 tubes。这些 tubes 包含帧的图像块和时间信息。然后将 tubes 展平以构建视频 tokens。直观地说,此方法在 tokens 化期间融合了时空信息,这与“均匀帧采样”形成对比,“均匀帧采样”中,来自不同帧的时间信息由 transformer 融合。
时间信息在视频处理中的重要性
在视频处理中包含时间信息对于多项计算机视觉任务至关重要。其中一项任务是动作识别,其旨在对视频中的动作进行分类。时间信息对于视频字幕等任务也至关重要,视频字幕的目标是生成视频内容的书面描述。
通过考虑帧之间的时间关系,Vision Transformers 可以生成与上下文更相关的字幕。例如,如果一个人在一个帧中显示正在跑步,然后在下一帧中显示正在跳跃,则模型可以生成反映此动作序列的字幕。此外,时间处理对于视频对象检测和跟踪等任务也很重要。
总之,时间信息的存在以及视频数据带来的特殊困难(例如更高的内存和存储需求)是视频和图像之间处理的主要区别。图像和视频处理之间的选择取决于具体的计算机视觉任务和数据的特征。
< > 在 GitHub 上更新