STM: SpatioTemporal and Motion Encoding for Action Recognition 论文阅读
- Abstract
- 1. Introduction
- 2. Related Works
- 3. Approach
- 3.1. Channel-wise SpatioTemporal Module
- 3.2. Channel-wise Motion Module
- 3.3. STM Network
- 4. Experiments
- 5. Conclusion
文章信息:
原文链接:https://arxiv.org/abs/1908.02486
无源码
发表于:ICCV 2019
Abstract
我们知道,时空和运动特征是视频动作识别中两种互补且至关重要的信息。最近的最新方法采用了一个3D CNN流来学习时空特征,并采用另一个流来学习运动特征。在这项工作中,我们旨在在一个统一的2D框架中有效地编码这两种特征。为此,我们首先提出了一个STM块,其中包含一个通道级时空模块(CSTM)来表示时空特征,以及一个通道级运动模块(CMM)来有效地编码运动特征。然后,我们将ResNet架构中的原始残差块替换为STM块,通过引入非常有限的额外计算成本,形成了一个简单但有效的STM网络。大量实验证明,提出的STM网络在时空相关数据集(即Something-Something v1和v2以及Jester)和场景相关数据集(即Kinetics400、UCF-101和HMDB-51)上胜过了最先进的方法,这得益于将时空和运动特征一起编码。
图1. STM块的特征可视化。第一行是输入帧。第二行是Conv2 1块的输入特征图。第三行是CSTM的输出时空特征图。第四行是CMM的输出运动特征图。最后一行是通过TV-L1提取的光流。
1. Introduction
随着云计算和边缘计算的快速发展,我们习惯于参与社交平台并生活在摄像头下。与此同时,各行各业,如安全和交通,收集了大量包含丰富信息的视频,涵盖了人们的行为、交通等各个方面。大量的视频信息吸引了越来越多的研究人员涉足视频理解领域。视频理解的第一步是动作识别,旨在识别视频中的人类动作。动作识别中最重要的特征是时空和运动特征,前者编码了不同时间戳之间的空间特征关系,而后者呈现了相邻帧之间的运动特征。
现有的动作识别方法可以总结为两类。第一种类型是基于双流神经网络的方法,包括一个RGB流,其输入为RGB帧,以及一个光流流,其输入为光流。空间流模型化外观特征(而不是时空特征),而不考虑时间信息。光流流通常被称为时间流,旨在建模时间线索。然而,我们认为将光流流称为时间流是不准确的,因为光流仅表示相邻帧之间的运动特征,而其结构几乎与具有2D CNN的空间流相同。因此,这种光流流缺乏捕捉长距离时间关系的能力。此外,光流的提取在时间和空间上都很昂贵,这限制了其在现实世界中的广泛工业应用。
另一种类别是基于3D卷积网络(3D CNNs)的方法,旨在捕捉时空特征。3D卷积能够同时表示时空特征和空间特征,得益于扩展的时间维度。通过堆叠3D卷积,3D CNN能够捕捉长距离的时间关系。最近,由于发布了大规模视频数据集(如Kinetics),对这种框架的优化变得流行起来。通过在大规模视频数据集上进行预训练,基于3D CNN的方法已经实现了比基于2D CNN的方法更优越的性能。然而,尽管3D CNN可以直接从RGB输入中建模时空信息,许多方法仍然将独立的光流动作流集成到其中,以进一步利用运动特征来提高性能。因此,这两种特征在动作识别中是互补的。然而,将卷积核从2D扩展到3D以及采用双流结构必然会将计算成本增加一个数量级,这限制了其真实应用。
受到上述观察的启发,我们提出了一种简单而有效的方法,称为STM网络,将时空和运动特征集成到统一的2D CNN框架中,而无需任何3D卷积和光流预计算。给定输入特征图,我们采用一个通道级时空模块(CSTM)来表示时空特征,并采用一个通道级运动模块(CMM)来编码运动特征。我们还插入了一个恒等映射路径,将它们组合成一个名为STM块的模块。STM块可以很容易地插入到现有的ResNet架构中,通过替换原始残差块来形成带有可忽略额外参数的STM网络。如图1所示,我们用CSTM和CMM特征可视化了我们的STM块。CSTM已经学习到了时空特征,与原始输入特征相比,更加关注动作交互的主要对象部分。至于CMM,它捕捉到了与光流类似的明显边缘的运动特征。我们工作的主要贡献可以总结如下:
- 我们提出了一个通道级时空模块(CSTM)和一个通道级运动模块(CMM),在统一的2D CNN框架中编码互补的时空和运动特征。
- 我们提出了一种简单而有效的网络,称为STM网络,通过引入非常有限的额外计算成本,可以将我们的STM块插入到现有的ResNet架构中。
- 大量实验证明,通过将时空和运动特征整合在一起,我们的方法在包括Something-Something、Kinetics、Jester、UCF101和HMDB-51等几个公共基准数据集上优于最先进的方法。
2. Related Works
随着深度卷积网络在计算机视觉领域取得巨大成功,大量基于CNN的方法已被提出用于动作识别,并逐渐超越了传统方法的性能。一系列进展采用2D CNN作为骨干,并通过简单地聚合逐帧预测来对视频进行分类。然而,这些方法仅独立地对每帧的外观特征建模,而忽略了帧间的动态关系,导致在识别与时间相关的视频时性能较差。为了解决上述缺点,引入了基于双流的方法,通过使用两个网络分别建模外观和动态,并在中间或最后融合两个流。在这些方法中,Simonyan等人首次提出了具有空间和时间网络的双流ConvNet架构。Temporal Segment Networks(TSN)提出了一种稀疏的时间采样策略,用于双流结构,并通过加权平均在最后融合两个流。Feichtenhofer等人研究了两个流中间的融合策略,以获取时空特征。然而,这些类型的方法主要存在两个限制。首先,这些方法需要预先计算光流,这在时间和空间上都很昂贵。其次,从多个段获得的学习特征和最终预测仅使用加权或平均求和进行简单融合,使其不如建模时空关系。
另一类方法尝试直接从RGB帧中使用3D CNN学习时空特征。C3D是第一个使用深度3D CNN学习时空特征的工作。然而,由于需要优化的参数庞大,并且缺乏高质量的大规模数据集,C3D的性能仍然不理想。I3D将ImageNet预训练的2D核扩展到3D,以捕获时空特征,并使用另一个光流流来建模运动特征。在高质量的大规模Kinetics数据集和双流设置的帮助下,I3D在基准数据集上取得了非常有竞争力的性能。由于3D CNN尝试沿着输入通道学习局部相关性,STCNet将其STC块插入到3D ResNet中,以在整个网络层中捕获空间通道和时间通道的相关信息。Slowfast涉及慢路径来捕获空间语义,快速路径来以细粒度的时间分辨率捕获运动。尽管基于3D CNN的方法已经达到了最先进的性能,但它们仍然面临着巨大的计算压力,使其难以在现实世界的应用中部署。
为了处理3D CNN的高计算量,提出了几种方法来在精度和速度之间找到平衡。Tran等人和Xie等人讨论了几种时空卷积的形式,包括在早期层使用3D卷积和在更深层使用2D卷积(底层重)或颠倒组合(顶层重)。P3D和R(2+1)D尝试通过将其分解为2D空间卷积和1D时间卷积来减少3D卷积的成本。TSM进一步引入了沿时间维度移动部分通道的时间卷积。我们提出的CSTM分支在学习时空特征方面与这些方法类似,但我们采用通道级1D卷积来捕获不同通道的不同时间关系。虽然这些方法在平衡3D CNN的高计算量方面取得了成功,但它们不可避免地需要双流网络的帮助,其中包括光流流以获得最佳性能。运动信息是视频识别与图像识别任务之间的关键差异。然而,使用TV-L1方法计算光流在时间和空间上都很昂贵。最近,已经提出了许多方法来使用CNN估计光流或探索光流的替代方法。TSN框架涉及两帧之间的RGB差异来表示视频中的运动。赵等人使用成本体积处理来建模显著运动。光流引导特征(OFF)包含一组操作符,包括Sobel和逐元素减法用于OFF生成。MFNet采用了五个固定的运动滤波器作为运动块,以找到两个相邻时间步之间的特征级时间特征。我们提出的CMM分支也旨在找到更好但更轻量级的替代运动表示。主要区别在于我们学习不同的运动特征,为每两个相邻的时间步长的不同通道。
3. Approach
在本节中,我们将介绍我们方法的技术细节。首先,我们将描述提出的CSTM和CMM,展示如何分别进行通道级时空融合和提取特征级别的运动信息。随后,我们将展示这两个模块的组合,将它们组装成一个构建模块,可以插入到现有的ResNet架构中,形成我们的STM网络。
图2. 通道级时空模块和通道级运动模块的架构。特征图显示为其张量的形状。“ ⊖ \ominus ⊖”表示逐元素减法。
3.1. Channel-wise SpatioTemporal Module
CSTM旨在进行高效的空间和时间建模。通过引入非常有限的额外计算成本,CSTM提取丰富的时空特征,可以显著提升与时间相关的动作识别性能。如图2(a)所示,给定一个输入特征图
F
∈
R
N
×
T
×
C
×
H
×
W
\mathbf{F}\in\mathbb{R}^{N\times T\times C\times H\times W}
F∈RN×T×C×H×W,我们首先将F重新塑形为:
F
→
F
∗
∈
R
N
H
W
×
C
×
T
F\to F^{* }\in \mathbb{R} ^{NHW\times C\times T}
F→F∗∈RNHW×C×T,然后在
T
T
T维上应用通道级1D卷积来融合时间信息。采用通道级卷积而不是普通卷积有两个主要优势。首先,对于特征图
F
∗
\mathbf{F}^{*}
F∗,不同通道的语义信息通常是不同的。我们认为不同通道的时间信息的组合应该是不同的。因此,采用通道级卷积来为每个通道学习独立的卷积核。其次,与普通卷积相比,计算成本可以减少一个因子
G
G
G,其中
G
G
G是组数。在我们的设置中,
G
G
G等于输入通道的数量。形式上,通道级时间融合操作可以被表述为:
其中
K
i
c
\mathbf{K}_i^c
Kic是属于通道
c
c
c的时间组合核权重,
i
i
i是时间核的索引,
F
c
,
t
+
i
∗
\mathbf{F}_{c,t+i}^*
Fc,t+i∗是输入特征序列,
G
c
,
t
\mathbf{G}_{c,t}
Gc,t是通道级时间融合特征的更新版本。这里时间核的大小设置为3,因此
i
∈
[
−
1
,
1
]
i\in [-1, 1]
i∈[−1,1]。接下来,我们将G重塑为原始输入形状(即
[
N
,
T
,
C
,
H
,
W
]
[N,T,C,H,W]
[N,T,C,H,W]),并通过2D卷积来建模局部空间信息,其卷积核大小为3x3。
我们可视化了CSTM的输出特征图,以帮助理解这个模块,如图1所示。将第二行的特征与第三行的特征进行对比,我们可以发现CSTM已经学习到了更加关注动作主要部分的时空特征,比如第一列中的手部,而背景特征较弱。
3.2. Channel-wise Motion Module
正如在[29, 2]中发现的那样,除了3D CNN直接从RGB流中学习的时空特征外,通过包含光流运动流,性能仍然可以大大提高。因此,除了CSTM,我们提出了一个轻量级的通道级运动模块(CMM),用于提取相邻帧之间的特征级别运动模式。请注意,我们的目标是找到一种能够以高效方式识别动作的运动表示,而不是两个帧之间的精确运动信息(光流)。因此,我们将只使用RGB帧,不涉及任何预计算的光流。
给定输入特征图
F
∈
R
N
×
T
×
C
×
H
×
W
\mathbf{F}\in\mathbb{R}^{N\times T\times C\times H\times W}
F∈RN×T×C×H×W,我们首先利用一个1x1卷积层将空间通道减少
r
r
r倍,以减轻计算成本,在我们的实验中设置为16。然后,我们从每两个连续的特征图生成特征级别的运动信息。以
F
t
\mathbf{F}_t
Ft和
F
t
+
1
\mathbf{F}_{t+1}
Ft+1为例,我们首先对
F
t
+
1
F_{t+1}
Ft+1应用2D通道级卷积,然后从
F
t
\mathbf{F}_t
Ft中减去以获得近似的运动表示
H
t
\mathbf{H}_t
Ht。
其中 c , t , h , w c,t,h,w c,t,h,w分别表示特征图的空间、时间通道和两个空间维度, K i , j c \mathbf{K}_{i,j}^c Ki,jc表示第 c c c个运动滤波器,下标 i , j i,j i,j表示核的空间索引。这里核大小设置为 3 × 3 3\times3 3×3,因此 i , j ∈ [ − 1 , 1 ] i,j\in[-1,1] i,j∈[−1,1]。
如图2(b)所示,我们对每两个相邻的特征图在时间维度上执行提出的CMM,即 F t \mathbf{F}_t Ft和 F t + 1 \mathbf{F}_{t+1} Ft+1、 F t + 1 \mathbf{F}_{t+1} Ft+1和 F t + 2 \mathbf{F}_{t+2} Ft+2等。因此,CMM将产生 T − 1 T-1 T−1个运动表示。为了保持时间尺寸与输入特征图兼容,我们简单地使用零来表示最后一个时间步的运动信息,然后在时间维度上将它们串联在一起。最后,另一个1x1的2D卷积层被应用来将通道数恢复为 C C C。
我们发现,即使设计非常简单,提出的CMM也可以提升整个模型的性能,这证明了通过CMM获取的运动特征是对CSTM中的时空特征的补充。我们在图1中可视化了CMM学习到的运动特征。从中我们可以看到,与CSTM的输出相比,CMM能够捕捉到具有明显边缘的运动特征,就像光流一样。
3.3. STM Network
图3. STM网络的整体架构。首先将输入视频均匀分成N个段,然后从每个段中采样一个帧。我们采用2D ResNet-50作为骨干网络,并用STM块替换所有残差块。除了最后的得分融合阶段外,不执行任何时间维度的降维。
为了保持框架的有效性和轻量级,我们将提出的CSTM和CMM组合在一起,构建一个STM块,可以同时编码时空和运动特征,并且可以轻松插入到现有的ResNet架构中。STM块的整体设计如图3的下半部分所示。在这个STM块中,第一个1x1的2D卷积层负责减少通道维度。然后,压缩后的特征图分别通过CSTM和CMM来提取时空和运动特征。通常有两种不同类型信息的聚合方式:求和和串联。我们通过实验发现,求和比串联更有效地融合这两个模块。因此,在CSTM和CMM之后应用了一个逐元素求和操作来聚合信息。然后,另一个1x1的2D卷积层被应用来恢复通道维度。类似于普通的残差块,我们还从输入到输出添加了一个无参数的恒等快捷连接。
由于提出的STM块与普通的残差块兼容,我们可以简单地将其插入到任何现有的ResNet架构中,以形成我们的STM网络,而且额外的计算成本非常有限。我们在图3的上半部分说明了STM网络的整体架构。STM网络是一个2D卷积网络,避免了任何3D卷积和预先计算光流。除非另有说明,否则我们选择2D ResNet-50作为我们的骨干网络,因为它在准确性和速度之间有一个平衡。我们用提出的STM块替换了所有的残差块。
4. Experiments
5. Conclusion
在本文中,我们提出了一种简单而有效的网络,通过在统一的2D CNN网络中将时空和运动特征编码在一起来进行动作识别。我们将ResNet架构中的原始残差块替换为STM块,以构建STM网络。一个STM块包含一个CSTM来建模通道级时空特征,以及一个CMM来共同建模通道级运动表示。在没有任何3D卷积和预计算光流的情况下,我们的STM在时空相关数据集和场景相关数据集上取得了最先进的结果,与TSN基线相比,仅增加了1.2%的FLOPs。