动作识别领域导览
图像分类问的是"这张图里有什么",动作识别问的是"这段视频里的人在做什么"。看似只是从 2D 扩展到 3D 的维度提升,但背后的核心矛盾完全不同:图像分类的信号集中在空间维度,而动作识别的信号分散在时间维度——一帧画面区分不了"举枪"和"射击",必须看多帧之间的变化。
这个维度差异引发了整个领域十多年的技术探索:如何高效地建模时序?是用 2D CNN 加额外的时序策略(Two-Stream、TSN、TSM),还是直接用 3D 卷积(C3D、I3D、SlowFast),还是用自注意力(TimeSformer、VideoMAE)?每一种选择都牵涉到计算效率、数据需求和精度的三角权衡。
本文作为动作识别系列的第一篇导览,目标是建立一张完整的认知地图:7 条技术路线怎么分类、每条路线下的代表论文是什么、有哪些现成的框架和库可以直接用。
graph LR
subgraph 2014-2018
A[Two-Stream CNN
NeurIPS 2014]
B[TSN
TPAMI 2016]
end
subgraph 2015-2020
C[C3D
ICCV 2015]
D[I3D
CVPR 2017]
E[SlowFast
ICCV 2019]
F[X3D
CVPR 2020]
end
subgraph 2019-2019
G[TSM
ICCV 2019]
end
subgraph 2021-至今
H[TimeSformer
ICML 2021]
I[ViViT
ICCV 2021]
J[Video Swin
CVPR 2022]
K[VideoMAE
NeurIPS 2022]
L[VideoMAE V2
CVPR 2023]
end
subgraph 2022-至今
M[InternVideo
2022]
N[VideoMamba
ICML 2024]
end
A --> B --> E
C --> D --> E --> F
G -.融合.-> E
H --> I --> J --> K --> L
K -.预训练.-> M
L -.预训练.-> N
style A fill:#e1f5fe
style E fill:#fff3e0
style K fill:#e8f5e9
style M fill:#fce4ec
这是动作识别最早期的深度学习路线,核心思想是:用成熟的 2D 图像 CNN(VGG、ResNet)提取每帧特征,再设计额外的策略来建模帧间时序关系。
Two-Stream CNN(NeurIPS 2014)—— 双流范式开山
Simonyan 和 Zisserman 提出了影响深远的双流范式:一个空间流(Spatial Stream)处理单帧 RGB 图像,学习静态外观特征;一个时间流(Temporal Stream)处理多帧光流(Optical Flow),学习动态运动特征。两个流的预测结果通过平均融合得到最终分类。
双流范式的天才之处在于它将复杂的时空建模问题解耦为了两个成熟的子问题:图像分类(空间流)和运动模式识别(时间流)。但代价是必须显式计算光流,这一步在推理时极其耗时。
TSN: Temporal Segment Networks(TPAMI 2016)
TSN 解决了一个实际问题:长视频(几十秒)不能直接全部送进网络。它将视频分成 K 个等长片段(segments),从每个片段中随机采样一帧(或一段光流),用 2D CNN 提取特征后通过共识函数(consensus function,如平均池化)聚合为视频级表示。
这个稀疏采样策略极大地降低了计算成本,同时保留了视频的全局时序信息。TSN 在 UCF101 上达到 94.2%,HMDB51 上达到 69.4%,成为当时的标准 baseline。
TSM: Temporal Shift Module(ICCV 2019)
MIT-HAN-Lab 的林哲达和韩松提出了极其优雅的 TSM:不增加任何计算量和参数,仅通过将相邻帧的特征图沿时间维度"位移"(shift),就能让 2D CNN 拥有时序建模能力。
具体来说,对于 $T$ 帧的视频,将每帧特征图的一部分通道向前移一帧、另一部分向后移一帧、剩余保持不动。这个操作零计算开销,但让后续的 2D 卷积能"看到"相邻帧的信息。TSM 在 Jetson Nano 上实现 13ms 延迟,成为边缘部署的经典选择。
| 论文 | 年份 | Venue | 核心贡献 |
|---|---|---|---|
| Two-Stream CNN | 2014 | NeurIPS | 空间流(RGB)+ 时间流(光流)双流范式 |
| TSN | 2016 | TPAMI | 稀疏时序分段采样 + 多片段融合 |
| Very Deep Two-Stream | 2015 | arXiv | 将 VGG/GoogLeNet 深度扩展到双流 |
| Hidden Two-Stream | 2018 | ACCV | CNN 隐式学习光流,10× 加速 |
| TSM | 2019 | ICCV | 零计算量时序通道位移 |
| Mobile Video Action Recognition | 2019 | arXiv | MobileNetV2 + TTP,40 FPS 移动端 |
如果 2D CNN 加时序策略终究是"打补丁",那能不能直接用 3D 卷积在时空维度上联合提取特征?这就是 3D CNN 路线的出发点。
C3D(ICCV 2015)—— 3D 卷积的开端
Tran 等人用 3×3×3 的 3D 卷积核替代 2D 的 3×3 卷积核,构建了 8 层的 3D CNN(C3D)。在 Sports-1M 数据集上训练后,C3D 学到的特征在 UCF101 上达到 82.3%。C3D 的贡献不在于精度——它远不如同时期的 Two-Stream——而在于证明了 3D 卷积可以端到端地学习时空特征,为后续的 I3D、SlowFast 铺平了道路。
I3D / Quo Vadis(CVPR 2017)—— 预训练的关键突破
I3D 解决了 3D CNN 的最大痛点:缺少好的预训练。3D CNN 参数量大、训练数据少,从头训练效果很差。Carreira 和 Zisserman 提出了"膨胀"(inflating)操作:将 ImageNet 上预训练的 2D 卷积核(3×3)扩展为 3D 卷积核(3×3×3),权重按时间维度复制并归一化。
这个看似简单的操作让 3D CNN 继承了 ImageNet 预训练的强大初始化,I3D 在 Kinetics-400 上达到 72.1%(不含光流)和 80.9%(含光流),大幅超越了 C3D 和 Two-Stream。更重要的是,I3D 配套发布了 Kinetics-400 数据集(240k 视频,400 类),这个数据集后来成为动作识别的标准 benchmark。
SlowFast Networks(ICCV 2019)—— 双速通道
Feichtenhofer 等人受到视网膜神经科学的启发——灵长类视网膜有两种细胞,一种反应慢但细节丰富,一种反应快但空间分辨率低——设计了 SlowFast 双速网络:
- Slow 路径:低帧率(如每 16 帧取 1 帧)、高空间分辨率、高通道容量,负责捕获语义信息
- Fast 路径:高帧率(如每 2 帧取 1 帧)、低空间分辨率、低通道容量(约为 Slow 的 1/8),负责捕获快速运动
两条路径通过横向连接(lateral connections)融合,Fast 路径的特征被加到 Slow 路径上。SlowFast 在 Kinetics-400 上达到 79.8%(不含光流),在 AVA 时空动作检测上也有突出表现。
X3D(CVPR 2020)—— 渐进式扩张
Feichtenhofer 再次出手,用一种极其巧妙的方法设计高效 3D 架构:从最小的 2D base 模型出发,沿时间、空间、宽度、深度、分辨率、瓶颈 6 个轴逐步扩张,每一步都在精度和计算量的 Pareto 前沿上微调。最终得到的 X3D 家族覆盖了从移动端到服务器的不同算力档位,计算量比 SlowFast 降低 4.8×,在 Samsung Galaxy S10 上达到约 8× 实时。
| 论文 | 年份 | Venue | 核心贡献 |
|---|---|---|---|
| C3D | 2015 | ICCV | 3×3×3 卷积统一时空特征提取 |
| I3D | 2017 | CVPR | 膨胀 2D→3D + Kinetics 预训练 |
| R-C3D | 2017 | ICCV | 3D 全卷积 + 时序 proposal |
| SlowFast | 2019 | ICCV | 双速通道,慢路径看语义、快路径看运动 |
| X3D | 2020 | CVPR | 6 轴渐进扩张,4.8× 计算量减低 |
| TAN | 2018 | arXiv | 3D 卷积解耦为空间 + 时序聚合 |
2021 年起,Vision Transformer 的成功引发了视频领域的"Transformer 化"浪潮。核心问题是:纯自注意力能否替代卷积来建模时空关系?如果是,怎样的注意力分解方式最优?
TimeSformer(ICML 2021)—— 纯时空注意力验证
Bertasius 等人(FAIR)提出了 TimeSformer,首次系统验证了纯 Transformer 可以做视频分类。关键创新是 divided space-time attention:不直接对所有时空 token 做全注意力(计算量爆炸),而是先在空间维度做注意力、再在时间维度做注意力,将复杂度从 $O((T \times H \times W)^2)$ 降低到 $O(T \times (H \times W)^2 + H \times W \times T^2)$。
ViViT(ICCV 2021)—— 因子化策略系统研究
Google Research 的 Arnab 等人系统研究了 4 种时空注意力因子化策略:全注意力、因子化编码器(空间 Transformer 提取帧特征 → 时间 Transformer 聚合)、因子化自注意力(空间和时间注意力交替)、Token 嵌入分离。结论是因子化策略在精度和效率之间提供了最优 trade-off。
Video Swin Transformer(CVPR 2022)—— 局部归纳偏置
MSRA 的 Liu 等人将 Swin Transformer 的移位窗口机制扩展到 3D:在 3D 特征图上用不重叠的 3D 窗口做局部注意力,相邻层之间窗口移位以实现跨窗口信息传播。这种设计引入了卷积的局部性归纳偏置,同时保持了注意力的灵活性。Video Swin 在 Kinetics-400 上达到 84.9%,Kinetics-600 上达到 86.1%。
VideoMAE(NeurIPS 2022)—— 掩码自监督引爆数据效率
VideoMAE 是视频自监督预训练的里程碑。关键发现是:视频信息高度冗余,需要极高的掩码率(90%–95%)才能迫使模型学习有意义的时空表示。VideoMAE 用 tube masking(同一空间位置在所有时间帧上都被遮挡)策略,仅用 3.5K–25K 个无标注视频就能训练出强大的 ViT 骨干。在 Kinetics-400 上,VideoMAE ViT-H 达到 86.4%,仅用 1/20 的数据就接近了监督训练的性能。
VideoMAE V2(CVPR 2023)—— 亿级参数基础模型
VideoMAE V2 将架构扩展到 ViT-giant(1B 参数),引入双掩码策略(joint masking + trajectory masking),在 Kinetics-400 上达到 90.0%,首次突破 90 分大关。这标志着视频自监督预训练正式进入基础模型时代。
UniFormer(ICLR 2022)—— 统一 CNN 与 Transformer
UniFormer 将卷积的局部建模能力和 Transformer 的全局建模能力统一到一个架构中:浅层用局部注意力(类似深度卷积),深层用全局自注意力。这种设计在浅层保持高效的同时在深层获得全局感受野,在 Something-Something V2(一个高度依赖时序推理的数据集)上表现尤其突出。
| 论文 | 年份 | Venue | 核心贡献 | K400 精度 |
|---|---|---|---|---|
| TimeSformer | 2021 | ICML | 纯时空注意力,divided attention | 78.0% |
| ViViT | 2021 | ICCV | 4 种因子化注意力策略 | 82.1% |
| MViT V2 | 2021 | arXiv | 多尺度池化注意力 | 84.4% |
| Video Swin | 2022 | CVPR | 3D 移位窗口,局部归纳偏置 | 84.9% |
| UniFormer V1 | 2022 | ICLR | CNN+Transformer 统一架构 | 82.9% |
| VideoMAE | 2022 | NeurIPS | 90% 掩码率自监督 | 86.4% |
| VideoMAE V2 | 2023 | CVPR | 双掩码 + 亿级参数 | 90.0% |
与 RGB 视频路线平行,骨架动作识别是一个独立的研究分支。它从姿态估计(Pose Estimation)获取人体关节点坐标序列,然后建模这个序列中的动作模式。优势是对光照、背景、衣着变化鲁棒;劣势是依赖前置的姿态估计质量。
ST-GCN(AAAI 2018)—— 时空图卷积开山
Yan 等人将人体骨架建模为时空图(Spatio-Temporal Graph):空间维度上,关节点通过人体物理连接构成图结构;时间维度上,同一关节点在不同帧之间连接。在这个图上做图卷积(GCN)就能同时在空间拓扑和时间序列上传播信息。ST-GCN 在 NTU-RGB+D 上达到 81.5%(top-1),开启了骨架动作识别的 GCN 路线。
2s-AGCN(CVPR 2019)—— 自适应图 + 双流
Shi 等人提出了两项改进:①自适应图结构——不再依赖固定的物理连接拓扑,而是让网络自己学习关节点之间的关系;②双流策略——除了关节坐标流(Joint),还加入骨骼向量流(Bone,从一个关节指向另一个关节的向量),两个流的结果融合后精度大幅提升。
CTR-GCN(ICCV 2021)—— 多尺度时空相关
CTR-GCN 用三种不同的通道拓扑细化模块分别建模空间、时间、时空三个维度,再用通道相关性增强特征表达。NTU-RGB+D 60 上达到 92.4%。
PoseConv3D(CVPR 2022)—— 从 GCN 到 CNN
PoseConv3D 做了一个有趣的范式转换:不再用图卷积,而是将骨架序列转化为3D 热力图堆叠(3D heatmap volume),然后用 3D CNN(如 SlowFast)处理。这个方法在时空动作检测(AVA-Kinetics)上大幅超越 GCN 方法,说明 CNN 对密集时空特征的建模能力可能比图卷积更强。
| 论文 | 年份 | Venue | 核心贡献 |
|---|---|---|---|
| ST-GCN | 2018 | AAAI | 时空图卷积骨架识别开山 |
| 2s-AGCN | 2019 | CVPR | 自适应图 + 关节/骨骼双流 |
| MS-AAGCN | 2020 | TIP | 多流注意力增强 |
| CTR-GCN | 2021 | ICCV | 多尺度时空相关 |
| PoseConv3D | 2022 | CVPR | 3D 热力图堆叠 + 3D CNN |
2022 年以来,动作识别领域出现了明显的范式转移:从设计更好的任务专用架构,转向构建通用的视频基础模型。代表就是 OpenGVLab(上海 AI 实验室)的 InternVideo 系列。
InternVideo(2022)—— 统一掩码 + 对比学习
InternVideo 将 VideoMAE 风格的掩码视频学习和视频-语言对比学习统一到一个框架中,用 230M 视频-文本对训练出通用视频表示。InternVideo 不仅可以做动作识别,还可以做视频问答、视频描述和跨模态检索。
InternVideo2 / 2.5 / 3(2024–2026)
InternVideo2(ECCV 2024)引入了更大的视觉编码器和更强的视频-语言对齐;InternVideo2.5(2025.01)开源了从 S 到 78B 的完整模型族;InternVideo3(2026.06)是当前最新版本,含 8B instruct 模型。这些模型在 EgoSchema、MVBench 等视频理解 benchmark 上持续刷新纪录。
VideoMamba(ICML 2024)—— 线性复杂度
VideoMamba 用状态空间模型(State Space Model, Mamba)替代 Transformer 的自注意力,将计算复杂度从 $O(N^2)$ 降低到 $O(N)$。对于长视频(几百帧),这意味着巨大的计算节省,同时保持了与 VideoMAE 相当的精度。
| 论文 | 年份 | Venue | 核心贡献 |
|---|---|---|---|
| ActionCLIP | 2021 | NeurIPS | 用 CLIP 风格视觉-语言对齐做动作识别 |
| InternVideo | 2022 | arXiv | 统一掩码视频 + 视频-语言对比学习 |
| VideoMAE V2 | 2023 | CVPR | 亿级参数 + 双掩码自监督 |
| InternVideo2 | 2024 | ECCV | 多模态视频基础模型 |
| VideoMamba | 2024 | ICML | 状态空间模型,线性复杂度 |
| VideoMamba++ | 2025 | IVC | SSM + 双注意力,patching 前空间建模增强 |
| Video-STAR | 2025 | OpenReview | 开放词汇动作识别 + 工具增强强化学习 |
| InternVideo3 | 2026 | — | 当前最新视频基础模型;8B instruct + 多模态上下文推理 |
有了方法论的地图,接下来看工程上有哪些现成的工具可以直接用。动作识别的框架生态可以用一个核心观察来概括:专用框架的增长已接近停滞,而视频基础模型(InternVideo 系列)代表了真正的活跃前沿。
MMAction2(OpenMMLab)—— 生态最完整的首选
MMAction2 是当前唯一仍然"基本活着"的专用动作识别框架。基于 OpenMMLab 2.0 体系(PyTorch + MMCV + MMEngine),支持 5 大任务(Action Recognition / Localization / Spatio-Temporal Detection / Skeleton-based Detection / Video Retrieval)、27+ 算法、20+ 数据集。
它的核心优势是生态闭环:骨架识别可以用 MMPose(HRNet)做姿态估计,再喂给 MMAction2(PoseConv3D/GCN)做分类;部署可以用 MMDeploy 统一导出到 TensorRT / ONNX Runtime / ncnn / CoreML。这种闭环在动作识别领域是独一无二的。
安装 MMAction2
推荐用 mim 安装 OpenMMLab 全家桶:
pip install -U openmim
mim install mmengine mmcv mmaction2
# 可选(骨架识别需要)
mim install mmpose mmdet
PySlowFast(FAIR)—— SOTA 复现工具
PySlowFast 是 Facebook Research 出品的视频分类研究代码库,包含 SlowFast、X3D、MViT 等系列模型的实现。它的特点是代码质量高、文档完善(配套 ICCV 2019 Tutorial),特别适合复现 FAIR 论文的实验结果。
但需要注意:PySlowFast 主线 features 停在 2022 年底(MaskFeat、MViTv2、Rev-ViT),2023 年后没有新 backbone。FAIR 的视频研究重心已转向 SAMv2、DINOv2 等图像/分割基础模型。PySlowFast 仍然是好用的 baseline 工具,但不是新算法的首选实现平台。
PyTorchVideo(FAIR)—— 推理优先的组件库
PyTorchVideo 不是完整的训练框架,而是模块化的组件库。它最大的价值是可以通过 torch.hub 一行代码加载预训练模型:
model = torch.hub.load('facebookresearch/pytorchvideo', 'slowfast_r50', pretrained=True)
适合只需要做推理而不需要训练的场景。自 2021-08 后无重大更新。
InternVideo(OpenGVLab)—— 当下最前沿
如果你的目标不是做传统 benchmark,而是开放词汇动作识别(Open-Vocabulary Action Recognition)或视频问答,InternVideo 系列(InternVideo → InternVideo2 → 2.5 → 3)是 2024–2026 的真正前沿。它们不是"动作识别专用框架",而是覆盖视频理解全谱的基础模型。
MoViNet(Google / TensorFlow)—— 移动端流式
MoViNet 是 Google 专为流式视频设计的轻量模型族(A0–A5),使用因果卷积(Causal Convolution)+ 流缓冲(Stream Buffer)实现逐帧推理,内存极低。原生支持 TFLite 导出,适合 Android / iOS / 嵌入式设备。
部署工具链
训练完成后如何部署到生产环境?以下是主要工具链:
| 工具 | 适用场景 | 后端 |
|---|---|---|
| MMDeploy | OpenMMLab 体系统一部署 | TensorRT / ONNX Runtime / ncnn / CoreML / OpenVINO |
| TensorRT | NVIDIA GPU / Jetson | FP16/INT8 量化 |
| ONNX Runtime | 跨平台 CPU/GPU | 通用推理 |
| ncnn / MNN | 移动端 ARM | Android / iOS 嵌入式 |
| TFLite | TF 生态移动端 | Android / iOS / Raspberry Pi |
| OpenVINO | Intel 硬件 | CPU / GPU / VPU |
| 数据集 | 规模 | 任务 | 备注 |
|---|---|---|---|
| Kinetics-400 | 240k 视频 / 400 类 | 行为识别 | 标配 benchmark,覆盖日常动作 |
| Kinetics-600/700 | 370k / 650k | 行为识别 | 更大规模,K700 训练成本高 |
| UCF-101 | 13k / 101 类 | 行为识别 | 入门首选,训练快 |
| HMDB-51 | 5k / 51 类 | 行为识别 | 入门首选,与 UCF 互补 |
| Something-Something V2 | 220k / 174 类 | 时序推理 | 与 Kinetics 互补,强依赖时序理解 |
| AVA | 430 类 × 80h | 时空动作检测 | 每人每时刻标注,与 SlowFast 强绑定 |
| NTU-RGB+D / 120 | 56k / 114k | 骨架动作识别 | skeleton 标配,含 3D 关节点 |
| ActivityNet | 20k / 200 类 | 时序动作定位 | 未剪辑视频 |
本篇建立了动作识别领域的完整认知地图。如果你要记住一件事,那就是:动作识别的技术演进主线是"如何更高效地建模时序"——从 2D CNN 时代的双流+稀疏采样,到 3D CNN 时代的时空联合卷积,到 Video Transformer 时代的自注意力,再到当下的视频基础模型。每一代都在解决上一代的核心痛点(计算效率、数据效率、泛化能力),而工具链也在从专用框架(MMAction2)向基础模型(InternVideo)演进。
后续文章将逐步展开每条路线的深度分析,包括 VideoMAE 自监督机制详解、SlowFast 双速通道设计、ST-GCN 图卷积原理、MMAction2 源码解读等。
参考来源
- Simonyan & Zisserman, "Two-Stream Convolutional Networks for Action Recognition in Videos," NeurIPS 2014.
- Wang et al., "Temporal Segment Networks: Towards Good Practices for Deep Action Recognition," TPAMI 2016.
- Tran et al., "Learning Spatiotemporal Features with 3D Convolutional Networks," ICCV 2015.
- Carreira & Zisserman, "Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset," CVPR 2017.
- Feichtenhofer et al., "SlowFast Networks for Video Recognition," ICCV 2019. arXiv:1812.03982 · 精读 →
- Feichtenhofer, "X3D: Expanding Architectures for Efficient Video Recognition," CVPR 2020. arXiv:2004.04730
- Lin et al., "TSM: Temporal Shift Module for Efficient Video Understanding," ICCV 2019. arXiv:1811.08383
- Bertasius et al., "Is Space-Time Attention All You Need for Video Understanding?" ICML 2021. arXiv:2102.05095
- Arnab et al., "ViViT: A Video Vision Transformer," ICCV 2021. arXiv:2103.15691
- Liu et al., "Video Swin Transformer," CVPR 2022. arXiv:2106.13230
- Tong et al., "VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training," NeurIPS 2022. arXiv:2203.12602
- Wang et al., "VideoMAE V2: Scaling Video Masked Autoencoders with Dual Masking," CVPR 2023. arXiv:2303.16727
- Yan et al., "Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition," AAAI 2018. arXiv:1801.07455
- Shi et al., "Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition," CVPR 2019. arXiv:1805.07694
- Chen et al., "Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition," ICCV 2021.
- Duan et al., "Revisiting Skeleton-based Action Recognition," CVPR 2022. arXiv:2104.13586
- Li et al., "UniFormer: Unified Transformer for Efficient Spatiotemporal Representation Learning," ICLR 2022. arXiv:2201.09450
- Wang et al., "InternVideo: General Video Foundation Models via Generative and Discriminative Learning," arXiv:2212.03191
- Li et al., "VideoMamba: State Space Model for Efficient Video Understanding," ICML 2024. arXiv:2403.06977
- Accetola et al., "A Comprehensive Study of Deep Video Action Recognition," arXiv:2012.06567
- Nasir et al., "Vision Transformers for Action Recognition: A Survey," arXiv:2209.05700