ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《TDN: Temporal Difference Networks for Efficient Action Recognition》论文详解

2021-03-07 23:02:39  阅读:424  来源: 互联网

标签:term short TDN TDM Efficient Temporal long sterm Fi


论文地址:https://arxiv.org/abs/2012.10071
代码地址:https://github.com/MCG-NJU/TDN

该文章在2020年12月份发表于arxiv,文章提出了short-term TDM和long-sterm TDM模块来高效的获取local motion信息和global motion信息。从而在速度和精度上都取得了较好的成绩。

一、网络结构

网络结构如下图所示,从图中可以看出大体的框架类似于TSN模型(实际从代码上来说用的也是TSN的框架),虽然图中在short term和long term画了多个网络,实际上这都是一个网络,类似于TSN文章中的网络结构图。
在这里插入图片描述

为了更好的说明网络的工作原理,我们先来看一下图中,也是本文的创新点,short-term TDM和long-term TDM两种模块的结果和工作原理。

1.1 short-term TDM

TDM全名为 temporal difference module,可以知道TDM模块里存在一些差值的计算,而short-term指的就是短时间内局部信息的差值。举例说明,对于给定的一个视频V来说,首先类似TSN的处理方式,将视频等时长的分为T份。然后在等分的子视频中随机抽取一帧图像,那么视频V就可以输出T帧图像,用符号表示为 I = [ I 1 , I 2 , . . . , I T ] I = [I_1, I_2, ..., I_T] I=[I1​,I2​,...,IT​], I i I_i Ii​表示抽取出来的一帧图像,这里I的维度为[T, C, H, W]。接着获取的帧输入到2D CNN中提取特征,得到 F = [ F 1 , . . . , F T ] F=[F_1, ..., F_T] F=[F1​,...,FT​], F表示获取到的特征,维度为 [ T , C ′ , H ′ , W ′ ] [T, C', H', W'] [T,C′,H′,W′]。上述2DCNN就是接下来要解释的short-term TDM的一部分,short-term TDM是为了更好的来表示local motion而设计的。(这里框架图和short-sterm TDM图有一点点不太一样,框架图里面的S-TDM实际上是short-sterm TDM图中去除conv1后的其余部分结构,但是不影响理解。)

short-term TDM用公式表示如下:
F ^ i = F i + H ( I i ) \hat{F}_i = F_i + H(I_i) F^i​=Fi​+H(Ii​)
F ^ i \hat{F}_i F^i​表示short-term TDM的输出,H表示的是short-term TDM的核心部分。

H用公式表示如下:
H ( I i ) = U p s a m p l e ( C N N ( D o w n s a m p l e ( D ( I i ) ) ) ) H(I_i)=Upsample(CNN(Downsample(D(I_i)))) H(Ii​)=Upsample(CNN(Downsample(D(Ii​))))
上式中 D ( I i ) = [ D − 2 , D − 1 , D 1 , D 2 ] D(I_i) = [D_{-2}, D_{-1}, D_{1}, D_{2}] D(Ii​)=[D−2​,D−1​,D1​,D2​]为以采样图片帧 I i I_i Ii​为中心局部抽取帧之间的帧差结果。

short-term TDM的示例图如下所示:
在这里插入图片描述

可以从图片看出,在抽取出 I = [ I 1 , I 2 , . . . , I T ] I = [I_1, I_2, ..., I_T] I=[I1​,I2​,...,IT​]图像后,short-term TDM会先根据抽取的图像帧,从他们周围在多抽取几帧,其中 I i I_i Ii​帧为中心且直接输入到conv中提取出特征 F i F_i Fi​,其余的周围的帧和 I i I_i Ii​帧一起互相做差值,然后经过一些resnet中提出的res层和上采样下采样融合出short-term TDM的输出特征。文章表示这样输出的特征能比较好的获取局部的motion特征,然后将得到的short-term TDM特征作为long-term TDM的输入。

1.2 long-sterm TDM

long-sterm TDM的输入为short-sterm TDM的输出,下面用 F i F_i Fi​表示。

因为long-sterm TDM结构有点复杂,用公式表示会多比short-sterm TDM多一点,如下所示:
F ^ i = F i + F i ⊙ G ( F i , F i + 1 ) \hat{F}_i=F_i + F_i \odot \mathcal{G}(F_i, F_{i+1}) F^i​=Fi​+Fi​⊙G(Fi​,Fi+1​)
G ( F i , F i + 1 ) = 1 2 [ M ( F i , F i + 1 ) + M ( F i + 1 , F i ) ] \mathcal{G}(F_i, F_{i+1}) = \frac{1}{2}[M(F_i, F_{i+1})+M(F_{i+1}, F_i)] G(Fi​,Fi+1​)=21​[M(Fi​,Fi+1​)+M(Fi+1​,Fi​)]
M ( F i , F i + 1 ) = S i g m d ( C o n v ( ∑ i n C N N j ( C ( F i , F i + 1 ) ) ) ) M(F_i, F_{i+1}) = Sigmd(Conv(\sum^{n}_{i}CNN_j(C(F_i, F_{i+1})))) M(Fi​,Fi+1​)=Sigmd(Conv(∑in​CNNj​(C(Fi​,Fi+1​))))
C ( F i , F i + 1 ) = F i − C o n v ( F i + 1 ) C(F_i, F_{i+1})=F_i-Conv(F_{i+1}) C(Fi​,Fi+1​)=Fi​−Conv(Fi+1​)
上式中 ⊙ \odot ⊙表示点乘。

公式看起来复杂点,看图会比较好理解,long-sterm TDM如下图所示。因为也是TDM模块,所以也有做差值的操作。
在这里插入图片描述

上图中有个地方需要额外说明一下,就是F经过conv1后得到 F t , F t + 1 F_t, F_{t+1} Ft​,Ft+1​,且通道数变成了C/r。首先通道数变化好理解,就是conv1输出通道数是输入的1/r。为什么conv1输出了不同的 F t , F t + 1 F_t, F_{t+1} Ft​,Ft+1​呢,这里可以理解为经过conv1输出的feature在T维度向前移和向后移了一个单位。这也是TDM的表示所在,文章认为这样做可以获取全局的motion feature信息。

通过了解了提出的两个模块结构后,可以知道网络里类似于TSN一样计算,将一个样本视频提取的多个帧放入batch维度(输入的是NCTHW, 实际计算是 ( N × T ) × C H W (N\times T)\times CHW (N×T)×CHW)。这样实际上上图显示的多个网络实际都是一套网络参数。还需要注意的是TDN网络图中的block不是单纯的long-sterm模块,而是以long-sterm模块为核心的residual模块(类似于在原始的resnet里面插入一个L-sterm TDM)。

到这里基本的创新原理就讲完了,具体的实验方式和实验结果可以查看论文与代码获取更多信息。

标签:term,short,TDN,TDM,Efficient,Temporal,long,sterm,Fi
来源: https://blog.csdn.net/liuxiaoheng1992/article/details/114435192

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有