基于数据驱动的虚拟人运动合成方法研究
2017-03-24何长鹏罗鸿斌张燕
何长鹏 罗鸿斌 张燕
摘要:由于在虚拟人技术应用领域内兼顾到虚拟人形象化建模的同时还要满足运动合成的实时性要求,为了解决上述问题,文章提出一种局域数据驱动的虚拟人运动合成方法。首先将捕获的运动数据按照H-Anim标准进行简化处理之后存储在数据库中;其次从Poser中选取不同的人物模型,分别提取出符合简化后的运动捕获数据所描述的人体骨架结构。
关键词:虚拟人;骨架提取;数据驱动;运动合成;形象化建模 文献标识码:A
中图分类号:TP391 文章编号:1009-2374(2017)01-0003-02 DOI:10.13535/j.cnki.11-4406/n.2017.01.002
1 概述
虚拟人是人类在虚拟环境中的化身,即人体在虚拟环境中的几何特性与行为特性的表示。在现代计算机应用技术中,虚拟人应用主要集中在虚拟试衣、虚拟维护、军事训练、交互游戏、动画和影视特效制作和虚拟康复训练等方面。除了上述应用之外,还可以利用虚拟人完成很多模拟性的实验,这样可以大大降低实验的风险和成本。虚拟人作为人类的化身,按理应该具备人体的基本特性。但是人体是一个较为复杂的生命体系统,由骨骼、皮肤、肌肉和神经系统等组成,其中关节和骨骼的自由度较多,想要完全构建出一个具备生理特征的数字化虚拟人,难度非常大。目前,虚拟人技术所要解决的问题就是在保证人体基本结构不变的前提下,如何有效地对人体骨骼结构进行简化处理,构建出具有逼真外形的虚拟人模型。由于肌肉和神经系统的建立存在着很大的困难,研究的难度巨大,所以骨骼模型往往会忽略掉肌肉和神经系统。依据人体解剖学原理,人们制定了两个重要的国际标准H-Anim和MPEG-4来表示虚拟人骨骼结构,主要是将人体的骨骼和关节进行简化,减少其自由度,这样可以降低建模的难度。人们在遵循这两种标准的基础上,通过使用基于几何的方法、基于二维照片重构方法和基于人体测量学的方法等,构造了形象化的虚拟人,但是没有充分考虑运动合成的效率问题。
本文在兼顾虚拟人形象化建模的同时考虑到要满足运动合成的实时性要求,提出一种基于数据驱动的虚拟人运动合成方法。首先,在分析人体层次化结构的基础上,将人体运动捕获数据BVH进行简化处理;其次,选择三维人体造型软件Poser中相关人物模型提取其骨架结构,将运动捕获数据BVH映射到此骨架结构,根据运动约束条件对虚拟人运动姿态进行调整,建立符合H-Anim标准的形象化的虚拟人模型;再次,将皮肤网格模型与骨架结构进行绑定,骨架带动皮肤网格发生变形,产生逼真、平滑的虚拟人运动;最后,通过相关实验证明了该方法的有效性。
2 运动捕获数据分析
本文将使用美国卡内基梅隆大学(CMU,Carnegie Mellon University)提供的免费的运动捕获数据库当中的运动数据进行分析。人体运动捕获数据能够直接记录人体的运动行为并将其生成计算机动画。运动捕获数据中包含着丰富的细节信息,自然逼真。捕获到的运动数据描述了骨架结构和各时间点的参数。运动数据有很强的复用性,可以提高动画制作的效率。运动捕获数据文件格式有ASF/AMC、C3D、CSM、HTR、BVH等许多种类型,其中BVH是一种通用的人体特征动畫文件格式,可以将上述不同类型的运动数据转换为BVH格式的运动数据。下面将重点介绍BVH格式的运动捕获数据表现形式。
BVH文件包含骨架信息和关节旋转数据,将人体结构用树形结构来表示。BVH格式文件主要分为两部分:第一部分按照层级关系定义了关节树和每个关节点的名称、通道数目、关节与关节之间的相对位置,即人体各部分的骨骼长度;第二部分记录了运动的数据,定义了动作数据帧以及帧之间的时间间隔。在捕获数据中还包括一些人体运动的约束信息,例如运动的物理约束、运动特点等。约束信息被认为是人体运动数据的元数据,可将其指定给一帧、一个帧序列或整个运动片段。另外,运动捕获数据包含人体关节点很多,为了加速渲染,需要将人体结构进行简化处理,选取重要的人体关节点,其中髋关节Hip为根节点。
根节点Hip包含人体模型在三维场景中的坐标值(X,Y,Z)和3个旋转参数;对于非根节点Joint,则只含有偏移量Offset和旋转度,其中偏移量Offset表明该节点针对它的父节点的偏移位置。而末端效应器End Site表示终结递归,该关节的定义到此为止。数据块以Motion关键字开始,其中Frames定义了动画帧数,Frame Time定义了帧率。
3 算法实现
3.1 人物模型选择
通常可以使用激光扫描和二维照片测量的方法构建虚拟人表面模型。但考虑到这些精密仪器成本比较昂贵,使用时需要复杂的环境和专业的知识。对于绝大部分应用系统而言,采用这些精密仪器获得高密度的数据集是一种资源的浪费,是完全没有必要的。本文在前人工作的基础上,选用人体建模软件Poser中的人物模型作为运动合成的对象,取代对真实人体进行三维扫描建立的数字化人体模型。主要利用Poser平台提供的交互式的运动数据导入、导出功能菜单,预先将简化后的BVH运动数据导入到Poser平台中的人物模型,产生相应的动作,以便用户观察其动作姿态。根据实验内容,我们将不同的运动数据BVH文件导入到Poser平台中对应的不同的人物模型,发现Poser平台中的人物模型与BVH定义的人体层级关系以及关节点的数目不一致性,导致运动数据驱动人物模型时发生扭曲变形,产生的动作姿态不符合运动特征。另外,Poser平台中人物模型各个部分已预先进行了连接,设置了运动约束,需要手动对人体姿态进行调整,但有时其姿态的调整可能是无效的。
3.2 人体骨架的提取
人体表面模型较为复杂,在建模时需要由2000多个多边形组成。我们将Poser平台中的人物模型导出OBJ格式的文件进行解析。不同的人体骨架提取方法,主要思想是对人体模型进行分解确定人体的拓扑结构,将各部分网格模型进行简化并平滑收缩处理,提取出曲线骨架以后再提炼出符合H-Amin层级结构的骨骼,这样可以保存原有的人体拓扑结构。
3.3 骨架与皮肤层建立映射关系
人体骨架提取出来以后,需要将虚拟人皮肤层与骨架绑定。当运动数据BVH驱动人体骨架运动时,骨架将会带动皮肤变形产生逼真的人体动画。虚拟人皮肤层与骨架的绑定,本文将采用蒙皮变形技术。蒙皮变形技术是骨骼皮肤动画的关键技术,所谓的皮并不是模型的贴图而是将网格中的顶点绑定在骨骼上,表示顶点受骨骼的影响以及影响的权重(Weight)。传统的顶点混合蒙皮算法仅对皮肤顶点做了一个线性混合插值,存在皮肤塌陷和打结的缺点。
4 实验结果和分析
为了验证该方案的可行性,我们選择在Intel Core i3 2.53GHz 2048MB的PC机上,在Windows 10操作系统下,使用Microsoft Visual Studio 2015集成开发环境并结合OpenGL开发包和Poser 9来实现。根据研究的内容,将Poser平台中的人物模型保存为OBJ格式的文件进行读取,从中提取出人体骨架,并实现了与皮肤层的绑定。在完成了蒙皮之后,用BVH数据驱动虚拟人运动,实验截取了一个周期内人体步行的序列片段,从算法的效率以及运动的逼真度进行分析,可以验证该方法的有效性。
5 总结与展望
虚拟人运动合成技术研究关注的焦点是如何实现运动合成的实时性和高效性。在虚拟试衣、交互游戏、动画和影视特效制作等领域,除了注重运动合成的效率,还会特别关注虚拟人的外形,形象化的人物模型将会增加用户的沉浸感,增加用户的乐趣。在综合考虑上述两方面因素的基础上,本文提出一种基于数据驱动的虚拟人运动合成方法。我们选用人体建模软件Poser平台中的模型作为运动合成的对象,可以改变传统的形象化建模方法耗时耗力的缺点,加快形象化建模的速度,提高渲染的速率。此外,为了加快虚拟人运动合成的速度,从Poser平台中的人物模型提取出其符合H-Amin标准的人体骨架,将人体骨架与皮肤层进行映射,通过BVH运动数据驱动虚拟人运动合成。
参考文献
[1] J.Hou,F.Xu,L.Wu,H.H.Mi.Avatar-based
human communication:a review[J].International
Journal of Modelling and Simulation,2012,(4).
[2] 何长鹏,侯进,王献.基于骨骼的三维虚拟人运动合
成方法研究[J].计算机工程与科学,2014,36(4).
[3] 宋庆文,周源华.一种基于模型的人体建模系统[J].
计算机应用与软件,2004,21(1).
[4] 吕治国,李焱,贺汉根.基于Poser模型的三维人体建
模方法[J].计算机工程,2008,34(13).
[5] 赵建军,魏毅,夏时洪,等.基于物理的角色动画合
成方法综述[J].计算机研究与发展,2015,52(12).
基金项目:甘肃省高等学校科研资助项目(2014A-084);甘肃政法学院科研资助青年项目(GZFXQNLW003)。
作者简介:何长鹏(1986-),男,甘肃武威人,甘肃政法学院公安技术学院助教,硕士,研究方向:虚拟人技术、网络安全;罗鸿斌(1979-),男,甘肃庄浪人,甘肃政法学院公安技术学院副教授,硕士,研究方向:数字图像处理、电子取证;张燕(1985-),女,甘肃榆中人,甘肃气象信息与技术装备保障中心助理工程师,硕士,研究方向:模式识别、网络安全。
(责任编辑:黄银芳)