Two-Stream 双流网络、I3D
一、双流网络
- 论文:《Two-Stream Convolutional Networks for Action Recognition in Videos》(用于动作识别的双流卷积神经网络)
- 参考:李沐 《双流网络论文逐段精读》
1.1 前言
1. 为什么要做视频?
- 视频包含更多信息:比如时序信息、声音&图像等多模态信息,而且是连续信息而非静止的图像。
- 论文引言提到,视频天生能提供一个很好的数据增强,因为同一个物体在视频中会经历各种形变、光照变换、遮挡等等,非常丰富而又自然,远比生硬的去做数据增强好得多
- 视频处理是未来突破的方向:目前计算机视觉领域,很多研究热衷于在 ImageNet 等几个榜单刷分,往往训练了很大的模型,使用很多的策略,也只能提高一点点,类似深度学习出现以前,CV 领域中机器学习的现状,已经达到了一个瓶颈期。要想突破必须有新的网络结构,指标之一就是要能很好地处理视频数据。
本文是做视频分类的,为啥论文题目是动作识别呢?
- 包含人类动作的视频更容易收集,直到现在,大部分的视频分类还是做动作识 别
- 动作识别非常实际意义,对 VR、视频检索等等很多工作都有帮助
2. 双流网络:视频领域开山之作
在这篇文章出现之前,用深度学习来处理视频主要有两种方式:
- CNN+LSTM:即 CNN 抽取关键帧特征,LSTM 进行时序建模
具体来说,就是先抽取视频中的关键帧得到 K 张图,然后将这 K 张图输入 CNN 网络得到图片特征。再将这些特征全部输入 LSTM 网络,进行各个时间戳上图片特征的融合,得到整个视频的融合特征。最后将 LSTM 最终时刻的特征接一个 FC 层得到分类结果。 - 3D 网络:将视频帧(分割好的一个个的视频段,每段含有 K 张图片)直接输入 3D 的 CNN 网络进行时空学习
此时卷积核必须是 3 维的(比如每个卷积核都是 3×3×3,加入了时间维度),网络不光学习空间信息,还需要学习时序信息(运动信息)。最后 3D Conv 输出的特征也是接一个全连接层得到分类结果。因为多了一个维度,模型的参数量很大,不太好训练,而且效果也不好。
这两种方式的效果都还不如手工设计的特征。双流网络是第一个能让深度学习网络效果媲美手工设计特征的视频分类结构,从此之后,深度学习在视频领域开始占据主流。

3D 网络做视频处理的代表工作是 2014 年的 DeepVideo,把当时能够魔改的 CNN 结构都在动作识别上试了一遍,实验做的很多。作者为了做出好的效果,还收集了一个很大的数据集:
Sports-1M