瞿 畅 沈 芳 于陈陈 孙 杰
(南通大学机械工程学院,江苏 南通 226019)
基于Kinect深度图像的腕部及手指活动度测量方法
瞿 畅*沈 芳 于陈陈 孙 杰
(南通大学机械工程学院,江苏 南通 226019)
为简化人体腕部及手指关节活动度测量过程,提高测量效率和精度,提出一种基于Kinect深度图像的人体腕部及手指活动度测量方法。通过OpenNI获取Kinect捕捉的腕部及手部深度图像,对深度图像进行预处理,以剔除人体前景、背景的干扰。利用OpenNI的手势侦测及手心追踪器定位手心位置,从深度图像中进一步分割出手部区域,并对该区域进行形态学处理,确定指尖、指根对应的凸包及缺陷点。根据凸包、缺陷点信息以及不同活动度测量科目,完成腕部尺偏/桡偏、四指掌指关节外展及拇指桡侧外展的自动测量。对腕部及手指活动度的不同科目各进行20次测量实验,并将测量值与从彩色图像上测得的参考值进行对比,根据t检验法,得到腕部尺偏/桡偏、食指掌指关节外展及拇指桡侧外展科目的|t|值分别为0.864、1.195、1.901和1.752,均小于2.093。这些测量结果与参考值无显著差异,表明该方法的测量结果可以达到临床测量的精度要求。
活动度;测量方法;Kinect;手指;腕部
关节活动度测量是评价人体运动系统功能的基本手段,在采用通用量角器、方盘量角器及电子量角器等仪器进行活动度测量时,因肢体软组织的柔软性,量角器活动臂、固定臂及旋转中心不易放置准确,不同测量人员放置量角器的方法也有差异,这些对测量结果都会造成影响。传统测量方法在应用中受到限制,于是人们开始积极研究用于关节活动度测量的新型设备与方法。三维摄像测量系统[1]、电磁跟踪系统[2]、激光CCD 系统[3]等新型人体测量设备可以实现关节活动度的自动测量,具有较高的测量效率和精度。但此类系统在软硬件上投入较大,所以难以推广使用。胡海滔等提出了一种新的关节活动度测量方法,直接在数码相机拍摄的图片上进行关节活动角度的测量[4]。这种方法由于数码相机的存储卡容量有限,在拍摄一定数量的照片后需取出存储卡,将数据传输到计算机,因此不能实时获得测量结果。
近几年,一种新型的Kinect体感设备逐步应用于肢体功能和关节活动的相关研究中[5-6]。Antonio等将加速度传感器、陀螺测试仪以及磁力仪等便携式传感器与Kinect 结合,进行人体关节活动度的测量,并对不同传感器用于人体测量时的差异进行探讨分析,初步验证了Kinect 用于人体关节角度测量的可行性[7]。Junya Kusaka等提出了一种采用Kinect传感器获取关节角度的方法,分别对康复训练前后偏瘫患者的手臂运动进行测量和评估,评价康复训练效果[8]。笔者在前期的研究工作中,利用Kinect SDK提出了一种上肢关节活动度自动测量方法[9]。但是,用该方法只能进行上肢粗大关节(不包括手指)活动度测量,且用于测量腕部活动度时数据易抖动。因此,笔者在上述研究工作的基础上,基于Kinect深度图像,实现了腕部及手指活动度的自动测量。
由于Kinect SDK的骨架追踪不包括手指关节,本研究是基于Kinect的深度图像,识别手指指尖、指根位置,进行手指关节活动度的测量。首先,利用OpenNI获取深度图像,并剔除人体前景、背景的干扰;其次,结合OpenNI中的NITE部分的手势检测及OpenNI SDK中的手心追踪器定位手心位置[10],从深度图像中分割出手部区域;最后,对手部区域做形态学处理,找出手部轮廓,并根据轮廓的拟合多边形,寻找与指尖、指根对应的凸包及缺陷点,提取凸包、缺陷点的坐标信息,从而根据特定活动度指标进行手指关节活动度的计算。具体流程如图1所示。
图1 手部关节活动度自动测量流程Fig.1 The flow diagram for detecting the ROM of hand
1.1 手部图像分割
为实现手部关节活动度的测量,必须首先从深度图像中实现手部图像的分割。图2为Kinect获取的原始深度图像,从该图像中分割手部区域包括手势识别、手心追踪和图像分割3个主要步骤。第1步,采用OpenNI中NITE的手势生成器添加需要识别检测的特定手势,OpenNI手势识别的回调函数在手势识别成功后会返回一个代表用户手心位置的XnPoint3D的点;第2步,采用OpenNI SDK中的手心生成器进行手部追踪,将手势识别时获取的手心位置点作为手心生成器的初始化数据,通过坐标变换将手心坐标转化为像素值,便于后续的图像处理;第3步,利用追踪到的手心位置分割手部图像,剔除身体其他部位的干扰,以手部中心为矩形区域中心,分割提取出手部区域的深度图像。
图2 原始深度图像Fig.2 Initial image
1.2 手部图像特征提取
手部图像分割完成后,仍需对手部图像做进一步处理,方可实现手部特征(如手指数、手指的指尖点、指根点等)的分类识别,为手部关节活动度的测量提供初始数据。为此,利用OpenCV对分割出的手部图像分别进行噪声处理及轮廓检测分析处理[11]。
1.2.1 手部图像的去噪处理
根据手心深度值及手掌厚度设定阈值,并调用OpenCV中的相关函数进行手部图像的阈值化处理。阈值化处理后的手部二值图像会有噪声及失真,边缘存在大量毛刺,不利于手指关节点的提取,因此采用OpenCV提供的高斯滤波方法来实现图像平滑处理。针对手部深度图像中存在的缺失空洞现象,采用先膨胀再腐蚀的闭运算进行图像形态学处理,在不明显改变轮廓面积的情况下填充手部图像中的细小空洞,提高深度图像质量。经过去噪处理后,手部图像如图3(a)所示。
1.2.2 手部轮廓的确定
轮廓检测分析是手部关节点识别的关键步骤。首先,利用OpenCV中的轮廓处理函数,根据手部二值图像检测并绘制其外部轮廓;其次,利用OpenCV中的道格拉斯-普克算法,求出轮廓的封闭多边形;最后,利用封闭多边形的顶点集找到其凸包集合,通过OpenCV中的convexHull()函数识别定位指尖点。根据手部图像及凸包集合检测轮廓的凸型缺陷,进而通过findConvexityDefects()函数分析获取手部图像的缺陷点,初步识别指根。
经上述处理,实现了手指指尖、指根的识别定位,并可根据获取的指尖、指根点的坐标信息,进行手部关节活动度的计算,也可在图像中绘制手部轮廓以及手指指尖、指根对应的凸点和凹点(见图3(b))。
图3 手部特征提取过程。(a)去噪后的手部图像;(b)手部特征点获取Fig.3 Process of extracting the feature of hand. (a)Denoised image;(b)Extraction of feature points
1.3 腕部及手指活动度测量
1.3.1 腕部尺偏及桡偏的测量
腕部关节活动度的测量主要包括尺偏、桡偏、掌屈、背伸等科目[12],此处以腕关节活动度尺偏及桡偏科目的测量为例进行说明。依据康复评定学,手掌靠近桡骨方向运动为桡偏,靠近尺骨方向运动为尺偏。腕部活动度尺偏和桡偏测量的轴心为腕关节背侧第三掌骨的根部,固定臂与桡骨长轴平行,移动臂为第三掌骨背侧纵轴线。
本研究采用经深度图像处理后的轮廓点(见图4中的A、B、C点)作为计算依据,对腕部尺偏、桡偏的关节活动度作近似计算。如图4(a)所示,腕部桡偏科目的测量以腕部点A为轴心,AC为固定臂,AB为移动臂,计算∠CAB的大小,其补角即为腕部的桡偏角度。同理,腕部尺偏角度可通过计算图4(b)中∠CAB的补角获得。
图4 腕部活动度计算关键点。(a)桡偏; (b) 尺偏Fig.4 Key points for calculating the ROM of wrist. (a) Wrist radial; (b) Ulnar deviation
1.3.2 手指关节活动度测量
手指关节活动度测量科目主要有掌指关节外展、掌指关节内收、掌指关节屈曲、近端指骨间关节屈曲、拇指桡侧外展等[12],此处以掌指关节外展及拇指桡侧外展为例进行说明。
1.3.2.1 掌指关节外展
手部掌指关节外展是手部活动度的重要科目,依据康复评定学,该指标的测量以中指指骨纵轴为固定臂,所测量手指指骨纵轴为移动臂。通过对手部图像的处理,可获取手指指尖点A、B、C、D、H及指根点E、F、G(见图5)的位置信息;根据各点坐标,可计算相邻手指指尖点与其中间指根点的夹角(∠AEB、∠BFC、∠CGD)。以相邻指根点的距离作为一边、以手指长度为另一边,建立手指的外接矩形,指尖点视作矩形短边中点。根据临床测量方法的测量要求,将各相邻矩形长边的夹角α1、α2及α3近似作为相应手指掌指关节的外展角度(见图5)。
图5 四指掌指关节外展角度计算原理Fig.5 Schematic for calculating the abduction of metacarpophalangeal joints
以食指关节外展角度α3为例,根据其几何关系,可得食指掌指关节外展角度为
(1)
其中
d为食指外接矩形的宽,人体结构学中暂无对人体手部结构尺寸的参考标准,此处将四指掌指外接矩形的短边长度统一设定为中指两侧指根点F、G之间的距离进行近似计算,即d=FG。
根据上述计算原理,同样可得到无名指与中指夹角α2以及小拇指与无名指的夹角α1。
1.3.2.2 拇指桡侧外展
康复评定学中规定,拇指桡侧外展角度θ的测量以拇指掌骨根部O为轴心(见图6),固定臂与桡骨平行,移动臂与拇指掌骨平行。采用深度图像处理后,可获取轮廓点A、C、D的位置坐标。通过建立拇指外接矩形,用∠BCD作为外展角θ的近似值,有
θ≈∠BCD=∠ACD-∠ACB
(2)
其中,∠ACB、∠ACD可以根据A、C、D的位置坐标通过三角函数关系求得。
图6 拇指桡侧外展角度计算原理Fig.6 Schematic for calculating the radial deviation of thumb
1.4 实验及统计分析方法
为验证本研究提出的腕部及手指活动度自动测量方法的准确性,选择1名健康男性志愿者进行测量精度的实验。受测者以坐姿正对Kinect 1.5~2 m处,手部做关节活动度测量姿势,根据传统测量体位,在被测关节的轴心、固定臂和移动臂上粘贴圆形标记物(如图7中的A、B、C),Kinect传感器同时获取手部彩色及深度图像。根据彩色图像中标记物间的位置关系,计算固定臂与移动臂的夹角,并将其作为活动度测量的参考值;将该参考值与通过本测量方法获取的测量值进行比较,以验证测量结果的准确性。
图7为腕部尺偏测量的彩色图像,测试前分别在腕部尺偏测量的轴心、移动臂及固定臂中粘贴A、B、C三个圆形标记物,测量彩色图像中圆形标记物的夹角∠BAC,并将其作为腕部尺偏角度的参考值。利用本测量方法测得的测量值与∠BAC进行比较,对测量方法用于腕部尺偏测量的精度进行评估。同理,也可进行腕部桡偏的测量精度评估。拇指桡侧外展、四指掌指关节外展活动度的测量精度评估,采用类似的方法进行。
图7 腕部尺偏测量Fig.7 Measurement of wrist ulnar deviation
每一测量科目各做20次测量实验,利用t检验法检验系统误差。若各科目t统计量的绝对值均小于临界值,表明参考值与测量值间无显著差异,可以达到临床应用要求。
根据上述测量原理和方法,每一测量科目的20次测量实验结果如表1所示。利用t检验法检验系统误差,则实验值n=20,自由度df=20-1=19,查表[13]得临界值tα/2(df)=t0.025(19)=2.093。计算得到各科目的t值分别为:腕部尺偏0.861,腕部桡偏1.195,拇指桡侧外展1.752,四指掌指关节外展1.901,均小于2.093,表明参考值与测量值间无显著差异,即基于OpenNI的腕部及手指活动度测量方法具有较高的测量精确度,可以达到临床应用要求。
在康复医学中,为了确定有无关节活动障碍及障碍程度,给制订治疗方案提供参考,需要进行关节活动度评定,测量特定体位下关节的最大活动范围。本研究提出了一种腕部及手指关节活动度的非接触测量方法,测量时只需正对Kinect做测量姿势,即可实现关节活动度的自动测量。与传统关节活动度测量方法相比,该方法不需患者采用量角器等仪器或贴画标记,Kinect能实时采集用户的手部图像,针对不同测量科目的手部特征提取用于活动度计算的目标点,完成关节活动度的自动计算,本方法在测量速度和准确性上均有优势。
表1 腕部及手指关节活动度各科目测量结果
在正常情况下,Kinect可以捕捉人体20个骨骼关节点,其二代产品虽可以捕捉人体25个骨骼关节点,捕捉精度和数据稳定性也有所提高,但Kinect SDK目前仍不能捕捉手指关节点,腕部关节点数据易抖动甚至产生跳变。本研究采用Kinect深度图像技术,在OpenNI 平台上开发,获取的腕部关节点数据更加稳定。通过对手部深度图像的处理,识别手指的指尖点、指根点,实现了手指关节活动度的自动测量。
Kinect是通过捕捉人体骨骼关节识别人体,为获取手部深度图像,需采用特定的体姿。受硬件的限制,在本研究的测量方法中,腕部及手指不同科目的测量体姿与传统方法的测量体姿不完全相同,计算也采用近似方法。但通过实验验证,测量结果可以满足临床测量精度要求。本研究的不足主要是尚未实现手指所有关节点的识别与预测,这将是下一步研究的工作重点。
本研究提出了一种基于Kinect深度图像的人体腕部及手指活动度的测量方法,实现了腕部尺偏桡偏、四指掌指关节外展及拇指桡侧外展等科目的测量。该方法避免了传统量角器测量时的人为误差,由于是通过处理手部深度图像获取测量值,还避免了采用Kinect 骨架数据测量腕部活动度时的数据跳变,且测量精度完全满足临床要求。
[1] 刘龙,张建国.三维摄像测量系统在人体上肢运动分析中的应用[J].天津轻工业学院学报,2003,18(1): 51-53.
[2] 张建国,汪莉.基于电磁跟踪系统的人体上肢ROM测量新方法[J].现代制造工程,2006(3): 81-84.
[3] 王鑫.基于激光CCD的人工关节测量系统的研究[D].重庆: 重庆大学, 2008.
[4] 胡海滔,李志忠,严京滨,等.关节活动度的照相测量方法[J].人类工效学,2006,12(2):13-15.
[5] Guneysu A, Siyli RD, Salah AA. Auto-evaluation of motion imitation in a child-robot imitation game for upper arm rehabilitation [C] //The 23rd IEEE International Symposium on Robot and Human Interactive Communication.Edinburgh:IEEE,2014:199-204.
[6] Geetha M, Manjusha C, Unnikrishnan P, et al. A vision based dynamic gesture recognition of Indian sign language on Kinect based depth images [C] //2013 International Conference on Emerging Trends in Communication, Control,Signal Processing & Computing Applications.Bangalore:IEEE,2013: 1-7.
[7] Antonio PLB, Mitsuhiro H, Philippe P. Joint angle estimation in rehabilitation with inertial sensors and its integration with Kinect [C] // Proceedings of 33rd Annual International Conference of the IEEE Engineering in Medicine and-Biology Society ( EMBS). Boston: IEEE, 2011: 3479-3483.
[8] Kusaka J, Obo T, Botzheim J, et al. Joint angle estimation system for rehabilitation evaluation support [C] //International Conference on Fuzzy Systems. Beijing: IEEE, 2014: 1456-1462.
[9] 瞿畅,丁晨,王君泽,等.基于Kinect体感交互技术的上肢关节活动度测量方法[J].中国生物医学工程学报, 2014, 33(1): 16-21.
[10] 任侃.OpenNI体感应用开发实战[M].北京:机械工业出版社,2014.
[11] Bradski G, Kaehler A. 学习OpenCV中文版[M]. 北京: 清华大学出版社, 2009.
[12] 陈立典. 康复评定学[M]. 北京: 科学出版社, 2010.
[13] 李云雁, 胡传荣.试验设计与数据处理[M]. 北京:化学工业出版社, 2008.
Measurement for Detecting the Range of Motion of Fingers and Wrist Based on Depth Image from Kinect
Qu Chang Shen Fang Yu Chenchen Sun Jie
(SchoolofMechanicalEngineering,NantongUniversity,Nantong226019,China)
range of motion;measurement;Kinect; finger; wrist
10.3969/j.issn.0258-8021. 2016. 05.017
2015-07-10, 录用日期:2016-07-01
南通市前沿与关键技术创新计划(MS22015007);南通大学研究生科技创新项目(YKC14007)
R496;TP399
D
0258-8021(2016) 05-0626-05
*通信作者(Corresponding author), E-mail: xu.ch@ntu.edu.cn