基于混合注意力机制的视频人体动作识别

2023-09-14 09:31朱联祥牛文煜仝文东邵浩杰
计算机技术与发展 2023年9期
关键词:注意力卷积神经网络

朱联祥,牛文煜,仝文东,邵浩杰

(西安石油大学 计算机学院,陕西 西安 710065)

0 引 言

随着数字技术的发展和视频设备的普及,互联网上的视频信息在飞速增长,视频已成为重要的信息载体。为应对视频信息爆发性的增长,理解和分析视频以从中挖掘出所需要的信息就变得愈来愈重要。识别和理解视频中人物的行为和意图是人机交互、机器人技术、视频监控、视频检索等领域的重要内容,近年来已发展成为计算机视觉领域的一个重要研究方向。视频人体动作识别作为其中的一个重要课题,研究的是如何通过预先分割好的时域序列进行时空信息建模,从而学习到视频中所包含的人体动作与动作类别之间的映射关系[1]。在过去的几十年,研究人员已提出大量的视频人体动作识别方法,在较大程度上解决了不同层次的问题。

目前人体动作识别的方法主要分为两类[2-3]:第一类是手工表示法,即首先使用手工方法设计并提取特征,再采用传统的机器学习方法对其进行分类,如基于方向梯度直方图(Histogram of Oriented Gradient,HOG)、光流梯度方向直方图(Histogram of Optical Flow,HOF)、运动边界直方图(Motion of Boundary History,MBH)等特征描述符的方法;第二类则是基于深度学习的方法,即使用神经网络进行特征的提取与识别。

动作识别本身的研究始于20世纪80年代的基于整体特征表示法[4],如轮廓特征和光流特征等。自从2003年以来,局部表示法开始应用于动作识别,如改进密集轨迹(Improved Dense Trajectory,IDT),其在手工表示法中取得了非常好的效果。

从2012年以来,AlexNet[5]在图像分类上的成功掀起了人们对深度学习研究的高潮,随后卷积神经网络被广泛应用于图像领域的各类任务,其在图像分类、图像识别、场景分割等任务中都有很好的性能。卷积神经网络在图像处理领域的成功激起了基于卷积神经网络的方法在视频领域的研究。2014年Simonyan等人[6]提出了双流卷积网络结构,该网络通过将动作识别任务分为空间和时间两个流,其中空间流从视频帧中提取空间信息,时间流从密集光流中提取运动信息,最后通过双流特征的融合来进行动作的分类与识别。该网络使得二维卷积神经网络能够用于视频动作识别任务,但却需要研究者提前从视频帧中提取出光流信息。2015年Du Tran等人[7]构建的C3D卷积神经网络模型是一种简单高效的时空特征学习方法,可以直接从视频帧中提取空间和时间特征。但三维卷积与二维卷积类似,只能在局部邻域进行操作,因此在空间中不能提取到全局特征,在时间维度也不能提取到长时序特征,从而无法充分利用视频帧中的空间和时间信息。此外,以往的研究一般都只是通过增加网络深度来近似达到全局特征提取的目的,但这些方法会带来很多问题,如容易产生过拟合现象、梯度传播困难,以及网络参数量增加显著等。

针对上述存在的问题,该文提出一种基于C3D卷积神经网络的改进模型,通过在原C3D网络中引入注意力机制,并对其注意力机制添加全局上下文建模操作,使得改进后的网络能够利用到全局特征,从而建立起三维特征中每个位置与其他位置之间的关系,而不是仅仅局限于局部的邻域,实现了网络性能的提升。

1 基于三维卷积网络的视频动作识别研究与进展

近年来,随着深度学习的蓬勃发展,许多研究学者将基于深度学习的方法应用于视频人体动作的识别任务,其中应用卷积神经网络进行动作识别更是取得了长足进步。Ji等人[8]通过将二维卷积扩展到三维卷积,使得卷积能够从相邻的视频帧中提取空间和时间两个维度的信息,从而拥有了时空和空域的综合建模能力,更加有助于视频特征的学习。Du Tran等人[7]提出的C3D卷积神经网络则是一种简单高效的时空特征学习方法,可以直接从视频数据中提取时域和空域特征。吕淑平等人[9]在C3D基础上引入时空分离卷积和BN层,使得网络更具表示复杂性的功能,并且解决了网络结构加深使梯度消失的问题。Joao Carreira[10]提出将在ImageNet中预训练的权重扩展到视频动作的识别,并在视频动作数据集上进行微调的思路,据此设计了一种将二维卷积网络扩展到三维的I3D模型。由于视频三维信息高度的复杂性,Sun Lin等人[11]提出了分解时空卷积神经网络,将原有的三维卷积分解为在空间层进行二维空间卷积,在时间层进行一维时间卷积,减少了网络的参数量。进一步,Yang Hao等人[12]将三维卷积核分解为非对称单向三维卷积来逼近传统的三维卷积,通过引入多尺度三维卷积分支,构建了局部三维卷积网络。

卷积神经网络定义了一个非常强大的特征提取模型,卷积计算通过融合局部区域中的空间和通道信息来构建特征。为了提高卷积神经网络的性能,目前的研究主要从深度、宽度和基数三个方面来提升卷积神经网络的表征能力。从LeNet网络开始到深度残差网络[13],网络的深度逐渐加深,通过增加网络的深度增强网络对于特征的表征能力是一种直观简单的扩展方法。GoogleNet[14]则是通过在模型的每一层采用不同大小的卷积核,以增加模型宽度的方式来增强模型的表征能力。Chollet F[15]和Xie Saining[16]采用分组卷积的思想,卷积层的每一组卷积操作都可看作是一个“基数”,通过将每一层的卷积操作组数(基数)增加的方式对网络性能进行提升。

然而除了深度、宽度和基数这三个因素以外,还可以使用注意力机制来增加网络的表征能力,以使其更加关注重要的特征,而抑制掉不必要特征。注意力机制源于人类视觉系统。当人类在观察外部环境时,不同的事物会对人们的认知产生不同程度的影响,而人类则可以通过仅关注所需要注意的事物来获取对外界的认知。在计算机视觉领域,不同的任务使得图像的不同区域对最终任务产生不同的影响。注意力机制正是通过网络学习权重系数,并以加权的方法对图像的不同区域进行不同程度的强调,同时抑制不相关区域的一种方法。

目前计算机视觉领域的注意力机制可以分为三类,即通道注意力、空间注意力和自注意力。2017年,Jie Hu等人[17]提出的SE-Net(Squeeze-and-Excitation)网络,是通过构造“Squeeze-and-Excitation”(SE)模块来建模通道间的相关性。但该方法只是通过对输入特征进行空间上的全局最大池化操作来压缩其空间维度,因而不能建立起特征在空间维度上每个位置与其他位置的远距离依赖关系。2015年,Max Jaderberg等人[18]提出的空间变换网络(Spatial Transformer)则可在保留关键输入信息的同时,将信息输入变换到另一个空间,以定位图片的关键信息及其位置,实现了对图像空间通道信息的提取。CBAM[19]注意力机制则是在SE-Net上的进一步扩展,增加了空间注意力模块,使得网络能够对空间域的信息进行强调。王飞等人[20]通过将二维的CBAM注意力机制进行膨胀,扩展为三维注意力机制,并采用shortcut结构的方式融合到三维卷积神经网络中,加强神经网络对视频的通道和空间特征提取。此外,由于卷积运算只能用于处理局部的依赖关系,Wang Xiaolong等人[21]构造的非局部Non-Local网络可用来捕获远程的依赖关系。对于拥有时序的数据,如语言、视频、语音等,远程依赖关系是其建模的关键。

卷积运算在空间和时间上都只是处理局部的邻域,只在局部区域内建立起像素间的关联,因而只有通过网络深度的增加,重复地使用卷积操作,才能建立起对图像全局的理解。这无疑增加了计算的开销,效率低下且很难优化。而通过使用Non-Local操作,则可以在不增加网络深度的前提下提取到远程的依赖关系。然而由于其实际上建立起的是特征中每一位置与其他所有位置间的关系,因而计算量会很大。而Huang Zilong等人[22]提出的criss-cross操作,则只计算特征中每个位置与其同行同列位置间的关系,通过两次的criss-cross操作,便可间接计算出每对位置间的关系,从而使得网络参数量大大减少。Cao Yue等人[23]通过将Non Local和SE-Net结合起来,构建了一种全局上下文模块,使得SE-Net通道注意力机制具有了全局上下文建模的能力。

在以上研究进展的基础上,该文提出的模型将C3D与注意力机制相结合,通过在通道注意力机制和空间注意力机制中使用全局操作,使得网络具有了全局建模的能力,对视频的三维特征可以在时域和空域均可建立其远程的依赖关系,提高网络的表征能力。

2 基于混合注意力机制融合C3D网络的视频动作识别模型

2.1 整体模型结构

图1所示为基于混合注意力机制融合C3D网络视频人体动作识别模型的整体结构。由于三维卷积神经网络可直接作用于视频帧序列,从而从多个相邻帧中提取出时空特征,因此采用C3D卷积神经网络作为其特征提取网络。首先,对视频数据按照间隔N(如文中的取值为4)进行抽取以实现预处理,然后输入到C3D网络进行空域和时域特征的提取。对于提取到的特征,分别通过空间和通道注意力机制建立其空间和通道信息通路,进而通过两种特征的融合处理来实现动作目标的识别与分类。

图1 基于混合注意力机制的三维卷积神经网络模型

2.2 C3D网络模型

C3D的模型结构如图2所示,一共由8个卷积层,5个最大池化层,2个全连接层和1个Softmax输出层组成。输入数据大小为3×16×112×112,其中3为通道数,分别代表R、G、B视频帧,16为每次输入的视频帧数,这些视频帧是按照间隔N=4对视频片段进行抽取得到。112×112是对抽取的视频帧进行随机的crop之后得到的输入视频帧大小。所有卷积层采用的都是3×3×3大小的卷积核,步长为1×1×1。除了Pool1层池化核大小为1×2×2,步长为2×2×2之外,其余池化核大小均为2×2×2,步长为1×2×2。在完成最后一次池化操作后,将输出的三维特征进行Reshape操作展开为一维,然后将其送入到全连接层,每个全连接层都有4 096个输出单元,激活函数采用ReLu函数。最终的特征分类使用Softmax。

图2 C3D网络结构

C3D采用三维卷积和三维池化,对视频帧序列提取得到的是三维特征,该文在网络最后池化层Pool5后插入注意力模块,将输出的三维特征送入注意力网络中得到特征的注意力图,然后将带有注意力的特征图与原输入特征相加得到最终的带有注意力的特征,最后将该特征输入到全连接网络进行动作的最终分类与识别。

2.3 混合注意力机制

CBAM注意力机制是在SE-Net上的进一步扩展,并且增加了空间注意力模块。笔者发现,将通道注意力模块和空间注意力模块以先后顺序排列比并行排列有更好的效果。因此,在网络中先后使用通道注意力机制和空间注意力机制构建混合注意力机制模块。与二维卷积神经网络相比,因为采用C3D三维卷积神经网络对视频动作进行识别增加了一个时间维度,所以在设计其注意力机制时需要考虑到维度的变化。由于原通道注意力机制是用于二维图像数据,采用的是二维卷积,但视频数据是三维数据需要考虑时间维度,所以需要对其进行三维化扩展,将原注意力机制的卷积和池化操作替换为三维卷积,使之能够适用于三维卷积神经网络。具体注意力机制在模型中的使用方式如图3所示。

图3 注意力机制结构

视频数据相比于图像数据多了一个时间维度,在使用三维卷积网络对其进行特征提取后的输出特征会多出一个时间维度T。对于一个三维卷积的特征图F∈RC×T×H×W,这里的C、T、H、W分别为C3D网络最后一层池化输出的三维特征的大小。注意力机制会先计算出通道注意力特征图MC∈RC×1×1×1,然后将特征图MC对输入特征F进行加权得到特征F'∈RC×T×H×W,再将特征F'输入到空间注意力模块,生成空间注意力特征图Ms∈R1×T×H×W。由于这里是直接将空间注意力模块由二维直接扩展到三维,所以Ms在计算过程中包含有时间维度的信息,即时域和空域两个维度的信息,最后将Ms对F'进行加权得到最终的注意力图F'∈RC×T×H×W。整个过程可以表示为:

F'=MC(F)⊗F

F''=MC(F')⊗F'

(1)

式中,⊗表示元素乘法,F''是最终得到的注意力图,每个注意力模块的具体细节在下文会进行具体介绍。

2.3.1 通道注意力模块

通道注意力机制利用通道之间的关系来生成通道注意力图,通过加权来强调不同通道的重要性。在SE-Net中只使用了最大池化来压缩空间维度,然后计算各通道的权重。CBAM注意力机制在其基础上又增加了平均池化来压缩空间维度,但也造成了很多信息损失。在GCNet中,笔者通过将Non-Local网络和SE-Net网络相结合,构建了全局上下文模块,使得网络能够建立长距离的依赖关系。网络首先对输入数据在空间维度上进行上下文建模,然后计算各个通道的权重,充分结合了Non-Local全局上下文建模和SE-Net轻量的优点。原注意力机制是二维注意力机制,只需要考虑空间上H、W两个维度信息。所以在应用于视频数据时需要对其进行三维化扩展,首先需要将其中的二维卷积替换为三维卷积,在进行Reshape操作时,需要考虑到时间维度,T、H、W将作为包含时空信息三个最基础的维度。对于输入的三维视频数据F∈RC×T×H×W,首先使用一个卷积核大小为1×1×1卷积操作,将输入特征F合并为一个通道,然后对其使用Reshape操作置为大小为THW×1的张量,另外将输入特征Reshape为C×THW后通过Softmax函数得到一个特征张量,然后将两者做内积运算后输入到一个MPL中获取通道之间的依赖关系,使用Sigmoid激活得到通道注意力特征图MC(F),用公式表示为:

Mc=σ(MLP(R1(F)⊗R2(conv(F))))

(2)

式中,σ表示Sigmoid函数,conv表示1×1×1卷积操作,R1表示将维度为C×T×H×W的输入特征置为C×THW的Reshape操作,R2表示将经过1×1×1卷积操作后的维度为1×T×H×W的特征置为THW×1的Reshape操作。该通道注意力模块增加了上下文建模操作,首先通过Reshape操作将输入特征按照不同通道进行展开,然后再将输入特征经过1×1×1卷积进行通道压缩后,再按照通道进行Reshape操作展开,将两者进行内积运算可以获得不同通道特征元素之间的关系,即不同通道元素之间的远程关系。最后将其输入一个MLP中通过学习调整不同通道的权重。该网络采用自注意力机制的思想对特征建模特征中元素间的关系,能够对每一个通道建立该通道上所有元素之间的依赖关系,使得网络相比于卷积操作更能建立起远程依赖关系。

3D Global Context通道注意力模块如图4所示。

图4 3D Global Context通道注意力模块

空间注意力机制结构如图5所示。首先,将经过通道注意力机制加权后的特征图F'∈RC×T×H×W分别经过两个1×1×1卷积核的卷积层,分别生成两个特征Q和K,其中{Q,K}∈RC'×T×H×W,这里C'表示经过卷积后的{Q,K}的通道数,文中C'取C/8,再将二者经过Affinity操作生成特征图A∈R(T+H+W-2)×T×H×W。对于特征Q的每一个位置u,包含三个坐标值(t,x,y),在特征K中提取和位置u处于同行同列的特征向量,即特征K中以u为中心在T、H、W方向的特征向量的集合Ωu。设Ωi,u∈RC'是Ωu中的第i个元素,Affinity操作的定义如下:

图5 3D Criss-Cross空间注意力模块

(3)

其中,di,u∈D,D∈R(T+H+W-2)×T×H×W,表示特征Qu和Ωi,u,i={1,…,(T+H+W-2)}的相关度。对经过Affinity操作后的特征使用Softmax函数计算得到特征图A。然后,在F'∈RC×T×H×W上又使用一个1×1×1的卷积操作生成一个特征V∈RC×T×H×W。对与Vu∈Rc中的每一个位置u,可得到Φu∈R(T+H+W-2)×c,表示特征V中以u为中心在T、H、W方向特征向量的集合。Aggregation操作如下:

(4)

3 实验结果与分析

3.1 数据集和评价指标

3.1.1 数据集

为验证改进模型的有效性,在UCF-101和HMDB-51两个大型视频数据集上进行了对比实验。UCF-101数据集包含101种人体动作类别,归属于五种类型:人与物体交互、仅身体运动、人与人交互、乐器演奏、运动等。一共有13 320个视频片段,累计时长超过27小时。视频从YouTube下载,所有视频片段都有25 FPS的固定帧率和320×240的分辨率。数据集中的视频片段具有背景杂乱、光照条件差,以及很多低质量帧等特点。

HMDB-51包含51个动作类别,每个类别至少包含101个视频片段,一共包含了从数字化电影到YouTube等各种来源提取的6 766个含有手动注释的视频片段。这些动作可以分为五种类型:一般面部动作、面部动作配合物体操作、一般身体动作、与物体互动身体动作、人类互动肢体动作。视频帧率均为25 FPS,分辨率为320×240。该数据集由于视频片段来源复杂,视频帧中包含噪声信息较多,加上摄像机运动,不同拍摄角度等因素,其动作识别与分类相较于UCF-101更加具有挑战性,一般来说在分类上的效果相较于UCF-101也更低。

3.1.2 评价指标

实验将视频数据集划分为训练集、验证集、测试集三个部分,占比分别为60%、20%、20%。每完成1次训练就对模型进行1次验证,每完成5次训练对模型进行1次测试。实验一共进行100次训练,最终通过Softmax函数对特征进行分类。将最后的识别准确率Acc作为评价指标,公式如下:

第三,要想在高等院校“C语言程序设计”课程上机实验教学环节过程中获得良好教学效果,应结合实际教学工作中的学习需求、涉及的教学内容,为学生编写和呈现内容新颖且专业的实验指导书文本,使学生在获得专业化和系统化理论知识指导的条件下,达到“C语言程序设计”课程上机实验教学环节的最佳学习效果。

(5)

其中,TP(True Positive)表示实例是正例被判定成正例的个数;FN(False Negative)表示将正例判定为负例的个数;FP(False Positive)表示负例被判定为正例的个数;TN(True Negative)表示负例被判定成负例的个数。

3.2 数据处理及训练过程

由于三维卷积神经网络不能直接处理视频信息,必须将视频中的帧抽取出来,将部分帧作为网络的输入。实验中采用间隔抽帧的方式,对于每一个视频片段,每隔4帧抽取1帧,一共抽取16帧作为网络输入。如果视频时长较短,以4帧间隔不能抽取到16帧,则可将抽取间隔缩小直至可以抽取到16帧为止。原数据集视频分辨率为320×240,在抽取的同时需要将每一帧大小调整为128×171,在将数据输入到网络之前还需要对每一帧进行大小为112×112的随机crop操作。

在Linux操作系统的PyTorch环境下进行实验,所有数据集的训练轮数均为50。考虑到训练所用GPU显存的限制,benchsize设为6。采用随机梯度下降法进行优化,学习率为0.001,损失函数采用交叉熵损失。为避免模型过拟合,在全连接层采用值为0.5的dropout。模型使用在Sport1M数据集上预训练的权重进行训练,该数据集包含了100万个YouTube视频,一共有487个类别,每个类别有1 000到3 000个视频片段,这是比UCF-101和HMDB-51更大的视频动作数据集,通过在Sport1M数据集上进行预训练然后在UCF-101和HMDB-51数据集上进行参数调整,可以获得更快的收敛速度和较高的准确率。

3.3 结果分析

3.3.1 混合注意力机制使用的对比

为了证明该文混合注意力机制在融合模型中的有效性,分别对C3D网络使用3D-CBAM、单独使用通道注意力机制、单独使用空间注意力机制和使用混合注意力机制进行对比。表1展示了使用不同注意力机制对融合模型的动作识别准确率的结果。由表1可以看出,注意力机制的添加使得C3D网络对动作识别的准确率得到了明显的提升。与3D-CBAM注意力机制相比,构建的混合注意力机制对网络识别准确率的提升更高。混合注意力机制与单独使用通道或空间注意力相比,识别准确率更高。实验表明该文构建的混合注意力机制对融合模型识别精度提高是有效的。

表1 不同注意力机制的对比 %

3.3.2 不同模型对比

分别对C3D网络和文中改进模型以及当前比较典型的方法进行实验对比,结果如表2所示。其中I3D和C3D是基于三维卷积网络的方法,Aymmetric 3D-CNN和文献[9]是基于时空分离(2+1)D卷积,文献[20]和文中方法是基于三维卷积网络融合注意力机制的方法。可以看出,文中方法相较于三维卷积和时空分离(2+1)D卷积具有更高的准确率。与文献[20]的3D-CBAM注意力相比,该文的混合注意力机制对于网络识别准确率的提升更高。

表2 不同方法的对比 %

但是对于HMDB-51的识别,相比于Aymmetric 3D-CNN方法,文中方法的分类准确率较低,因为在该网络中采用的是(2+1)D卷积方式,它将三维卷积分解为时间的一维和空间的二维。在文献[9]中作者经过实验说明这种采用时空分离(2+1)D卷积的网络结构更易于优化器寻优。而且该网络在训练中使用了光流图作为输入特征,该特征包含运动信息,对识别效果有一定的提升。

3.3.3 UCF-101实验可视化及结果分析

图6展示了文中方法和原C3D方法在UCF-101数据集上的准确率变化曲线。可以看出,在使用注意力机制后,文中方法识别准确率更慢收敛。在20轮后原C3D方法已基本收敛,而文中方法的识别准确率仍继续上升,直到25次左右才基本处于收敛状态。自始至终文中方法的识别准确率都高于原C3D方法。

图6 UCF-101准确率变化曲线

与准确率曲线相互印证,图7展示了使用原C3D网络和文中方法的损失变化曲线。文中方法的损失函数值更低,也是在迭代25次左右才达到收敛状态。然而原C3D网络的参数总量为78.41×106,文中模型的参数总量为92.60×106,二者相比文中方法的参数量有明显增加,相应地也就需要更多的训练时间。

图7 UCF-101损失变化曲线

3.3.4 HMDB-51实验可视化及结果分析

在HMDB-51数据集上进行了同样的训练,图8展示了文中方法和原C3D方法的准确率变化曲线。可以看出,在使用注意力机制后,迭代进行到30次左右基本上达到收敛,准确率也有了明显提升。图9是损失变化曲线的对比,可以看出文中方法的损失值更低。表明注意力机制的引入对于HMDB-51数据集同样有效。此外由于HMDB-51数据集有更多的相机位移、视点变化等,因此分类效果相对更低。

图8 HMDB-51准确率变化曲线

图9 HMDB-51损失变化曲线

4 结束语

针对三维卷积神经网络用于视频动作识别的优缺点,提出了基于C3D卷积神经网络的模型改进:在原网络中引入注意力机制,分别通过通道注意力机制和空间注意力机制对特征的通道和空间相对重要位置进行加权。实验在UCF-101和HMDB-51大型视频数据集上进行,结果表明,引入的通道注意力模块和空间注意力模块对最终的识别效果均有明显提升。但所提模型需要在其他大型数据集上进行预训练才会取得较好的结果,且注意力机制的引入带来了计算量的增加,网络的参数总量从78.41×106增加到92.60×106。如何在提升识别效果的同时缩减网络的计算量将是未来研究需要解决的问题。

猜你喜欢
注意力卷积神经网络
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定