采用光流作为运动特征进行行为识别需要预先计算并存储光流,需要巨大的计算成本和存储资源,并且由于光流特征主要表征了相邻帧之间的运动特征,导致行为识别中存在长依赖问题。针对这些问题,本文提出了一种新的运动特征建模方式以取代光流特征,并且提出了一种长依赖时序运动建模模块。实验结果表明,本文提出的方法在增加极低的计算成本的情况下,能更好的对远距离图像帧间的时序上下文信息建模,显著提高行为识别的准确度。 Using optical flow as motion features for action recognition requires pre-computation and storage of optical flow, which requires huge computational cost and storage resources. And optical flow features mainly characterize the motion features between adjacent frames, which leads to long-dependency problems in action recognition. To address these problems, this paper proposes a new way of modeling motion features to replace optical flow features and proposes a long-dependency temporal motion modeling module. Experimental results show that the proposed method in this paper can better model the temporal context information between long-range frames and significantly improve the accuracy of action recognition with very low increase in computational cost.
采用光流作为运动特征进行行为识别需要预先计算并存储光流,需要巨大的计算成本和存储资源,并且由于光流特征主要表征了相邻帧之间的运动特征,导致行为识别中存在长依赖问题。针对这些问题,本文提出了一种新的运动特征建模方式以取代光流特征,并且提出了一种长依赖时序运动建模模块。实验结果表明,本文提出的方法在增加极低的计算成本的情况下,能更好的对远距离图像帧间的时序上下文信息建模,显著提高行为识别的准确度。
行为识别,光流,运动特征,长依赖问题,时序上下文信息
Yuming Zhang, Kewei Wu, Yike Jin, Longhui Zhou
School of Computer Science and Information Engineering, Hefei University of Technology, Hefei Anhui
Received: May 1st, 2021; accepted: May 26th, 2021; published: Jun. 2nd, 2021
Using optical flow as motion features for action recognition requires pre-computation and storage of optical flow, which requires huge computational cost and storage resources. And optical flow features mainly characterize the motion features between adjacent frames, which leads to long-dependency problems in action recognition. To address these problems, this paper proposes a new way of modeling motion features to replace optical flow features and proposes a long-dependency temporal motion modeling module. Experimental results show that the proposed method in this paper can better model the temporal context information between long-range frames and significantly improve the accuracy of action recognition with very low increase in computational cost.
Keywords:Action Recognition, Optical Flow, Motion Features, Long-Dependency Problems, Temporal Context Information
Copyright © 2021 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
行为识别是计算机视觉领域非常有挑战性的课题,研究的是视频中目标的行为动作,在视频监控、人机交互等领域有着重要的应用。在行为识别任务中,不仅要分析图像中目标的空间信息,还要提取时间维度上的时序特征。近几年,针对行为识别的研究主要围绕双流法和3D卷积进行展开。双流法包括两个并行分支:RGB空间流与时序流。在时序流中,通常采用光流作为运动特征,这也导致双流法需要预先计算并存储光流。因此,双流法需要巨大的计算和存储资源。3D卷积在2D空间卷积的基础上增加时间维度,学习时序特征,维度的增加也导致了计算量的增长。此外,双流法与3D卷积只能对局部的时间段内的时序特征进行提取,对长时视频中的长依赖问题存在较大的局限性。
针对以上存在的问题,我们提出了两个模块:通道级运动特征编码模块(CME)与长依赖时序运动建模模块(LDTM)。CME模块采用帧差法的思想,对相邻帧之间的运动特征进行编码,取代光流特征。利用注意力机制在通道级对运动特征通道进行激励,对背景通道进行抑制。LDTM模块利用双向LSTM网络,在增加较低的计算成本代价下,对远距离图像帧之间进行时序上下文关系建模,对解决行为识别中的长依赖问题提供了一种解决思路。
传统的行为识别方法一般是通过人工观察和设计,手动设计出能够表征动作特征的特征提取方法,比如方向梯度直方图(HOG)、光流直方图(HOF)、光流梯度直方图(MBH)、轨迹特征(Trajectories)以及人体骨骼特征等。在早期研究工作中,iDT (improved Dense Trajectories) [
2014年,Karen Simonyan等学者提出了双流(Two-Stream) [
C3D [
除了双流模型与3D卷积以外,也有一些其他的工作聚焦于解决行为识别中的计算资源巨大、长距离依赖建模困难等问题。Chao-YuanWu等学者发现多数研究直接使用视频作为模型输入,从而导致数据量过大,因此他们参考视频压缩的技术,对视频进行压缩 [
此外,一些学者提出用新的运动特征编码方式来取代光流特征,降低计算成本。Boyuan Jiang等人提出了一个STM [
在行为识别任务中,输入的视频段可以看作是若干视频帧按一定时序进行排列得到,当我们的模型在学习某一帧视频帧特征信息时,我们需要模型将前面视频帧所学的特征信息与当前帧联系起来,即学习视频中的上下文信息。传统的神经网络无法做到这一点,循环神经网络(RNNs)解决了这一点,循环神经网络带有自循环结构,使得特征信息可以持久保存。但是当视频帧增多,视频时段较长时,我们需要学习更远距离的上下文,循环神经网络的效果就不是很明显了。长短期记忆网络(LSTM)便是针对视频理解、自然语言处理及语音识别等时序任务中存在的长依赖问题而提出的一种网络模型。长短期记忆网络是一种特殊的循环神经网络,由Hochreiter和Schmidhuber (1997)提出,它能够学习视频、语音或文本等数据中的长距离依赖关系。在随后的发展中,许多研究人员针对计算机视觉任务中出现的不同问题,对LSTM进行改进和推广,出现很多LSTM变种,例如双向LSTM、GRU等,它们在许多问题上起到很好的效果,得到了广泛使用。
在本文中,我们的主要贡献总结如下:
(1) 提出了一个基于注意力机制的通道级运动特征编码模块(CME),学习相邻帧间的时序上下文,在小幅增加计算成本的情况下显著提高模型性能;
(2) 提出了一个长依赖时序运动建模模块(LDTM),对行为识别中远距离帧间的上下文关系建模,有效降低了长依赖问题对行为识别的影响。
在这一节中,我们提出了两个模块(通道级运动特征编码模块和长距离时序运动特征建模模块)来提取视频运动特征,其中,通道级运动特征编码模块提取视频段相邻帧间短时运动特征,长依赖时序运动建模模块(LDTM)提取长距离时序运动特征。
如图1,展示了我们的整体网络模型结构图。我们选用ResNet50作为卷积网络,并用CME Block替换ResNet50中每一个卷积层的Block,用以提取相邻帧间的运动特征;此外,我们在Conv Layer2、Conv Layer3及Conv Layer4后引出一个并行分支接入长依赖时序运动建模模块(LDTM),并与每一个卷积层的输出进行融合,作为后续卷积或者全连接网络的输入。在接下来的小节中,我们将详细介绍我们提出的通道级运动特征编码模块(CME)以及长依赖时序运动建模模块(LDTM)。
图1. 整体网络模型结构图
在之前的大量工作中,通常是通过提取光流特征来作为运动特征进行行为识别,但是计算光流特征需要巨大的计算资源和存储资源,效率比较低。因此,我们借鉴了帧差法检测运动目标的思想,提出了一个通道级运动特征编码模块CME (Channel-wise Motion Encoding)来提取运动特征并激励运动信道,以取代光流特征。
如图2所示,在CME模块中,我们首先将输入的视频帧经过一个1 × 1的2D空间卷积降低特征通道维度,假设放缩因子为r,输入维度为[N, T, C, H, W],经过卷积后得到输出维度为[N, T, C/r, H, W]的特征图。将得到的特征图沿时间维度T拆分成单独的每一帧,然后将相邻帧进行差分,用后一帧图像特征 X t + 1 减去前一帧 X t 。由于视频中前景目标的运动,导致两帧之间目标位置发生变化,直接作差可能会导致特征混乱。因此,为了消除特征混淆,我们先对后一帧用3x3的2D卷积进行空间特征变换,然后再用得到的变换特征与前一帧做差,从而得到相邻两帧之间的运动表征。我们假设第t帧到第t+1帧的运动特征为 M t ,那么:
图2. 通道级运动特征编码模块(CME)结构图
M t = C o n v 3 × 3 ( X t + 1 ) − X t , M t ∈ R N × C / r × H × W (1)
其中, X t 表示第t帧图像特征, X t + 1 为第t + 1帧图像特征, C o n v 3 × 3 ( · ) 表示3 × 3的2D空间卷积。将得到的相邻帧间运动特征拼接,得到输入视频的运动特征表示为M,即:
M = C o n c a t ( M 1 , M 2 , ⋯ , M T ) , M ∈ R N × T × C / r × H × W (2)
由于输入特征X经过了卷积通道降维,因此得到的视频运动特征M的维度为[N, T, C/r, H, W]。我们将得到的视频运动特征M输入两个并行分支,运动编码分支与运动信道激励分支。在运动编码分支,我们设计一个1 × 1的2D卷积对运动特征M进行编码,并将通道维度从C/r恢复到C,确保特征信息不会损失,同时也便于与输入特征融合。假设运动编码后得到的特征为 M e n c o d e ,则有:
M e n c o d e = C o n v 1 × 1 ( M ) , M e n c o d e ∈ R N × T × C × H × W (3)
其中, C o n v 1 × 1 ( · ) 表示1 × 1的2D卷积操作。运动编码分支得到编码后的相邻帧之间的运动特征,但是特征通道包含了前景目标的运动特征以及背景特征。因此,我们采用注意力机制,对拼接后得到运动特征学习其通道的注意力权重,对于运动特征通道进行激励,对背景特征通道进行抑制。具体地,考虑到通道特征权重与空间位置无关,我们先将运动特征进行空间上的全局平均池化,得到空间无关的运动特征,记为 M p o o l i n g ,即:
M p o o l i n g = P o o l i n g ( M ) , M p o o l i n g ∈ R N × T × C / r × 1 × 1 (4)
其中 P o o l i n g ( · ) 表示空间池化操作,得到的 M p o o l i n g 维度为[N, T, C/r, W, H]。接下来,将 M p o o l i n g 经过卷积升维,并输入到sigmoid激活函数,得到注意力权重矩阵记为A,即:
A = s i g m o i d ( C o n v 1 × 1 ( M p o o l i n g ) ) , A ∈ R N × T × C × 1 × 1 (5)
其中 s i g m o i d ( · ) 表示sigmoid激活函数, C o n v 1 × 1 ( · ) 同上,表示1 × 1的2D卷积操作。将得到的通道注意力权重A与运动编码特征 M e n c o d e 相乘,激励其中的运动特征通道,同时加入残差连接,保持原有输入特征不丢失,即:
Y = X + A ⋅ M e n c o d e , Y ∈ R N × T × C × H × W (6)
其中,X为输入特征,Y为模块的最终输出特征。显然,X与Y具有相同的维度,即CME模块并不改变输入特征的输出维度,这允许我们可以将该模块嵌入模型的任何位置进行端对端的学习,在我们的实验中,我们将其嵌入ResNet50网络,并用以替换每一个卷积层Block。
运动特征编码模块(CME)可以提取相邻帧之间的运动特征,激励运动特征通道,但对于时长较长的视频段时序运动特征提取存在局限性。因此,我们提出一个长依赖时序运动建模模块(Long-Dependency Temporal Motion),如图3所示。
图3. 长依赖时序运动建模(LDTM)模块结构图
首先,我们对输入的视频帧序列通过一个1 × 1的2D卷积对通道进行降维,缩放因子取r = 16,然后将得到的特征经过维度变形转换后,输入一个双向LSTM网络(Bi-LSTM)。假设输入的视频帧序列为 x ∈ R N × T × C × H × W ,经1 × 1卷积后特征维度变为 N × T × C / 16 × H × W ,然后通过Reshape操作将特征维度转换成 N H W × T × C / 16 。我们将若将 N H W 看作一个新的Batchsize,则等价于将每一帧特征向量 x t ∈ R 1 × C / r 输入双向LSTM网络。在图3所示的结构图中,我们详细展示了双向LSTM模块的结构。具体地,我们将每一帧 x t ∈ R 1 × C / r 输入到一个前向LSTM网络和一个反向LSTM网络,将两者的输出特征进行融合得到每一帧的隐藏层输出为 y t ∈ R 1 × C / r 。显然,双向LSTM网络并不改变输入特征的输出维度。因此,我们将得到的双向LSTM输出特征进行逆操作(Reshape和1 × 1卷积)后,并可将特征维度恢复与输入特征保持一致。我们将LDTM模块的操作流程表达如下:
y = C o n v 1 × 1 ( R s h ( B i L S T M ( R s h ( C o n v 1 × 1 ( x ) ) ) ) ) , y ∈ R N × T × C × H × W (7)
其中, C o n v 1 × 1 ( · ) 表示1x1的空间卷积, R s h ( · ) 表示Reshape操作, B i L S T M ( · ) 表示双向LSTM的输出,x与y分别代表输入及输出特征。
实验设置。我们的实验选用ResNet50作为我们的基础卷积网络,并用我们提出的模块对ResNet50中的网络构件进行替换。为了便于与其他模型进行比较,我们在Something-Something-v1数据集上进行了实验。实验模型用2块2080Ti显卡进行训练,共训练50个epoch。训练数据的Batchsize大小设定为16,初始学习率设定为0.005,并分别在第30,40以及45个epoch时将学习率缩小10倍。
数据集。Something-Something-v1数据集是一个大型的带标签的视频段集合,这些视频段主要包括了人们对日常物品进行预定义的一些基本动作。该数据集包含108499个视频,并分为174个类别,其中训练集有86017个,验证集有11522个,测试集有10960个。
我们将我们的方法与当前最先进的一些行为识别模型在Something-Something-v1公开数据集上进行了实验对比。如表1,可以发现,在相同的实验参数设置条件下,比如相同的帧采样、Backbone网络以及预训练等,我们的方法相较于TSN、TSM、GST等优秀模型都有一定的性能提升。
Method | Backbone | Frames × Crops × Clips | Flops | Param | Pre-train | Top-1 val (%) | Top-5 val (%) |
---|---|---|---|---|---|---|---|
TSN | ResNet50 | 8 × 1 × 1 | 33G × 1 × 1 | N/A | ImageNet | 19.70 | 46.60 |
TRN | BNInception | 8 × 10 × N/A | 16G × 10 × N/A | 18.3M | ImageNet | 34.40 | 63.20 |
TRN Two-Stream | BNInception | (8 + 8) × 10 × N/A | 32G × 10 × N/A | 36.6M | ImageNet | 42.00 | / |
I3D | 3D ResNet50 | 32 × 3 × 2 | 153G × 3 × 2 | 28.0M | ImageNet + Kinetics400 | 41.60 | 72.20 |
NL-I3D | 3D ResNet50 | 32 × 3 × 2 | 168G × 3 × 2 | 35.3M | ImageNet + Kinetics400 | 44.40 | 76.00 |
NL-I3D&GCN | 3D ResNet50 | 32 × 3 × 2 | 303G × 3 × 2 | 62.2M | ImageNet + Kinetics400 | 46.10 | 76.80 |
TSM | ResNet50 | 8 × 1 × 1 | 33G × 1 × 1 | 24.3M | ImageNet | 45.60 | 74.20 |
---|---|---|---|---|---|---|---|
TSM | ResNet50 | 16 × 1 × 1 | 65G × 1 × 1 | 24.3M | ImageNet | 47.30 | 77.10 |
TSM&En | ResNet50 | (8+16) × 1 × 1 | 98G × 1 × 1 | 48.6M | ImageNet | 49.70 | 78.50 |
STM | ResNet50 | 8 × 3 × 10 | 33G × 3 × 10 | N/A | ImageNet | 49.20 | 79.30 |
STM | ResNet50 | 16 × 3 × 10 | 67G × 3 × 10 | N/A | ImageNet | 50.70 | 80.40 |
GST | ResNet50 | 16 × 1 × 1 | 59G × 1 × 1 | N/A | ImageNet | 48.60 | 77.90 |
GSM | BNInception | 16 × 1 × 1 | 33G × 1 × 1 | N/A | ImageNet | 49.56 | / |
我们的方法 | ResNet50 | 8 × 1 × 1 | 33G × 1 × 1 | 24.3M | ImageNet | 47.89 | 76.78 |
ResNet50 | 16 × 1 × 1 | 67G × 1 × 1 | 24.3M | ImageNet | 49.74 | 79.03 |
表1. 与当前先进的行为识别模型在Something-Something-v1数据集上进行对比
此外,我们也尝试了在ResNet50不同的层上加入LDTM模块,得到的对比实验数据如表2。由于ResNet50网络的浅层特征图尺寸较大,语义信息较少,我们考虑跳过第一层卷积,而从第二个Stage开始输入LDTM模块。我们发现,在第3个卷积层(一个卷积层表示ResNet50网络的一个Stage)后加入我们的LDTM模块,可以取得更好的效果。在较浅层或者更深层单独加入LDTM模块,由于浅层语义特征较少,而深层网络分辨率信息丢失,导致性能都有所下降。当然,在每一个Stage都加入LDTM,能取得最好的效果,但也不可避免带来更大的计算量。
Stage | Top-1 val (%) | Top-5 val (%) |
---|---|---|
Conv2 | 42.6 | 71.8 |
Conv3 | 45.3 | 74.3 |
Conv4 | 44.6 | 73.4 |
Conv3 + Conv4 | 46.9 | 76.1 |
Conv2 + Conv3 + Conv4 | 47.4 | 76.2 |
表2. 在ResNet50网络不同卷积层加入LDTM模块后的性能比较
我们将我们的方法与TSM模型在ResNet50骨干网络第五层卷积Conv5后得到的特征图可视化。对比可以发现,我们的方法可以在长距离帧间进行关联的上下文学习。如图4,在我们的方法中,第1帧与第4、5帧特征图中,人手在拉动物体时,前景目标区域的特征被分配了更大的权重和关注度,明显区别于背景目标。这也证明,我们的方法对长依赖时序运动特征建模是有效的。
图4. “拉某物的两端但什么都没发生”行为视频段在Conv5后的特征热图,其中(a)表示我们的方法,(b) 表示TSM模型
在行为识别任务中,短时相邻帧间采用光流特征作为运动特征进行行为识别存在着计算成本高、效率低等问题,而长时视频由于长依赖问题、远距离帧间上下文关系无法有效建模导致行为识别效果很差。针对以上的问题,我们提出了两个模块:通道级运动特征编码模块(CME)与长依赖时序运动建模模块(LDTM)。CME模块在采用帧差法的思想,对相邻帧间的运动特征进行编码,并利用注意力机制在通道级对运动特征通道进行激励,对背景通道进行抑制,从而得到更加有效的短时运动特征。LDTM模块利用双向LSTM网络,对远距离的帧间进行时序上的上下文关系学习,对解决行为识别中的长依赖问题提供了一种解决思路。CME模块与LDTM模块均不改变输入特征的输出维度,这允许我们将模块嵌入到模型任何位置进行端对端的学习,在增加较低的计算成本代价下,显著增加了模型的识别性能。本文主要从短时运动特征编码与长时依赖问题两方面对行为识别进行思考,后续我们针对这两方面问题,将进一步优化提出的方法,以获得更好的性能。
张玉铭,吴克伟,金依珂,周龙辉. 基于注意力机制与双向LSTM的行为识别Action Recognition Based on Attention and Bi-LSTM[J]. 计算机科学与应用, 2021, 11(06): 1607-1616. https://doi.org/10.12677/CSA.2021.116166