基于3D-CBAM注意力机制的人体动作识别

2021-03-31 03:48胡荣林
关键词:特征提取准确率卷积

王 飞,胡荣林,金 鹰

(淮阴工学院计算机与软件工程学院,江苏 淮安 223003)

人体动作识别是计算机视觉领域的一项基本任务,它基于一个视频中完整的动作执行来识别人体动作[1]. 随着机器学习研究的进行,人体动作识别的方法可以大致分为两种,一种是基于机器学习人工设计特征的方法[2-3],另一种是端到端的深度学习算法. 与人工制作的动作特征不同,深度学习方法可以从图像中自主学习特征,并且学习到的动作特征比人工动作特征有更好的识别性能. Tran等[4]提出C3D网络模型,通过3D卷积直接从视频序列帧中提取时间和空间特征,但是仍然不能充分利用时间和空间特征. Simonyan等[5]提出了双流卷积网络模型,这个模型由时间和空间网络构成,空间流从静态的视频序列帧中执行行为识别,同时时间流从密集光流形式的运动中训练以识别行为,但是双流网络需要人工提取出视频帧之间的光流信息以便时间流的训练识别. 文献[6-7]通过实验表明长短期记忆网络(long short-term memory,LSTM)能够一定程度上解决卷积神经网络(convolutional neural networks,CNN)不能够表示长时间变化的问题,但是LSTM是从CNN的全连接层获取特征进行处理的,所以缺乏时空特性的细节.

针对上述的问题,本文提出了一种在C3D卷积神经网络上进行改进的融合模型. 整个动作识别流程如图1所示. 首先通过SSD目标检测方法将视频中的人体目标进行分割,然后将原视频序列帧和分割后的人体目标序列帧经过一系列的3D卷积、ConvLSTM、3D卷积块注意力模块(3D-convolutional block attention module,3D-CBAM)和3D池化模块直接提取时间和空间特征,最后将网络提取的特征进行后期融合并分类得到最终的人体动作分类结果.

1 相关研究

人体动作识别有着广泛的应用场景,如视频监控、视频的存储与检索、人机交互和身份识别等[8]. 人体动作识别涵盖了计算机视觉中的许多研究课题,包括视频中的人体检测、人体姿态估计、人体跟踪以及时间序列数据的分析和理解[9]. 随着深度学习在图像分类和目标检测上的成功应用,许多研究者也将其应用于人体动作识别. 与图像空间中的特征表示不同,视频中的人体动作表示不仅描述了人体在图像空间中的形象,而且还必须提取形象和姿态的变化即不仅需要提取外观信息还要提取运动信息. 目前,根据深度学习网络结构划分,可以将外观信息和运动信息结合的具有代表性的深度学习方法分为3种:基于双流卷积网络的方法、基于3D卷积网络的方法和基于长短期记忆网络的方法.

Simonyan等[5]最先提出基于双流卷积网络的方法,首先对视频序列中每两帧计算密集光流,得到密集光流的序列,然后对视频图像和密集光流分别独立地训练CNN模型,两个网络分别对动作的类别进行判断,将两个分支网络的类别得分进行融合,最终得到动作分类结果. 文献[10-11]在双流网络的基础上利用CNN网络进行了空间和时间的融合,并将网络替换成VGG-16,进一步提高了分类准确率. Wang等[12]在使用RGB图像和光流图像的基础上还尝试了RGB差异和翘曲光流两种输入,通过实验证明RGB、光流和翘曲光流的组合效果最好. 张聪聪等[13]将提取的关键帧融入双流卷积网络,相对降低网络复杂度并具有较高识别率. 基于双流网络的方法依赖提取的光流图像,然而光流的计算与存储代价比较昂贵.

Ji等[14]最早提出3D卷积并将其运用到行为识别,提出的模型从空间和时间维度中提取特征,从而捕获在多个相邻视频帧中的运动信息,C3D卷积网络是3D卷积网络的代表,通过3D卷积和3D池化可以对时间信息进行建模,并且可以将完整的视频帧作为输入,并不依赖于任何处理,可以轻松地扩展到大数据集. 但3D卷积仍然不能充分的提取时空特征.

LSTM在时序数据上的处理能力比较强,但如果时序数据是图像,则在LSTM的基础上增加卷积操作,对于图像的特征提取会更加有效. Ng等[15]采用CNN提取帧级特征,再将帧级特征和提取到的光流特征输入到LSTM进行训练得到分类结果. Shi等[16]通过将全连接LSTM扩展为卷积结构,提出ConvLSTM网络,能够更好地捕捉时空相关性,并且始终优于FC-LSTM算法.

本文提出的融合模型综合利用了双流网络、3D卷积网络和ConvLSTM网络3种网络的优势. 将双流网络的主体网络结构替换成C3D,无需计算和存储光流信息,采用ConvLSTM层替代部分3D卷积层,提高对时间特征的利用率,能够更好地捕捉时空相关性. 同时在网络中采用shortcut结构[17]将3D-CBAM注意力机制结合到3D卷积中,提高了C3D卷积对空间特征的利用率.

2 研究方法

2.1 整体架构

本文的融合模型框架如图1所示. 首先对视频数据进行预处理,采用SSD目标检测方法对视频序列帧进行人体目标识别并分割. 然后将分割后的人体目标序列帧作为局部特征提取网络的输入数据用于提取局部运动特征,而原视频序列帧作为全局特征提取网络的输入数据用于提取全局运动特征. 最后将全局特征和局部特征融合并进行分类得到最终的人体动作分类结果.

图1 融合注意力机制的3D卷积网络动作识别框架Fig.1 3D convolutional network action recognition framework with attention mechanism

2.2 局部特征提取

相机自身轻微的抖动和镜头的拉伸都会造成拍摄出的整个视频中存在运动信息,而这些运动信息并不是需要识别的人体运动信息,会影响神经网络训练的结果,所以局部信息的提取将会起到至关重要的作用. 本文采用SSD目标检测方法直接对视频序列帧的人体目标进行检测并分割作为局部信息. SSD采用VGG16作为特征提取的主干网络,在VGG16的基础上新增了卷积层来获得更多的特征图以用于检测. SSD采用多尺度特征图用于检测,比较大的特征图可以用来检测相对较小的目标,而小的特征图用来检测大目标. 借鉴文献[18]每个单元设置尺度或者长宽比不同的先验框,预测的边界框是以这些先验框为基准的,在一定程度上减少训练难度.

从卷积层中提取出作为检测所用的6个特征图,同一个特征图上每个单元设置的先验框是相同的,但不同的特征图设置的先验框数目是不同的. 先验框的设置需要确定其大小和长宽比. 先验框的大小随着特征图大小的降低成线性增加:

(1)

式中,k∈[1,m],m表示特征图个数;sk指先验框大小相对于图片的比例;smin和smax表示先验框与图片比例的最小值和最大值.m设置为5,因为提取的第一个特征图是单独设置的,第一个特征图的先验框大小设置为30.smin和smax的值分别为0.2和0.9. 对于长宽比,实验选取1,2,3,1/2和1/3.

2.3 3D卷积网络模型

本文的特征提取网络由两个部分组成:全局特征提取网络和局部特征提取网络. 这两个网络的基本框架相同,但对应输入的视频帧的维度不一样,全局特征提取网络的输入为112×112×16×3,表示输入的视频帧大小为112×112,每批次输入的视频帧数量为16,通道为3,而局部特征提取网络输入的视频帧大小为64×64;全局特征提取网络中的Pool 1采用的最大池化窗口为2×2×1,步长为2×2×1,而局部特征提取网络中Pool 1采用的最大池化窗口为2×2×2,步长为2×2×2. 所有的3D卷积Conv1,Conv2,…Conv5都采用3×3×3大小的卷积核和1×1×1的步长,激活函数则使用Relu函数. 本文的融合模型在C3D网络的基础上进行改进,将原C3D网络中Conv3b、Conv4b和Conv5b层分别替换为ConvLSTM1、ConvLSTM2和ConvLSTM3层,并舍弃FC7层. 详细的网络结构模型如图2所示.

图2 融合3D-CBAM注意力机制的3D卷积网络模型Fig.2 3D convolutional network model with 3D-CBAM attention mechanism fusion

与LSTM不同,ConvLSTM的输入变换和循环变换是通过卷积实现的,即输入与各个门之间的连接、状态与状态之间由前馈式替换成卷积运算,ConvLSTM的工作原理如下:

it=σ(Wxi*Xt+Whi*Ht-1+Wci∘Ct-1+bi),

(2)

ft=σ(Wxf*Xt+Whf*Ht-1+Wcf∘Ct-1+bf),

(3)

Ct=ft∘Ct-1+it∘tanh(Wxc*Xt+Whc*Ht-1+bc),

(4)

ot=σ(Wxo*Xt+Who*Ht-1+Wco∘Ct-1+bo),

(5)

Ht=ot∘tanh(ct).

(6)

式中,*表示卷积操作,∘表示乘积操作,X1,…,Xt为输入数据,C1,…,Ct为单元输出,H1,…,Ht为隐藏层,it、ft和ot分别为网络中的输入门、遗忘门和输出门,W和b分别表示对应门控的权重和偏置量,σ为sigmoid激活操作.

本文融合模型使用的ConvLSTM层都选择3×3大小的卷积核,进行卷积操作时保留边界处的操作结果,对视频帧的所有像素点进行处理,使得输出的shape和输入的shape相同,采用tanh作为激活函数. ConvLSTM1层将一个人体动作样本分为8个时间点输入即(X1,X2,…,Xt),此时t的值为8,而ConvLSTM2层和ConvLSTM3层将一个人体动作样本分别分为4个和2个时间点输入,每个时间点都有相应的输出,所有的ConvLSTM层都是将所有时间点的结果输出并拼接作为整个ConvLSTM层的输出.

2.4 3D-CBAM注意力机制

CBAM注意力机制是可以直接应用于前馈卷积神经网络的简单而有效的注意模块,由通道注意模块和空间注意模块两个部分组成[19]. 对于卷积神经网络生成的特征图,CBAM从通道和空间两个维度计算特征图的注意力图,然后将注意力图和特征图的对应元素相乘进行特征的自适应学习. CBAM是一种轻量级的通用模块,目前研究者尝试过将其应用到诸如VGG、Inception和ResNet等2D卷积网络中进行端到端的训练. 本文为了提高3D卷积网络的空间特征利用率,提出3D-CBAM注意力机制,具体集成方式如图3所示.

图3 3D-CBAM结构Fig.3 The structure of 3D-CBAM

与2D卷积网络不同的是3D卷积网络多出一个深度维度,在每一次提取空间特征时,需要考虑到深度参数的变化. 对于一个中间3D卷积层的特征图:F3D∈RW×H×D×C,3D-CBAM会按照顺序推理出宽度、高度和深度都为1的通道注意力特征图Mc3D∈R1×1×1×C,以及通道为1的空间注意力特征图Ms3D∈R1×H×W×D. 其中,W、H、D、C分别表示特征图的宽度、高度、深度和通道. 整个过程公式如下所示:

F′3D=Mc3D(F3D)⊗F3D.

(7)

F″3D=Ms3D(F′3D)⊗F′3D.

(8)

3D-CBAM的通道注意力模块关注哪些通道对融合3D网络的最后分类结果起到作用,即选择出对预测起决定性作用的特征,具体步骤如图4所示.首先将输入的特征图F3D分别经过基于宽度W、高度H和深度D的最大值池化和均值池化,然后对分别经过MLP的特征进行基于对应元素的加和操作,再经过sigmoid激活操作,将生成的通道特征图Mc3D(F3D)与输入的特征图F3D进行相乘操作生成最终的通道特征图F′3D,公式为:

图4 3D-CBAM的通道注意力模块Fig.4 Channel attention module of 3D-CBAM

(9)

式中,W0∈RC/r×C,W1∈RC×C/r,σ为sigmoid操作,W0需要经过Relu函数激活. 本文减少率r取值为8,即在最大值池化和均值池化时将通道C变换为C/8,减少参数量,最后再使用全连接变换为原来的通道C.

图5 3D-CBAM的空间注意力模块Fig.5 Spatial attention module of 3D-CBAM

(10)

实验证明,7×7的卷积操作得到的实验效果优于3×3的卷积. 因为是应用于3D卷积且视频序列帧的通道排序格式为channel-last,所以在进行合并操作时需要将张量中axis=4的通道串接,然后进行卷积操作保证axis=4的特征数为1.

3 实验分析

3.1 数据集和评估指标

为了证明本文融合模型的有效性且考虑实验GPU运行内存等因素,在KTH数据集上进行实验,该数据集包含光照变换和相机自身运动的情况,贴合生活场景.

KTH数据集为人类行动数据集,一共有600个视频,视频数据包含6种类型的人类动作,分别是步行、慢跑、奔跑、拳击、挥手和拍手. 由25个对象在4种不同的情况下进行的拍摄,分别是户外s1、户外包含尺度变化s2、户外穿着不同衣服s3以及室内s4,如图6所示.

图6 KTH数据集示例图Fig.6 Sample diagram of KTH dataset

实验选择每个类别中16个对象的视频作为训练集,剩余的9个对象的视频作为验证集,每完成一次全部样本的训练就进行一次验证,总共进行50次操作,获得局部特征提取网络的权重和全局特征提取网络的权重,测试时调用模型权重提取特征并融合通过SVM分类获得最终的识别准确率. 本文将最终的识别准确率A作为动作识别的评估标准,公式如下:

(11)

式中,NTP为将正类样本预测为正类个数,NTN表示将负类样本预测为负类个数,NFP表示将负类样本预测为正类个数,NFN为将正类样本预测为负类个数.

3.2 模型训练

3.2.1 数据处理

获取每一个视频的横纵比以及视频帧的总数,依次读取视频的每一帧,将每一帧由BGR格式转换为RGB格式,帧数据转换为数组形式并进行归一化处理. 加载SSD300的权值文件,利用其模型与权重对每一帧中的人体目标进行分割,最后将原视频帧和分割后的视频帧分别统一尺寸并保存,实验中原视频帧的大小为112×112,分割后的视频帧大小为64×64. SSD300的权重文件是以VOC数据集训练的,能够检测20种目标,实验只需检测人体目标即可.

选取16人作为训练数据,每个视频选择4段连续帧,每段共有16帧,则训练数据集一共有1 536组连续帧,剩余的9人作为验证集,每个视频选择1段连续帧,同样是每段有16帧,一共有215组连续帧.

3.2.2 模型训练参数设置

在Linux系统搭建的keras平台下进行试验. 实验中使用训练集中的全部样本训练次数epoch为50,考虑训练时GPU内存的情况,每一批次训练选取的样本数量为10,实验训练优化器采用SGD随机梯度下降,SGD使用nesterov动量,动量参数为0.9,用于验证模型是否快速收敛;初始学习率lr为0.005,训练时通过自定义回调函数的方法对学习率进行衰减,epoch为20、30和40时学习率分别为lr/10、lr/100和lr/1 000,在训练开始时使用较大的学习率可以使训练快速收敛,随着训练的过程逐渐降低学习率有助于找到最优解. 为了避免过拟合,对每一层卷积层使用L2正则化,并且在全连接层前采用值为0.5的dropout.

3.2.3 模型测试

局部特征提取网络和全局特征提取网络训练后的结果都保存在二进制文件中,该文件包含模型的结构、模型的权重、训练配置(损失函数,优化器等)和优化器的状态. 通过迁移学习的方法将测试所用的样本经过文件存储的模型和权重处理获得测试集人体动作特征,然后将训练得到的局部特征和全局特征进行融合,采用(欧几里德)L2范数对融合的特征进行归一化处理,最后用SVM进行特征分类获得最终的动作分类结果. 其中,SVM是构建的软间隔分类器. 分类器的惩罚系数设置为10,对边界内的噪声容忍度比较小,分类准确高;采用线性核函数进行计算分类;启用启发式收缩方式,能够预知哪些变量对应着支持向量,只需要在这些样本上进行训练即可,其他样本可以不予考虑,这种方式不仅不影响训练结果,还降低了问题的规模有助于迅速求解,起到一个加速的效果. 停止训练的误差精度设置为0.001. 采用一对多法,即训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样n个类别的样本就构造出n个分类器,分类时将未知样本分类为具有最大分类函数值的那类.

3.3 实验结果与分析

本文方法采用的是3D卷积网络对动作进行识别,相较于目前典型的双流网络减少了前期对视频的预处理操作,不需要单独提取出视频中的光流特征. 从表1中可以看出本文提出的方法与其他的方法相比取得更好的识别效果.

表1 不同方法在KTH数据集上的动作识别准确率Table 1 The action recognition accuracy of different methods on KTH dataset

表2表明是否采用局部特征和全局特征融合的方法在动作识别中的准确率结果. 从表2中可以看出本文的方法无论是局部特征网络的准确率、全局特征网络的准确率还是两者融合后的动作识别准确率都比C3D网络和ConvLSTM网络的准确率高,同时局部特征与全局特征融合后的准确率比单独的全局特征的准确率高,这说明局部信息的提取弥补了单独全局特征提取的运动信息不足的缺点.

表2 网络模型中局部特征和全局特征是否融合的动作识别准确率比较Table 2 Accuracy comparison of action recognition based on fusion of local and global features or not in network model %

为了证明3D-CBAM注意力机制在本文的融合模型中的有效性,实验分别对其是否使用注意力机制进行了对比实验,表3展示了是否使用3D-CBAM注意力机制的动作识别准确率的结果. 由表3可以看出3D-CBAM注意力机制的添加使得C3D网络和ConvLSTM网络对动作识别的准确率都得到了显著的提升. 本文方法使用3D-CBAM注意力机制比不使用注意力机制的动作识别准确率高,该实验证明了3D-CBAM注意力机制对人体动作识别任务的有效性.

表3 3D-CBAM注意机制使用与否的动作识别准确率比较Table 3 Comparison of motion recognition accuracy of 3D-CBAM in use or not %

图7为部分实验训练过程和测试结果的可视化展示. 因为本文方法中的局部特征网络和全局特征网络是单独训练的,且后期融合采用的是SVM,所以仅采用全局特征网络准确率变化曲线与其他方法对比,可以体现出主体网络的优势. 图7(a)、图7(b)和图7(c)分别为C3D、ConvLSTM和本文融合模型中全局特征网络准确率变化曲线,点线为训练数据的准确率变化曲线,折线则是验证数据集的准确率变化曲线,很明显可以看出本文的融合模型的全局特征提取网络在验证集上的准确率要高于ConvLSTM网络,虽然与C3D网络的准确率相近,但是在迭代10次内的波动范围更小,说明可以更好的学习时空特征,3种网络都是迭代次数在20~30次之间达到最高精确度. 图7(d)、图7(e)和图7(f)为测试时C3D、ConvLSTM和本文融合模型的混淆矩阵热图. 从混淆矩阵热图中可以看出,标签为handwaving的准确率本文提出的融合方法已经达到100%,除了标签为running的准确率相比于其他两种方法低,其余的标签的准确率都有明显的提高,最少提高了8%,最多提高了31%.

图7 实验结果数据可视化Fig.7 Data visualization of experimental results

4 结论

针对人体动作识别现有方法的优缺点,本文提出了一种融合模型. 该模型在C3D网络的基础上加入了ConvLSTM模块并融合了3D-CBAM注意力机制,通过局部特征提取网络和全局特征提取网络提取出局部特征和全局特征并进行融合提高动作识别的准确率. 实验在KTH数据集上进行,实验结果表明该模型对于人体动作识别能够达到很好的识别效果. 本文虽然采用轻量级的3D-CBAM注意力机制,但如何缩减参数量和计算量仍然是需要进一步研究和解决的问题.

猜你喜欢
特征提取准确率卷积
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案