论文笔记之ACTION-Net: Multipath Excitation for Action Recognition

本文提出一个时空、通道、运动激励模块来嵌入到2D CNN 中以解决目前的难题,即2D CNN虽然计算量小但不能捕捉时间关系而3D CNN可以捕捉空间关系但计算量大。
CVPR2021
论文地址:https://arxiv.org/abs/2103.07372
代码地址:https://github.com/V-Sense/ACTION-Net

1. 总述

时空、通道和运动模式是视频动作识别中三种重要的互补信息。传统的2D CNN计算量小,但不能捕捉时间关系;3D CNN可以获得良好的性能,但计算量大。

为此,本文提出了一种时空、通道和运动激励(ACTION)模块,包括三条路径:时空激励(STE)路径、通道激励(CE)路径和运动激励(ME)路径。STE路径采用单通道3D卷积来表征时空表示。CE路径通过在时间方面显式地建模通道之间的相互依赖性来自适应地重新校准通道特征响应。ME路径计算特征级的时间差,然后利用这些时间差来激励运动敏感通道。

2. 网络结构

在这里插入图片描述
ResNet-50的ACTION-Net体系结构如图所示。首先将输入视频平均分割成T个片段,然后从每个片段中随机抽取一帧以获得输入的T帧图片。在每个残差块的开始处插入ACTION模块(其中STE,CE,ME三个模块并行使用),最终得到分类结果(CLS表示类的个数,T表示视频帧的个数)。

2.1 Spatio-Temporal Excitation (STE) 模块

在这里插入图片描述

  • 首先对输入 X ( N × T × C × H × W ) X (N×T×C×H×W) X(N×T×C×H×W)的通道进行平均,得到相对于通道轴的全局时空张量 F ( N × T × 1 × H × W ) F(N×T×1×H×W) F(N×T×1×H×W)
  • 然后reshape F F F N × 1 × T × H × W N×1×T×H×W N×1×T×H×W大小
  • 之后送入卷积核为3×3×3的3D卷积中得到 F ∗ F^* F
  • 接着将 F ∗ F^* F reshape为 F o ( N × T × 1 × H × W ) F_o(N×T×1×H×W) Fo(N×T×1×H×W)
  • F o F_o Fo送入Sigmoid激活层,得到mask M ( N × T × 1 × H × W ) M(N×T×1×H×W) M(N×T×1×H×W)
  • 将M乘上X再加上X最为这部分最终的输出

与传统的3D卷积运算相比,STE的计算效率更高,因为输入到3D卷积中的特征 F ∗ F^* F是跨通道平均的。输入 X X X的每个通道都能从一个精细的特征激励 M M M中感知时空信息的重要性。

2.2 Channel Excitation(CE) 模块

在这里插入图片描述
CE的设计类似于SE,CE和SE的主要区别在于,CE在两个FC层之间插入了一个1×1卷积层来描述信道特征的时间信息。在给定输入 X ( N × T × C × H × W ) X(N×T×C×H×W) X(N×T×C×H×W)的情况下:

  • 首先通过空间平均池化来获取输入特征的全局空间信息 F F F
  • 接着使用1×1卷积来squeeze F F F的通道数(本文压缩倍数为16)得到压缩后的特征 F r F_r Fr
  • reshape F r F_r Fr N × C r × T × 1 × 1 N× \frac{C}{r} ×T ×1×1 N×rC×T×1×1大小得到 F r ∗ F^∗_r Fr
  • 再经过3的1维卷积后得到 F t e m p ∗ ( N × C r × T × 1 × 1 ) F^∗_{temp} (N× \frac{C}{r} ×T ×1×1) Ftemp(N×rC×T×1×1)
  • 然后reshape F t e m p ∗ F^∗_{temp} Ftemp F t e m p ( N × T × C r × 1 × 1 ) F_{temp} (N×T × \frac{C}{r} ×1×1) Ftemp(N×T×rC×1×1)
  • 接着经过1×1的2维卷积来unsqueeze F t e m p F_{temp} Ftemp N × T × C × 1 × 1 N×T×C ×1×1 N×T×C×1×1得到 F o F_o Fo
  • F o F_o Fo送入Sigmoid激活层,得到mask M ( N × T × C × 1 × 1 ) M(N×T×C ×1×1) M(N×T×C×1×1)
  • 最后,M乘上X再加上X作为这部分的最终输出

2.3 Motion Excitation (ME)模块

在这里插入图片描述
运动信息由相邻帧建模,采用与CE模块相同的squeeze-unsqueeze策略。

运动特征的建模表示为(K为3×3卷积):
F m = K ∗ F r [ : , t + 1 , : , : , : ] − F r [ : , t , : , : , : ] \mathbf{F}_{m}=\mathbf{K} * \mathbf{F}_{r}[:, t+1,:,:,:]-\mathbf{F}_{r}[:, t,:,:,:] Fm=KFr[:,t+1,:,:,:]Fr[:,t,:,:,:]

  • 首先输入经过1×1卷积进行squeeze操作
  • 根据上式计算各帧的运动特征
  • 然后根据时间维度将运动特征彼此串联,0填充到最后一个位置,表示为 F M = [ F m ( 1 ) , … , F m ( t − 1 ) , 0 ] \mathbf{F}_{M}=\left[\mathbf{F}_{m}(1), \ldots\right.,\mathbf{F}_{m}(t-1),0] FM=[Fm(1),,Fm(t1),0] F M \mathbf{F}_{M} FM大小为 N × T × C r × H × W N \times T \times \frac{C}{r} \times H \times W N×T×rC×H×W
  • 接着 F M \mathbf{F}_{M} FM依次经过空间平均池化、1×1卷积的unsqueeze操作,sigmod激活后得到maks M
  • M乘以X再加上X作为这部分的最终输出

3. 实验

(1)在 Something-Something V2, Jester 以及 EgoGesture 数据集上与SOTA的对比:
在这里插入图片描述
(2)越多的ACTION模块加在残差块上性能越好:
在这里插入图片描述
(3)ACTION-net具有良好的通用性以及收益:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/haha0825/article/details/115160555
今日推荐