郝伟,吕学强,韩晶
(1.北京信息科技大学 机电系统测控北京市重点实验室,北京 100192;2.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100101)
视频动作识别是机器视觉领域重要的研究方向,在人机交互、智能机器人、无人驾驶、健康监控等领域发挥着重要作用。相对于图像,视频增加了时间维度,可以看作是在时间上连续的图像集合。作为2D卷积在3D场景的自然扩展,3D卷积被广泛应用于视频动作识别任务,如早期的C3D[1]和I3D[2]等方法。X3D[3]、MoViNets[4]对轻量化的3D卷积网络进行了探索,取得了令人瞩目的效果。但3D卷积核在处理视频数据时,是将局部时空信息耦合在一起进行特征表示,无法有效地对目标的空间特征在整段视频时间跨度上的变化进行建模。Feichtenhofer等[5]从灵长类动物的眼睛对运动信息的捕捉方式上获得启发,提出快慢分支建模的方法,对时空特征的提取过程进行解耦,最后进行时空特征融合,证明了时空信息解耦的重要性。但面向视频的动作识别是基于一段时间内动作的变化进行动作判别,在做出最终的判断前,大脑对已接收的时空融合信息进行了预判,即最终用于动作识别的信息是多次时空特征融合的结果。
基于该假设,本文在轻量化的3D卷积网络MoViNetA0[4]的基础上,对其主要组件进行时空解耦设计,提出时空解耦的卷积神经网络(spatio-temporal decoupled convolutional neural network,STDNet),通过级联时空解耦模块,模拟大脑对视频动作的识别过程。同时,考虑到相邻帧的空间信息具有高度相似性,提出了一种时间注意力模块,对不同帧的特征赋予不同的重要性,减少时间方向上冗余的空间信息的影响。在公开数据集HMDB51[6]和UCF101[7]上的实验证明了本文方法的有效性。
STDNet整体结构如图1所示。MoViNetA0从输入端到输出端可划分为瓶颈段、主干、头部三部分。本文对MoViNetA0的瓶颈段和主干部分进行了改进。首先,在瓶颈段的3D卷积残差模块中插入时间注意力模块,形成时间注意力残差块;其次,将主干的4个模块替换为本文提出的时空解耦模块,并保持相同的网络深度和输入输出尺寸。其中,时空解耦模块中不使用时间注意力模块。时间注意力模块本质上是对输入视频中冗余空间信息的抑制,如在时空解耦模块中再次使用时间注意力模块,会造成空间信息的过度损失,不利于行为识别。头部仍沿用MoViNetA0的结构。
图1 STDNet结构示意图Fig.1 Structure diagram of STDNet
3D卷积残差块是MoViNetA0的基础组件,其中3D 压缩和激励(squeeze-and-excitation,SE)模块[8]在计算通道注意力时,所有帧的空间信息被压缩在一起。然而视频数据帧间空间信息的相似度与帧间距离成反比,相邻帧空间信息相似度较高,存在信息冗余,距离较远的帧在通道方向的重要性也有所不同,3D池化操作忽略了这种差异性。本文提出时间注意力模块,进行帧间注意力计算,将时间注意力模块插入3D卷积残差块中,与3D SE模块串联,并在3D SE模块前执行,构成STDNet基础组件之一的时间注意力残差块,如图2所示。
图2 时间注意力残差块Fig.2 Temporal attention residual block
本文以图像处理中使用的卷积块注意力模块(convolutional block attention module,CBAM)[9]为基础,将其扩展到视频处理任务中,设计了时间注意力模块(time attention module,TAM),在时间方向计算注意力分数,为输入视频的每一帧赋予不同的权重,抑制冗余空间信息的表达。如图3所示,输入特征图首先经过通道转换,将时间维度和通道维度置换,形状由B×c×T×h×w变为B×T×c×h×w,其中B为批大小,c为特征图通道数,T为帧数,h为特征图的高度,w为宽度。其次,分别经3D平均池化和3D最大池化操作压缩信息,两种池化后的信息经权重共享的3D SE模块计算注意力分数,并相加,之后经Sigmoid操作将注意力分数转换到0~1的区间内,经通道转换操作还原时间和通道维度,最后与原始输入数据相乘后输出。
图3 时间注意力模块Fig.3 Time attention module
常规3D卷积将局部时空信息耦合,得到新的时空特征。SlowFast网络[5]根据灵长类动物的眼睛对运动信息的捕捉机理提出快慢分支模型,证明了实现时空特征提取过程解耦的重要性。但SlowFast仅在分类前进行了一次时空特征融合,不符合大脑对视频的动作识别过程。本文提出时空解耦模块(spatio-temporal decoupling module,STDM),在STDM内部完成时空特征解耦提取以及时空特征融合,多个时空解耦模块串联,实现时空特征的多级融合,如图4所示。对于输入特征图X,首先对其进行2倍空间下采样操作,其中卷积核尺寸kt=5,ks=3,得到时空融合特征Fds:
图4 时空解耦模块Fig.4 Spatio-temporal decoupling module
Fds=f(X)
(1)
式中:f(·)表示基于3D卷积的下采样操作。之后分为2条并行分支,分别沿时间方向和空间方向进行特征表示,最后经过加权求和得到融合特征Ffuse:
(2)
本文使用4个STDM串联的方式构建网络的主干部分,完成对输入数据的逐级特征提取。其中4个STDM共享相同的权重参数α,各STDM中的时空特征提取操作层数n依次设为2,2,3,3。各层3D卷积时空方向卷积核尺寸kt、ks如表1所示。相对于SlowFast[5]的末端时空特征融合方式,本文通过STDM的串联,在特征提取的中间过程实现了多次时空特征融合,且时空特征的提取过程依然是解耦的,更符合大脑对动作的识别过程。
表1 STDNet结构Table 1 Structure of STDNet
在HMDB51[6]和UCF101[7]数据集上对本文提出的STDM模块和TAM模块的有效性进行验证。在HMDB51数据集上对STDNet的动作识别准确率、参数量和计算量指标进行评估。实验设计上,首先对提出的STDM模块和TAM模块的有效性进行独立验证,之后对STDM和TAM的组合方式进行探索,最后与4种轻量的3D卷积方法进行比较。
HMDB51数据集:共51种动作类别,6 841条视频,分辨率为320像素×240像素,帧率为30 帧/s。该数据集有3种训练集和测试集的划分,本文采用第一种划分进行实验。在数据预处理中,对每条视频重采样若干子片段,其中重采样帧率r为5 帧/s,原帧率为r0时,采样步长p由式(3)确定:
(3)
片段间距设为2帧,每个片段帧数为16,对视频长度不满足重采样的最小帧数要求的样本进行舍弃处理。
UCF101数据集:共101种动作类别,13 320条视频,分辨率为320像素×240像素,帧率为25帧/s或29帧/s。训练集和测试集同样采用官方提供的第一种划分。由于数据量较大,在数据预处理中,对每条视频重采样1个子片段,其他设置同HMDB51数据集一致。
实验细节:本文实验均在1块Tesla V100 GPU上进行,批大小设为16,使用AdamW优化器,相关参数取默认值,使用交叉熵损失函数,最大训练轮数设为100。模型训练过程中,使用随机水平翻转、缩放、随机裁剪等数据增强方法,推理时不进行随机水平翻转。为了防止过拟合,设置早停机制,以模型在验证集上的分类准确率为判断依据。其中对HMDB51数据集上的实验,容忍度设为20,即连续训练20轮模型的分类准确率没有提升,则停止训练,保留最高准确率的训练结果。对UCF101数据集上的实验,容忍度设为10。同时为确保实验结果的可重复性,设置随机数种子为97。使用余弦退火的学习率更新方法,初始学习率设为10-5,最小学习率设为10-10,仅设置1个循环周期。
STDNet以MoViNetA0为基础模型进行构建,其中主干部分由4个模块构成,本文对STDM的位置进行了实验探索。实验时由深到浅,依次从模块4到模块1叠加使用STDM,共形成4种可选方案,如图5(b)、(c)、(d)、(e)所示,图5(a)为基础模型的结构。
图5 4种STDM使用位置方案示意图Fig.5 Schematic diagram of the 4 STDM usage location scenarios
实验结果如图6所示,随着STDM从网络深层到浅层的叠加使用,两种数据集上网络的准确率均呈现逐渐提升的趋势,且均优于基础模型,证明了时空解耦模块的有效性。当4个模块均替换为STDM时,网络的动作识别准确率最高。因此,本文选择该方案4作为STDNet主干部分的最终形态。后续对TAM与STDM组合模式探索实验,也将在该方案的基础上进行。
图6 STDM使用位置探索Fig.6 STDM Usage Location Exploration
TAM为即插即用的模块,本文将其插入3D卷积残差块中,构成新的时间注意力残差块。实验时,将MoViNet系列最小的3个网络MoViNetA0、MoViNetA1、MoViNetA2中的3D卷积残差块均替换为时间注意力残差块。该系列其他网络在训练时需求的显存较大,1块Tesla V100 GPU无法满足实验需求,因此本文仅在最小的3个网络上进行实验。如表2所示,使用TAM后,3个网络的准确率均有提升,证明了本文提出的TAM的有效性。
表2 有无TAM的准确率对比实验Table 2 Accuracy comparative experiment with and without TAM %
TAM作为一种即插即用的模块,可以嵌入任意一层3D卷积残差块,因此也可以插入STDM模块中。本文设计了3种TAM与STDM的组合方式,如图7所示。
图7 三种TAM与STDM结合的方式Fig.7 Three ways to combine TAM with STDM
STDM由若干层3D卷积残差块构成,其中第一层进行2倍空间下采样,之后左右两条分支分别沿时间和空间方向提取特征,一种自然的组合方式就是将TAM插入第一层时空耦合的3D卷积残差块以及空间分支的3D卷积残差块中,以缓解其时间方向上的信息冗余,如图7方案1所示。第二种结合方式是只在STDM的第一层3D卷积残差块中使用TAM,维持时空信息解耦的特性,如图7方案2所示。第三种结合方式是不在STDM中使用TAM,仅在网络中非STDM的部分使用TAM,如图7方案3所示。
3种方案的准确率如表3所示,从表中可以看出,方案3的结合方式具有更好的性能提升效果。TAM对不同帧的特征图进行重要性区分,增强空间信息具有区分性的帧的特征响应,抑制冗余的帧的特征响应。而在STDM中,时空信息被单独提取,在空间信息提取分支中,卷积核在时间方向的尺寸为1,即帧间共享相同的卷积核,空间分支中使用TAM可以增加帧间空间信息的差异性,相同的卷积核可以提取到更丰富的抽象特征,因此方案1较方案2效果更好。但网络在瓶颈段已经对输入数据的冗余空间信息进行抑制,在时空解耦模块的第一层卷积块中再使用TAM,会造成一定的空间信息丢失,相当于减少了视频帧数,不利于视频的行为识别,因此方案3相对于方案1具有更好的表现。本文选择方案3的结合方式作为STDNet的最终形态。
表3 TAM与STDM结合方式的准确率对比Table 3 Comparison of the accuracy of the combined TAM and STDM %
本文在HMDB51数据集上与现有的轻量化动作识别方法进行对比,以准确率为评价指标。为了确保对比实验的公平性,在不使用预训练权重的条件下,采用相同的训练策略进行训练和验证,输入数据的帧数统一设为16帧。其中对比方法SlowFast[5]、X3D[3]、I3D[2]使用mmaction2工具箱的代码实现,MoViNetA0~A2网络使用第三方的Pytorch实现。实验结果如表4所示,STDNet不仅在轻量化方面具有一定的优势,同时具有更好的动作识别准确性,相对于基础模型MoViNetA0,STDNet的准确率指标提升了2.66百分点,且高于比MoViNetA0体量更大的MoViNetA1和MoViNetA2。
I3D、X3D-M、MoViNetA0~A2是常规的3D卷积模型,虽然在模型轻量化方面有了显著的改进,但动作识别的准确性仍受3D卷积时空耦合特性的限制,没有明显的提升。SlowFast的快慢分支结构实现了时空特征的解耦,并在末端进行特征融合。为了平衡快慢分支的速度,快分支对输入数据在时间维度进行重采样,只利用了部分帧的信息,虽然时间维度的空间信息存在冗余,但对于输入帧数较少的场景,如在线动作识别,快分支不能充分利用输入数据的信息,其动作识别准确性也会受到影响。而本文提出STDNet通过时间注意力模块,充分利用输入数据的信息,同时对冗余的空间信息进行抑制。同时由串联的时空解耦模块进行逐级时空解耦的特征提取和融合,更符合人的大脑对动作的识别过程,因此也具有更好的动作识别准确率。
针对视频动作识别任务,本文以实时视频理解模型MoViNetA0为基础模型,提出一种时空解耦的卷积神经网络STDNet,对时空特征的提取过程进行解耦,较常规时空特征耦合的3D卷积网络,拥有更好的动作识别准确性。STDNet的网络结构分为瓶颈段、主干、头部三部分。在瓶颈段,本文提出一种即插即用的时间注意力模块TAM,通过注意力机制抑制冗余的空间信息,同时增强重要的空间信息的表达,为后续主干部分的特征提取过滤冗余的空间信息;主干部分由4个时空解耦模块STDM串联构成,模拟大脑对连续的时空解耦特征的处理过程。在HMDB51数据集上的对比实验表明,时空解耦的方法较时空耦合的方法有更好的动作识别准确性。
由于MoViNetA0的网络结构参数是在给定搜索空间中采用神经结构搜集技术得到的,本文在使用TAM和STDM构建STDNet时,沿用了部分MoViNetA0的结构参数,虽然在准确率指标上有显著的提升,但不一定达到其最优状态,STDNet的网络结构仍有探索的空间。