美文网首页机器学习
《Temporal Pyramid Network for Ac

《Temporal Pyramid Network for Ac

作者: ce0b74704937 | 来源:发表于2021-08-08 22:03 被阅读0次

    文章地址:《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获取多种时序维度特征作为输入可以通过如下两种方式:

    1. single-depth pyramid:该方式是一种简单的获取不同时序信息的方式。首先选择backbone输出的某个feature,记为F_{base},该feature的维度为C\times T\times W\times H,然后在时序维度进行不同的采样率\{r_1,...,r_M;r_1<r_2<...<r_M\}的采样操作,这样就可以获得在时序上不同维度的features,\{F^{(1)}_{base},...,F^{(M)}_{base}\},它们的维度分别为\{C\times\frac{T}{r_1}\times W\times H, ..., C\times\frac{T}{r_M}\times W\times H\}。但是这种操作得到的features,在空间维度时粗粒度的,可能效果不是很好。
    2. 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进行信息融合。

    融合特征方式有如下三种常见方法:

    F'_i = \left \{ \begin{aligned} F_i, Isolation Flow \\ F_i \oplus g(F_{i-1}, T_i/T_{i-1}), Bottom-up Flow, \\ F_i \oplus g(F_{i+1}, T_i/T_{i+1}), Top-down Flow \end{aligned} \right.

    上式中\oplus表示element-wise addition, g(F, \delta)是为了将特征能相加而引入的时间维度的down/up-sampling操作,其中F为特征,\delta为用于时间维度的参数。

    将上述的操作结合起来,可以获得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.png

    tips: 代码采用的是parallel方式

    1.3 Implementation

    文章采用resnet为基础改造的网络,网络结构如下图所示:

    3.png

    backbone中的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为:

    L_{total}=L_{CE,o}+\sum^{M-1}_{i=1}\lambda_i L_{CE,i}

    L_{CE,o}为最终输出的交叉熵loss,L_{CE,i}为backbone不同i-level输出feature接auxiliray head后计算的交叉熵loss。\lambda_i为平衡参数。

    其他具体的参数和实验结果详情可以看原文和代码。

    相关文章

      网友评论

        本文标题:《Temporal Pyramid Network for Ac

        本文链接:https://www.haomeiwen.com/subject/onqavltx.html