TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

视频模型:3D 卷积、双流(SlowFast)、注意力(TimeSformer)——以及视频掩码预测(VideoMAE)

状态:草稿(2026-10-13)。 论文数据均通过查阅原文及相应条件确认。亲自动手实践的部分为笔记本 CPU 上的 numpy 示例(code/06_video_cost.py, 1 秒以内)。从未在乒乓球视频上运行过此类视频模型(未实测)。 系列《阅读视觉模型 2》第 6 篇。上一篇: 光流与 RAFT。2D 卷积与 ViT 请参见 阅读视觉模型 1。

目录

1. 直觉:单张照片无法得知的事物

通过一张静态照片,我们可以认出“拿着球拍的运动员”,但却无法得知该运动员是 正在击球、击球刚结束,还是正准备击球。“正在开门”和“正在关门”在单张照片中看起来是完全相同的场景。视频模型正是试图学习这种差异,即 时间顺序中包含的信息。

方法大致分为三类。

시간을 다루는 세 방식 ① 3D 합성곱 C3D · I3D 필터가 가로·세로·시간을 함께 훑는다(3×3×3) I3D: 2D 필터를 시간으로 N번 복사 ÷ N 으로 출발 → 멈춘 영상에서 2D 와 같은 답 값싼 변형: TSM(채널 일부를 앞뒤 프레임으로 밀기) ② 두 갈래 Two-stream · SlowFast 느린 길: 프레임 드문드문, 채널 많음 빠른 길: 프레임 8배 촘촘, 채널 ⅛ 느린 길 = 모양, 빠른 길 = 움직임(계산은 약 20%) ③ 주의(attention) TimeSformer · ViViT a) 시간: 같은 자리의 다른 프레임과 비교 (프레임 4장의 같은 칸) b) 공간: 같은 프레임의 다른 자리와 비교 (한 프레임 안의 이웃 칸) 한 블록에서 a → b 순서. 한꺼번에보다 훨씬 싸다
图:3D 卷积、双流、时空注意力
  1. 3D 卷积:除了宽高之外,还将滤波器在时间方向上延伸。
  2. 双流:分为观察外观的路径和观察运动的路径。
  3. 注意力(attention):Token 在时间和空间中穿梭并相互参考。

无论哪种方法,训练大多采用 监督学习。通过“该剪辑为‘打乒乓球’”等视频级别的标签来学习分类。代表性数据集是 Kinetics(约 24 万个训练视频,400 种动作)。只有最后一节的 VideoMAE 是进行无标签预训练的。

2. 3D 卷积:C3D 与 I3D

C3D:时间维度也是 3 帧

C3D(2015)将卷积滤波器从 3×3 扩展到了 3×3×3。输入 16 帧 × 112×112 的剪辑,在尝试将时间深度改为 1、3、5、7 后,发现 3 的效果最好(论文中提到,不过作者也自承仅在较小范围内进行了比较)。使用 110 万个体育视频(Sports-1M,487 种类别)从头开始进行监督学习。

I3D:放大图像模型以起步

3D 卷积的弱点在于 必须从头开始学习。图像拥有在 ImageNet 上训练良好的权重,但视频却没有同等量级的起点。I3D(2017)提出了一种将 2D 权重转换为 3D 的简单技巧。

将 2D 滤波器在时间方向复制 N 次,并除以 N。

这样生成的 3D 滤波器在 只有相同帧重复的“枯燥视频”中,会给出与原本 2D 滤波器完全相同的答案。它继承了图像模型已知的知识作为起点,并通过学习来掌握运动。

廉价替代方案:通道平移(TSM)

3D 卷积会使参数量和计算量增加 3 倍。TSM(2019)保持 2D 卷积网络不变,仅将特征通道的 ⅛ 向前平移一帧,⅛ 向后平移一帧 平移 即可。乘法运算没有丝毫增加,但相邻帧的信息得以混入。通过单独设置 只向后平移(仅使用过去帧)的版本,使其也能用于实时流式传输(论文)。第 10 篇 E2E-Spot 使用的 GSM 是该平移操作的变体,它能够学习“平移什么以及平移多少”。

3. 双流:Two-stream 与 SlowFast

Two-stream(2014) 分别学习观察单张图像的路径(空间流)和堆叠第 5 篇中 10 张光流图像观察的路径(时间流),最后将得分取平均。仅凭时间流一项就比空间流更准确(UCF-101 上 83.7% 对 73.0%,论文)。这意味着运动对于动作识别同样重要,但由于需要预先计算光流,因此速度较慢。

SlowFast(2019) 在没有光流的情况下构建了双流。

论文中提到,这借鉴了灵长类视觉系统中存在专门观察形状的细胞和专门观察运动的细胞这一观察结果。最重要的是,它 没有使用 ImageNet 预训练,而是从头开始 仅使用 Kinetics 进行训练。即使进行预训练,差异也仅为 ±0.3%p(论文)。

4. 注意力:TimeSformer

如果将 ViT 应用于视频,Token 的数量会达到“帧数 × 每帧图块数”。如果是 8 帧 × 196 个图块,则是 1,568 个。所有 Token 观察所有 Token 的 联合(joint) 注意力计算成本与 Token 数量的平方成正比。

TimeSformer(2021)在单个块中将注意力分为两部分(divided)。

  1. 时间注意力:每个图块只观察 相同位置的其他帧图块。
  2. 空间注意力:基于该结果,每个图块只观察 同一帧中的其他图块。

通过这样划分,计算量大幅减少,准确率反而略有提升(见下表)。它从在 ImageNet 上预训练的 ViT 出发,并使用视频标签进行微调。

5. 动手实践

code/06_video_cost.py 的输出(code/06_video_cost.out.txt).

I3D 放大。 在将 12×12 的单张图像重复 5 次的“枯燥视频”中,应用了将 3×3 滤波器复制 3 次并除以 3 的 3×3×3 滤波器。

멈춘 영상에서 3D 출력과 2D 출력의 최대 차이: 1.33e-15
움직이는 영상에서는 차이가 생긴다(평균 절댓값 1.644) — 이 차이를 학습이 키워 움직임 필터가 된다

差值 10⁻¹⁵ 意味着这仅仅是浮点舍入误差。它们完全相同。

注意力计算量。 计算了单层中比较 Token 对的次数(16×16 图块,224 分辨率时每帧 196 个图块)。

输入 Token 联合注意力 时空分离 倍数
8 帧 1,568 2.5M 0.32M 7.7 倍
16 帧 3,136 9.8M 0.66M 14.8 倍
96 帧 18,816 354.0M 5.49M 64.4 倍

帧数越多,差距越大。TimeSformer-L 之所以能够处理 96 帧,正是得益于这种划分。

6. 如何训练:无标签,从视频中进行掩码预测

VideoMAE:掩码 90%,使用管状(tube)掩码

VideoMAE(2022)是将第 3 篇的 MAE 迁移到视频中的成果。区别有两点。

我们亲自测量了使用管状掩码的原因。在 16 帧 × 196 个图块中,被掩码图块的正前或正后帧中 相同位置可见的比例。

가림 75% · 프레임마다 따로        : 0.415
가림 90% · 프레임마다 따로        : 0.180
가림 95% · 프레임마다 따로        : 0.092
가림 75–95% · 튜브(모든 프레임 같은 자리): 0.000
옆 프레임 같은 자리를 그대로 베낀 오차 0.0120  (아무것도 모르고 0 으로 채우면 1.0009)

如果按帧单独掩码,即使掩码 90%,有 18% 的图块也只需 直接复制 相邻帧中的相同位置,就能几乎完美地预测出来(误差 0.012,盲目填充为 1.0)。模型会学会“复制”这条捷径,而无法学到运动或结构。而如果使用管状掩码,这条捷径将被彻底封死。

损失函数与 MAE 相同。通过均方误差来预测被掩码立方体的(归一化)像素。编码器仅处理可见的大约 10% 的 Token。

V-JEPA:预测特征而非像素

V-JEPA(2024)不预测掩码部分的 像素 ,而是让缓慢更新的教师编码器(第 2 篇中的 EMA 教师)预测该部分生成的 特征(L1 损失)。其理念是避免在预测像素的微小细节上耗费精力(这与第 3 篇的局限性相呼应)。论文中指出,它既没有使用预训练图像模型、文本、错误答案,也没有使用像素重建。

7. 论文指标

这是 Kinetics-400 的 top-1 准确率。“view”指测试时单个视频裁剪的剪辑数 × 空间裁剪数。

模型 准确率 条件(论文)
I3D(图像 + 光流双流) 71.6 → 74.2 无 ImageNet 放大 → 有。训练输入 64 帧 224px
TSM(ResNet-50) 74.1 8 帧,10 个 clip。基于 2D(TSN)70.6
SlowFast 16×8 R101+NL 79.8 无预训练,30 view,每 view 234 GFLOPs
TimeSformer / -L 78.0 / 80.7 ImageNet-21K 预训练,8×224² / 96×224²,3 view。计算量 0.59 / 7.14 TFLOPs
VideoMAE ViT-L / ViT-H 85.2 / 86.6 无标签预训练 1,600 个 epoch 后微调,16 帧,5×3 view。320px·32 帧 ViT-H 为 87.4
V-JEPA ViT-H/16 82.0 冻结编码器,仅训练注意力探测器(非微调)

TimeSformer 的注意力方式比较(ImageNet-21K 预训练)如下(论文)。

注意力方式 Kinetics-400 Something-Something v2
仅空间(忽略时间) 76.9 36.6
联合 77.4 58.5
时空分离 78.0 59.5

请注意,在 Kinetics 中,即使忽略时间也能达到 76.9% 。Kinetics 中的许多动作仅通过观察场景(游泳池、乒乓球桌)就能猜对。相比之下,Something-Something 的答案是“将某物从左向右推动”这种 运动本身,因此如果忽略时间,准确率会暴跌至 36.6%。乒乓球判罚显然更接近后者。

训练成本也各不相同。在 ImageNet-1K 预训练条件下,在 Kinetics 上训练 TimeSformer 花费了 416 GPU 小时,SlowFast R50 花费了 3,840 小时,I3D 花费了 1,440 小时(基于数据中心级 GPU 标准,TimeSformer 论文)。

VideoMAE 的数据效率。 这是仅使用各数据集的训练视频对同一个 ViT-B 进行预训练时的结果(论文)。

数据集(训练视频数) 从头监督学习 对比学习(MoCo v3) VideoMAE
UCF101(9.5千) 51.4 81.7 91.3
HMDB51(3.5千) 18.0 39.2 62.6
Something-Something v2 32.6 54.2 69.6

在只有几千个视频的小型数据集上,差距最为明显(UCF101和HMDB51实验采用75%遮挡进行预训练)。此外,使用4.2万个Something-Something视频预训练的模型(68.7)在Something-Something上的表现优于使用24万个Kinetics视频预训练的模型(68.5)。论文将此作为“预训练数据中,与测试领域的相似程度比数量更重要”的依据。

8. 局限性

9. 与我们项目的关联

TT简评。 “击球前”和“击球后”单看一张照片是一样的。但是,如果把帧分开遮挡并要求模型回答,模型首先学会的是作弊——直接复制相邻的帧。管状遮挡(Tube masking)就是阻止这种作弊的机制。

参考文献

登录后即可点赞

评论

还没有评论。

登录后即可发表评论