目录
前言
论文地址:https://arxiv.org/abs/2012.10071
代码地址:https://github.com/MCG-NJU/TDN
时间建模
时间建模对于捕捉视频中的运动信息进行动作识别至关重要,在当前的深度学习方法中,这通常通过两种机制来实现:
- 一种常见的方法是使用双流网络
- 另一种替代方法是使用3D卷积或时间卷积来隐式地从RGB帧中学习运动特征。
双流网络
- 其中一个流在RGB帧上提取外观信息
- 另一个流利用光流作为输入来捕获运动信息。
- 需要较高的计算复杂度
3D卷积
- 通常缺乏时间维度的具体考虑
- 更高的计算成本 (网络参数复杂)
为了探索高效的temporal modeling方式,这篇文章提出了一种三维卷积的替代方案,通过将时间差异的思想推广到一个有原则和高效的端到端网络设计的时间模块中,提出一个统一的框架Temporal Difference Network(TDN)来联合捕获外观和运动信息,提取多尺寸的时间信息。
TDN
TDN 是一个 Two-level 的结构,其主要包含短时和长时两个模块:
- Short-term temporal difference module(S-TDM)
- Long-term temporal difference module(L-TDM)
TDN模型图
TDN主要是通过ResNet实现的,结构上也比较类似于TSN[1]。
ResNet
ResNet的主要思想是在网络中增加了直连通道。此前的网络结构是性能输入做一个非线性变换,而Highway Network则允许保留之前网络层的一定比例的输出。ResNet的思想和Highway Network的思想也非常类似,允许原始输入信息直接传到后面的层中。这样的话这一层的神经网络可以不用学习整个的输出,而是学习上一个网络输出的残差,因此ResNet又叫做残差网络。这里只做简单介绍,具体的大家可以去网上查阅,深入了解。
TDN框架图中显示的多个网络实际都是一套网络参数。图中的stage1~stage5是残差网络的5个阶段,还需要注意的是TDN网络图中的block不是单纯的long-sterm模块,而是以long-sterm模块为核心的residual模块(类似于在原始的resnet里面插入一个L-sterm TDM)。
short-term TDM
TDM全名为 temporal difference module,可以知道TDM模块里存在一些差值的计算,而short-term指的就是短时间内局部信息的差值。设计的原因是作者认为在一个很小的local temporal window中相邻的帧都非常类似,直接叠加这些信息并提取特征是不明智的。另一方面,从segment中提取信息虽然能够有效提取appearance信息,但不能提取局部运动信息。所以,需要使用S-TDM以及相邻帧temporal difference来增强信息。
(这里的short-sterm TDM框架图和之前的总的TDN模型图有些不同,TDN框架图里面的S-TDM实际上是short-sterm TDM图中去除conv1后的其余部分结构)
对于给定的一个视频V来说,每个视频V被分成等持续时间的T段,没有重叠。 然后在等分的子视频中随机抽取一帧图像,共得到T帧图像,表示为:
表示抽取出来的一帧图像,这里I的维度为 。
输入到2D CNN中提取特征,得到:
F表示获取到的特征,维度为。
short-term TDM用公式表示如下:
表示short-term TDM的输出,H表示的是short-term TDM的核心部分,用公式表示如下:
上式中 为以采样图片帧为中心局部抽取帧之间的帧差结果。
公式的理解:为了降低计算量,对于输入的 ,首先对它做一个空间上的下采样( Downsample ,就是图中的AvgPool),用一层卷积去提去其中的动作信息,然后做一个空间上的上采样(Upsample),使得Difference 流的空间尺度和 RGB 流对齐,这样之后就可以通过一个非常简单的 add 操作将具有运动信息的 Difference 流补充到 RGB 的 Backbone 中,得到。
long-term TDM
long-sterm TDM的输入为short-sterm TDM的输出,下面用 表示。
这部分的具体公式如下:
上式中⊙表示点乘。(虽然公式看着比较复杂,但是对照着上面的模型图仔细对照的话,还是容易理解的,就不过多讲述。只讲一下为什么conv1输出了不同的,,这里可以理解为经过conv1输出的feature在T维度向前移和向后移了一个单位。这也是TDM的表示所在,文章认为这样做可以获取全局的motion feature信息。)
long-sterm TDM总结:
配备有S-TDM的帧方式表示对于捕获局部段(窗口)内的时空信息是强大的。 然而,这种表征在时间感受野方面是有限的,未能探索学习动作模型的长时时间结构。 因此,文章参考 TEINet 的形式提出 long-sterm TDM,设计了一种基于 feature-difference 的通道 attention 增强方法,实现对段间的运动变化信息进行增强,去放大运动增强。同时,为了提升最后的效果,文章还增加了一种新颖的双向和多尺度时间差分模块。
Ablation studies
此外,作者还做了很多的研究来证明模型的有效性、合理性。
Study on S-TDM Study on L-TDM
实验结果
在Something-Something V1上,TDN与其他方法在计算量和精度上的对比:
在Something-Something V1和V2数据集上,TDN与其他方法的比较:
(Something-Something V1)
(Something-Something V2)
在Something-Something V1和V2 这种对时序运动信息敏感的数据集上,TDN明显超出了之前的所有方法,证明了通过 Difference 操作确实可以提取出时序上精细的运动信息。
在Kinetics-400数据集上,TDN与其他方法进行比较:
由于Kinetics是一种 scene-based 的数据集,所以时序上运动信息的变化不如 Something-Something 敏感和重要。但是在计算量较低的条件下,TDN 仍能取得了非常有竞争力的效果。
总结
针对视频数据在时序上的动态特性,文章提出了一种高效的时序差分网络(Temporal Difference Network, TDN),通过 Difference 这种简单的操作,去显式得提取出视频中复杂精细的运动变化,捕获视频中的短期和长期时间信息,在不增加过多的计算量的前提下去更高效得进行时序建模,并且通过实验在各个数据集上证明了 TDN 效果。
参考资料:
[1]https://blog.csdn.net/liuxiaoheng1992/article/details/114435192
[2]https://zhuanlan.zhihu.com/p/344340943
[3] Limin Wang, Yuanjun Xiong, Zhe Wang, Yu Qiao, DahuaLin, Xiaoou Tang, and Luc Van Gool. Temporal segment networks: Towards good practices for deep action recogni_x0002_tion. In ECCV, pages 20–36, 2016. 1, 2, 3, 5, 7, 8, 9
[4]https://blog.csdn.net/u013181595/article/details/80990930
[5]https://blog.csdn.net/hgnuxc_1993/article/details/115970533