C3D 首次将 3D 卷积成功应用于视频理解,通过时空三维卷积核同时捕捉空间外观和时序运动特征。
核心原理
3D 卷积数学表达:
$$O(t,x,y) = \sum_{i,j,k} W(i,j,k) \cdot V(t+i, x+j, y+k) + b$$
与 2D 卷积的关键区别:时间维度 $k_t$ 的滑动。
网络架构
| |
训练配置
| 超参数 | 设置 |
|---|---|
| 帧采样 | 均匀采样 16 帧 |
| 空间裁剪 | 112×112 |
| 优化器 | SGD + Momentum(0.9) |
| 学习率 | 0.003,每 150k 迭代 ×0.1 |
性能对比
| Model | UCF101 Top-1 | 参数量 | FLOPs |
|---|---|---|---|
| C3D | 82.3% | 78M | 38.5G |
| 2D-CNN+LSTM | 76.4% | 65M | 29.7G |
| IDT | 85.9% | - | - |
应用
| |
局限与改进
局限:
- 16 帧限制难以建模长时序
- 3D 卷积高显存占用
改进方案:
- P3D:分解为 2D 空间 + 1D 时间卷积
- SlowFast:双路径分别处理空间和运动信息,计算量减少 40%
最佳实践
- 轻量场景:C3D 基础版
- 高性能需求:SlowFast/R(2+1)D
- 长视频理解:结合 Transformer(TimeSformer)
代码:https://github.com/facebookresearch/C3D
张芷铭的个人博客
Comments