基于Azure Kinect骨骼追踪的腕关节活动度测量方法

2022-08-27 03:06张文波瞿畅周建萍张小萍张啸天
中国康复理论与实践 2022年8期
关键词:关节点腕关节活动度

张文波,瞿畅,周建萍,张小萍,张啸天

1.南通大学机械工程学院,江苏南通市 226019;2.南通大学附属医院,江苏南通市 226001

0 引言

脑卒中、帕金森病等在老年人中高发,容易出现肢体功能障碍。同时,因老年人活动不便,容易发生摔伤、扭伤等。在后期的康复治疗中,借助医疗器械进行康复训练的案例普遍存在[1]。在腕关节康复训练中,受伤关节活动范围的准确测量对指导康复训练、避免二次损伤具有重要意义。

人体关节活动度传统的测量方法有通用量角器、电子角度计、二维影像测量[2]等。使用上述方法测量时,因皮肤软组织活动性大、量角器放置不准、二维影像所标手掌、手臂轴线不准等导致测量结果相差较大。因此,人们进一步研究出新型的测量方法,包括基于惯性传感器的测量系统[3]、基于伸展运动传感器的测量系统[4]、可穿戴超声传感的腕部测量[5]。这些方法的测量精度能满足临床要求,但都需佩戴设备,操作复杂且主要是对肢体大关节活动度的测量。另有研究人员利用手机应用程序增强现实技术(augmented reality,AR)尺子等对腕关节活动度进行测量[6-8],该方法只需用手机检测手腕边缘或定位点即可,测量简单,目前iPhone 手机的AR 尺子角度测量功能需要收费,而Android 手机尚未开通。国际上还存在光学运动捕捉测量系统[9]、motion analysis 三维运动捕捉分析测量系统[10],这两种测量系统先进,测量结果精确,但设备昂贵,空间环境要求高,难以普及。

近几年,一种基于Kinect 的关节活动度测量方法逐渐进入人们视野,研究人员通过Kinect 采集到的骨骼关节点数据实现上肢部分关节活动度自动测量[11],该方法主要是针对上肢肩、肘等大关节的测量。由于Kinect 的骨骼追踪数据抖动、稳定性差[12],直接应用Kinect 捕捉到的关节点数据,尚无法实现小关节(手腕、手指等)活动度测量。随着Kinect 硬件的不断升级,最新的Azure Kinect关节点提取数量和精度较Kinect V1、Kinect V2 有较大的提高[13],为基于骨骼追踪,实现腕关节活动度的自动测量提供可能性。

本文基于Azure Kinect 骨骼追踪功能,提出一种腕关节活动度测量方法。该方法采用霍尔特双参数指数平滑算法消除关节点抖动,以骨骼长度为约束筛选关节点坐标,提高了关节点空间位置的捕捉准确率,进而提高测量精度。

1 资料与方法

1.1 一般资料

2021年5月至10月,在南通大学机械工程学院招募5 例健康志愿者,其中3 例男性,2 例女性;身高(170±10)cm;体质量(65±15)kg;年龄(24±1)岁。

纳入标准:①无认知障碍;②手臂、手腕、手均无任何疾病;③能自由控制手腕运动且能达到最大范围。

所有受试者均详细了解试验内容并能承担可能发生的危险,签署知情同意书。本研究已经南通大学机械工程学院伦理审查。

分别采用下述方法、AR 尺子、二维影像对其中2例男性的左手、1例男性的右手、1例女性的左手、1例女性的右手(以下简称“男1 左、男2 左、男3 右、女1 左、女2 右”)进行10 组腕关节活动度的测量,以验证该方法的可靠性。

1.2 方法

Azure Kinect 是将深度传感器、空间麦克风阵列、视频摄像头和方向传感器整合成一体式的小型设备,通过时差测距(time of flight,TOF)原理获取深度信息[14]。Azure Kinect 的人体跟踪功能可跟踪人体在不同时间的位置、提供人体图像分段、包含视场角(field of view,FOV)中每个不完整或完整人体在解剖学上正确的骨干,估算人体3D 关节和关键点,以便完整清晰且唯一地鉴别多骨骼人体。Azure Kinect 的人体跟踪功能可同时追踪6个人的空间位置。在个体中,Azure Kinect 可识别出包含指尖、手掌、手腕、手肘等呈左右对称的32个关节点。见图1。

图1 Azure Kinect关节点示意图

基于Azure Kinect 的骨骼追踪进行腕关节活动度的测量流程如下。首先创建人体跟踪器,将捕获到的人体三维关节点输出;设计正交试验以求最佳测量位姿;采用霍尔特双参数指数平滑法对获得的关节点进行平滑处理,剔除异常关节点;以骨骼长度为约束进一步筛选出符合真实空间位置的关节点,根据此关节点坐标和空间向量计算夹角;最后求多帧夹角平均值作为最终的腕关节活动度。

1.2.1 测量位姿选择

1.2.1.1 关节点坐标的获取

Azure Kinect 获取视场内人体的彩色图像、红外图像、深度图像,以自身焦点为坐标原点提取人体空间关节点;当提取到32个关节点并能完整正确地连成人体骨架时,即生成唯一身份标识号(identity document,ID)。该骨架中每个关节点有唯一的标识符如手、腕、肘和对应的三维坐标信息。针对腕关节活动度的测量,本文捕捉手腕、手掌、肘及指尖的关节点坐标。

1.2.1.2 确定最佳测量位姿

由于Azure Kinect关节点提取过程中距离、角度、姿势问题以及硬件稳定性问题,捕捉到的关节点坐标会出现抖动和突变,尤其是手掌坐标数据。因此需要确定最佳测量位姿(距离、角度、姿势)以尽量减少关节点抖动。

Azure Kinect深度测量有效范围为250~5 460 mm、俯仰角范围为-90°~90°,测量姿势见图2。在室内、常温条件下以距离、角度、姿势为因素(不考虑因素间的交互作用),各因素水平见表1。以手掌坐标抖动程度(X、Y、Z坐标值标准差之和)为指标设计正交试验以确定最佳测量位姿,抖动程度公式如下:

表1 因素水平表

其中N为试验次数100,μx、μy、μz分别为X、Y、Z坐标值期望。

本试验共有3 个因素,且不考虑因素间的交互作用,故选用正交表L9(34)来安排试验。试验方案见表2,试验结果分析见表3。

表2 试验方案表

表3 试验结果分析

在本试验中,试验指标是抖动程度,故指标越小越好。由表2 可知,1 号试验指标最小,对应的优位姿为:A1B1C1,即距离为1 000 mm、角度为-45°、姿势为图2a。由表3 可知,三因素对抖动程度的影响由大到小依次为:A、B、C,同时,表3 也验证了三因素之间无明显交互作用。

图2 测量姿势示意图

1.3 霍尔特双参数指数平滑法

以优位姿A1B1C1进行测量时,关节点抖动会有明显减小,但是仍存在轻微抖动,而平滑算法对抖动数据的处理有明显效果,所以本文拟用平滑算法对数据进行进一步处理。

平滑算法种类繁多,有一次指数平滑法、布朗单一参数指数平滑法、霍尔特双参数指数平滑法(又称霍尔特滤波)等。当存在趋势时,一次指数平滑法平滑效果较差,布朗单一参数指数平滑法一次、二次平滑值都滞后于实际值,而霍尔特双参数指数平滑法可直接对趋势进行平滑,平滑效果明显且无滞后,因此本文采用霍尔特双参数指数平滑法。该算法通过对前期数据特征的处理,对当前趋势进行评估,结合前期数据的趋势对后期数据进行预测和平滑,因其有两个参数所以具有很大的灵活性。霍尔特双参数指数平滑法的基本平滑公式如下[15]:

其中α,β为平滑参数,用以赋予不同的权重。St为当前帧的平滑值,Bt为当前帧的趋势值,Yt为当前帧的实际值。公式(2)利用前一帧的趋势值Bt-1对当前帧的平滑值St进行修正,将前一帧的平滑值St-1与前一帧的趋势值Bt-1相加,进而消除滞后现象,更新到最新的St。公式(3)通过前一帧的趋势值Bt-1和当前帧与前一帧平滑值的差值(St-St-1)来共同修正当前帧的趋势值Bt。

预测公式为:

其中T为预测步长,即当前帧与预测帧的距离,是通过当前帧的平滑值St和当前帧的趋势值Bt对第(t+T)帧进行预测的数据。

本文主要是针对腕关节活动度的测量,需要多帧数据进行评估,对每一帧数据都进行霍尔特平滑处理,故预测步长为1,即T=1。参数α、β可通过拟合的方法获得,这样需要大量数据反复实验。利用步长加速法对α,β的最优值进行搜索,最后优选出α=0.39,β=0.37,采取该数值会使实际值与预测值的离差平方和最小,提高预测的准度[16]。因本试验对人体帧的捕获共进行100 次,初始平滑值S1的选取为第一帧数据与第二帧数据的平均值,初始趋势值B1的选取为第二帧数据与第一帧数据的差值。由于初始值S1、B1只作简单赋值,并不能准确反映当前的平滑值与趋势值,需要经过多帧的相互自纠修正才能达到对平滑值与趋势值的要求。反复试验发现在经过28帧的自纠修正后,平滑值与趋势值能准确反映当前的真实情况,所以平滑结果从第31帧开始计。以该算法分别对手肘、手腕、掌心、指尖从31 帧到100 帧关节点的X坐标值进行滤波。滤波前后X坐标值的对比图用Origin 2017 绘制,如图3 所示,可直观的看出平滑处理后的数据比原始数据更加稳定,幅度变化更小,可见平滑效果明显。对手肘、手腕等关节点的Y、Z坐标值进行滤波处理,其结果与X坐标值类似,此处不再赘述。

图3 滤波前后X坐标值对比

1.4 骨长约束

由于在任何正常运动状态下人体的骨骼长度是保持不变的,所以在霍尔特滤波处理的基础上,以骨骼长度为约束,进一步筛选符合真实位置的关节点三维坐标。由Azure Kinect 检测70 帧人体滤波后的肘腕距离、掌腕距离、指腕距离,对上述三组数据用Origin 2017进行正态性验证,验证发现三组数据均服从置信水平α=0.05 的正态分布。为了更直观的观察三组数据的正态性,将上述三组数据分别拟合成正态曲线,拟合结果见图4。

图4 拟合正态曲线

重复多次以上试验发现由Azure Kinect 检测的人体滤波后的肘腕距离、掌腕距离、指腕距离均服从正态分布,与实际距离相比其准确率分别高达98%、95%、96%,可作为骨长约束的判别依据。

由正态分布特性可知,数据在(μ±2σ)范围内的概率为95.44%、在(μ±3σ)范围内的概率为99.73%。如果骨长约束范围设置为(μ±3σ),将仅剔除0.27%的抖动数据,达不到理想要求,而将骨长约束范围设置为(μ±2σ)时,可以剔除边缘4.56%的抖动数据,满足试验要求,故骨长约束范围设置为(μ±2σ)。将此约束应用于上述三组数据,结果显示符合约束的数据占比分别为94.29%、95.71%、97.14%,表明该骨长约束范围有良好的约束效果。

1.5 腕部活动度计算

在人手腕的解剖学结构中,手腕的屈伸运动可认为是绕一根轴旋转,侧偏运动可认为是绕另一根轴旋转[17]。根据转向不同,屈伸运动分为掌屈和背屈,手掌向手心方向旋转为掌屈,反之为背屈,见图5。同理,侧偏运动分为尺偏和桡偏,手掌向尺骨方向旋转为尺偏,反之为桡偏。见图6。手掌所在轴线与手臂所在轴线的夹角即为掌屈、背屈、尺偏、桡偏角度。

图5 屈伸运动示意图

图6 侧偏运动示意图

本文利用经滤波处理且满足骨长约束的手肘、手腕、手掌、指尖的空间坐标计算关节角度。在掌屈与背屈的测量中,由于手指在这一方向会出现较大的弯曲,很难保持平直,对结果造成一定的影响,而手掌坐标则相对稳定。故掌屈、背屈利用手掌、手腕、手肘这三个关节点的空间坐标来计算。而在尺偏和桡偏的测量中,手指在这一方向的弯曲几乎为零,并且手掌坐标抖动相对较大,而指尖坐标稳定,所以尺偏、桡偏利用指尖、手腕、手肘这三个关节点的空间坐标来计算。

以掌屈为例,设手肘的坐标为P1(x1,y1,z1)、手腕的坐标为P2(x2,y2,z2)、手掌的坐标为P3(x3,y3,z3)。则空间向量:

当y3>y2时,θ为掌屈角度;当y3<y2时,θ为背屈角度。

尺偏、桡偏角度计算时需将上式中的手掌坐标P3(x3,y3,z3)换成指尖坐标P4(x4,y4,z4),相应的:

当y4>y2时,γ为尺偏角度;当y4<y2时,γ为桡偏角度。

为提高测量精度,扩大容错率,将符合骨长约束的角度累加之后平均,将该平均值作为最终的腕关节活动度。

1.6 统计学分析

采用Origin 2017分析显示,置信水平α=0.05,测量数据不属于正态分布,采用秩和检验法来检验本方法与另外两种方法之间是否存在系统误差。对于给定显著性水平α=0.05,测量数据个数n1=10,n2=10,n3=10,由秩和临界值表可查得R1的上限T2=127,下限T1=83,对本方法进行秩和检验。采用Pearson 相关性分析评价本方法与AR 尺子、二维影像测量方法的相关性,其中r∈[-1,1],r值越趋近于1,表示相关性越好。计算本方法相对于AR尺子、二维影像测量数据的误差,在Origin 2017软件中绘制分析。显著性水平α=0.05。

2 结果

各科目的R1均在范围内,且数据居中,故本方法与AR 尺子、二维影像测量方法无显著性差异,根据文献[2]、[6-8]可知AR 尺子、二维影像测量数据无系统误差,故本方法测量数据亦无系统误差。见表4。本方法与AR 尺子、二维影像均有很强的相关性。见表5。

表4 各组测量数据的秩和(R1)

表5 各科目相关系数

掌屈测量中最大误差分别为1.34°、1.58°,背屈测量中最大误差分别为1.44°、1.61°,尺偏测量中最大误差分别为-1.47°、1.48°,桡偏测量中最大误差分别为1.56°、-1.36°。见图7。

图7 测量数据误差

3 讨论

腕关节活动度测量在康复治疗及伤残等级评定等方面有着非常重要的作用,如本测量方法可实时获得腕关节活动度,可为康复设备提供数据支撑,为患者腕关节受限程度提供判断依据;同时该方法也可帮助医师制定康复方案,评价康复效果并推动康复评定技术的发展。

本研究主要是利用Azure Kinect 骨骼追踪功能,设计正交试验以求得最佳测量位姿,运用霍尔特双参数指数平滑法、骨长约束等对腕关节各科目进行角度测量。本研究显示,本方法与AR 尺子、二维影像测量方法之间存在很高的相关性,最高可达0.998,最大误差也仅在1.61°以内,具有较高的测量精度。

本方法与AR尺子测量相比,虽然操作都较简单,但本方法没有定位点难以确定、运行不畅等问题;二维影像测量属于传统方法,操作繁琐且不能实时测量,本方法操作简单、测量速度快、可实时测量;基于传感器的测量方法需要在测量部位佩戴不同的传感器,这将给受试者带来不便,影响测量,而本方法不需要佩戴任何设备,只需以优位姿A1B1C1测量即可;光学运动捕捉系统测量精度高,但系统庞大、对空间环境要求严格,而本方法系统简单,对空间环境无严格要求,容易实现,适合推广。

在小关节活动度的测量中,虽然Azure Kinect 可以识别出手部的3 个关节点,但这些关节点尚不足以计算手指的活动度。为了解决这一问题,有研究人员通过在手部粘贴反光标记,利用卷积神经网络和手姿态评估来测量小关节活动度[18],而本方法不需要粘贴任何标记,在有无衣服遮挡条件下均可对小关节(腕部)活动度进行测量。前代Kinect对小关节活动度的测量主要是通过深度图像完成的,最大测量误差可以控制在2°以内[19],而本方法是通过获取关节点来测量的,针对关节点抖动问题,本文通过对关节点数据的处理使最大测量误差控制在1.61°以内。本研究显示,Azure Kinect 腕关节角度测量方式与传统测量方式测量结果无明显差异,可以应用于腕关节活动度的测量,并满足实时测量要求。

综上所述,本文提出一种基于Azure Kinect 骨骼追踪并融合霍尔特滤波、骨长约束的腕关节活动度测量方法,实现了腕关节掌屈、背伸、尺偏、桡偏角度的自动测量。该方法不仅测量精度能够满足临床要求,而且操作简单,能够实时获得测量结果,为手腕关节活动度的测量提供了一种新的手段。由于Azure Kinect 目前尚无法追踪到手指关节点,因此本文尚不能完成对手指关节活动度的测量,这将是下一步的研究重点。另外,本研究受试者均是健康青年,下一步需要对健康受损人群进行研究。

利益冲突声明:所有作者声明不存在利益冲突。

猜你喜欢
关节点腕关节活动度
基于关节点数据关注RGB视频的双人交互行为识别
基于Delphi的运动处方对断指再植术患者手功能、手指活动度及患指感觉恢复的影响
536例系统性红斑狼疮患者中性粒细胞/淋巴细胞比值与疾病活动度的关联性分析
NLR、C3、C4、CRP评估系统性红斑狼疮疾病活动度的比较分析
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
MRI联合超声成像评价类风湿性腕关节炎患者关节活动度的价值
重载机车网络重联TCN 故障节点识别方法研究*
关节点连接历史图与卷积神经网络结合的双人交互动作识别
研究多层螺旋CT联合核磁共振成像应用于腕关节损伤的影像诊断价值
1.5T与3.0T核磁共振对腕关节软组织损伤影像诊断探讨