TEA实现细节
Contents
#TEA: Temporal Excitation and Aggregation for Action Recognition
#motion excitation(ME)
解决的问题是:short-range motion encoding
。
之前的工作一般都是像素级的运动表现特征,比如光流
,论文从feature
层面上进行了运动建模。
不同的通道可能会对不同的消息敏感,提供模型自身的运动敏感信息捕捉能力十分重要。
The intuition of the proposed ME module is that, among all feature channels, different channels would capture distinct information.
For action recognition, it is beneficia to enable the model to discover and then enhance these motion-sensitive channels.
给定输入:
$$
\mathbf{X} \in \mathbb{R}^{N \times T \times C \times H \times W}
$$
- 首先进行通道数降低,来减少计算量:
$$
\mathbf{X}^r = \mathrm{conv}_\mathit{red} * \mathbf{X}, \quad \mathbf{X}^r \in \mathbb{R}^{N \times T \times C/r \times H \times W}
$$
- 然后根据
时间分片
进行运动特征的表征,表征就是特征层相减的差值,不过在进行转换之前先进行了卷积操作,得到的$\mathbf{M}(t)$就是$t$时刻的运动特征,然规定$\mathbf{M}(t) = 0$:
$$
\mathbf{M}(t) = \mathrm{conv}_\mathit{trans} * \mathbf{X}^r(t+1) - \mathbf{X}^r(t), 1 \leq t \leq T-1, \mathbf{M}(t) \in \mathcal{R}^{N \times C/r \times H \times W}
$$
- 全局平均池化操作,把空间信息进行总结,因为这里是要对那些
运动敏感
的通道进行激活,所以空间信息并不是很重要:
$$
\mathbf{M}^{s} = \mathrm{Pool}(\mathbf{M}), \quad \mathbf{M}^{s} \in \mathbb{R}^{N \times T \times C/r \times 1 \times 1}
$$
- 恢复通道数至初始,通过$Sigmoid$函数进行激活:
$$
\mathbf{A} = 2\delta( \mathrm{conv}_\mathit{exp} * \mathbf{M}^s)-1, \quad \mathbf{A} \in \mathbb{R}^{N \times T \times C \times 1 \times 1}
$$
- 然后把权重$\mathbf{A}$乘到输入上,就能够对动作进行表征。但是会对一些背景信息进行抑制,所以用一种残差结构,来修正影响:
such an approach will suppress the static background scene information, which is also beneficial for action recognition.
we propose to adopt a residual connection to enhance motion information meanwhile preserve scene information.
$$
\mathbf{X}^{o} = \mathbf{X} + \mathbf{X} \odot \mathbf{A}, \quad \mathbf{X}^{o} \in \mathbb{R}^{N \times T \times C \times H \times W}
$$
#Multiple Temporal Aggregation(MTA)
这个模块的主要目的是为了增大时间维度的感受野,原理看起来很通俗易懂:
$$ \begin{array}{lr} \mathbf{X}^o_i = \mathbf{X}_i, & i=1 \\ \mathbf{X}^o_i = \mathrm{conv}_{\mathit{spa}}* ( \mathrm{conv}_{\mathit{temp}} * \mathbf{X}_i), & i=2 \\ \mathbf{X}^o_i = \mathrm{conv}_{\mathit{spa}}* ( \mathrm{conv}_{\mathit{temp}} * ( \mathbf{X}_i + \mathbf{X}^o_{i-1} ) ), & i=3,4 \\ \end{array} $$即:
$$ \begin{array}{lr} \mathbf{X}^o_1 = \mathbf{X}_1\\ \mathbf{X}^o_2 = \mathrm{conv}_{\mathit{spa}}* ( \mathrm{conv}_{\mathit{temp}} * \mathbf{X}_1) \\ \mathbf{X}^o_3 = \mathrm{conv}_{\mathit{spa}}* ( \mathrm{conv}_{\mathit{temp}} * ( \mathbf{X}_3 + \mathbf{X}^o_2 ) ) \\ \mathbf{X}^o_4 = \mathrm{conv}_{\mathit{spa}}* ( \mathrm{conv}_{\mathit{temp}} * ( \mathbf{X}_4 + \mathbf{X}^o_3 ) ) \\ \end{array} $$这个操作需要对$\mathbf{X}$进行处理,从$\left[ N,T,C,H,W\right]$变换到$\left[ NHW, C, T\right]$。