文章地址:《Temporal Pyramid Network for Action Recognition》
代码地址:https://github.com/decisionforce/TPN
该文章发表于CVPR2020。文章认为在动作识别领域,视觉速度(visual tempo)是很重要的信息。现有网络主要是通过控制采样不同的输入来完成visual tempo信息的提取,但是这样做会导致需要多入输入来实现。
文章提出在feature层面来处理visual tempo信息,文章提出的结构不管是对于2D还是对于3D的backbone来说都可以做到即插即用。
下图展示了类内(intra class)和类间(inter class)之间的visual tempo差异。
1.png一、网络结构
文章的网络结构如下图所示:
2.png可以看出网络由backbone、spatial modulation、temporal modulation、information flow、final prediction这几个模块组成。
文章将提出的结构划分为两部分,一部分称为the feature source,顾名思义是feature的提取方法,该部分由spatial modulation、temporal modulation组成,另一部分称为the feature aggregation,表示feature的融合方法,该部分由information flow组成。
1.1 Feature Source of TPN
1.1.1 features的获取
当一段序列帧输入网络后,经过backbone可以得到许多features,TPN目的是为了更好的获取visual tempo,那么对于TPN获取多种时序维度特征作为输入可以通过如下两种方式:
- single-depth pyramid:该方式是一种简单的获取不同时序信息的方式。首先选择backbone输出的某个feature,记为,该feature的维度为,然后在时序维度进行不同的采样率的采样操作,这样就可以获得在时序上不同维度的features,,它们的维度分别为。但是这种操作得到的features,在空间维度时粗粒度的,可能效果不是很好。
- multi-depth pyramid:该方式通过利用backbone不同stage提取得到的features作为输入,这样就可以获得更丰富的空间维度的语义信息,本文选择这种方式。但是这种方式需要一些方法更好的处理features之间的融合。
1.1.2 spatial semantic modulation
为了对齐multi-depth pyramid方式获取的features,文章采用spatial semantic modulation。该模块其实就是将输入不同空间维度的features通过一系列堆叠的conv来获得与最顶层的相同空间维度的features。举例说明,加入backbone为resnet,输入的features为stage4和stage5的特征输出,即一个是空间维度相对输入缩小16倍的features,一个是空间维度相对输入缩小32倍的features,这两种features经过spatial semantic modulation后,空间维度都变为相对输入缩小32倍的features。
还有一点值得注意的是,在训练网络时,backbone中输入给spatial semantic modulation的那些features还会传给分类头来计算loss。例如上面例子中stage4和stage5的features输出会用于分类loss的计算。
1.1.3 Temporal Rate Modulation
该模块对于不同层的输入features采用不同的时序采样率的采样来获取visual tempo信息。(其实就是一个卷积层加上一个时序的pooling层)
1.2 Information Flow of TPN
上面backbone不同stage输出的features经过spatial modulation获取相同空间大小的features后有经过temporal modulation获取不同时间维度的features,最后是将输出的features进行信息融合。
融合特征方式有如下三种常见方法:
上式中表示element-wise addition, 是为了将特征能相加而引入的时间维度的down/up-sampling操作,其中F为特征,为用于时间维度的参数。
将上述的操作结合起来,可以获得cascade flow和parallel flow这两种聚合方式,一种是bottom-up flow后接一个top-down flow即为cascade flow,另一种是同时应用top-down和bottom-up即为parallel flow。
top-down、bottom-up、cascade、parallel的操作方式如下图所示:
4.pngtips: 代码采用的是parallel方式
1.3 Implementation
文章采用resnet为基础改造的网络,网络结构如下图所示:
3.pngbackbone中的res2,res3,res4,res5用于构建TPN。
在spatial semantic modulation中,对于M-level的特征的输入(这里为5),i-level的features采用stride为M-i的堆叠的conv处理(统一空间大小),并且输出的feature通道数为1024。
在temporal rate modulation中,每个feature都经过一个卷积和一个max-pooling层获得不同时序的feature。
最后利用information flow将各个feature聚合并送入全连接进行分类。
二、loss
loss采用的是交叉熵,但是与其他文章不太一样的是,1.1.2提到的,backbone输出的一些feature会参与loss计算。
所以loss为:
为最终输出的交叉熵loss,为backbone不同i-level输出feature接auxiliray head后计算的交叉熵loss。为平衡参数。
其他具体的参数和实验结果详情可以看原文和代码。
网友评论