视频理解学习笔记(四)

  • 3D CNN
  • C3D
  • I3D
  • Non-local算子 (Self-attention替换掉LSTM)
  • R (2 + 1) D
  • SlowFast
  • Video Transformer
  • TimeSformer
  • 总结
  • Reference


3D CNN

双流的缺点:光流抽取太慢——tvl one算法,0.06s抽取一个光流帧;消耗空间
3D Conv:同时学习空间和时间信息

C3D

论文地址:Learning Spatiotemporal Features with 3D Convolutional Networks_ICCV’15 from FAIR and Dartmouth College

用3D网络来学习时空特征。A simple, yet efficient approach for spatiotemporal feature learning using deep 3-dimensional convolutional networks (3D ConvNets) trained on a large scale supervised video dataset (sports 1M).

不是第一个用3D卷积做视频理解,但是第一个用大规模数据集和更深的网络,达到了比较好的效果。

CSD是指fc6抽取出来的特征,叫做C3D特征。作者给出了现成的实现,给定视频,可以直接返回1 * 4096的C3D特征。

2dcnn和3dcnn的输出维数 3dcnn缺点_人工智能

和DeepVideo的区别:直接用3D卷积来处理视频

实验:

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_02

I3D

论文概览_CVPR’17

降低了网络训练的难度(如何从2D网络inflate成3D网络,如何利用预训练好的2D模型初始化3D模型bootstrap),提出了Kinetics-400数据集

I3D和C3D的区别:虽然两者都是用3D卷积做处理,但是C3D仅仅是在参考2D模型做3D设计,没办法将2D的模型迁移到3D;而I3D本质上是一个迁移学习,将2D模型和参数inflate到3D,从而实现3D卷积。

实验:

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_03

  • 证明了2D迁移到3D的有效性。

Non-local算子 (Self-attention替换掉LSTM)

论文地址:Non-local Neural Networks_IEEE’18 by Xiaolong Wang, Ross Girshick, Abhinav Gupta, Kaiming He from CMU and FAIR
Non-local是一个可以即插即用(plug and play)的模块(building block),用来建模长距离信息。

Non-local算子:

2dcnn和3dcnn的输出维数 3dcnn缺点_视频理解_04


其实就是将自注意力(self-attention)模块从2D转化(膨胀,inflate)成了3D。消融实验

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_05


点积最好(transformer本来就用的点积)

2dcnn和3dcnn的输出维数 3dcnn缺点_人工智能_06


2dcnn和3dcnn的输出维数 3dcnn缺点_3D_07上加的效果最差:可能是因为该层特征图已经很小了,空间信息不充分。

考虑到non-local算子的开销,作者只在2dcnn和3dcnn的输出维数 3dcnn缺点_视频理解_082dcnn和3dcnn的输出维数 3dcnn缺点_计算机视觉_09上应用了non-local算子。

2dcnn和3dcnn的输出维数 3dcnn缺点_人工智能_10


说明non-local算子确实有用。10-block:resnet的结构是3、4、6、3,只在2dcnn和3dcnn的输出维数 3dcnn缺点_视频理解_082dcnn和3dcnn的输出维数 3dcnn缺点_计算机视觉_09加non-local算子。

2dcnn和3dcnn的输出维数 3dcnn缺点_2dcnn和3dcnn的输出维数_13


证明【时】【空】注意力是有效的(因为transformer本身是融合空间信息)。

2dcnn和3dcnn的输出维数 3dcnn缺点_计算机视觉_14


证明non-local在长时序建模上是有效的。和其他模型对比:

2dcnn和3dcnn的输出维数 3dcnn缺点_人工智能_15

R (2 + 1) D

实验性论文,研究时空卷积到底怎么做比较好。

出发点:对视频用2D卷积一帧一帧抽取特征的效果也很好,而3D卷积计算昂贵,能否使用2D卷积代替部分3D卷积。

  • 先2D再3D
  • 先3D再2D
  • ……

结论:拆分成空间上的2D + 时间上的1D

论文地址:A Closer Look at Spatiotemporal Convolutions for Action Recognition_CVPR’18 from Facebook Research and Dartmouth College

方法:

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_16


2dcnn和3dcnn的输出维数 3dcnn缺点_2dcnn和3dcnn的输出维数_17


模型确实更容易训练了:

2dcnn和3dcnn的输出维数 3dcnn缺点_计算机视觉_18

结果对比:

2dcnn和3dcnn的输出维数 3dcnn缺点_计算机视觉_19


R (2 + 1) D的结果不比I3D好。主要亮点在于参数大大减少,训练速度更快。输入是112 * 112,对显存友好。

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_20

SlowFast

论文地址:SlowFast Networks for Video Recognition_ICCV’19 by Christoph Feichtenhofer, Haoqi Fan, Jitendra Malik and Kaiming He from FAIR

启发:人的视觉系统中有两种细胞,一种叫P细胞,一种叫M细胞。其中P细胞占据80%,主要负责处理静态图像;M细胞负责处理高频运动信息。和双流系统类似。将以上内容借鉴到3D网络上。

方法:

  • 慢分支(Slow Pathway):隔得比较远抽帧,且该分支网络较大(标准的I3D网络)。
  • 快分支(Fast Pathway):隔得比较近抽帧,且该分支网络较小。
  • 最后将两个分支的信息融合起来。


    实验结果:

    精度高,推理高效,但训练时间依旧很长。

Video Transformer

TimeSformer

第一篇将ViT从图像迁移到视频的实验性paper,能处理超过1min的视频。
Is Space-Time Attention All You Need for Video Understanding_ICML’21 from FAIR and Dartmouth College.

方法:

2dcnn和3dcnn的输出维数 3dcnn缺点_视频理解_21


上述方法的可视化理解:

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_22


实验结果:

2dcnn和3dcnn的输出维数 3dcnn缺点_3D_23

总结

2dcnn和3dcnn的输出维数 3dcnn缺点_2dcnn和3dcnn的输出维数_24

  • Beyond Short Snippets:LSTM
  • TDD:按照光流轨迹去做叠加
  • TSN:把长视频分成短的clip
  • I3D:Inflate和K400