跳至主要内容
返回文章列表
约 12 分钟阅读

视频时序建模:从 C3D、I3D、TSM 到 TimeSformer 与 VideoMAE

从三维卷积、权重膨胀、时序移位到分解注意力和掩码预训练,理解五种经典视频建模方法的机制、边界与工程取舍。

博客目录 →

同一个人、同一个场景,“打开盒子”和“关上盒子”可能拥有非常相似的单帧画面,区别藏在动作发生的顺序里。“假装拿起手机”和“真的拿起手机”,也需要观察物体有没有随手移动。

视频理解因此多了一层要求:模型既要知道每一帧里有什么,也要辨认帧与帧之间发生了什么变化。

C3D、I3D、TSM、TimeSformer 和 VideoMAE 分别展示了几种经典思路。不过,它们并不完全处于同一个比较维度:前四者主要讨论如何组织时空计算,VideoMAE 更侧重如何通过自监督预训练学到视频表征。

方法代表性发表时间核心思路主要解决的问题
C3D2014 预印本;ICCV 2015在空间和时间上做三维卷积从短片段提取时空特征
I3DCVPR 2017将二维网络及预训练权重膨胀到三维利用图像预训练初始化视频网络
TSM2018 预印本;ICCV 2019沿时间轴移动部分特征通道以较低额外成本交换帧间信息
TimeSformerICML 2021分别计算时间与空间注意力降低完整时空注意力的计算负担
VideoMAENeurIPS 2022高比例 tube masking 与重建减少视频表征学习对人工标签的依赖

一、C3D:让卷积核同时看到相邻帧

C3D 的名称来自 Convolutional 3D。Du Tran 等人的 Learning Spatiotemporal Features with 3D Convolutional Networks于 2014 年公开预印本,发表于 ICCV 2015。

二维卷积处理一帧中的高和宽;三维卷积把时间也纳入局部窗口。一个 3×3×3 卷积核,会同时读取连续三个时间位置、每个位置上 3×3 的空间邻域。随着网络逐层计算,局部外观与短时变化可以共同进入特征。

论文中的 C3D 通常接收 16 帧片段,采用 3×3×3 卷积,包含 8 个卷积层、5 个池化层和两个全连接层,再接分类输出。第一层池化不压缩时间,以保留早期时序信息。这个明确结构比笼统称为“11 层浅层网络”更容易对应代码。原论文架构说明

以篮球视频为例,逐帧特征可以告诉模型球在哪里;三维卷积进一步接触相邻时间位置上的变化。但局部时空响应并不等于显式计算了光流,也不保证已经识别出完整的运动轨迹。

它是理解视频卷积的重要基线。实际成本要与分辨率、片段长度和骨干一起比较;不能因为采用三维卷积,就推断它在所有硬件、所有参照方法下都很慢。

C3D 论文对比单帧二维卷积、将多帧作为通道的二维卷积,以及保留时间维度的三维卷积
二维卷积与三维卷积的区别。来源:C3D 论文图 1。查看高清原图。

二、I3D:把图像网络的知识带到视频里

I3D 的全称是 Inflated 3D ConvNet。João Carreira 与 Andrew Zisserman 在 CVPR 2017 的 Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset中提出这一方法。

它将二维卷积与池化扩展到时间维度,利用成熟的图像网络结构和 ImageNet 预训练权重初始化视频模型。这里的“膨胀”指新增时间维度,不是空洞卷积里的 dilation。

权重初始化有一个关键细节:沿时间轴复制二维卷积核后,还要除以时间核大小。若时间长度为 k,可以写成:

W3D[τ, :, :] = W2D / k,τ = 0, 1, …, k−1

对于多帧内容相同的静态片段,这样可以保持与二维滤波器相近的响应尺度。后续视频训练会继续更新这些权重,而不是只训练“新增的时间部分”。论文中的 inflation 说明

原论文还采用 RGB 与光流双流融合。RGB 提供外观信息,光流提供显式运动输入;使用 I3D 骨干本身并不强制同时运行两路。部署双流时,光流估计的时间与存储也应计入成本。

I3D 的 Inflated Inception-V1 网络结构,左侧为整体网络,右侧展开 Inception 子模块
膨胀后的 Inception-V1 网络及其子模块。来源:I3D 论文图 3。查看高清原图。

三、TSM:让二维卷积接触相邻帧特征

TSM 的全称是 Temporal Shift Module,即时序移位模块。Ji Lin、Chuang Gan 与 Song Han 的 TSM: Temporal Shift Module for Efficient Video Understanding于 2018 年公开预印本,发表于 ICCV 2019。

它的做法是在二维卷积之前,沿时间轴移动部分特征通道。移位后,某一时刻的特征同时包含当前帧与相邻帧的信息,随后由二维卷积混合这些通道。

通道通常不是平均分成三份。官方实现中常用的配置是:八分之一来自未来相邻帧,八分之一来自过去相邻帧,其余四分之三保持当前帧来源。比例可以配置。

以特征形状 (B, T, C, H, W) 表示,一个离线双向移位可以概括为:

部分通道:out[t] ← in[t+1]
部分通道:out[t] ← in[t−1]
其余通道:out[t] ← in[t]

序列边界需要单独处理;简单实现可以对不存在的邻帧填零。在线识别只能读取当前与过去的信息,因此需要单向移位与历史特征缓存,不能直接使用包含未来帧的离线版本。

TSM 官方图依次展示原始特征、离线双向时序移位和在线单向时序移位
(a) 原始特征,(b) 离线双向移位,(c) 在线单向移位。移位沿时间轴进行,空间位置保持对应。来源:MIT HAN Lab 官方项目。查看高清原图。

“零参数、零额外计算”描述的是移位操作没有新增可学习参数和乘加运算。实际程序依然可能复制数据、分配缓冲区和访问显存,所以不能等同于零延迟。论文报告的 Jetson Nano 13 ms、Galaxy Note8 35 ms 是特定在线识别配置下的结果,换骨干、分辨率或运行环境后需要重新测量。

四、TimeSformer:把时间注意力和空间注意力分开

Gedas Bertasius、Heng Wang 与 Lorenzo Torresani 在 ICML 2021 发表了 Is Space-Time Attention All You Need for Video Understanding?,提出 TimeSformer。

设一段视频有 T 个采样帧,每帧有 P 个 patch。完整时空自注意力要处理 TP 个 token,注意力交互项随 T²P² 增长。帧数与图像分辨率同时增加时,这一项会迅速变大。

论文比较了多种注意力组织方式,其中 Divided Space-Time Attention 在每个 block 内先做时间注意力,再做空间注意力:先让同一空间位置的 token 跨帧交互,再让同一帧内的不同空间位置交互。论文

可以想象一张表格:每一行是一帧,每一列是一个 patch 位置。时间注意力沿列计算,空间注意力沿行计算。

TimeSformer 论文比较五种注意力方式,其中第三列 T+S 表示先跨帧计算时间注意力,再在帧内计算空间注意力
五种注意力组织方式,本文重点讨论第三列的分解时空注意力(T+S);蓝色块表示查询位置。来源:TimeSformer 论文图 2。查看高清原图。

忽略隐藏维度、特殊 token、投影和前馈层,仅比较注意力交互项,可以得到:

完整时空注意力:O(T²P²)
分解时空注意力:O(PT² + TP²)

它减少的是两个维度同时参与全连接交互的成本,不能简化成“从平方复杂度变成线性复杂度”。例如 T=16、P=196 时,上述交互数量约从 983 万降到 66.5 万;这是公式推导,不是整网速度提升倍数。

同一空间位置也不等于同一个物体:移动中的球会经过不同 patch。时间与空间注意力的组合仍需学习如何连接这些变化。

长视频能力还取决于采样。论文探索了覆盖一分钟以上的视频片段,但这不表示必须把一分钟内每个原始帧都送入网络。报告准确率或训练小时数时,应同时说明预训练数据、采样帧数、分辨率、硬件与测试视角,避免把不同设置当成公平速度对比。

五、VideoMAE:用掩码重建学习视频表征

VideoMAE 是 Video Masked Autoencoder。Zhan Tong、Yibing Song、Jue Wang 与 Limin Wang 的 VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training发表于 NeurIPS 2022。

它将视频转换为时空 token,遮住大部分内容,只把可见 token 送入编码器。轻量解码器接收编码结果与 mask token,通过重建被遮挡内容学习表示。原论文探索了 90%–95% 的高掩码比例。

关键设计是 Tube Masking:在时间轴上共享空间掩码模式。某个空间位置被遮挡时,其对应的时间序列也一起遮挡,以降低直接从邻帧复制相似内容的机会。这是在固定网格上延伸的“管道”,并不是自动追踪移动物体的掩码。

VideoMAE 官方框架:视频采样后进行高比例管道掩码,可见 token 进入编码器,再由解码器结合 mask token 重建视频内容
VideoMAE 的高比例掩码与非对称编码器—解码器框架。图片来源:MCG-NJU 官方仓库,按项目 CC BY-NC 4.0 许可引用,未修改原图。查看高清原图。

高掩码率与视频中的时间冗余有关。它使大编码器处理的 token 更少,但整体训练成本仍包含解码器和训练轮数。论文还报告了在约 3000–4000 条视频的小数据设置下学习有效表示的结果,这不保证任意小数据集都有同样收益。原论文

重建任务提供了一种自监督信号,并不证明模型已经理解全部动作或因果关系。用于动作识别时,通常保留编码器、移除预训练解码器,再接分类头并微调。完整片段分类的推理成本,也不能直接按预训练时“只保留 5%–10% token”估算。

六、怎样把这些方法放到同一次比较里

这五个名字可以沿三个问题整理:

  • 帧间信息怎样交换? C3D/I3D 使用三维卷积,TSM 使用通道移位,TimeSformer 使用注意力。
  • 模型怎样初始化和训练? I3D 复用二维权重,VideoMAE 从掩码重建获得预训练表示。
  • 推理时允许看见哪些帧? 离线识别可以读取完整片段,在线系统必须限制未来信息并考虑缓存。

因此,VideoMAE 的出现没有让网络结构设计失去意义。骨干、预训练目标、采样方式与在线约束是可以分别研究的设计选择。

场景可以建立的实验基线应优先检查
边缘端连续识别轻量二维骨干 + 在线 TSM历史缓存、逐帧延迟与内存搬运
有监督短片段识别I3D 等三维卷积基线帧数、分辨率、单流或双流成本
跨较长时间范围聚合TimeSformer 类分解注意力实际时间覆盖、采样密度与显存
标注有限但有未标注视频VideoMAE 预训练与微调数据分布、预训练成本与迁移表现

这是一组实验起点,不是对所有部署环境的固定推荐。比较时先固定训练数据和评估协议,再决定更换哪个模块。

采样方式可能比模型名称更先限制效果

以 30 FPS 视频为例,取 16 帧、采样间隔为 4 个原始帧,首尾采样点间隔为 (16−1)×4/30 = 2 秒。相同的 16 帧,如果均匀覆盖一分钟,描述的时间范围完全不同。

稀疏采样能覆盖长过程,却可能漏掉一次快速接触;密集采样保留细节,却可能看不到动作的开始和结束。评估时应记录片段时长、采样帧数与采样策略,而不仅仅是输入张量形状。

还可以加入时间反转、打乱帧序和重复同一帧等诊断实验。例如,在依赖方向的类别上打乱顺序后性能几乎不变,值得检查模型是否主要依赖背景线索。解释结果时要结合标签:某些动作即使反转也不改变类别,不能机械地要求所有视频都对顺序敏感。

七、常见数据集应该怎样使用

Kinetics-400 是包含 400 类动作的视频分类基准,通常以约 24 万训练片段描述其规模。Kinetics 还存在其他版本,视频链接的可用性与实际下载数量也会变化,实验中应注明版本和有效样本数。数据集论文

Something-Something V2 更强调人与日常物体的细粒度交互。官方记录为 174 类、220,847 条视频,其中训练集 168,913 条、验证集 24,777 条、测试集 27,157 条。总量约 22 万不能写成训练集约 22 万;动作方向和操作过程也不等同于严格意义上的因果推断。官方数据集说明

UCF101 有 101 类、13,320 条视频,适合建立较小规模的动作识别实验。原始论文 HMDB51 也是经典小规模动作基准;VideoMAE 原论文同时报告了这两个数据集上的实验。使用它们时应遵循对应的数据划分和评估协议,避免同源片段跨训练与测试集造成泄漏。

实际项目还应加入自己的困难样本:动作方向相反、背景相似、目标被遮挡、镜头运动明显、动作持续时间变化大。它们更有助于判断模型是否学到了任务真正需要的时间信息。

参考资料

打开原图