张银环,肖秦琨,楚超勤,邢 恒,贾松涛
(1.渭南职业技术学院 建筑工程学院,渭南 714000;2.西安工业大学 电子信息工程学院,西安 710021;3.西安工业大学 机电工程学院,西安 710021;4.西北工业集团,西安 710043)
人体行为识别(Human Activities Recognition,HAR)在机器人、智能安防、视频监控、人机交互等方面具有重要的应用价值,被国内外学者和研究人员广泛关注[1]。高精度行为识别所需的关键技术研究非常具有挑战性。使用单一模态获取的目标特征进行行为识别时,容易受光照、视角、背景等环境因素影响,导致识别精度不高[2],但是采用多模态融合模型时,能够较好解决单一传感器行为识别过程中数据缺失的问题,而且可以利用不同模态数据的互补性,提高行为识别精度。
近年来,多模态行为识别技术得到了快速发展。文献[3]提出基于马尔可夫(Hidden Markov Model,HMM)的行为识别方法,对每类行为训练一个HMM模型,最后计算行为分类的概率。然而该方法需要对每个HMM模型进行单独训练,引入过多的系统参数,降低了计算速度。文献[4]提出基于连续密度隐马尔可夫模型的矿下异常行为识别算法,通过级联分类器实现运动区域的初步检测并得到行为的最大外接矩形,引入连续密度HMM完成行为识别,在单帧多目标行为识别方面取得显著效果。文献[5]对连续行为分类时采用HMM分类器,由于HMM缺乏时间维度关联信息,该方法获得的识别精度低于长短期记忆(Long Short-Term Memory,LSTM)方法。文献[6]提出层次隐马尔可夫模型适用于在时间上具有多级依赖性且遵循层次结构的问题,将分类过程进行多层划分取得了较好的识别精度,但增加了模型复杂度。文献[7]根据三维骨架关节点的坐标信息提取行为特征,通过离散隐马尔可夫模型( Dispersed Hidden Markov Model,DHMM) 及关联时间序列信息的方法进行行为识别,取得了较高的识别精度,但并未提及如何优化DHMM参数设置,而且隐藏状态类别和输出符号数量需要继续研究。由此可见,多模态信息融合时,每个行为特征序列优化更新问题尚无明晰的理论解释。
为了解决上述问题,文中提出一种时空注意力隐马尔可夫方法(Spatial Temporal Attention LSTM CHMM,STALC),运用概率推理的理论,研究多模态人体行为识别的融合方法。采用长短期时空注意力网络(Spatial Temporal Attention LSTM,STAL)提取不同模态视频行为特征,将获取的多模态特征与一对隐马尔可夫模型(Couple Hidden Markov Model,CHMM)结合,形成STALC进行行为识别。
运用视频捕获设备,获取彩色视频RGB流、骨架流的人体行为视频。采用文献[8]方法,将采集的视频输入给STAL,分别提取彩色视频流RGB特征序列(STALr)和骨架流特征序列(STALg)。依据马尔可夫概率推理理论,STALr、STALg序列分别输入给CHMM模型,构建人体行为识别的STALC方法。
图1 STALC融合模型
建立一种混合动态贝叶斯网络(Dynamic Bayesian Networks,DBN)模型,利用行为观察矩阵和状态转移矩阵来表示连续人体行为识别系统。假设RGB与骨架相关特征贡献相同,因此可使用骨架隐藏状态序列更新彩色视频隐藏状态序列。通过概率推理将骨架序列和彩色视频序列进行信息融合,产生具有较高估计精度的最终状态。
采用贝叶斯理论计算最优骨架状态序列,优化后的最优骨架行为分类可以表示为
(1)
同理,采用彩色视频RGB行为相关的HMM作为概率网络,最优彩色视频行为分类可表示为
(2)
多模态融合行为分类结果为
(3)
人体行为特征提取时,采用Sgdm优化器更新视频分类网络,最小批处理大小为16,最大迭代次数为80,可充分对数据集进行训练,为获得图像更细粒度的特征,将初始学习率设为1×10-4,采用专用图形处理器GPU可提高模型训练速度。为防止过拟合现象,丢弃率Dropout分别设置为0.2,0.4及0.6。
为评估STALC方法的性能,分别在UCF101[9]数据集和HMDB51[10]数据集进行实验。其中UCF101数据集包含101个动作类别,13 320个视频样本;HMDB51数据集共有51个动作类别,包含6 766个视频样本,选取该数据集样本进行训练和验证。
HMDB51数据集包含51个动作分类,依次选出10类进行训练。第一次行为识别精度为89.04%。经过五轮实验后,在HMDB51数据集上的训练平均精度为87.88%,具体见表1。
表1 HMDB51数据集上的训练精度
使用混淆矩阵在HMDB51数据集上显示STALC算法对每个动作的具体识别结果,随机选择“brush_ hair”“cartwheel”“chew”“clap”“dive”“draw_sword”“dribble”“catch”“climb”“climb_stairs”10类动作视频。运用混淆矩阵进行可视化分析,如图2所示,纵轴代表10类动作的真实标签,横轴代表动作预测结果。每个动作大约有20个视频,合计210个视频需要识别,有203个视频被正确识别,识别精度为96.66%。但“climb_stairs”动作的识别精度仅为96.00%,输入25个视频,其中24个视频被正确识别,1个视频被误识别为“climb”动作,同时2个“climb”动作被误识别为“climb_stairs”动作。因为部分“climb_stairs”动作是在小山坡上拍摄,“climb_stairs”动作在整个视频中较小,特征不明显,导致识别混淆。2个“dive”动作被误判为“climb_stairs”动作,可能是因为样本数量较少,这种结果可以通过增加样本的数量,进行大规模训练,提取动作更为细微的特征,以提高识别精度。
为了进一步验证算法的鲁棒性,文中运用K-means方法进行聚类分析,如图3所示,结果表明整体分类效果较好。然而,由于方差设置偏大,诸如“brush_hair”等个别动作的分布较稀疏,但未与其他动作产生交集,说明该类动作没有被误判。实验结果验证了在HMDB51数据集上,文中提出的STALC方法对人体行为识别精度较高。
图3 在HMDB51数据集上的聚类结果
在UCF101数据集中,随机选择“BaseballPitch”“Basketball”“BenchPress”“Biking”“CleanAndJerk”“Diving”“Drumming”“BreastStroke”“Billiards”“Fencing”10种不同类型的动作。每个动作类别包含107个视频,每个动作拍摄时间为3 s,总共1 241个视频。选取该数据集样本进行训练和验证,使用混淆矩阵来评估STALC方法性能,识别精度如图4所示。
由图4可得,UCF101数据集上的行为识别平均精度为97.78%。输入24个“BaseballPitch”动作视频,正确识别21个视频,识别精度仅为87.5%,因为该动作在多人交互环境中拍摄,目标特征较小。“Biking”和“BreastStroke”动作分别有1个动作被误识别为“Billiards”动作,因为这些动作速度快,而且背景移动多变,导致识别结果错误。
图4 UCF101数据集上的混淆矩阵
在UCF101和HMDB51数据集上,将文中提出的STALC方法与其他行为识别方法[11-17]进行比较。各算法在UCF101数据集上的识别精度,见表2。
由表2可得,在采用单模态信息识别时,采用3D CNN方法,同时获取时间维度和空间维度行为特征,识别精度达到了82.30%,但是该方法对计算机性能要求较高,很难在一般实验室训练。时空注意力网络STA-CNN,不仅考虑行为的时空特征,同时对不同特征在通道方面赋予不同的权重,识别准确率为86.00%,识别精度显著提高。双流网络Two Stream方法运用彩色视频RGB作为输入数据,分别提取视频的时间信息和空间信息,进而融合时空信息,识别精度为88.00%,表明注意力机制在特征提取方面具有较大优势。骨架时域滑动法STSM在信息融合时,采用骨架信息作为一种模态数据,克服背景信息的负面影响,同时利用不同模态信息的互补性优势,识别精度为94.90%。因此文中在融合之前采用骨架数据作为一种模态信息,采用STALC算法提取行为特征,并进行概率融合,识别精度为97.78%。为进一步验证STALC算法的鲁棒性,在HMDB51数据集上将STALC算法与其他方法[11-17]进行比较,见表3。
表2 不同行为识别算法在UCF101数据集上的精度
由表3可得,双流网络Two Stream采用彩色视频RGB,识别精度为78.80%,说明单一模态的行为识别或二维卷积在提取行为特征时具有一定弊端。采用3D CNN方法提取行为的时间和空间特征信息,将不同模态的行为信息进行融合,使得行为识别精度提升至81.50%,表明关联行为的时空信息在识别方面具有显著优势。ST-Net方法在提取行为时空信息时,在通道方面为不同重要程度的特征赋予不同权重,以抑制噪声干扰。STALC算法采用注意力网络提取不同权重的行为特征,对不同模态的行为特征运用CHMM进行概率融合,识别精度为87.68%。
表3 不同行为识别算法在HMDB51数据集上的精度Tab.3 Accuracy of different behavior recognition algorithms on HMDB51 dataset
STALC算法采用注意力网络,分别提取彩色视频RGB、骨架行为特征,并为不同行为特征赋予不同的权重,运用CHMM对时间序列数据进行概率融合,从而达到了提高人体行为识别精度的目的。
基于多模态数据融合、概率推理和深度学习等理论,提出了具有更高识别精度的STALC行为识别方法。通过采用注意力网络提取双流行为特征,结合CHMM进行概率融合,在UCF101、HMDB51两个公开的数据集上分别进行实验,证明了STALC方法在人体行为识别方面具有较高的精度。这种融合方法有效地利用了低级序列分类能力和先进的语义决策机制,实现更高概率层次的特征修复;同时,使用STALC方法自动提取系统参数,降低计算消耗,提高CHMM中分类器的学习效率。然而,针对小样本的行为识别尚未深入研究,今后将继续开展小样本识别研究,进一步提高算法的适用场景。