基于关节点连接广度矩阵的颈椎康复运动识别

2024-02-21 06:00朱子豪汪焰兵
软件导刊 2024年1期
关键词:关节点子图广度

朱子豪,何 宏,汪焰兵,孙 浩

(上海理工大学 健康科学与工程学院,上海 200093)

0 引言

目前,颈椎疾病呈现出广泛化和年轻化的发病趋势,我国15-65 岁人群的患病率已高达15%,严重影响其工作、生活与学习质量[1]。康复运动有利于缓解颈椎不适症状,是目前颈椎病的主要治疗方案之一,然而患者普遍训练意愿较低,难以坚持。为便于患者随时随地进行康复训练,建立一套颈椎康复运动智能交互系统十分必要。系统中应具备动作识别与交互反馈两个模块,分别用于动作识别和人机交互。精准快速地识别康复动作是确保治疗效果的重要前提,为此本文针对系统中的动作识别模块建立简洁高效的动作识别模型。

人体骨架构造决定着运动模式的几何结构,其运动产生的行为数据是一组时间序列数据,包括关节点的位置信息和物理信息,可通过传感器、动作捕捉设备和姿态估计算法获取。目前人体行为识别方法按照特征选择方式可分为基于传统机器学习的识别方法和基于深度学习的识别方法两大类[2],现有研究普遍偏重于深度学习方法,即通过设计网络结构和改进模块,采用端到端的学习方式从骨架序列数据中自主学习特征。

基于传统机器学习的识别方法需要手工设计并提取基于人体骨架序列的特征,包括关节点速度加速度、关节点轨迹和方向、关节点旋转平移和关节点相对位置等。例如,文献[3]借助人体姿态估计算法提取人体关节点的二座坐标信息形成骨架模型并提取时空几何角度特征,利用K-近邻算法进行动作分类;文献[4]利用Kinect 获取关节点三维坐标并提取三维向量角度特征,然后利用相似性函数确定识别结果;文献[5-6]将每个关节的多种方差作为分类特征,将时间信息嵌入到特征中,通过相似性和支持向量机(Support Vector Machine,SVM)验证方法性能;文献[7]将三维关节与局部占用模式特征进行关联,同时引入actionlet 的概念,利用关节子集的特定结合使模型更具鲁棒性,以更好地描述动作中的类内变化;文献[8]利用OpenPose 提取人体关节点,对人体骨架的偏移角速度、骨骼点运动速度进行识别;文献[9]通过构建关节相关性矩阵描述动作,使用基于加权动态时间扭曲的匹配方案将关节相对距离与关节相对角度特征进行分数级融合,获得了比现有方法更好的识别性能;文献[10]将协方差矩阵作为人类动作的描述符,通过计算骨骼关节坐标上的协方差矩阵,利用SVM 进行动作分类。上述基于传统机器学习的方法可较好地反映出运动本身的物理特性或数据自身的统计特性,可对动作的统计学几何特性等进行表征,在动作识别针对性方面也较强,但特征选择方式较为先验,可能会丢失其他描述运动的信息,且泛化能力较差,应用场景受限。

基于深度学习的识别方法通过较为客观的数据避免研究者的主观干扰,提升了识别精度。例如,文献[11]基于关节差异图提取出三维坐标的映射进行图像编码,将三维动作识别问题转化为二维图像的分类问题,然后采用卷积神经网络进行分类;文献[12]提出一种新的时间—空间再校准方法MANs,在时间—注意力再校准模块中基于残差学习建立了一种新的时间注意力机制,以此在时间上重新校准骨架数据帧;在时空卷积模块中将重新校准的序列转换或编码为细胞神经网络的输入,以进一步对骨架序列的时空信息进行建模;文献[13]利用时空注意力机制对动态骨架的时空相关性进行建模,具备较强的鲁棒性和稳定性;文献[14]提出一种轻量级图卷积神经网络,通过多源信息数据融合和自适应图卷积进行分类,以较低的参数量实现了网络轻量化目标;文献[15]使用双向循环神经网络对骨架的时间动态和空间配置进行处理与建模,但存在网络结构复杂、参数量大的缺点;文献[16]提出作用于骨骼数据的时空注意力模型,其中的空间注意力模块可用于剔除噪声关节点,时间注意力模块将注意力分配给每个帧以提高识别性能;文献[17]利用两个自适应网络VA-RNN 和VA-CNN 将骨架转换为一致的视点,消除了视点多样性的影响,通过变换动作视频视角的方式优化动作识别性能。基于深度学习的识别方法通过不同的网络结构,以多种视角在行为识别中取得了较好效果,性能优于传统的手工提取特征方法,但普遍存在不能兼顾精度和速度的问题,实时性不强,且在一些小型数据集,如MSR Action 和CRED中面临性能上的挑战。

鉴于此,为快速、准确地识别康复运动动作,本文提出一种基于关节点连接广度矩阵的颈椎康复运动识别方法,并在MRS Action 3D 和CRED 数据集上验证该方法的准确性、实时性以及泛化能力,为提高患者颈椎康复运动效果奠定基础。

1 颈椎康复运动识别方法流程

本文提出的基于关节点连接广度矩阵的颈椎康复运动识别方法流程如图1 所示,具体为:①利用姿态估计算法MoveNet 从实时视频数据中提取人体骨架;②根据动作单元周期对骨架进行分割;③利用广度优先搜索(Breadth First Search,BFS)算法遍历人体骨架图中的关节点并根据连接广度信息划分三角子图,计算三角子图关节点的运动变化进行加权变换;④提取关节点连接广度矩阵的时空特征并组成特征矩阵;⑤使用SVM 分类器进行识别。

Fig.1 Flow of cervical spine rehabilitation motion recognition method图1 颈椎康复运动识别方法流程

2 动作数据预处理

首先从视频中提取出人体骨架数据Ja,对其进行动作分割,得到各个动作片段Ai;然后利用BFS 算法建立关节点连接广度矩阵,划分三角子图,根据关节点的运动变化对子图分配相应权重ωj,同时对子图内关节点进行加权变换,进一步获取关节点的准确特征信息。

2.1 人体骨架提取

骨架提取是指将视频数据转化为骨架数据。本文利用轻量级姿态估计模型MoveNet[18],通过人体热图定位方法完成视频数据的人体骨架提取,得到单帧17 个关节点的二维人体骨架数据,其中第n帧处的第i个关节点为一组二维数据,即Ji(n)=(Xi(n),Yi(n))。将每帧关节点数据组成一维特征向量,同时将相关关节点连接起来建立人体骨架模型,具体如图2 所示。图中标出了各关节点的编号、名称以及简称。

Fig.2 Human skeleton model图2 人体骨架模型

人体的动作可通过骨架模型中相应关节点的运动进行表征。由于颈椎康复运动的动作集中在手臂与头部,本文选取编号1(鼻子)、2(左肩)、3(右肩)、4(左肘)、5(右肘)、6(左腕)、7(右腕)的7 个关节点数据组成矩阵。表示为:

式中:N表示帧数。矩阵每行为1 组7 个关节点的特征向量。

2.2 动作分割

颈椎康复运动中的动作具有周期性特点,共计N节,患者需按照指导对每节动作重复多次才达到康复效果,其重复次数根据颈椎患病程度而定。为精准分割康复运动中的动作,本文提出一种动作单元周期分割方法。计算公式为:

式中:η为平均单位动作时长,Ti为第i组视频采集的总时长,C为该组视频中发生的具体动作次数,m为视频组数,ξ为时长偏置。根据单位动作时长对该组动作视频进行分割,得到单位时长为η的单位动作视频Ai,i=1,2,...,t,t为动作数。

2.3 三角子图加权变换

人体骨架由关节点和骨骼组成,从结构上可以将关节点看作节点V,节点间骨骼看作边E,因此在计算机视觉领域,人体骨架可以被定义为躯干与头肢位置的图结构[19],即人体骨架图G(V,E)。本文对人体骨架图进行三角子图划分并根据节点运动进行加权变换。

2.3.1 三角子图划分

从运动学的角度来看,人体骨架行为由多个基本单元协作完成[20],这些单元是由相邻关节点组成的局部区域,即关节点群。不同关节点群运动强度的变化代表着相应区域的动作差异性。为进一步准确提取运动时人体骨架的特征数据,获取局部空间变化信息,本文对人体骨架进行区域划分,利用图结构的BFS 算法遍历骨架图中的所有关节点,根据矩阵信息构建人体三角子图,通过关节点运动强度的变化计算三角子图权重。BFS 算法以图广度的推进方式完成对图内节点遍历的过程,其从顶点Vo出发对邻接节点Vj依次遍历并建立邻接关系,然后逐步对各层节点Vp完成遍历。BFS算法示意图见图3。

Fig.3 Schematic of BFS algorithm图3 BFS算法示例

假设从具有N个关节点的第i个节点Ji(i=1,2,...,N)的邻接层逐层遍历节点的连接广度信息κ,以此得到关节点连接广度矩阵M,该矩阵第i行表示关节点Ji与其他关节点的连接广度信息。当Ji与Jj为邻接节点时,连接广度信息κ设为1;当Ji与Jj通过m个节点相连时,连接广度信息κ=m+1 。因此,N×N关节点的连接广度信息矩阵M如图4所示。

Fig.4 Joint connection breadth matrix图4 关节点连接广度矩阵

基于关节点连接广度矩阵,将与Ji关节点连接广度信息κ最小(即κ(Ji,Jj) ≤1)的两个关节点Jj、Jk依次构成最小连接广度信息组(Ji,Jj,Jk),即三角子图G(Ji,Jj,Jk)。具体如图5所示。

Fig.5 Triangle subgraph图5 三角子图

2.3.2 三角子图加权计算

对图5 中的最小连接广度信息组分别建立三角子图,可以得到5 组三角子图Gi(i=1,2,...5)。根据三角子图内关节点的运动变化,利用CRITIC(Criteria Importance Though Intercrieria Correlation)权重法计算三角子图权重ωj,并重设三角子图内的关节点数据,将不同权重分配给相应子图。计算公式为:

式中:Sj为第j 个关节点的标准差,rij为关节点i与关节点j之间的相关系数。各子图内关节点权重之和为该子图的权重ωj,将各子图权重作用于各组内关节点上即得到加权变换后的关节点矩阵JM。

3 时空特征提取

行为识别任务根据描述行为的特征对其识别,因此所选取的特征既要全面完整地描述运动特性,又要避免特征冗余。本文根据关节点连接广度矩阵划分出三角子图,以时空视角提取矩阵中的几何与时序特征,完成对康复动作的特征描述。

3.1 关节点连接广度矩阵几何特征

3.1.1 距离特征

骨长为两个邻接关节点间恒定的骨骼距离,不会随人体运动而发生变化,此类关节点在连接广度矩阵M中的连接广度信息κ=1。在三角子图距离特征的提取中,基于骨长的距离特征无法作为有效几何特征进行提取,会造成特征冗余。因此,本文选取矩阵M中连接广度信息κ≥2的关节点间欧氏距离进行特征提取,得到特征φ(Ji,Jj)。表示为:

式中:Jj表示进行距离特征提取的两个关节点,N表示帧数,最终组成距离特征矩阵Fd。

3.1.2 角度特征

在人体运动学中,关节角度用于描述身体节段的运动状态。本文根据关节点连接广度矩阵提取出与各关节点Jo连接广度信息最小的两个关节点Jp和Jq,用于表征局部人体姿态信息,对组成该点的特征ψ进行提取可有效描述人体运动姿态。u为关节点Jo与Jp组成的向量,v为关节点Jo与Jq组成的向量,使用余弦定理计算这3 个关节点所形成的夹角并提取角度特征,得到角度特征矩阵Fa。表示为:

3.2 关节点连接广度矩阵时序特征

3.2.1 轨迹特征

时间序列中关节点的运动轨迹能够反映人体的运动过程,弥补几何特征对于时间序列信息的缺失,进而描述骨架的整体运动。因此,本文利用关节点连接广度矩阵中关节点的位置坐标提取出轨迹特征。

3.2.2 速度特征

从关节点连接广度矩阵的几何特征中提取角度特征ψ,N表示该组数据的帧数,表示第k夹角、第i帧的角度。则速度向量的计算公式为:

通过计算速度向量V得到角速度特征,将角速度特征组成角速度特征矩阵Fv。

3.3 时空特征融合与分类

通过特征融合将距离特征Fd、角度特征Fa、速度特征Fv和轨迹特征Ft组成时空特征矩阵F,并输入分类器完成动作识别。时空特征如表1所示。

Table 1 Spatial temporal features表1 时空特征

选取XGBoost 和SVM 进行动作分类,验证所提方法及其各个模块的有效性。XGBoost 是基于Boost 思想的集成学习算法,基础结构为分类回归树,其不断地对添加的误差进行拟合,然后对树进行集成分类。SVM 的常用核函数包括线性核函数、多项式核函数和高斯核函数等,本文选择高斯核函数。表示为:

式中:γ表示特征向量的欧几里得距离。

4 实验方法与结果分析

4.1 实验环境

实验设备为实验室工作站系统,设备硬件配置如表2所示。

Table 2 Hardware configuration of experimental equipment表2 实验设备硬件配置

4.2 数据集

以传统颈椎康复操为基础,结合八段锦在颈椎康复治疗中的应用以及训练者在二维相机下的康复情景,设计并采集颈椎康复运动数据集CRED。动作示意如图6 所示,CRED 数据集信息如表3所示。

Table 3 Information of CRED dataset表3 CRED数据集信息

Fig.6 Diagram of actions of CRED dataset图6 CRED数据集动作示意

MSR Action 3D 是应用广泛的基于Kinect 骨骼数据的人体行为识别数据集,包括10 名实验者,20 类动作,每人重复3次单一动作,共计557个动作序列。

该数据集的动作变化不大且较为相似,包含3 个子集,分别为AS1(水平挥手、锤、冲拳、高抛、拍手、弯曲、正上手发球、拾取)、AS2(高臂挥手、抓、画X、画勾、画圆、双手挥、向前踢、侧拳)和AS3(高抛、向前踢、侧踢、慢跑、摇摆、正上手发、高尔夫挥杆、拾取)。

4.3 评价指标

以样本的真实类别和模型预测结果为依据,将全部样本分为正样本且预测正确(True Positives,TP)、正样本但预测错误(False Positives,FP)、负样本但预测正确(True Negatives,TN)、负样本且预测错误(False Negatives,FN)4种情况。基于这4 类情况,分别使用准确度(Accuracy)、精确度(Precision)、召回率(Recall)、特异度(Specificity)、F1分数、运算速度与平均帧数7 种指标衡量模型性能。具体计算公式为:

4.4 消融实验

为验证三角子图模块与时空特征模块的有效性以及特征的冗余性,本文在CRED 数据集上以原始骨架的运动数据为baseline 进行消融实验,建立5 个模型,分别为模型1(baseline)、模型2(几何特征模型)、模型3(时序特征模型)、模型4(时空特征模型)、模型5(基于关节点连接广度矩阵的时空特征模型),使用SVM 进行分类。分类结果混淆矩阵如图7所示,消融实验结果如表4所示。

Table 4 Results of ablation experiments表4 消融实验结果

Fig.7 Confusion matrix of five models图7 5个模型分类结果混淆矩阵

可以看出,模型1 平均准确率为76.90%;在分别加入几何特征与时序特征的模型2 和模型3 中,平均准确率分别提升了0.88%和7.31%,说明几何特征模块与时序特征模块的引入能有效提升模型性能。而在同时使用几何特征与时序特征的模型1 中,准确率达到89.77%,说明同时使用两种特征的情况下模型性依旧可以得到改善,时空特征的选取并未造成特征冗余。模型5 利用关节点连接广度矩阵划分三角子图,采用三角子图+时空特征的模型结构,准确率进一步提高至92.42%,相较模型4 提高了2.65%,验证了本文所提模块的有效性。

4.5 动作实验指标分析

通过消融实验中5 个模型的比较,发现仍有部分动作的识别效果不理想。为探究各动作的具体识别情况,在CRED 数据集上以被试为单位,利用SVM 分类器对各动作的识别结果进行分析,结果如图8所示。

Fig.8 Identification of each action图8 各动作识别情况

可以看出,“头臂左抗”和“头臂右抗”两组动作的指标波动较大,其他动作指标波动不明显。经各帧骨架数据的遍历,发现关节点缺失帧,如图9 所示。用于提取骨架的姿态估计算法在动作发生的过程中出现关节点丢失的情况,导致在动作识别准确率上存在波动现象,因而对动作分类指标产生了影响。

Fig.9 Missing frames of joint图9 关节点丢失帧

4.6 泛化性实验

为验证本文方法的泛化性,分别使用SVM 和XGBoost分类器在CRED 数据集以及MSR Action 3D 的3 个子数据集上进行比较实验,以全面评估其在不同场景、数据集以及分类器上的性能,结果如表5 所示。可以看出,本文方法在CRED 数据集的表现优于MSR Action 数据集,使用SVM 分类器的表现优于使用XGBoost 分类器,但平均精度均较高,泛化能力较好。

Table 5 Results of generalization experiments表5 泛化性实验结果(%)

4.7 与现有方法比较

为验证本文方法的性能,选择SVM 分类器,在CRED数据集上与5 种现有方法进行对照实验,分别为文献[9]提出的利用关节相对距离和关节相对角度编码描述动作的方法;文献[21]提出的利用3 个视角的关节运动轨迹图进行动作识别的方法;文献[22]提出的通过学习数据时空特性对动态骨架进行建模的动作识别方法;文献[23]提出的利用关节点三维位置构建浅层特征,进而训练长短期记忆网络进行动作识别的方法;文献[24]提出的模拟人类视觉系统机制,融合全局信息进行动作识别的方法。实验结果如表6 所示。可以看出,本文方法具有更高的分类精度、更短的耗时以及更好的实时性。

Table 6 Comparison of performance between the proposed method and other methods表6 本文方法与其他方法性能比较

5 结语

为提高颈椎病患者的康复效果,本文设计了一种基于关节点连接广度矩阵的颈椎康复运动识别模型,利用关节点连接广度矩阵对人体结构进行三角子图划分,提取时空特征以完成动作识别。该模型在CRED 数据集上的平均识别准确率达92.72%,在MSR Action 3D 数据集的平均准确率达84.78%,有效性、泛化性、实时性均表现良好。该模型还能适应不同骨架提取算法,广泛匹配姿态估计方法,建立对应的连接广度矩阵,完成动作识别任务,并且可以面向不同骨架或特定区域骨架建立矩阵,进行子图划分与动作识别。

然而,该模型主要应用于骨架数据背景中,对于类间差异度小的动作识别方面仍表现不足,过于相似的局部动作识别精度还有待提高。后续将优化由于骨架提取而产生的关节点缺失,预测缺失的关节点位置,以提升相似动作的识别准确率。

猜你喜欢
关节点子图广度
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
临界完全图Ramsey数
追求思考的深度与广度
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
基于频繁子图挖掘的数据服务Mashup推荐
网络在拓展学生阅读广度中的运用
不含2K1+K2和C4作为导出子图的图的色数
金融广度:指标选择与政策建议