基于骨骼信息的虚拟角色控制方法

2016-06-29 09:35李红波孙舶源李双生

李红波, 孙舶源, 李双生

(重庆邮电大学 计算机科学与技术学院,重庆 400065)



基于骨骼信息的虚拟角色控制方法

李红波, 孙舶源, 李双生

(重庆邮电大学 计算机科学与技术学院,重庆 400065)

摘要:针对当前动作捕捉方法中基于旋转矩阵的虚拟角色控制方法,虚拟角色模型运动还原度低、人体动作不能实时展现、抗光照干扰能力弱的问题,提出一种基于骨骼信息的四元向量控制方法。该方法以Kinect体感摄像机捕获的人体骨骼关节点数据为基础,计算并记录人体运动过程中关节点空间位移和关节点之间夹角的变化,根据相邻图像序列中的运动数据确定虚拟角色每个骨骼关节点的旋转角度,并将其转化为四元旋转向量。根据正向运动学原理,从根节点对虚拟角色模型进行调整并根据人体动作进行实时反馈。通过理论分析和仿真结果表明,与基于旋转矩阵的的虚拟角色控制方法相比,该方法的人体姿态还原度高,角度误差低,实时预览效果直观,实时性与抗光照干扰能力强。

关键词:动作捕捉;Kinect;四元向量;虚拟角色

0引言

随着微传感器动作捕捉技术的快速发展,人体建模和人体动作实时重建也变得越来越重要,更加真实的3D动画已经成为电影及视频体感游戏不可缺少的部分。逼真的角色动画能够增强虚拟环境的沉浸感和可信度,增强用户体验[1-2]。现有的虚拟角色动作一般都是在摄像头捕获到真实的人体运动数据后,再由动画调节人员通过专业的动画软件对虚拟角色模型的骨骼进行调节,大量的时间都花费在骨骼姿态的调整上,因此,处理效率极低,而且不能实时反馈并展示人体动作效果。

主流的人体运动数据捕获方式分为2种:①基于视频流提取运动数据和微传感器硬件捕获运动数据[3-5]。而该数据的捕捉包括人体运动帧序列的视频跟踪分析和人体运动信息的处理[6],此方法的优点在于可获取的动作素材较多。但其缺点也很明显,就是不易从二维数据中恢复出三维运动数据;②基于微传感器硬件的动作捕捉则是利用声音、光、电磁等微型传感器设备实时记录人体骨骼关节点的三维坐标、旋转角度、位移距离等运动信息,从而得到人体的运动数据,其优点在于数据精确度高并且动作更加真实。但也有一定的局限性,就是人体必需佩戴较多的传感器设备,导致人体无法自由运动,而且设备成本高,对动作捕捉场地的光照、背景、以及反射情况都有较高的要求,无法实时反馈并展示人体运动效果。

通过捕获到的人体运动数据控制虚拟角色模型[7-8]实时反馈人体动作的主要难点在于:①驱动虚拟角色模型的数据是由摄像头或传感器实时捕获更新的,需要进行快速地识别并对捕获到的运动数据进行实时反馈;②普通的摄像头不能准确地捕获人体骨骼关节点,因此,需要特殊的摄像设备来捕获人体骨骼关节点;③人体动作捕获过程中,不能实时地观察虚拟角色模型的运动效果,必须通过后期调试后才可以展现。众多学者对动作捕捉和人体动作重现进行了相关研究:Kim等[9]提出了一种有效的步行模式映射算法,将获取到的人体运动姿态数据用于双足人形机器人研究中,并通过双足机器人仿真计算验证了算法的有效性;Young等[10]以人体生物力学为基础,通过点、线粗略表示人体模型并建立基于惯性运动的动作捕捉系统。但在人体运动过程中会出现人体线条交叉导致动作失真的情况;Tao等[11]提出一种基于向前运动学的骨骼动画控制方法,该方法使用向前运动学求解虚拟角色模型骨骼关节点坐标和旋转角度,并对运动数据进行插值处理以得到更平滑的运动效果。此方法实时性强,但虚拟角色模型的运动与真实人体运动之间有较大的误差,同时穿戴型传感器增加了系统的操作难度。

针对上述问题,本文提出一种新的虚拟角色模型控制方法,以Kinect设备捕获的人体骨骼节点数据为基础,根据人体解剖学原理和人体骨骼与关节点的层级树形结构设计对应关系,建立相应的虚拟角色骨骼模型,计算运动时相邻帧间人体骨骼关节点之间的夹角变化以及位移距离变化,并通过四元旋转向量控制虚拟角色的运动。实验结果表明,本文提出的方法抗光照、背景干扰能力强,可以实时地反馈与展示人体运动,虚拟角色模型运动还原度高。本文方法可应用于Kinect体感游戏、三维动画CG(computer graphics)、人体运动障碍康复训练等方面。

1相关技术基础

1.1人体深度信息提取

Kinect传感器设备包括三原色(red,green,blue,RGB)彩色摄像头、红外光源和红外摄像头。其中,RGB摄像头可以采集彩色图像,最大支持1 280×960分辨率成像,红外光源和红外摄像头可以采集3D深度图像,最大支持640×480分辨率成像。Kinect设备每秒可采集30帧图像,采集距离为0.8—4 m。利用Kinect红外摄像头进行人体动作捕捉可以克服光照、复杂背景等干扰,捕获人体骨骼数据后,每一帧的数据都是一个骨骼对象集合,集合中每一个骨骼对象都包含骨骼的三维空间位置以及骨骼关节点的数据。每一个骨骼关节点都有一个唯一的标识符,如头(head)、肘(elbow)、肩部(shoulder)等,此外,还包含一个三维向量数据。

1.2虚拟角色骨骼模型

通过提取深度数据流中人体骨骼节点的坐标数据,Kinect可以实时地获取预先定义的20个人体骨骼节点。为了能够实时地展示人体的运动过程,需要根据人体骨骼特征建立一个具有层次结构的铰接式虚拟角色模型,如图1所示。虚拟角色模型由骨骼段部分、球形可转动关节点和骨骼蒙皮组成。每一段骨骼为刚性几何体,几何体所代表的人体骨骼在真实人体运动过程中保持形状不变。骨骼部分通过关节点连接,形成一个铰接层次结构,其中,臀部关节点是整个层次结构的根节点,包含6个自由度,分别为三维空间中的3个旋转自由度和3个位移自由度。

图1 虚拟角色模型

1.3骨骼旋转矩阵求解描述

虚拟角色模型姿态的改变是通过改变相关骨骼关节点的自由度来完成的,根据模型部位的不同,各个部位都有2—3个自由度可以进行更改。自由度分别包括:伸长/弯曲、展开/内敛、侧面转动/中心转动3种类型,分别对应模型身体部位的纵向、横向以及径向轴的旋转。要控制虚拟角色模型的运动,则需要通过旋转矩阵[10]求解模型骨骼的旋转角度。首先,计算根节点的位移和角度变化量,然后根据根节点的变化求解其相邻子节点的旋转角度。

设人体某部位关节点在全局坐标系中的位置为(x,y,z),该节点绕自身运动坐标系的ZYX轴旋转的角度分别为α,β,γ。通过旋转矩阵求得在人体运动的过程中胸部关节点的位置变化,可用矩阵表示姿态变化如下。

(1)

(2)

2虚拟角色控制方法

2.1问题提出和总体思路

基于微传感器的动作捕捉方法虽然可以捕获人体运动中骨骼关节点的运动数据,但附加到运动者身上的传感器设备限制了人体骨骼节点的自由度,且不能实时反馈人体运动的效果。传统的依据视频流数据的动作捕捉方法对动作捕捉场景、光照条件要求更加严苛;Boboc等[14]根据运动力学提出的虚拟角色控制方法,依据向前运动学原理,从根节点出发,依次对其子节点进行位移或角度调节,虽然可以满足实时性要求,但虚拟角色模型运动姿态与真实人体运动姿态之间存在较大的误差,其运动误差平均为7.4%;此外,Sanna等[15]提出的自然交互式控制虚拟模型,通过建立简单的人体层次骨骼模型并对其进行分类,可以在用户界面(userinterface,UI)上实时地观察运动者的运动姿态,但其人体模型的运动姿态比较简单,虚拟角色模型并不能完成复杂的运动。

针对现有动作捕捉方法中存在的问题,本文提出了一种基于骨骼信息的虚拟角色模型的运动控制方法。该方法通过Kinect传感器设备获取人体骨骼关节点,提取运动控制所必须的14个关键骨骼节点,并根据骨骼节点运动数据计算骨骼向量的角度变化,然后对骨骼节点运动数据进行阈值控制,最后根据四元数原理将骨骼向量转化为四元向量并对虚拟角色进行移动和旋转操作。本文方法具有较高的实时性和准确性,且可以实时地展示并反馈人体的运动姿态。本文提出的虚拟角色控制方法的整体流程如图2所示,虚线框中内容为本文的核心步骤。

2.2人体骨骼节点绑定

Kinect传感器可以获取20个人体骨骼关节点,其中,头部、手部和脚步只有一个节点,因此,在通过Kinect传感器进行动作捕捉的过程中,无法区分人体的手指动作和脚尖朝向,也无法判断人体的面部朝向。本文忽略了手指及脚趾等细微运动,选取有效的14个人体关键节点进行操作,且不会破坏人体运动姿态的完整性表达。

图2 虚拟角色控制方法整体流程Fig.2 Flowchart of avatar control method

设虚拟角色模型的臀部中心关节点为层次结构模型的根节点,并以此为中心节点对模型腿部节点进行控制。同理,虚拟角色模型分为若干部分,其中,每一个部分都由其相应的父节点独立控制。此结构可以在人体运动过程中,避免不同身体部位的相邻关节点不规则运动导致的虚拟角色模型整体运动姿态失真的现象。此外,为了使虚拟角色模型的运动姿态更真实地反映人体运动状态,需要为不同身体部位的骨骼节点设置相应的运动属性。例如,人体的头部节点只允许围绕颈部节点进行旋转操作,而不能进行位移操作。虚拟角色骨骼模型与使用Kinect捕获提取的人体骨骼模型对应关系如表1所示。

表1 人体模型与虚拟角色模型关节点的对应关系

2.3骨骼节点角度特征值计算与阈值控制

确定人体各个骨骼节点的三维空间位置后,再根据真实人体动作反馈到虚拟角色模型上,由于人体各个骨骼节点是实时变化的,骨骼节点之间的夹角也会随之改变。控制虚拟角色运动,需要计算人体各个骨骼节点在每一帧的夹角值,如图3所示。

图3 右臂关节点夹角计算Fig.3 Angles of the right arm joints

以右臂为例,通过Kinect获取到人体右肩关节点、右手肘、右手腕的空间三维坐标分别为(xrs,yrs,zrs),(xre,yre,zre),(xrw,yrw,zrw)。设置骨骼节点向量夹角为[0,π],每个角度对应唯一的余弦值。

设右手肘到右肩的距离为d1;右手肘到右手腕的距离为d2;右肩到右手腕的距离为d3,根据骨骼节点的空间位置坐标,则关节点之间的空间距离如(3)-(5)式。

(3)

(4)

(5)

在人体的运动坐标系和参考坐标系水平方向保持一致的情况下,可以根据人体骨骼节点之间的距离确定当前帧中骨骼向量的夹角值,右手臂与右手肘到右肩的夹角为

(6)

人体各个骨骼节点之间的夹角定义为[0,π],在此范围内余弦函数具有单调递减的特性,因此,在人体运动过程中,每一帧中人体骨骼节点之间的夹角对应唯一的余弦值。通过余弦值直接计算每一帧中骨骼节点间的夹角,可以减少计算复杂度,提高实时性。

Kinect获取的人体骨骼数据是非层次、非树形的三维数据,各数据之间存在一定的关联,为了提取骨骼数据中人体运动的旋转位移信息,本文采用刚体运动学中的运动阈值控制刚体角度和位移变化。在捕获人体运动数据过程中,Kinect是根据单帧骨骼数据的变化记录有效信息,因此,本文根据人体骨骼节点的位置来定义和描述单帧图像中的骨骼运动姿态。设当前帧中人体姿势的角度特征为αcurrent,视频图像长的下一帧角度特征为αnext。同理,距离特征分别为dcurrent和dnext,设置刚体运动角度阈值α和位移阈值d,则在连续的视频图像帧中,每个骨骼节点对应的角度和位移特征需要满足

(7)

(8)

通过设置刚体运动阈值来控制人体运动过程中的大幅度姿态变化,使得相邻帧中骨骼节点之间的夹角变化和位移被限制在预设的范围之内,若运动过程中数据超出范围,则证明人体运动姿态失真,需要对该帧的数据进行重新捕获。该方法保证了Kinect捕获记录的骨骼运动数据的真实性,并且使得通过骨骼运动数据控制虚拟角色运动的运动姿态准确、有效,还原度高。

2.4虚拟角色模型骨骼旋转向量求解

在人体运动过程中,以Kinect摄像头的正前方为Z轴,以人体臀部骨骼节点为原点,通过右手定则确定Y轴和X轴的延伸方向,并以此坐标系作为人体各部位运动坐标系的初始方向。

虚拟角色模型姿态的改变是通过改变其相关骨骼节点的自由度来完成的,根据人体的不同部位,可设置2-3个自由度。不同的自由度用以控制不同的骨骼节点绕不同的自身运动坐标系的旋转轴进行旋转操作。根据人体的运动数据将其运动结果实时地反馈给虚拟角色模型,确定人体每一个骨骼节点的运动数据。为了实现模型骨骼根据运动数据实时连续的旋转,本文采用四元向量方法控制虚拟角色模型骨骼的运动。此方法不但可以避免传统的欧拉角法可能导致的自由度丧失,还可以弱化通过旋转矩阵控制骨骼旋转中由连续旋转造成的矩阵蠕变现象,从而提高虚拟角色模型动作的准确性,具体步骤如下。

1)通过Kinect获取的人体各个骨骼节点在当前帧中的空间位置,计算确定每个骨骼段的特征矢量,如(9)式。

(9)

(9)式中:P为骨骼段特征矢量;XP,YP,ZP表示骨骼节点i和骨骼节点j之间骨骼段特征矢量的三维坐标;Xj,Yj,Zj表示人体骨骼节点的三维坐标;Xi,Yi,Zi表示人体骨骼节点的三维坐标。

2)由(3)-(6)式得到2个当前帧中和下一帧人体骨骼段夹角集合A={α1,α2,…,αi},B={α1,α2,…,αj},其中,i,j∈R。根据相邻两帧的角度变化,可确定角度变化量Δαi。设特征矢量P旋转Δαi角度后变为特征矢量O,|P|=|O|=r;设垂直于P,O所在平面的旋转轴方向的单位矢量为e,其中,旋转方向与转轴方向遵循右手定则。根据四元数[14]原理定义四元旋转向量,如(10)式。

(10)

(10)式中:QB为一个标量和一个三元向量的组合;ω表示相邻两帧中骨骼段的旋转角度;v表示旋转轴向量,i,j,k为虚数单位。

3)设P围绕某一骨骼节点J以单位向量e为方向的旋转Δαi到达O。根据骨骼段旋转角度变化量Δαi和由P,O确定的旋转轴可以得到相邻两帧的骨骼节点旋转向量,如(11)式。

(11)

由(11)式得到的骨骼旋转特征向量Q唯一的表示相邻帧骨骼段的旋转特征。其中,包括角度变化量和旋转坐标轴。然后,根据四元数三维空间刚体运动旋转原理,加入满足本文方法要求的运动控制阈值,将其引入四元数三维旋转公式中,如(12)-(13)式。

(12)

(13)

(12)—(13)式中:Q-1为向量Q的逆;Q*为向量Q的共轭向量。此过程中,四元数表示刚体方位并控制其旋转只需用4个数,而矩阵旋转方法则需要9个数表示,因此,四元数的效率更高。为了使帧与帧之间虚拟角色骨骼模型的运动效果更平滑流畅,本文采用球面线性插值对t和t-1帧中的虚拟角色骨骼特征矢量进行插值操作,如(14)式。

(14)

在人体骨骼节点运动数据处理阶段,对虚拟角色模型进行相应骨骼关节点绑定后,角色模型的根节点在世界坐标系下可能发生变化,产生额外的平移运动,因此,需要对虚拟角色模型的根节点进行调整。Kinect自身的坐标系系统与本文所用的游戏引擎坐标系之间的基本度量长度存在差异,若直接将获取的人体运动数据应用于虚拟角色模型上,在控制其运动的过程中会产生运动失真或动作不到位的现象,因此,需要对角色模型的根节点进行相应的调整。设Kinect自身坐标系与游戏引擎度量单位相差距离为n,若在Kinect坐标系中人体骨骼根节点在相邻两帧间的位移为(fx,fy,fz),则在游戏引擎中虚拟角色模型的根节点位移为

offset=(fx/n,fy/n,fz/n)

(15)

2.5方法描述

在本文的虚拟角色模型控制算法中,首先根据Kinect的骨骼识别要求,通过三维建模软件建立人体三维模型并对模型进行骨骼驱动权值设定;从Kinect捕获的20个骨骼节点中提取14有效关键节点作为模型控制的特征点;根据视频中帧与帧之间的人体动作变化,计算骨骼节点夹角集合A,B,并得出相应的夹角变化量Δαi;为了防止角色驱动过程中动作跳帧或失真,对运动距离和运动角度设置阈值来控制运动幅度;采用四元向量方法记录人体骨骼信息,并根据骨骼特征矢量间的夹角变化驱动虚拟角色模型实时反馈人体动作。本文提出的虚拟角色运动控制方法计算效率高、实时性强、准确度高。算法描述如下。

名称:基于骨骼信息的虚拟角色控制方法。

输入:当前捕获的人体运动骨骼数据。

输出:虚拟角色模型实时反馈人体运动姿态。

方法:执行以下步骤。

步骤1提取人体骨骼节点,并初始化骨骼节点坐标和角度特征值;

步骤2人体骨骼节点与虚拟角色模型相应节点绑定,骨骼根节点调整;

步骤3根据(3)—(6)式计算当前帧骨骼段夹角特征值;

步骤4根据(7)—(8)式对人体运动距离和角度变化设置阈值控制运动幅度;

步骤5根据(9)式计算骨骼特征矢量;

步骤6根据步骤3中得到前后帧夹角变化量,按照(11)—(13)式,计算虚拟角色骨骼模型旋转特征矢量;

步骤7利用(14)式对相邻帧间动作数据进行线性插值,按照(15)式调整虚拟角色模型根节点;

步骤8根据计算结果实时控制虚拟角色模型实时运动,算法结束,重新进入步骤1。

3方法验证与对比分析

3.1实验设计及环境

为了验证本文方法的准确性、实时性和鲁棒性,共设计了3组试验方案,分别为运动精准度对比实验、运动实时性对比实验和光照鲁棒性验证实验。强弱光照验证实验主要是在不同的光照环境下验证本文方法的鲁棒性,本文方法在弱光环境下仍可对虚拟角色模型进行控制,具有较高的实时性和鲁棒性。冉光勇[15]等提出的基于骨骼旋转矩阵的控制方法有较高的实时性,但运动误差为4.2%,仍有待进一步提高,故选择该方法在相同的条件下作为虚拟角色模型运动精准度的对比对象。Sanna等提出的基于人体骨骼层次模型的关键帧控制方法虽然具有较高准确度,但其只能控制虚拟角色进行简单的运动,无法完成较为复杂的肢体动作,因此,将本文方法和Sanna等的方法进行了一组动作复杂度对比实验。

本文实验的硬件环境为Kinect三维摄像机一台,其色彩分辨率为640×480,深度图形分辨率为320×240;实验用计算机主要配置包括Inter(R)Core(TM)i3-530,3.33GHz主频四核CPU,内存4GByte;开发环境为Windows7操作系统,Unity3D和KinectSDK1.7。

3.2强弱光照条件下鲁棒性验证实验

图4a和图4b分别展示了本文方法在正常光照条件下(325lux)和弱光条件下(8lux)虚拟角色模型根据人体动作的反馈结果。图4a,4b中右下角的小图标表示人体运动过程中骨骼节点的位置。图4b中,在弱光条件下,本文方法通过Kinect红外摄像头散射光斑获取人体深度图像并准确地定位提取人体骨骼节点坐标并可以流畅地控制虚拟角色模型实时反馈人体动作。从实验结果可以看出,本文中的虚拟角色控制方法对动作捕捉对象所穿衣物与背景之间的颜色差异要求较低,色差敏感度弱,可以应对更加复杂的操作环境,有较强的鲁棒性。

图4 强弱光照条件下动作反馈实验Fig.4 Experiments of action feedback undernormal and weak illuminations

3.3虚拟角色模型运动实时性及精准度对比实验

将本文方法与文献[15]提出的基于骨骼旋转矩阵的虚拟角色控制方法在动作精准度方面进行了一组对比实验,在相同的实验条件下根据人体动作进行反馈进行精准度对比实验,如图5a,图5b所示。图5c,图5d分别展示了本文方法控制虚拟角色模型的简单和复杂运动效果,其中,简单动作分别为双手向上举起和人体T型标准姿势。实验中,对不同骨骼段夹角预设角度特征值,由角度特征值集合可确定目标动作姿态,然后,根据关键的角度特征值可判断虚拟角色模型动作姿态是否达到目标动作。从图5a右图可以看出,模型头部发生下倾,与目标动作头部姿态有偏差。在进行复杂动作反馈过程中,基于骨骼旋转矩阵的控制方法在完成目标动作姿态时并不能很好地控制腿部动作,且存在动作失真现象,从图5b左图可看出,虚拟角色模型右脚动作方向与目标姿态右脚方向相反。而本文方法中虚拟角色模型与人体动作更加接近,姿态精准度更高。

图5 模型运动精度对比Fig.5 Comparison of action accuracy

为了更准确地反映虚拟角色模型动作的实际误差程度,本文以人体运动过程中骨骼节点的实际位置与计算位置直接的欧拉距离来衡量姿态误差,计算公式为

(16)

(17)

(17)式中:avgerror为平均误差;n表示骨骼节点总数;tshape表示骨骼节点实际位置;cshape表示计算出的骨骼节点位置;mdiff表示最大欧拉距离。根据(16)式,(17)式对每帧结果计算姿态平均误差,然后对动作数据中所有帧平均误差取均值并计算出2种方法对不同动作做出反馈的平均时间。实时性和动作精准度对比实验结果如表2所示。

表2 2种方法实时性和精准度对比

通过实验测试可知,本文方法的动作误差为2.8%,平均动作反馈时间为6.9 ms。而文献[15]提出的方法动作误差为4.6%,平均动作反馈时间为9.4 ms。因此,本文方法具有更好的实时性和更高的精准度。

3.4复杂动作帧间误差对比实验

复杂动作帧间误差对比如图6所示。利用Kinect捕获的骨骼节点在人体完成复杂动作过程中的运动数据,在相同的运行环境下,分别用Sanna等以人体骨骼层次模型为基础的基于视频关键帧欧拉角旋转方法和本文的方法进行比较,选取人体右手腕关节为特征关节点分别进行运动数据处理,计算帧间右手腕关节的三维空间坐标。根据2种方法得到坐标位置与真实世界中的右手腕关节空间坐标对比,求得其误差值。图6中深线条表示本文方法在固定视频帧中的帧间距离误差;浅线条表示基于视频关键帧欧拉角方法的帧间距离误差。从图6可以看出,基于视频关键帧欧拉角旋转方法的距离误差比本文方法的距离误差大。因此,本文方法中虚拟角色模型反馈动作误差低,与实际动作更加贴近。

图6 复杂动作帧间误差对比Fig.6 Comparison of complex action’s inter-frame error

4结束语

本文提出了一种基于骨骼信息的虚拟角色控制方法。该方法根据人体骨骼层次模型,利用三维建模软件建立三维虚拟角色骨骼模型,将其与Kinect获取的人体关键骨骼节点绑定,计算相邻帧中人体骨骼段角度变化特征值,建立四元旋转特征矢量,对帧间运动数据进行线性插值,从而达到虚拟角色模型实时反馈人体动作的目的。实验结果表明,本文方法比现有的解决方法的运动准确度更高、实时性更好、复杂动作还原度高、抗光照干扰能力强。但本文方法在控制虚拟角色模型运动过程中,当人体骨骼节点发生自遮挡时,虚拟角色模型动作会产生失真和抖动现象,下一步将重点研究如何对骨骼运动数据进行平滑处理,降低大幅度运动过程中虚拟角色模型抖动带来的误差。

参考文献:

[1]FERN'NDEZ-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]//Intelligent Networking and Collaborative Systems (INCoS), 2012 4th International Conference on. Bucharest: IEEE, 2012: 656-661.

[2]DUTTA T. Evaluation of the Kinect? sensor for 3-D kinematic measurement in the workplace[J]. Applied ergonomics, 2012, 43(4): 645-649.

[3]FRATI V, PRATTICHIZZO D. Using Kinect for hand tracking and rendering in wearable haptics[C]//World Haptics Conference (WHC), 2011 IEEE. Istanbul: IEEE, 2011: 317-321.

[4]SHOTTON J, SHARP T, KIPMAN A, et al. Real-time human pose recognition in parts from single depth images[J]. Communications of the ACM, 2013, 56(1): 116-124.

[5]XIAO Y, YUAN J, THALMANN D. Human-virtual human interaction by upper body gesture understanding[C]//Proceedings of the 19th ACM Symposium on Virtual Reality Software and Technology. New York, USA: ACM, 2013: 133-142.

[6]SAKAMOTO M, ALEXANDROVA T, NAKAJIMA T. Augmenting Remote Trading Card Play with Virtual Characters used in Animation and Game Stories-Towards Persuasive and Ambient Transmedia Storytelling[C]//ACHI 2013, The Sixth International Conference on Advances in Computer-Human Interactions. Wilmington, USA: Iariaxps, 2013: 168-177.

[7]KIM J Y, KIMY S. Walking pattern mapping from imperfect motion capture data onto biped humanoid robots[J]. International Journal of Humanoid Robotics, 2010, 7(01): 127-156.

[8]YOUNG A D. From posture to motion: the challenge for real time wireless inertial motion capture[C]//Proceedings of the Fifth International Conference on Body Area Networks. New York, USA: ACM, 2010: 131-137.

[9]TAO G, SUN S, HUANG S, et al. Human modeling and real-time motion reconstruction for micro-sensor motion capture[C]//Virtual Environments Human-Computer Interfaces and Measurement Systems (VECIMS), 2011 IEEE International Conference on. Ottawa: IEEE, 2011: 1-5.

[10] TONG X, XU P, YANX. Research on skeleton animation motion data based on Kinect[C]//Computational Intelligence and Design (ISCID), 2012 Fifth International Symposium on. Hangzhou: IEEE, 2012, 2: 347-350.

[11] PAN H W, MENG Q, GAO C M, et al. Novel Data Conversion Method for Motion Capture[J]. JisuanjiGongcheng/ Computer Engineering, 2012, 38(2): 17-20.

[12] BOBOC R G, TOMA M I, Panfir A N, et al. Learning new skills by a humanoid robot through imitation[C]//Computational Intelligence and Informatics (CINTI), 2013 IEEE 14th International Symposium on. Budapest: IEEE, 2013: 515-519.

[13] SANNA A, LAMBERTI F, PARAVATI G, et al. A Kinect-based interface to animate virtual characters[J]. Journal on Multimodal User Interfaces, 2013, 7(4): 269-279.

[14] JIN L, LIU H, XU X, et al. Quaternion-based impulse noise removal from color video sequences[J]. Circuits and Systems for Video Technology, IEEE Transactions on, 2013, 23(5): 741-755.

[15] 李红波, 冉光勇, 吴渝, 等. 一种基于Kinect的角色骨骼动画方法[J]. 重庆邮电大学学报:自然科学版, 2014,26(4):530-535.

LI Hongbo, RAN Guangyong, WU Yu, et al. A role skeletal animation method based on Kinect[J]. Journal of Chongqing University of Posts and Telecommunications: Natural Science Edition. 2014,26(4):530-535.

Avatar control method based on skeleton data

LI Hongbo, SUN Boyuan, LI Shuangsheng

(College of Computer Science & Technology, Chongqing University of Posts and Telecommunications, Chongqing 400065, P.R. China)

Abstract:Since the current avatar control methods based on rotation matrix in motion capture methods have shortcomings in action accuracy and real-time property, and the anti-interference ability for illumination, a new avatar control method based on quaternion vector of skeleton data is proposed. First, the displacements of joints and the changes of the angles between joints during the movement are calculated and recorded based on the skeleton data captured by the Kinect. Then the rotation angle of bone joints are calculated according to the motion data in successive frames and are transformed to quaternion vectors. Finally, with the forward kinematics principle, the avatar gesture is accomplished and real-time feedback from root joint according to the body movements. Theoretical analysis and simulation results show that the method performed better on gestures accuracy, decrease of angle errors, straight real-time preview, and robust performance on light disturbance compared with avatar control methods based on rotation matrix.

Keywords:motion capture; Kinect; quaternion vector; avatar

DOI:10.3979/j.issn.1673-825X.2016.01.012

收稿日期:2015-03-18

修订日期:2015-10-20通讯作者:李红波lihongbo@cqupt.edu.cn

基金项目:重庆市自然科学基金(cstc2012jjA40027);重庆教委科学技术研究项目(KJ130518);国家自然科学基金(13CGL146)

Foundation Items:The Natural Science Foundation Project of CQ CSTC(cstc2012jjA40027);The Scientific and Technological Research Program of Chongqing Municipal Education Commission(KJ130518);The National Natural Science Foundation of China(13CGL146)

中图分类号:TP391.9

文献标志码:A

文章编号:1673-825X(2016)01-0078-09

作者简介:

李红波(1970-),男,甘肃人,高级工程师,硕士生导师,主要研究方向为数字媒体、人机交互、机器视觉。E-mail: lihongbo@cqupt.edu.cn。

孙舶源(1987-),男,河南人,硕士研究生,主要研究方向为数字媒体、人机交互。E-mail: 315322019@qq.com。

李双生(1989-),男,四川人,硕士研究生,主要研究方向为数字媒体、机器视觉。E-mail: 1067164553@qq.com。

(编辑:刘勇)