基于Kinect的原地太极拳辅助训练系统
2017-04-14薛智宏张利英程振华赵浩祉杨春晖
薛智宏, 张利英,程振华,赵浩祉,杨春晖
(1.河北科技大学电气工程学院,河北石家庄 050018;2.方圆电子音像出版社有限责任公司,河北石家庄 050061)
基于Kinect的原地太极拳辅助训练系统
薛智宏1, 张利英1,程振华1,赵浩祉1,杨春晖2
(1.河北科技大学电气工程学院,河北石家庄 050018;2.方圆电子音像出版社有限责任公司,河北石家庄 050061)
为促进太极拳教学训练的科学化、规范化,提出并设计了基于Kinect运动捕捉技术和角度、速度特征提取的太极拳辅助训练系统,应用动态时间规划算法(DTW)采样对应帧,替代传统等间隔采样关键帧的方法。系统由学习模块、动作采集模块和动作评分模块组成。学习模块配有标准动作教学视频,能够满足学员学习要求;动作采集模块采用微软开发的Kinect设备,针对原地太极拳动作中人体骨架的20个关节的空间坐标进行数据采集,然后经过滤波降噪及遮挡点数据处理后进行骨架数据保存;评分模块以8个关键关节点的16个角度特征和20个关节点的瞬时速度特征为基础构建测试序列,通过与标准序列进行实时对比计算,根据预设的评分规则实现评分功能,并为学员提供直观可靠的训练建议,从而提高学员的学习效率。通过增加传感器数量,进一步设计和优化数据融合及滤波算法,配合微软推出的Kinect2.0版本,该系统也可推广应用于医疗康复训练、体育训练动作分析及评估、虚拟现实人机交互等多个领域。
图像处理;Kinect;运动捕捉;特征提取;DTW;太极拳;辅助训练系统
太极拳是一项传统体育运动项目,在全世界得到推广,并呈现出蓬勃发展的趋势[1]。传统的太极拳动作训练主要可归纳为书本教辅、教员面授、网站视频教学等方式,这些传统训练方式存在着直观性差,主观随意性大及动作规范性不够等不足,学员难以自主学习与评价。面对这些问题,采用微软公司Kinect体感传感器,结合运动捕捉技术和角度、速度特征提取算法,针对原地24式太极拳设计开发了一种辅助训练系统。系统针对太极拳的运动特性,通过Kinect传感器获取的动作骨骼关节点的空间坐标数据,经数据处理后构建动作测试序列并与标准序列对比后,根据预设的评分规则,实现了对学员动作进行评测打分功能。该系统将体感传感运动捕捉技术与传统太极拳教学相融合,为太极拳的教学和训练提供了新的模式。
1 Kinect工作原理
1.1 Kinect运动捕捉原理
运动捕捉技术是基于计算机图形学原理,采用各种传感器进行观测、跟踪、记录人或物在空间中轨迹的技术。运动捕捉技术根据传感器及传感器测量原理不同分为机械式、电磁式、声学式和光学式等,已经广泛应用于各个领域[2-5]。本系统采用微软公司开发的Kinect传感设备采集学员运动数据,Kinect包含较多的感应器元件和芯片[6-7],其获取深度数据的原理是基于光编码理论技术[8-11]。Kinect的红外发射器的普通激光源投射出一种结构光,经过磨砂玻璃和红外滤光片覆盖到Kinect可视范围里的空间物体表面,形成各种形状的“激光散斑”,红外摄像头接收到反射的散斑图光线后,进行光源标定,进而识别目标的深度信息。
1.2 骨架追踪技术
骨架追踪是一项利用Kinect获取的深度图像实现人体定位及跟踪的技术[12-15],能够确定人体各个关节点,采用景深图像处理技术,使用机器学习、矩阵变化等算法来确定关节点的三维坐标。其工作过程分为3部分:
1)人体轮廓分割 该过程可实现人体轮廓的完整分离;
2)人体部位识别 该过程主要是对以深度图像中分离出来的人体轮廓进行进一步的识别,并将人体划分为32个不同部位;
3)关节点定位 该过程主要是Kinect将可能的像素点合并成1个关节点。Kinect目前可识别定位20个关节点及其三维信息[16]。
2 动作评分模块设计
评分模块首先用Kinect传感器获取学员动作序列;其次通过对数据进行角度特征提取,结合动态时间规划(DTW)算法来匹配学员动作序列与标准动作序列的对应帧;最后结合提取的角度、速度特征与动作的持续时间,计算出两序列间的差异,最后综合考虑这些因素预设评分标准和规则计算出总分。
2.1 提取角度和速度特征
本文提取的角度特征、速度特征均满足骨架数据特征提取的原则,即特征数据能够表示动作的唯一状态;特征数据在整个动作过程中具有连续性、稳定性;当外界发生不可抗拒干扰因素时,特征数据能满足不变性[16]。
2.1.1 提取角度特征
利用Kinect可获取20个关节点的坐标信息,它们对动作的状态描述的贡献程度不同[17]。根据太极拳运动特性,整个过程中,由关节旋转特性决定的四肢空间位置对动作表述起关键作用。因此本文着重研究肩、肘、髋、膝主要关节点的静态姿态下的关节角度特征。
8个关节点根据自由度可以分成2类,如图1所示。
1)LEFT ELBOW,RIGHT ELBOW LEFT KNEE,RIGHT KNEE这4个关节点只能在一个平面上旋转;
2)LEFT SHOULDER,RIGHT SHOULDER,LEFT HIP,RIGHT HIP这4个关节点可以在空间中多方向旋转。
对于一个平面上旋转的ELBOW,KNEE这4个关节点,其关节角度值为0°~180°,可以通过计算2个向量间的1个角度来确定。
对于在空间中多方向旋转的SHOULDER,HIP这4个关节,骨架的运动比较复杂,人体骨架关节点标记示意图如图2所示。
图1 关节点自由度示意图Fig.1 Diagram of joint angle
图2 人体骨架关节点标记示意图 Fig.2 Diagram of joint point markers of human skeleton
以右肩与右臂之间角度∠CEF为例,当手臂垂直向前,或者手臂垂直向下时,肩膀关节点处的角度值都是90°。因此,如果只以FE和EC的角度来描述右肩的状态,显示不合理。本文建立以向量AC,EI以及两向量的法向量方向为坐标系的三维空间坐标系。则右肩关节点可
以∠FEX,∠FEY和∠FEZ的组合来表示骨架的状态(其中X,Y,Z分别表示EI,AC以及其叉乘方向,即EI和AC组成平面的法向量)。由空间几何可以推导得到,如果已知1条直线和空间中不共线的3条直线之间的夹角,那么这条直线方向可唯一确定。左肩和臀部关节点用类似的方法计算角度特征。系统中针对8个关节提取了共16个角度作为角度特征,具体16个角度特征的内容如表1所示。表1 8个主要关节点角度的表示Tab.1 Representationofthe8mainjointpoints关节角度1角度2角度3L-ELBOW∠IJK--R-ELBOW∠EFG--L-KNEE∠QRS--R-KNEE∠MNO--L-SHOULDER∠JIX∠JIY∠JIZR-SHOULDER∠FEX∠FEY∠FEZL-HIP∠RQX∠RQY∠RQZR-HIP∠NMX∠NMY∠NMZ 注:X,Y,Z分别表示EI,AC以及其叉乘方向,即EI和AC组成平面的法向量。
图3 关节点瞬时速度的计算示意图 Fig.3 Diagram of the instantaneous velocity of the joint points
2.1.2 提取速度特征
在采集骨架序列时,采集每帧的时间间隔是固定的,因此每帧关节点瞬时速度大小即等价于该帧到前一帧的关节点运动的差值。计算公式如式(1)所示:
(1)
图4 DTW寻最优匹配路径Fig.4 DTW search optimal matching path
式中:Joint表示人体骨架中20个关节点中任意一个关节点,PJoint,i表示该关节点在第i帧里的空间坐标,d(PJoint,i,PJoint,i-1)表示2个向量的欧式距离,SJoint,i表示Joint关节点在第i帧里的瞬时速度。
图3所示为关节点瞬时速度的计算示意图。前一帧骨架用实线表示,后一帧骨架用虚线表示,某一个关节点的瞬时速度即是图中的对应关节点之间的连线。
2.2 DTW计算对应帧
关于对应帧问题,为了解决计算效率问题,进行等间隔均匀抽样找取关键帧,未考虑对应精度,如图3实线条所示。系统采用DTW算法以角度特征为依据进行对应帧计算。DTW算法[18-19]通过把时间序列进行延伸和缩短来计算测试序列与标准序列相似度,在测试序列和标准序列之间建立1条时间校准匹配路径。并求解2个序列在匹配过程中累积距离最小的路径作为最优路径。
以下为DTW计算过程。
Kinect采集的数据的速率大约30帧/s,1个动作序列可看作为连续多帧骨架数据的集合。定义2个动作序列U=(U1,U2,…,Ui,…,Um)和V=(V1,V2,…,Vj,…,Vn),U为测试序列,V为标准序列,长度分别m帧和n帧。Ui表示动作序列U中第i帧人体姿态的角度特征。如图4所示。
通常情况下m≠n,需要构建一个m×n的矩阵网格,如图4所示,定义矩阵D。
式中,d(Ui,Vj)表示Ui,Vj对应角度特征的欧氏距离。
目标是在此网格矩阵中找出1条通过若干格点的最短路径,通过的格点即为2个序列对应帧的点。定义这条最短路径为规整路径Wk={ω1,ω2,…,ωk}这一组连续矩阵元素用来映射动作序列U,V的角度特征的对应关系。计算出距离矩阵的最优路径,如果序列U中的某一帧Ui和序列V中的某一帧Vj,对应到最优路径中的同一个元素上,那么Ui和Vj即是对应帧。
2.3 得分计算
(2)
(3)
式(3)计算的是2个动作序列之间的距离,即2个动作序列越相似,那么距离值越小,越不相似,距离值越大。下面通过映射,把距离值映射成得分,即如果距离越大,得分越小,距离越小,得分越大。映射公式如式(4)所示:
S=α(D-β),
式中:S表示角度或者速度得分;D表示角度或者速度的特征距离;α与β是映射参数,应该根据实际测试情况选择合理的值,使得分能映射到合理的范围内[20-21]。
3 实验及系统实现
3.1 对比实验
图5 对比实验Fig.5 Comparative experiment
采集1组比较标准的太极拳动作作为标准序列,把每组太极拳序列分为“起势”、“野马分鬃”、…、“收势”等24个动作,并把动作依次编号为1~24,记录每个动作的起始帧和结束帧。对每组标准动作序列中的每一个动作,进行随机上采样或者下采样操作。上采样,就是把视频变长,比如每2帧之间插1帧,下采样就是把视频变短,比如每2帧之间去1帧。然后对新生成的序列中的每一帧添加小幅度随机噪声,加噪声是为了模拟得更加真实,把这个序列作为1个测试序列。生成的测试序列跟标准序列在姿态上可以认为是一样的,如果对应帧找得准,那么测试序列的角度得分应该比较高,如果对应帧找得不准,那么角度得分就会比较低。这样可以比较2种时间对应帧算法。通过这种方式,生成10组测试序列,以标准动作序列为基准,计算测试序列中24个动作各自的得分。重复采集10次,最后求平均。对比实验结果如图5所示。
图5中,横轴依次表示太极拳24个动作编号,纵轴表示得分。上部的线表示用本文算法的角度得分,下部的线表示传统基于等时间间隔采集算法计算的角度得分。本实验中的测试序列是通过对标准序列不同程度的采样得到的,因此可以认为测试序列中每1帧动作的姿态是标准的,即角度得分应该比较高。从实验结果可知,本文算法的角度得分优于传统算法,即基于DTW的对应帧匹配要比等时间间隔的对应帧匹配算法更加精确。
3.2 系统实现
在测试前,系统将已建好的一套标准的太极拳运动捕捉文件上传到本系统作为标准数据库,其流程图如图6所示。系统运行后,学员打开太极拳学习模块的界面(如图7所示),可以观看太极拳标准动作视频,界面的按钮可供学员选择太极拳学习的章节内容,并对视频播放进行控制。动作采集模块可采集到学员的动作,Kinect标记的关节点将显示到界面窗口上,如图8所示,界面上的按钮可控制Kinect与数据采集的启动和结束。
图6 标准数据库流程图Fig.6 Flow chart of standard database
图7 学习模块界面Fig.7 Interface of learning module
图8 采集数据模块界面Fig.8 Interface of collecting data module
动作评估阶段的测试流程如图9所示,通过比较测试序列和标准序列的关节点角度、速度特征的相似性计算得分。图10展示了本系统对测试者的太极拳运动的评价结果,此处的数据表示距离,越小表示越相似。评价分值由距离值映射而获得。
图9 测试流程图Fig.9 Flow chart of test
图10 评分模块界面Fig.10 Interface of scoring module
4 结 论
本文设计开发的基于Kinect的原地太极拳辅助训练系统,包括24式原地太极拳的视频学习模块、动作采集模块和动作评分模块。视频学习模块为学员学习提供太极拳标准动作视频指导;动作采集模块实现了原地太极拳动作中人体骨骼的20个关节的空间坐标的数据采集,并实现了数据滤波降噪、遮挡点数据处理及骨架数据保存功能;动作评分模块以8个主要关节点的16个角度特征和20个关节点的瞬时速度特征为基础,采用动态时间规划算法(DTW)对测试序列与标准序列进行实时对比计算,根据预设的评分规则实现了评分功能,并为学员提供更直观可靠的训练建议。系统作为对传统教学的适当补充,帮助学员对自己的动作进行评估打分,实现自主学习和自我评价,有效解决了传统太极拳学习方式存在的问题,对构建太极拳及其他运动辅助训练系统具有一定参考价值。由于Kinect的可视范围有限,系统初步实现了原地太极拳的评测及辅助训练。对于运动范围较大的非原地太极拳辅助训练系统的构建,需要采用单个Kinect同步运动控制采样或多个Kinect数据融合算法进行改进。
/References:
[1] 佟辉,谢成武.塑造中国传统体育文化品牌——太极拳[J].沈阳体育学院学报,2010,29(5):136-138. TONG Hui, XIE Chengwu. Traditional Chinese sports and cultural brand--Tai Chi[J]. Journal of Shenyang Sport University, 2010,29(5):136-138.
[2] JOHANSSON G. Visual perception of biological motion and a model for its analysis[J]. Perception &Psychophysics, 1973, 14(2): 201-211.
[3] MOESLUND T B, GRANUM E. A survey of computer vision-based human motion capture[J]. Computer Vision & Image Understanding, 2001, 81(3):231-268.
[4] FERNANDEZ-BAENA A, SUSIN A, LLIGADAS X. Biomechanical validation of upper-body and lower-body joint movements of kinect motion capture data for rehabilitation treatments[C]// 2012 Fourth International Conference on Intelligent Networking and Collaborative Systems. [S.l.]:[s.n.], 2012:656-661.
[5] 蔡建平,淮湛欣.太极拳运动考评软件的设计与实现[J].软件,2012, 33(3):60-63. CAI Jianping, HUAI Zhanxin. Design & implementation of Taiji motion appraisal system[J]. Software, 2012, 33(3):60-63.
[6] SMISEK J, JANCOSEK M, PAJDLA T. 3D with Kinect[C]//2011 IEEE International Conference on Computer Vision Workshops. [S.l.]:[s.n.], 2011:1154-1160.
[7] ZHANG Z. Microsoft Kinect sensor and its effect[J]. IEEE Multimedia, 2012, 19(2):4-10.
[8] WEBB J, ASHLESY J. Beginning Kinect Programming with the Microsoft Kinect SDK[M]. New York:Apress , 2012:223-225.
[9] KEAN S, HALL J C, PERRY P. Microsoft’s Kinect SDK[M].New York: Apress, 2011:151-173.
[10]余涛.Kinect应用开发实战:用最自然的方式与机器对话[M]. 北京:机械工业出版社, 2013.
[11]ZENG M, LIU Z, MENG Q, et al. Motion capture and reconstruction based on depth information using kinect[C]//2012 5th International Congress on Image and Signal Processing. [S.l.]:[s.n.],2012:1381-1385.
[12]SHOTTON J, FITZGIBBON A, COOK M, et al. Real-Time human pose recognition in parts from single depth images[J]. Postgraduate Medical Journal, 2013, 56(1):1297-1304.
[13]SHOTTON J, GIRSHICK R, FITZGIBBON A, et al. Efficient human pose estimation from single depth images[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2013, 35(12):2821-2840.
[14]ZAINORDIN F D, LEE H Y, SANI N A, et al. Human pose recognition using Kinect and rule-based system[C]// World Automation Congress 2012. [S.l.]:[s.n.], 2012:1-6.
[15]邓瑞,周玲玲,应忍冬.基于Kinect深度信息的手势提取与识别研究[J].计算机应用研究, 2013, 30(04):1263-1265. DENG Rui, ZHOU Lingling, YING Rendong. Gesture extraction and recognition research based on Kinect depth data[J]. Application Research of Computers, 2013, 30(4):1263-1265.
[16]辛义忠,邢志飞. 基于Kinect的人体动作识别方法[J]. 计算机工程与设计, 2016,37(4):1056-1061. XIN Yizhong , XING Zhifei. Human action recognition method based on the Kinect[J]. Computer Engineering and Design, 2016, 37(4):1056-1061.
[17]CHEN C, LIU K, KEHTARNAVAZ N. Real-time human action recognition based on depth motion maps[J]. Journal of Real-Time Image Processing, 2013, 12(1):1-9.
[18]VAJD A T. Action recognition based on fast dynamic-time warping method[C]// 2009 IEEE 5th International Conference on Intelligent Computer Communication and Processing. [S.l.]:[s.n.], 2009:127-131.
[19]傅颖,郭晶云.基于动态时间规整的人体动作识别方法[J]. 电子测量技术,2014,37(3):69-72. FU Ying, GUO Jingyun. Dynamic time warping-based human action recognition[J]. Electronic Measurement Technology, 2014, 37(3):69-72.
[20]杨彦波,刘滨,祁明月. 信息可视化研究综述[J]. 河北科技大学学报, 2014,35(1):91-102. YANG Yanbo, LIU Bin, QI Mingyue. Review of information visualization [J]. Journal of Hebei University of Science and Technology, 2014,35(1):91-102.
[21]郑琨,张杨,赖杰,等.基于支持向量机和特征向量提取的人脸识别框架[J].河北工业科技,2016,33(1):58-62. ZHENG Kun,ZHANG Yang,LAI Jie,et al. Face recognition framework based on support vector machine and feature vector extraction [J].Hebei Journal of Industrial Science and Technology, 2016, 33(1):58-62.
Research of Tai-chi-chuan auxiliary training system based on Kinect
XUE Zhihong1, ZHANG Liying1, CHENG Zhenhua1, ZHAO Haozhi1, YANG Chunhui2
(1.School of Electrical Engineering, Hebei University of Science and Technology, Shijiazhuang, Hebei 050018, China;2.Fangyuan Electronic and Audiovisal Publishing Company Limited, Shijiazhuang, Hebei 050061, China)
In order to promote the scientific standardization of Tai-chi-chuan teaching and training, a Tai-chi-chuan auxiliary training system based on Kinect motion capture technology and extraction of the angle feature and speed feature is proposed and designed. The dynamic time planning algorithm (DTW) sampling corresponding frame is applied to replace the traditional method of sampling the key frame. The auxiliary training system consists of learning module, action acquisition module and action scoring module. Learning module with stan-dard action teaching video, to meet the requirements of students learning; action acquisition module uses Microsoft developed Kinect equipment to realize data acquisition of the spatial coordinates of the human skeleton in Tai-chi-chuan action, and through filtered noise reduction and the occlusion point data processing the skeleton data is saved. The scoring module constructs the test sequence based on the 16 angle features of eight key joint nodes and the instantaneous velocity characteristics of 20 joint nodes. By comparing with the standard sequence in real time, the original scoring rules is used to achieve the scoring function, which provides students with intuitive and reliable training recommendations, so as to improve the efficiency of learning. By increasing the number of sensors, further designing and optimizing data fusion and filtering algorithm, combining with Microsoft’s Kinect2.0 version, the system can also be applied to medical rehabilitation, physical training analysis and evaluation, virtual reality and human-computer interaction, etc. Keywords:image processing; Kinect; motion capture; feature extraction; DTW; Tai-chi-chuan; assistant training system
1008-1542(2017)02-0183-07
10.7535/hbkd.2017yx02013
2016-11-16;
2017-01-13;责任编辑:李 穆
河北省科技攻关项目(16210312D)
薛智宏(1971—),男,河北邢台人,副教授,硕士,主要从事智能控制方面的研究。
E-mail:xzh@hebust.edu.cn
TP391.41
A
薛智宏, 张利英,程振华,等.基于Kinect的原地太极拳辅助训练系统[J].河北科技大学学报,2017,38(2):183-189.
XUE Zhihong , ZHANG Liying , CHENG Zhenhua,et al.Research of Tai-chi-chuan auxiliary training system based on kinect[J].Journal of Hebei University of Science and Technology,2017,38(2):183-189.