基于深度残差网络的人体行为识别算法研究
2022-03-30席志红
冯 宇,席志红
(哈尔滨工程大学 信息与通信工程学院,哈尔滨 150001)
0 引言
近年来随着对于计算机视觉领域研究的不断深入,越来越多的技术成果在不断满足人们生产生活的需求,人体行为识别技术也随之受到越来越多的关注,应用场景也变得越来越丰富,例如虚拟现实技术、视频监控领域和医疗健康等方面,目前研究人体行为识别技术的方法主要有基于深度学习的方法和传统的基于手工提取特征的方法。
基于手工提取特征的方法实际上就是对特定的视频图像采用传统的机器学习算法先提取其中的人体行为目标局部或者全局特征,然后对提取的特征采取编码以及规范化的形式,最后通过训练构建好的模型来得到预测分类结果。目前在传统方法中采用局部特征提取的方法应用较为广泛,其中Laptev等[1]通过将Harris特征角点检测方法扩展到三维时空中,提出了时空兴趣点(STIPs,spatio- temporal interest points)。之后通过不断对时空特征的研究发现可以将STIPs与方向梯度直方图(HOG,histogram of oriented gradient)[2]等局部描述子结合,采用聚类降维以及词袋模型和分类器相结合的方法进行姿态识别。Richardson等[3]提出了马尔科夫逻辑网络(Markov Logic Networks),该网络对动作之间的时空关系进行描述,改善了复杂人体姿态情况的识别效果。Wang等采用光流轨迹对视频帧间的时序关系进行模仿,提出密集轨迹(DT,dense trajectory)算法[4]用于人体行为识别,为去除由于相机运动而对特征提取造成的影响,则对光流图像进行优化,进一步提出改进的密集轨迹(iDT,improved dense trajectory)算法[5]用于人体行为识别。虽然基于手工提取特征的方法相对较为成功,但是该类方法是针对固定视频设计提取特征,无法满足输入视频的通用性,并且计算速度非常慢,很难满足现实世界中实时性的要求。
基于深度学习的行为识别方法主要是先通过设计好的神经网络对输入视频进行自动行为特征提取并不断训练模型,之后将训练好的模型用于分类识别。目前基于深度学习的行为识别算法主要通过三维卷积神经网络、双流网络、循环卷积神经网络和注意力网络进行构建。早在2013年Ji等[6]通过详细的实验提出了使用三维卷积神经网络提取视频的时空特征来对人体行为进行有效识别。随后Simonyan等[7]利用视频的图像帧和光流帧分别输入空间流网络和时间流网络来提取时空信息,提出用于行为识别的双流卷积架构。Tran等[8]通过系统的实验研究找到了最适合行为识别的三维卷积核尺寸,并提出C3D网络用于直接提取时空特征进行行为识别。Donahue等[9]利用循环卷积神经网络(RNN)能够针对时间序列很好建模的优势,提出长时循环卷积网络(LRCNN)用于视频的行为识别。Li等[10]提出带有视觉注意力机制的深度视觉注意模型用于行为识别。Liu等[11]通过将视频帧内空间信息的稀疏性引入到空间维度上,提出一种轻量级的组帧网络(GFNet)用于行为识别。Yang等[12]提出一种即插即用的特征级时间金字塔网络(TPN)用于行为识别。
虽然基于深度学习的人体行为识别方法较手工提取特征的方法快捷、方便,并且时效性好,但是在实际应用中也很容易受到光线、背景杂乱、摄像视角等复杂环境因素影响,所以还需要在模型抗干扰方面继续优化深度神经网络模型。
本文基于C3D网络[8],提出一种基于C3D注意力残差网络模型用于人体行为识别。本文算法在C3D原始网络基础上通过三维卷积核的合并与拆分以及全局平均池化来大量减少网络参数,达到压缩网络的效果,并且使用软池化(SoftPool)代替原有的最大池化(Maxpool)操作,以最大程度减小池化的信息损失,之后采用分组归一化(GN,group normalization)对网络进行正则化处理,为进一步提取深度特征采用全预激活形式的残差结构来增加三维卷积层,最后为能更好的关注视频的关键帧,在网络中引入时空通道注意力模型来提高网络模型的识别能力和抗干扰性能。
1 C3D神经网络
在本文中提出一种基于C3D注意力残差网络的行为识别模型来改善原始C3D网络的不足。将在本节中简要介绍原始C3D网络,并在下一节介绍基于残差网络和注意力网络的人体行为识别算法。
C3D神经网络是非常经典的通过三维卷积直接提取时空特征并用于视频人体行为识别的卷积神经网络。该三维卷积网络证明了比二维卷积网络更适合时空特征的学习,不需要复杂的提取视频光流帧图象。该网络还通过采用多种卷积核尺寸大小进行实验,验证了采用大小为(3×3×3)的卷积核性能最好。C3D网络是一个总共具有10层的深度卷积神经网络,其中具有8层的三维卷积层,2层的全连接层。该网络是以图像尺寸调整为(112×112)的3通道16帧视频图像作为输入,并且网络中为了能够更好的提取特征,则将特征提取与池化功能分开,即网络中所有三维卷积层只进行提取时空特征,使得经过卷积层的输入与输出尺寸相同,池化功能则全部采用三维最大池化层来完成。为了使得时间信息不被过早地丢失,因此仅第1个三维池化内核的尺寸为(1×2×2),而后续的三维池化内核均为(2×2×2)。最后将提取到的特征输入到后面的2层全连接层中进行特征分类,并最终通过Softmax分类器将视频中各个人体动作类别的分类概率进行输出。C3D神经网络的整体结构如图1所示。
图1 C3D网络结构
2 人体行为识别算法
2.1 基于残差网络的人体行为识别算法
残差网络最早由He等[13]为解决更深层网络更难训练的问题而提出的一种能够优化网络训练的结构,其中的跳转连接也正是该结构能够优化训练网络的关键。由于残差网络的诞生,避免了为提取深度特征而增加卷积层所引起的网络退化问题,同时也进一步发展了人体行为识别领域。Tran等[14]通过将三维卷积核应用到二维残差网络中提出了新型的Res3D网络架构。Qiu等[15]采用伪三维块(P3D)替代原始二维残差网络的二维残差单元,提出一种伪三维残差网络(P3D ResNet)。Tran等[16]通过将时空卷积残差块分解为空间卷积块和时间卷积块,提出一种残差块为(2+1)D卷积块的新型残差网络。
2.2 基于注意力的人体行为识别算法
卷积神经网络在提取特征时会将视频中的每一帧图像和图像中的每一个像素都视为同等重要,这将导致计算资源的浪费以及针对特定任务的识别性能下降等问题。Sharma等[17]通过利用在时间和空间都具有深层序列的长短时记忆(LSTM)单元构建深层递归神经网络(RNNs)来提取时空特征,并结合带有双重随机惩罚项和注意力正则化项的交叉熵损失函数,提出一种基于软注意力的视频人体行为识别模型。Liu等[18]采用带有LSTM单元的递归神经网络(RNNs)来不断地调整特征注意力权值,从而提出时间注意力模型,该模型能够对输入的特征序列进行时域扫描,然后再利用RNN的不断迭代来判别当前帧的重要性,并对所关注的特征进行加权,以此通过选择性地关注视频帧进行高效人体行为识别。Dai等[19]通过构建时域特征流和时空特征流的LSTM双流网络来进行人体行为识别,其中时域特征流是将光流图像输入到时间注意力模块中来自动确定每个光流图像中的主要区域,并将这些关键信息图像的特征表示进行聚合,从而以特征向量形式来呈现光流图像的主要特征,时空特征流则是在池化层之后建立LSTM网络,用以学习空间深度特征之间内在的时域关系,并引入时空注意力模块来对不同层次的深层特征赋予不同程度的权重。Zhao等[20]采用基于光流分析的自适应关键帧提取策略将视频中的关键帧预先提取,之后将提取好的视频关键帧作为输入序列,利用C3D神经网络对该关键帧序列进行特征提取,最后将提取好的视频关键帧特征输入到训练好的支持向量机中进行人体行为识别。
3 实现方法
3.1 非对称式三维卷积层
由于原始C3D卷积网络参数量较大,所以为减少网络参数量并同时增加特征提取能力,使整体网络结构轻量化,则本文采用卷积核的合并与拆分操作实现能够大量减少网络参数以及加强特征提取效果的非对称式三维卷积层,并且将全连接层使用全局平均池化(GAP,Global Average Pooling)操作进行替换。Inception- v3网络[21]中提到可以将任何一个(n×n)卷积采用(1×n)和(n×1)卷积进行替代,n越大这种非对称分解方式越能体现资源的节省,并且还提到本质上可以采用两层(3×3)卷积替换一层(5×5)卷积。
基于以上思想将其扩展到时空领域,本文先增加三维卷积层(3×3×3),使原始C3D网络除开始的第一个三维卷积层外每一个卷积层部分都是3个具有卷积核为(3×3×3)的三维卷积层。之后将这3个卷积层合并成卷积核为(3×7×7)的一个三维卷积层。这样变换可以比原始C3D网络具有更大的空间感受野,增强了特征提取能力,并且使得带有卷积核为(3×7×7)的一个三维卷积层就与卷积核为(3×3×3)的3个三维卷积层在空间域上具有相同的感受野,同时还起到了大量减少网络参数以及计算量的效果,其在空间域上的合并等效原理如图2所示。为进一步减少网络参数、增加空间特征的多样性以及加速网络训练,将带有卷积核为(3×7×7)的三维卷积层进行非对称式拆分成卷积核为(3×1×7)和(3×7×1)的两个三维卷积层,即得到两个非对称式三维卷积层,非对称式拆分原理如图3所示。
图2 7×7合并等效原理图
图3 7×7非对称式拆分原理图
全连接层往往是网络参数量最大的层,并且往往因巨大的网络参数量非常容易引起网络的过拟合现象,所以一种可以将全连接层替代的全局平均池化[22]方法被提出来,如图4所示。由于全局平均池化操作是对输入特征直接池化而不包含神经元,所以可以节省大量网络参数。由全局平均池化操作输出的图像尺寸为(1×1×1),所以可以避免由于输入网络原始图像尺寸的不同而后期造成网络维度不匹配的问题。
图4 全局平均池化示意图
3.2 引入全预激活式残差结构
获取更深层次的网络特征往往需要加深网络,但网络层数的增加很容易造成过拟合和网络退化现象,所以为避免以上问题本文采用了残差式网络结构。
本文没有采用传统形式的残差网络结构[13],而是采用全预激活式残差网络结构[23]并将其扩展到时空领域。因为原始形式的残差连接在网络干路上存在激活函数,结构如图5所示,其只是在残差块中形成恒等映射,而没有在由残差块组成的网络中形成真正的恒等映射,所以会阻碍信息的传递,可能还会导致网络最终达不到最优化结果。
图5 原始残差结构图
全预激活式残差连接由正则化和激活函数组成信息进入卷积权重层前的预激活操作,结构如图6所示。这种预激活操作不仅可以优化网络最终结果,还可以对网络模型起到正则化效果。全预激活式残差网络结构在整个网络中可以形成一个直接通路,信息可以在任意两个残差块之间直接传递,这样更有利于信息的流通和加速网络训练,并且这种网络结构还可以对所有将要进入卷积权重层的输入进行正则化,有利于改善模型最终识别结果。
图6 全预激活式残差结构图
3.3 软池化替代最大池化操作
在卷积神经网络中为了增加感受野和减少卷积过程中的计算需求,所以采用池化操作减小激活特征图的尺寸。以往的网络模型常采用最大池化或平均池化,但是最大池化是对池化区域内取最大激活值,这样非常容易造成大量的信息损失,属于一种暴力池化,平均池化则是对池化区域的所有激活值取平均,这样会降低池化区域中所有激活值对特征图的影响,属于一种抑制性池化。为了能够平衡最大池化和平均池化的消极影响,同时利用两者的池化优势,所以本文网络采用介于两者之间的软池化(SoftPool)[24]来替代原始C3D网络中的最大池化。
SoftPool是一种快速有效的基于指数加权和的池化方法,该方法首先通过基于Softmax指数归一化的方式得到应用于激活特征图的每个激活值的权重,之后通过对池化核区域内的每个激活值进行权重加权求和来得到最终的SoftPool输出。该权重定义如式(1)所示:
(1)
式中,R为池化核区域,ai和aj表示为激活特征图池化核内的激活值,Wi为分配给池化核内每个激活值的权重,i和j表示为池化核区域的索引号。最终的SoftPool输出如式(2)所示:
(2)
3.4 分组归一化
为改善网络训练过程中输入数据的分布情况,使得各三维卷积层接收的输入数据分布一致以及减轻过拟合现象发生,本文引入分组归一化(GN,group normalization)[25]对网络进行正则化操作。
目前大多数网络使用的正则化操作有批归一化(BN,batch normalization)[26]、Dropout[27]等。但是Dropout正则化大多数用于全连接层后面,本网络由于去掉了全连接层所以没有采用Dropout正则化。BN正则化通过在Batch内计算输入数据的均值和方差进行归一化特征操作,虽然该操作可以起到很好的网络正则化效果,并且能够简化深层网络的优化,但是该方法却严重依赖Batch的大小,Batch大小的不同不仅会严重影响最终分类识别的结果,还会对内存的占用产生巨大影响,并且会导致训练好的网络模型难以迁移到小型设备中。
基于以上,本文采用GN操作对各三维卷积层进行正则化,GN正则化方法是通过将通道分组,然后在分好的组内计算用于归一化特征的均值和方差,原理如图7所示。假设要归一化的输入数据为x=[x1,x2,…,xd],那么其中的第k个输入xk的分组归一化结果yk如式(3)所示:
图7 GN原理图
(3)
式中,μ和δ2分别是输入x的均值和方差,ε是一个防止分母为零的小量,γ和β是GN在分组中每个通道的可学习参数用以增强网络表达能力。其中用来计算x的均值和方差的像素集合Si在GN中定义如式(4)所示:
(4)
3.5 时空通道注意力模块
人体行为识别需要将视频片段首先处理成时间序列的视频帧,然后再送入网络进行分类识别,然而一个视频片段中能够精准识别动作的关键帧往往包含在大量冗余帧中,所以网络中需要能够产生关键帧信息的注意力模块。
本文采用基于卷积块注意力模型(CBAM)[28]改进的改进型卷积块注意力模型(iCBAM)[29]来产生用于精准分类识别的注意力特征图。CBAM能够沿着通道和空间两个不同维度产生最终的注意力特征图,而iCBAM在其基础上加入了时间维度,将其扩展到了时空领域,成为能够对通道、空间、时间3个方面进行充分关注的注意力模块。对于人体行为识别任务来说通道注意力集中在对给定的输入图像需要关注的是“什么”,空间注意力则集中在“哪里”是信息丰富的部分,时间注意力则是找到“哪些”是关键帧。iCBAM会依次沿着通道、空间、时间3个维度来产生注意力特征图,并在这个过程中会将通过每一个维度而输出的特征与该维度的输入特征相乘来进行自适应的特征细化以产生最终的注意力特征图,原理如图8所示。
图8 iCBAM结构图
首先获得一个经过三维卷积提取的特征图为F∈RC×M×H×W作为iCBAM的输入,式中R为网络中的时空域,C为网络通道数,M为视频帧数,H为视频帧图象的高度,W为视频帧图像的宽度。该特征图先通过通道注意力模块,获得1D通道注意力特征图即TC(F),其中TC∈RC×1×1×1为通道注意力模块,之后与原始特征图F逐元素相乘得到经过自适应特征细化的通道注意力特征图F′如式(5)所示:
F′=TC(F)⊗F
(5)
式中,⊗为逐元素相乘。该新得到的特征图再通过空间注意力模块,获得2D空间注意力特征图即TS(F′),其中TS∈R1×1×H×W为空间注意力模块,随后再与特征图F′逐元素相乘得到新的自适应特征细化后的特征图F″如式(6)所示:
F″=TS(F′)⊗F′
(6)
经过特征细化后的特征图为进一步从视频帧中找出关键帧,所以再通过一个时间注意力模块即TM∈R1×M×1×1来区别出关键视频帧,最终原始特征图F经过自适应特征细化后得到的时空通道注意力特征图F‴如式(7)所示:
F‴=TM(F″)⊗F″
(7)
基于C3D注意力残差网络的人体行为识别算法整体结构如图9所示。
图9 C3D注意力残差网络结构图
4 实验
4.1 实验环境和相关设置
本文实验采用的硬件设备配置为Inter Core i7- 8700 CPU,3.2 GHz,16 GB RAM,1T SSD,Nvidia Tesla T4(16 GB) GPU,平台操作系统为Ubuntu16.04,编程语言为Python3.7,深度学习框架采用PyTorch1.6.0版本。
网络中的迭代周期(Epoch)设为50次,初始学习率设为0.000 1,并且每经过10次迭代周期后将以0.1进行衰减,训练采用的批量大小为8,分组归一化中采用的分组数为32,实验采用GELU激活函数[30],并且使用Adam优化算法来优化网络。
4.2 视频行为识别数据集和评价标准
本文使用人体行为识别公共基准数据集HMDB51和自建的43类别体育运动数据集进行实验。HMDB51数据集共有6 766段视频剪辑,包含51个人体行为类别,并且每个类别的视频数量都不少于101个,帧率为30 fps,视频的分辨率为320×240,该数据集动作主要可分为5类,分别为常见的单独面部动作如微笑等、操纵物体并伴有面部动作如喝水等、一般身体动作如跳水等、与物体互动的身体动作如骑车等、人际互动的身体动作如握手等。该数据集中的视频大部分涉及摄像机的抖动、遮挡、不同拍摄角度以及低质量帧的问题,所以该视频数据集在人体行为识别任务中具有一定挑战性。由于HMDB51数据集广泛包含人体的各种运动,所以无法展现本文网络结构在具体领域的应用性,为了体现本文提出的算法具有一定的应用性,则对能够产生复杂人体行为的体育运动进行识别,但是没有现成的类别数目较大的体育运动数据集,所以本文从UCF101数据集[31]和kinetic400数据集[32]中选出在比赛中常见的体育运动进行混合,则自建了具有43个类别的体育运动数据集。该数据集一共有5 302个视频片段,每个类别至少包含108个剪辑片段,视频中的分辨率最小为140×256,帧率最小为25 fps,数据集内存大小为3.61 GB。该数据集主要涉及体操、球类、游泳、跳水、田径、滑冰、滑雪、举重等8类体育运动。
为评估基于C3D注意力残差网络模型的性能,本文采用模型行为识别准确率ACC(Accuracy)、模型ROC(Receiver Operating Characteristic)曲线下的面积AUC(Area Under Curve)以及对模型PR(Precision Recall)曲线下的面积AP(Average Precision)值取类别总数平均得到的平均精度(mAP,mean Average Precision)在HMDB51数据集和体育运动数据集上对模型进行性能评价,并且为衡量模型轻量化,则采用模型参数量(Params)和浮点运算次数(FLOPs)来分别对模型的空间和时间复杂度进行评价。其中AUC的值能够量化地反映基于ROC曲线衡量出的模型性能,通常AUC取值区间为[0.5,1],并且取值越大模型的分类效果越好,同样每个类别PR曲线下的面积AP,则反映了当前模型对该类别的分类性能,而mAP值则是对总体类别的AP取类别总数的平均来量化当前数据集下模型总体分类的性能,mAP取值为[0,1],取值越大模型分类效果越好。由于ROC曲线不易受到数据样本分布的影响,而当数据样本分布相差很大时PR曲线更能反映分类器性能,所以为能更好的衡量模型性能,本文同时采用这两种指标对模型评价。
4.3 数据预处理
在对视频中的人体行为进行识别时需要先对视频数据进行预处理操作。首先将视频数据集按照6:2:2的比例形式分为训练集、验证集和测试集。之后按照原始C3D网络中的视频预处理方式将其以每隔4帧截取一帧的方式,使每个视频片段变成至少为16帧的连续视频帧图像,若视频帧数较少而无法满足间隔4帧的截取方式,则自动降低采样间隔以满足要求。得到视频帧后将视频帧图像尺寸统一调整为171×128,再对调整后的视频帧采用随机裁剪为112×112、以概率为0.5的水平翻转和去均值等数据增强操作,则最终网络的输入尺寸为(3×16×112×112)。
5 实验结果与分析
5.1 HMDB51实验结果分析
本实验由于受到计算机显存限制,无法使用大型数据集进行预训练,所以为进行公平比较,实验中所有网络模型均在相同实验设备中从头开始训练,均没有使用任何经过大数据集训练后的预训练模型。
本文算法通过在HMDB51数据集上进行训练,总训练时长约为20 h,本文算法与目前流行人体行为识别算法C3D[8]和Res3D[14]在HMDB51上进行性能比较,3种模型的训练和测试过程如图10所示。
图10 HMDB51准确率曲线
3种模型在HMDB51数据集上的测试结果以及各种性能指标结果如表1所示。
表1 HMDB51数据集测试结果对比
由表1中的实验结果可知在没有经过任何预训练的情况下,本文算法在HMDB51上的识别准确率为41.04%,该结果比Res3D高了4.92%,而且比C3D的结果高了9.88%,所以可知本文算法的识别效果较好,同时说明了该算法若要和Res3D以及C3D在相同大型数据集下进行预训练,则本文算法在HMDB51上的实验结果仍然会比这两种算法的实验结果好很多,并且会进一步提高该数据集上的识别率,所以本文从头训练模型的实验结果是有意义的。为进一步比较模型在该数据集下的识别性能,则考虑表1中模型的AUC值和mAP值,由于3个模型的AUC值相差不大,无法准确比较各模型性能,所以可由mAP值进行判断,由表1中模型的AP值大小可知,本文算法的mAP值为0.36,比其余两个模型mAP值大,所以可知本文算法的模型性能好于其余两种模型算法。由表1中各模型参数和FLOPs可知,本文算法的参数量为47.95 M,则本文算法比C3D模型的参数量降低了38.68%,然而FLOPs较其余模型却有所增加,那是因为模型逐渐复杂化而造成的消极影响,但是综合考虑本文算法实现了模型轻量化,并进一步改善了模型识别效果。
5.2 体育运动数据集实验结果分析
本文为进一步展现所提出的网络结构具有一定的应用性,所以将其应用到具有43个类别的体育运动数据集来展示本文算法在体育运动识别方面的性能,并在该数据集中与C3D和Res3D进行比较,本文算法总训练时长约为18.5 h,3种模型的训练和测试过程如图11所示。
图11 体育运动准确率曲线
3种模型在体育运动数据集上的测试结果以及各种性能指标结果如表2所示。
表2 体育运动数据集测试结果对比
由表2的实验结果可知在没有经过任何预训练的情况下,将本文算法应用到体育运动数据集中的识别结果为73.05%,该结果比Res3D高了11.14%,而且比C3D的结果高了21.61%,所以可知本文算法在体育运动识别方面具有较好的识别性能。根据表2中模型性能的评价指标结果所示,本文算法的AUC值和mAP值分别高达0.97和0.68,所以进一步说明本文网络结构性能较好,并且在体育运动识别方面具有一定的应用性。
6 结束语
本文针对C3D网络参数量较大以及缺少关注关键帧信息而导致识别效果不理想的问题,提出一种具有应用性的基于改进型C3D的注意力残差网络模型用于人体行为识别。在模型中引入非对称式三维卷积层和全局平均池化对模型进行轻量化,采用全预激活式残差结构和iCBAM注意力模块来提高模型的识别能力,并使用GN正则化和SoftPool进一步改善网络识别性能并加速网络训练。本文网络结构与目前流行算法在HMDB51数据集上进行结果对比,验证了本文方法的有效性,同时采用自建的43类别体育运动数据集对本文方法在实际中的应用性进行验证,结果表明本文方法同样具有良好的应用性。在未来的工作中,可以引入一些传统的特征提取方法与深度学习相结合来更好的对行为细粒度特征进行提取,以进一步增强模型的人体行为识别性能。