邢蒙蒙,杨锋,辛在海,魏国辉
1.中国康复研究中心 设备处,北京 100071;2.山东中医药大学附属医院 资产设备处,山东 济南 250011;3.山东第一医科大学第一附属医院 医学工程部,山东 济南 250000;4.山东中医药大学 智能与信息工程学院,山东 济南 250300
人体动作识别(Human Action Recognition,HAR)的目的是确定人体动作类别,以获取人体行为信息,被广泛应用于视频监控[1]、生活辅助[2]、远程医疗[3]、机器人技术[4]等领域。HAR的研究一直是通过基于RGB视频形式进行动作识别和分类,并建立了相关的动作类别数据库[5]。但摄像机在捕捉人体动作数据的同时不可避免的会受到背景环境和外部光线的干扰,因此研究人员在基于RGB视频实现动作识别时首先要将人体与复杂的背景空间进行分割或对图像进行预处理。RGB视频数据仅能从单视图和多视图的角度实现人机交互,但单视图的RGB视频无法解决人体自身遮挡问题[6]。
随着深度传感器的发展,深度相机的出现解决了基于RGB视频进行人体动作识别的弊端,同时深度数据具有以下特点:① 对光照强度不敏感,能够不受活动空间光线的干扰;② 仅记录距离数据,因此在运动数据捕捉时不记录人体的面部特征,能够保护隐私;③ 深度数据可以后续处理为骨骼框架数据,方便进一步的研究。此外,深度相机还有成本低、易操作等特点,所以基于深度视频的人体动作识别要优于基于RGB视频的人体动作识别。研究人员基于深度视频进行人体动作识别已进行了大量的研究[7-10]。基于深度动作的特征提取也做了大量的研究,如时空兴趣点[11]、联合轨迹图(Joint trajectory map,JTM)[12]、3D点云[13]、骨骼关节[14]等方式。Ji等[15]提出将骨骼点信息嵌入到深度图中,将人体划分为不同的运动部分,通过局部时空缩放金字塔的方式来获取人体不同运动部分的特征,同时引入了简化的Fisher向量编码方法,将粗糙特征聚合为具有统一形式的判别特征。Wang等[16]提出了对骨骼关节轨迹进行编码的方法,其将从深度相机中获得3D骨架序列数据表示为3个2D图像,并将动态信息转换JTM,采用了CNN学习识别人类动作的区别性特征。Mutabazi等[17]将视频转换为帧图像,利用物体的颜色和运动信息的组合来获得区域物体,使用背景扣除方法提取前景对象,以及提取直方图定向渐变特征,最后使用多类支持向量机作为分类的分类器,在Weizmann dataset数据集上获得了96.88%的准确率。
深度学习在分类识别领域具有强大的分类识别性能,大量研究者开始应用深度学习来实现HAR,如Jalal等[18]通过颜色和强度变化来分割人体轮廓,从颜色关节和深度轮廓信息中获得时空特征,并处理分化特征,在MSE Action3D dataset和IM-Daily Depth Activity dataset上分别达到了88.9%和66.7%的准确率。Kamel等[19]提出了一种使用CNN从深度图像和姿势数据中识别人类动作的方法,使用不同的数据集分别训练3个CNN频道,第1通道使用深度运动图像训练,第2通道使用深度运动图像和运动关节描述符一起训练,第3通道使用移动关节描述符进行训练,最后实现3个CNN通道融合得到最终的动作分类结果。Arif等[20]提出了一个3D-CNN和长短期记忆网络(Long Short-Term Memory Network,LSTM)结合的新框架,通过使用深度3D-CNN将视频中信息整合到运动图中,生成整个视频的运动图,使用线性加权融合方案将网络特征图融合为时空特征,在UCF101和HDMB51 benchmark datasets数据集上分别达到了92.9%和70.1%的准确率。虽然深度动作序列的特征提取方法很多,但是不同类别的动作持续时间不同,且不同的个体展示不同的动作持续时间也不同。所以在进行动作识别时,计算机的计算效率也会降低,并要求强大的分类模型来应对不同长度的输入数据。基于此,本研究对深度视频数据进行数据处理,提出借助CNN网络作为特征提取器来提取其深度特征,使用分类器模型进行动作识别,以期为临床医生提供标准化的数据。
在动作识别中,德州大学达拉斯分校多模态人类动作数据集UTD-MHAD数据集[21]被广泛用于检验识别算法,UTD-MHAD数据集同时采用Microsoft Kinect传感器和可穿戴式惯性传感器在室内环境中进行人体动作捕捉。数据集内包括RGB视频序列、深度视频序列、骨骼关节位置序列和惯性传感器信号序列4个模态的数据。采集了包含8名受试者(女性4名、男性4名)执行的27个动作,动作类型包括运动动作、手势、日常动作和训练练习4种类型。每名受试者重复每个动作4次。除去3个损坏的样本后,数据集包含861个数据序列,数据集的27种动作类别如表1所示。图1中给出了深度视频序列和RGB视频序列的关键帧图像对比,由图1可知,深度视频能够同RGB视频一样记录数据同时能够模糊人体纹理信息。
图1 RGB视频序列(a)与深度视频序列(b)对比
表1 UTD-MHAD数据集中的27种动作
1.2.1 深度运动历史图
深度视频序列记录的时间跨度较大,且不可避免地会有冗余信息,因此直接对深度视频序列进行分类识别不仅计算量大,准确率也不高。而将深度视频序列处理成MHI的形式,不仅能够有效提高运算效率而且能够提高准确率。MHI是在运动能量图(Motion Energy Image,MEI)[22]基础上的改进,都是一种基于视觉的灰度图像。MHI能够将检测目标的运动变化情况以不同的亮度展示在图像中,MHI是利用帧间差分法实现将运动目标与复杂背景的分离,与基于光流的分隔算法相比,具有较强的稳定性。
假设H为MHI中的强度值,Hτ(x,y,z)可以由更新函数(1)计算得出。
式中,(x,y)和t代表当前像素点的位置和时间数据;τ为持续时间,决定了MHI中运动的持续时间;δ为衰退参数,若MHI中的像素值没有发生变化则该点的灰度值减少δ;取值一般设为1。Ψ(x,y,t)为更新函数,在本文中应用基于帧间差法的定义方式,计算方式如公式(2)所示。
式中,I(x,y,t)为视频序列第t帧坐标(x,y)像素点的强度值;Δ为两帧图像间的距离;ξ为差异阈值,可以根据不同的视频场景而人为调整大小。
图2给出了不同参数的MHI效果,从图2中可以看出,差异阈值ξ,取值为0.05时,得到的MHI则会出现杂乱的噪点,则获得的图像无法区分前景和背景;取值为0.4时,MHI中的像素强度值较小的部分则会消失,图像中损失部分动作信息。当τ值取20时,则无法获得完整的目标人体的动作轨迹,τ值取60时,动作轨迹的强度变化一致,进而无法从图中获得动作轨迹的先后顺序,图像中损失了动作的时序信息。本文经过实验选取了最佳的参数为δ=1,ξ=0.2,τ=40,此时可获得有价值的动作轨迹信息,如图3所示,动作发生时间越早灰度值越高越接近于黑色背景,人体发生动作部位的运动轨迹的轮廓都被保留了下来,说明本文选取的参数使MHI中动作轨迹信息和人体轮廓信息很好的保留。
图2 不同参数设置MHI对比
图3 部分动作样本MHI展示
1.2.2 伪彩色编码
伪彩色编码主要是将灰度图像转换成彩色图像。目前应用最广泛的伪彩色编码方法有密度分割法、滤波法以及灰度级的彩色变换。本文中应用的伪彩色编码是基于灰度级的彩色变换,首先设定RGB三色通道的变换函数,见公式(3)~(5)。
式中,R(x,y)、G(x,y)、B(x,y)分别表示红、绿、蓝3种色的亮度值,f(x,y)表示对应灰度图像上像素点(x,y)处的灰度值,TR、TG、TB为映射函数。伪彩色编码如公式(6)所示。
图4给出了对深度历史图进行彩虹编码前后效果对比图,由图4可见,经过伪彩色处理之后的图像对动作轨迹细节表现力更强。
图4 伪彩色编码前(a)和伪彩色处理后(b)效果图
2012年 AlexNet[23]在 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)比赛中以80.2%的top-5识别率取得了冠军,证明了卷积神经网络在图像分类中的有效性,CNN开始广泛应用于计算机视觉领域的分类识别中。CNN并不适用于小数据集的图像分类中,但是可以借助CNN作为黑匣子提取图像的深度特征向量。
本文利用AlexNet网络提取深度运动历史图的深度特征向量,AlexNet是一个8层的CNN网络,包括5个卷积层和3个全连接层,每个卷积层引进了线性整流函数(Rectified Linear Unit,ReLU)代替Sigmoid作为激活函数,采用最大池化层(Max-Pooling)处理。输入层输入224×224×3的RGB图像,最后全连接层输出图像的类别,AlexNet的卷积层利用固定维度的卷积核来提取图像的局部感知信息,包括图像的方向、梯度、颜色、频率等特征向量,并通过多次卷积运算最后形成有判别能力的深度特征向量。本文使用经过预训练AlexNet网络结构作为MHI的特征提取器来提取深度特征向量。
本研究选取AlexNet网络通过ImageNet数据集进行预训练,最后AlexNet训练次数设置为1000,每批数据量大小设置为100,学习率设为0.00005,衰减率为0.1,优化算法选择Adam,最后提取AlexNet的fc6和fc7层特征作为深度特征向量。fc6和fc7层的深度特征向量的维度为4096维,特征提取过程如图5所示。
图5 AlexNet提取深度特征
本文使用UTD-MHAD数据集中的深度视频序列作为动作识别的样本,本文将深度视频序列生成MHI,并对其进行伪彩色编码,处理之后的图像样本70%作为训练集,用30%的样本作为测试集。训练集用于训练分类器模型,测试集用于验证分类效果,分类器模型分类流程如图6所示。本文所用的分类器模型包括支持向量机(Support Vector Machines,SVM)、k近邻(k Nearest Neighbors,kNN)、随机森林(Random Forest,RF)、极限学习机(Extreme Learning Machine,ELM)。SVM本质上是将分类数据映射到一个更高维的向量空间,寻找一个最优分类面进行分类。kNN主要是通过判断k个样本中何种类别的样本数最多,则该样本便属于此类。RF是将多个决策树集成的一种算法。ELM本质上是一个单隐层的神经网络。分类器分类的流程图如图6所示。
图6 分类器分类流程图
本实验在DELL Precision 5820,Inter(R) Core(TM)i9-9820X CPU,NVIDIA GeForce RTX 2080 Ti GPU,Windows 10,MATLAB R2019a环境下完成。
本文为了评价分类算法的有效性采用准确率(Precision,P)、召回率(Recall,R)和 F 值(F-measure,F)来进行衡量,具体如公式(8)~(10)所示。
式中,TP代表被分类器正确分类的正样本数;FP代表被分类器错误分类为正样本的负样本数;FN为被分类器错误分类为负样本的正样本数。此类评价标准最初应用于样本二分类中,但目前可以应用到多分类器的评估中。
为使分类器模型达到最好的分类结果,还需对上述诊断模型的参数进行设置。其中,SVM分类器模型通过10倍交叉验证得到泛化误差是0.1256。kNN分类器中最优k值为5,ELM隐含层的节点个数为3500。RF参数选择105层。最终SVM、kNN、RF、ELM以及AlexNet网络等实验结果如表2所示,分类器使用fc6层的特征分类效果普遍要优于fc7层,SVM、kNN、ELM使用fc6层的特征进行分类准确率均在80%以上,不同分类器分类结果对比显示在ELM上分类效果最好,fc6分类准确率达到了90.02%,每个动作的统计度量结果如表3所示,由表3可以看出,本文方法在UTDMHAD数据集上获得了较高的准确率,仅有少数动作由于类间相似性类别分错,度量结果显示本文提出的方法分类性能良好,具有一定的鲁棒性。
表2 不同分类器分类准确率对比(±s)
表2 不同分类器分类准确率对比(±s)
分类器 特征层 准确率/%kNN fc6 82.78±2.75 fc7 79.33±2.79 RF fc6 76.16±1.91 fc7 77.52±2.37 SVM fc6 89.67±2.46 fc7 83.42±2.83 ELM fc6 90.02±1.8 fc7 84.52±2.86
表3 ELM分类器统计度量结果
为了进一步验证本文所提方法的有效性,选择应用同一数据集UTD-MHAD进行人体动作识别的文献进行对比,三种分类方法准确率对比如表4所示。通过分类结果对比,本文所提方法比3DHOT-MBC识别方法的准确率高5.61%,并远高于数据集提出者的Kinect识别方法,表明本文的方法分类准确率较高,具有一定的可行性。
表4 不同方法的对比结果
HAR一直是计算机视觉领域的研究热点,现在越来越多的应用在医疗康复锻炼领域,但基于普通RGB视频进行人体动作识别难以保护患者的隐私,本文提出了一种基于深度视频序列的人体动作识别方式,使用UTD-MHAD数据集进行实验,在预处理阶段,通过将深度视频序列灰度化处理转化为MHI来表征整个深度视频序列的动作信息,并对MHI进行伪彩色编码来增强图像的细节信息,与前人研究中[11-14]采用传统特征来进行特征提取不同,本文选择借助AlexNet作为特征提取器来提取MHI的特征,将AlexNet的fc6和fc7层特征作为深度特征向量,并使用RF、KNN、ELM、SVM作为分类器模型进行动作识别。结果表明,本文提出的方法能够在ELM分类器上取得了90.02%的准确率,对比Kinect[21]和3DHOT-MBC[24]方法分别高出了23.91%和5.61%的准确率,说明本文利用CNN网络提取的深度特征更具代表性,能够更大程度保留动作类别的特征信息,提高动作识别的准确率。本实验基于深度视频进行人体动作识别取得了较高的准确率,而且借助深度视频在识别过程中保护了被识别动作人的面部纹理信息,最大程度上保护了人的隐私,能够应用在医疗康复锻炼领域实现无监督锻炼及健康监护。
但本研究仍存在一定的局限性,深度相机的监控范围有一定的限制,同时人体活动空间范围较广,无法实现全方位的健康监护。基于单一模态人体动作识别一直无法取得较高的准确率,仅用单一模态的动作捕捉方式并不适用于所有的人体活动范围,所以利用多模态信息融合进行动作识别将是未来的研究方向。同时在未来的研究中,将探索识别更复杂以及不同运动程度的人体动作,并进行临床康复跟踪实验,以期将本文提出的方法应用于健康监护、无监督锻炼中。