张 振,张师榕,赵转哲*,刘永明,阚延鹏,涂志健
(1. 安徽工程大学机械工程学院 安徽 芜湖 241000;2. 芜湖赛宝机器人产业技术研究院有限公司 安徽 芜湖 241000)
人体动作识别技术作为人工智能及计算机视觉领域的一个重要研究方向,成为国内外研究人员相继探讨的热点话题,目前已成功应用于人机交互、视频监控、体育训练和康复医疗等诸多领域[1-4]。
近年来,深度学习因其出色的解决问题的能力而备受关注[5-6]。研究人员将深度学习应用到人体动作识别领域,在人体动作识别的研究方法和建模算法方面取得了切实有效的进步。如文献[7]提出了一种新的跌倒识别方法,该方法基于OpenPose 深度卷积网络获取人体倾斜姿态动态特征,根据支持向量机完成跌倒行为二分类,以人体下降姿态动态特征的阈值判断排除混淆性较大的非跌倒行为,在人体动作数据集上取得了较高的准确率。文献[8]针对人体动作识别精度不高的问题,在克服光照影响方面,对人体关节数据进行预处理;为了解决动作特征描述的问题,对人体动作数据进行针对性编码。文献[9]结合离散余弦变换(discrete cosine transform, DCT)和主成分分析法(principal component analysis, PCA),利用改进优化后的支持向量机对5 组不同类型的人体小样本动作数据进行识别。文献[10]在深度神经网络(deep neural neork, DNN)的基础上,利用VGG19 提取DNN 特征,根据水平和垂直梯度以及垂直方向信息计算特征,利用参数选择最佳特征进行识别。文献[11]在信道状态信息(channel state information, CSI)的基础上进行延展,基于室内wifi 信号提出了一种包含离线和在线两个阶段的 CSI-HC 人体动作识别方案。文献[12]提出了一种新的双层条件随机场(DL-CRFs)的人体动作识别模型,并在两个RGB-D 视频序列数据集上对其有效性进行验证。文献[13]基于视觉数据集开发了羽毛球动作自动识别系统,利用AlexNet 网络模型在fc8 层提取训练数据集特征,得到了82.00%的识别精度。
上述文献提出的人体动作识别方法虽然取得了较好的成效并应用于多个场景,但多是针对视频和图像进行处理,亦或是采用光学式动作捕捉系统,运动过程中易受到强光、遮挡等环境影响,导致数据缺失,将其应用于人体动作识别领域仍然具有一定的局限性[14-16]。与此同时,可穿戴式惯性传感器体积逐渐变小,重量逐渐减轻,测量精度逐渐提高,相较于光学式动作捕捉系统,其价格也相对较低[17-19]。因此,将惯性动作捕捉系统应用于人体动作识别领域,具有较高的研究价值。
为此,本文综合卷积神经网络(convolutional neural network, CNN)在特征提取和数据分类领域优异表现[20-21]以及隐马尔可夫模型(hidden Markov model, HMM)在时间建模和动态分类领域精准有效[22-23]的特点,提出了一种混合卷积神经网络−隐马尔可夫模型(CNN-HMM)的深度学习方法,结合可穿戴式惯性动作捕捉系统Perception Neuron 2.0(PN2.0)对人体动作进行识别。通过3 组人体动作识别实验对本文方法进行了验证。
图1 混合CNN-HMM 结构图
该混合CNN-HMM 人体动作识别方法分为训练阶段和测试阶段两部分,其目的是在训练数据集上建立模型以及在测试数据集上评估性能,从而得到一个具有泛化能力的人体动作识别算法模型。
为了学习如何从输入中预测输出,在训练阶段,使用带有标注的训练数据集寻找最优参数,建立最优训练模型并预测输出,其流程如图2 所示,具体步骤如下。
图2 混合CNN-HMM 训练阶段
1) 数据预处理:在预处理过程中先对训练数据集进行数据清洗,随后将其按照一定比例缩放在特定区域,根据实验动作将训练数据集分割为连续的数据段(称为窗口)。
2 )训练CNN:选择CNN 作为基线分类算法,将分割后的数据段带入混合CNN-HMM 算法中进行训练。
3) 生成HMM 概率:为了确保时间序列的平滑性,将CNN 分类结果与HMM 相结合,并在此步骤中生成HMM 的初始概率和转移概率。
为了评估模型性能的好坏以及测试最终的泛化能力,在系统的测试阶段,将从未使用过的测试数据集应用于训练阶段建立的预测模型,从而完成动作序列的预测,其流程如图3 所示,具体步骤如下。
图3 混合CNN-HMM 测试阶段
1) 数据预处理:实验数据被分割为数据段,称为数据窗口,这些数据标记为测试数据。
2) CNN 分类:利用CNN 模型对预处理后的数据进行分类,输出总和为1 的后验概率分布,即每个动作模式对应的概率。
3) 使用HMM 重新分类:为了充分利用实验中的时间信息,将步骤2)中CNN 输出的后验概率分布结果嵌入HMM 的观测概率矩阵,使用Viterbi算法对其重新分类,从而得到最佳的动作序列。
4) 性能评估:根据不同的评价指标测试算法性能。
为了验证所提方法的可行性,本文制定了一种包含抬腿(实验Ⅰ)、深蹲(实验Ⅱ)和仰卧臀桥(实验Ⅲ)这3 种常见的人体康复训练动作识别方案。在每组实验中,分别建立一个包含6 种不同动作姿态的动作模型库,通过诺亦腾公司自主研发的可穿戴式惯性动作捕捉系统PN2.0 收集实验数据,使用预处理后的数据集训练模型,最后对算法性能做出评价分析。图4 为获取实验数据的可穿戴式惯性动作捕捉系统,分别通过USB 接口和HUB 连接计算机以及发送由感知神经元节点生成的实验数据。在每组实验中,实验人员将6 种不同动作分别重复50 次,共收集135 000 帧的训练数据,同时,使用摄像机记录整个实验过程。
图4 可穿戴式惯性动作捕捉系统Perception Neuron2.0
在每组实验中,6 种不同动作模型分别记为PAT0、PAT1、PAT2、PAT3、PAT4 和PAT5,其中,PAT0 为标准动作模型,PAT1~PAT5 为非标准动作模型。每个动作模型的详细设置情况如表1所示,其对应的具体动作如图5 所示。
表1 每组实验中动作模式的设定
图5 动作模型库的建立
实验中,通过感知神经元产生并由HUB 实时输出Calc 类型数据,该类型包括全局坐标系中的位移、速度、加速度以及陀螺仪数据。其数据类型分别为,位置坐标、P-x、P-y、P-z;速度坐标:Vx、V-y、V-z;加速度坐标:A-x、A-y、A-z;陀螺仪坐标:G-x、G-y、G-z。
图6 表示实验Ⅰ在标准动作模式(PAT0)下一个感知神经元生成的部分时间序列数据样本示意图。
图6 标准动作的时间序列数据样本
为了进一步提高动作识别效果,消除训练数据集中的异常值及噪音,先对实验数据进行清洗,再根据Z-score 方法对其标准化:
式中,X为数据流中单个特征值;µ为X的平均值;σ 为X的标准差。
实验数据的分割大小取决于实验人员一次运动产生的数据集规模的大小,图7 展示了一个滑动窗口沿着输入数据将其分割为若干相同大小的数据段的过程,从而将输入数据划分为若干带有标签的运动模式。在每组实验中,一次运动大约需要3~4 s,PN2.0 设备以120 fps 的速度向计算机实时输出数据,因此将滑动窗口大小设为450。
图7 将输入数据分割为固定大小的数据段
混合CNN-HMM 方法共分为CNN 分类和HMM预测两个部分。在CNN 分类部分,将预处理后的实验数据集输入在包含卷积层、池化层等结构的CNN 框架中训练。为了有效避免过拟合现象,使用Dropout 方法随机删除神经元,另外在CNN 最后增加Softmax 函数,将CNN 的输出表示为总和为1 的后验概率,以便CNN 和HMM 混合方法模型的建立。表2 列出了Adam 算法下本文CNN的具体参数设置。
表2 CNN 结构参数
在HMM 预测部分,将HMM 表示为λ={π,A,
表3 HMM 的转移概率矩阵A %
采用准确率(Accuracy)、灵敏度(Sensitivity)和特异性(Specificity)3 种评价指标验证算法性能,计算公式分别为:式中,TP、FP、FN 和TN 分别表示真阳性、假阳性、假阴性和真阴性。在本研究中,TP 表示一个特定模式在数据集中被正确识别的数量;FP 表示在数据集中将其他模式识别为该特定模式的数量;FN 表示在数据集中将该特定模式错误识别为其他模式的数量;TN 表示在数据集中将其他模式正确识别的数量。表4 为单一CNN 方法和混合CNNHMM 方法在3 种评价指标上的计算结果。
表4 单一CNN 与混合CNN-HMM 方法性能对比 %
由表4 可以看出,单一CNN 和混合CNNHMM 两种方法在3 种评价指标上均取得了较好的实验结果,这表明两种方法均可成功运用到人体动作识别领域。另外,从表4 中不难看出,在3 组人体动作识别实验中,相较于单一CNN 方法,使用混合CNN-HMM 方法在多个评价指标上均有不同程度地提高,证明了本文方法的优越性。
图8 和图9 分别为使用单一CNN 和混合CNNHMM 两种方法在3 组实验中产生的混淆矩阵,其中,矩阵的行表示真实动作序列,列表示算法识别得到的动作序列。由混淆矩阵可以得出,使用单一CNN 方法在3 组实验中对6 种动作分别成功识别271 次、277 次和273 次,其识别准确率分别为90.33%、92.33%和91.00%;使用混合CNN-HMM方法在3 组实验中对6 种动作分别成功识别288次、293 次和292 次,其识别准确率分别为96.00%、97.67%和97.33%,相较于单一CNN 方法,其平均识别准确率提高了5.78%。特别地,实验Ⅰ中,对于PAT1,CNN 成功识别37 次,混合CNNHMM 成功识别40 次,与实际序列差距较大,造成这种现象的原因可能是数据集间差异较小,算法难以将其正确识别。
图8 单一CNN 方法性能混淆矩阵
图9 混合CNN-HMM 方法性能混淆矩阵
为了更加直观地观察输入动作序列的分布情况以及两种方法对于3 组动作识别实验的结果差异,图10 展示了3 组实验中实际输入动作序列与使用单一CNN 和混合CNN-HMM 两种方法识别得到的动作序列对比图。由图10 可以看出,相较于单一CNN 方法,使用混合CNN-HMM 方法在3 组实验中的识别结果与实际输入的动作序列差距均更为微小,识别精度更高,从另一个角度验证了本文方法在人体动作识别方案中的可行性及优越性。
图10 输入序列与使用单一CNN、混合CNN-HMM 方法识别结果对比
本文提出了一种混合卷积神经网络−隐马尔可夫模型(CNN-HMM)的深度学习方法,并成功应用于人体动作识别领域。实验结果表明了本文方法能以较高准确率将6 种不同动作姿态区分开,相较于单一CNN 方法,平均识别准确率提高了5.78%。本文方法为深度学习与人体动作识别领域提供了新的研究思路,也为康复运动与体育训练领域提供了新的研究参考。但在实验过程中,感知神经元可能会遇到磁干扰现象,因此本实验应当在开阔无辐射的场地中进行。在今后的研究中,将考虑设计人机交互界面从而得到更佳的体验效果,同时也可尝试将其应用于其他相关领域。