人体运动数据处理及合成中的关键算法(txt+pdf+epub+mobi电子书下载)


发布时间:2020-11-07 14:45:10

点击下载

作者:王鹏杰 吕培

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

人体运动数据处理及合成中的关键算法

人体运动数据处理及合成中的关键算法试读:

前言

近年来,随着虚拟现实、人工智能等技术的发展,围绕着虚拟人的相关技术也得到了迅速发展。虚拟人技术主要研究在几何上构建一个虚拟人物,在外形、运动、行为和情感等方面对现实人体进行数字化再现。在虚拟人运动模拟中,又以基于运动捕获技术的人体运动仿真最为稳定和成熟。运动捕获技术通过昂贵的运动捕获设备对真实演员的动作进行捕捉,而后通过相应的视觉算法得到人体运动的几何数据。这些几何数据包含人体骨骼几何数据和附着于骨骼关节上的运动数据,通常以欧拉角、四元数、轴角对等方式描述和存储。正是由于这些几何数据的默默支持,才支撑起虚拟人的细腻而逼真的动作。从智能友好的高尔夫教学训练系统到神通广大的医学步态分析系统,从《阿凡达》中纳维公主的唯美动作到“QQ炫舞”中的绚烂舞姿,无不依赖于运动捕获技术。

然而,由于捕获人体运动存在对场地要求高、过程繁琐等问题,使研究者转向对已有人体运动数据进行充分重用的研究,即基于数据驱动的人体动画技术。所谓数据驱动的人体动画,是研究如何对已捕获的人体运动数据进行充分的“拼装”,从而完成用户要求的虚拟人运动的生成与控制。而对数据“拼装”的基础则是对“拼装”小单元高效的检索及精简表示。本书首先对人体运动数据中的处理技术即人体运动压缩与检索进行了阐述,然后,对基于低维空间的人体运动合成技术进行了介绍,并重点论述了几种基于数据驱动的人体姿态生成及运动合成方法。

本书是对作者多年关于人体运动数据处理及运动合成方面的研究成果的总结。本书中有些研究内容已经在国际、国内学术会议上进行了交流,有些已经在相关学术期刊上发表。研究成果是课题组全体成员共同努力的成果。特别感谢美国德州农工大学的Jinxiang Chai副教授、香港城市大学的Rynson Lau副教授、浙江大学的许威威教授和杭州师范大学的潘志庚教授。书中引用了大量文献,在此,向原作者表示深深的感谢。同时,也要感谢国家自然科学基金项目(项目编号:6130089,61502433)、辽宁省自然基金项目(项目号:201602199)、文化部科技创新项目(项目号2014KJCXXM12)、中国博士后科学基金项目(编号:2014M561228、2016T90680、2015M582203)的大力支持。作者2017年7月第1章 绪论

在计算机动画领域,人体动画即虚拟人动画是一个非常重要的研究方向,其成果被广泛应用于文化遗产保护、工程学测试、体育及军事仿真、影视娱乐、视频游戏等各个领域。从宏伟壮观的古罗马角斗场到身临其境的虚拟驾驶室,从智能友好的高尔夫教学训练系统到神通广大的医学步态分析系统,从《阿凡达》中纳维公主的唯美动作到“QQ炫舞”中的绚烂舞姿,无不依赖于快速发展的人体动画技术。1.1 人体动画纵览

角色动画自诞生到现在,历经了100多年的发展,从1914年Winsor McCay手绘生成的Gertie the Dinosaur,到2010年著名好莱坞导演James Cameron执导的3D影片Avatar,实践表明这是一门需要大量专业知识、训练和创作灵感的艺术。时至今日,很多电影已经不再像传统影视作品那样需要投入大量的真实演员,相反地,越来越多的动画师和电脑工程师开始参与创作。一方面,人们对角色动画有大量的需求,另一方面,完成高质量的角色动画需要投入大量的人力,人体动画研究的目的是为了解决这对矛盾,在保证生成高质量动画的同时,尽可能地减少动画师的工作量。

人体运动的生成与控制是人体动画研究的重点,目的是为了让虚拟人运动更加贴近真实的人类行为。粗略地分,人体运动的生成与控制经历了如下几个发展阶段:运动学控制、简单动力学控制、运动捕获、物理控制器以及运动捕获数据与物理模拟相结合等。下面对这些发展阶段中的方法进行简要介绍。1.1.1 运动学控制

运动学是从几何角度(通常不涉及物体的物理属性和施加在物体上的力)来描述和研究物体位置随时间变化的力学分支。在人体动画领域,虚拟人一般被视为由关节和骨骼组成的刚体模型,运动学方法研究的对象是这些刚体的运动轨迹、位移、速度、加速度以及关节和骨骼的转动过程、角速度、角加速度等。早在20世纪80年代初期,就已经出现了人体动画的交互式设计工具以及控制虚拟人行走的模型。在这一时期,有两个非常著名的系统:美国宾夕法尼亚大学的[1]Badler等开发的JACK系统和美国俄亥俄州大学图形学实验室的[2]Girard等研制的PODA系统。这些系统的运动控制过程一般是这样的:首先根据人体的运动规律计算出末端执行器的运动轨迹,然后使用逆向运动学技术求解出相应的关节角度,最后通过插值计算得到最终的人体运动,如图1.1所示。运动学控制方法存在两个较为明显的缺点:(1)末端执行器的运动轨迹以及人体其他关节的约束很难显示定义;(2)在约束指定不当的时候,生成的运动常会违背力学规律,无法反映人体运动在动力学方面的特性。图1.1 Maya中的FK/IK及末端效应器设置1.1.2 简单动力学控制

与运动学研究的对象不同,动力学主要研究作用于物体的力与物体运动之间的关系,研究对象一般是运动速度远小于光速的宏观物体。人体动画研究中广泛使用的是刚体动力学,在这样的动力学系统中,人体被抽象成由关节和骨骼连接起来的机械连杆结构,通过给关[3]节或者骨骼施加力或力矩来驱动人体运动。早期的动力学控制都非常简单,主要使用一些数值方法,如牛顿—欧拉方法或拉格朗日方法计算简单的关节链或部分人体关节。事实上,对于人体这样一个靠自身肌肉来驱动的复杂自激励系统,现阶段生物力学方面的研究还未完全掌握其内在机理,并且人类对其自身运动的物理规律也没有完全获悉,纯粹依靠求解动力学方程来生成人体运动,除了计算量非常大之外,最终生成的结果与真实的人体运动也存在不小的差距。1.1.3 运动捕获

运动捕获设备的出现及广泛应用,很大程度上解决了上述两种方法所面临的问题。通过在人体特定位置(一般是靠近关节的地方)绑定光或电磁装置,运动捕获设备能够以极高的速率记录这些标记点的位置,再通过逆向运动学算法,计算出人体各个关节的旋转角度,进而得到真实的人体运动。在这类系统中,具有代表性的是Vicon公司的Vicon Motion Systems,如图1.2和图1.3所示。一般而言,基于运动捕获数据的人体运动生成算法,得到的动画质量都非常贴近真实的人体运动,在所有方法中,这类方法的真实感是最强的。但是,这种方法也有比较明显的缺点,即所获取的运动数据只能在某些特定环境下使用,一旦应用场景发生改变,这些数据便很难被直接使用。所以,最大限度地重用已有的运动数据是基于运动捕获数据人体动画研究的一个重点。针对运动数据重用问题,研究者提出了很多不同的方法,如运动编辑、运动混合、运动连接和运动图等。图1.2 Vicon光学摄像头图1.3 Vicon软件界面1.1.4 物理控制器

物理模拟或基于控制器方法用于动画生成,最早可追溯到[4][5]Armstrong和Wilhelms等的研究,自那时起,这类方法就开始被应用于一些自然现象和织物等的模拟,如火焰、流体、服装以及早期人体动画中的“布娃娃”等。直到近些年,才出现了真正意义上使用物理控制器生成虚拟人全身运动的方法。这类方法一般由3个部分组成:[6]物理模拟器、物理定义的虚拟人和运动控制器。物理控制器方法非[7]常复杂,涉及的参数也很多,因此,常与机器学习方法或其他方法相结合来优化控制参数。与直接控制虚拟人关节运动不同,这类方法将动画的生成过程视为一个累积过程,虚拟人在虚拟环境中的所有运动都是物理模拟的直接结果,与环境之间的交互也只发生在有力和力矩产生的时候。现在较为成熟的物理控制器主要用来模拟人类的行走或跑步运动,根据它们处理问题时对象抽象层次的不同,主要分为两大类:(1)关节空间中的物理控制器方法,通常需要对每个关节使用比例微分(PD)控制器,并且这些控制器由一个高维状态机调度[3,8~12][4],通过模拟运动捕获数据得到的物理控制器,如图1.4所示,图1.4利用物理控制器并结合脚印约束实现差异化运动控制,图1.4(a)从运动捕获数据中重建转身行为,并将其应用于一个缓慢前进行走的控制器,图1.4(b)通过增加髋关节从左到右的偏移角度,从运动捕获数据中重建一个行走控制器,使虚拟人能够以对角方式前进,在PD控制器的基础上,为了消除生成结果的抖动及僵硬化现象,文献[13~15]引入最优化方法来自动调节参数;(2)任务空间中的物理控制器方法,早期这类控制器主要用于机器人手臂的运动控制[16,17],由于这类方法是基于零空间投影的,因此,很难处理单一约[18]束。Lasa等提出的基于特征的运动控制器,对上述方法进行了一定的扩展,只需要少量的特征便可以控制虚拟人平衡和末端执行器运动。图1.4 通过模拟运动捕获数据得到的物理控制器1.1.5 混合方法

运动捕获数据和物理模拟相结合的方法,被称为混合方法,这类方法除了能保证人体运动的真实感之外,还可以增强虚拟人对外界环境扰动的反应能力。根据这两种方法在运动生成中主导地位的不同,该类方法可以分为两种:一种以运动捕获数据为主,同时增加物理模[19,20]拟过程,使虚拟人可以对外界环境的扰动产生反应,如图1.5所[19]示;另外一种以物理模拟为主,将运动捕获数据作为参照,使用[21,22]路径跟踪的方法来增强物理模拟结果的真实感,如图1.6所示[22],图1.6展示了结合运动捕获数据,可以构造出不同风格的物理控制器,上、下两行分别表示不同的风格。图1.5 连续施加两次扰动外力图1.6 风格化物理控制器1.2 人体基本模型

在虚拟人的运动合成与控制过程中,人体模型主要用于描述虚拟人的几何拓扑结构及其物理属性。这些模型都是根据实际的应用场景抽象得来的,较常用的方法是虚拟骨架模型。在这种模型中,虚拟人被视为由多条关节和刚体骨骼组成的关节链构成,这些关节链将人体的各个关节连接起来形成一个树状结构,不同骨骼或关节的运动状态[23]都会受其父节点的影响。人体骨骼的层次结构如图1.7所示。图1.7 人体骨骼的层次结构

在构成人体骨架模型的所有关节中,除了根关节可以同时进行平移和旋转外,其他关节一般都被设定为旋转关节,即相邻两块骨骼在其关节连接处只能做相对旋转,不能做平移或其他类型的运动。在这种数据记录方式下,非根节点的关节位置平移信息的获取会通过层次结构追溯到根节点,通过与根节点、骨骼长度及待计算节点到根节点的旋转矩阵进行运算,进而计算出其在世界坐标系下的位置信息。人体数据的分段刚体的组织方式具有不会发生骨骼变形等优点,但是这种分层的组织方式会带来误差的累计,这种累计传递到末端节点,会出现运动抖动等问题。

一般来说,每个关节具有1~3个自由度(根关节除外),因此,在具有n个关节的关节链中,自由度通常不会超过3n个,用于描述关节自由度信息的变量被称为关节变量,一组关节变量(向量)决定人体的一个运动状态,一段连续的人体运动则是由一系列这样的离散变化向量组成的。如果把关节链的每一个状态向量视为高维空间中的一个点,那么所有这些向量就组成了一个复杂的高维空间,我们就可以利用降维技术在低维空间中进行人体运动的合成和控制。除去根关节的全局位置信息,这些高维空间中的点便可由一组关节旋转参数表示。Θ表示这样一个高维向量,则有

其中,m为自由度的个数,θ为关节变量,关节变量的参数化表i示方法有以下几种:欧拉角、全局坐标、单位四元数、指数映射和旋转矩阵等,它们之间的一些优缺点可参见文献[24]。[25]

图1.8显示的是一个完整的虚拟人骨架模型,它由多条关节链组成,每个关节可以视为一个旋转结构,分别拥有不同数量的自由度。对基于物理控制器的运动生成方法来说,关节的类型又与具体使用哪一种物理模拟器紧密相关,不过大多数情况下使用的类型基本上是相同的,参见文献[24]。显然,使用图1.8中的模型对物理模拟而言,无疑是过于复杂,计算量及费用也会非常大,因此,物理模拟方法通常[25]采用一个稍微简化一些的模型,如图1.9所示,图1.9中的箭头表示该关节的全局x、y、z方向。图1.8 数据驱动方法常用的人体模型图1.9 物理控制器方法常用的人体模型1.3 本章小结

本章对人体动画技术的发展阶段及人体的基本层次模型进行了介绍。人体动画技术大致经历了运动学控制、简单动力学控制、运动捕获、物理控制器以及运动捕获与物理控制器相结合等发展阶段。由于人类对自身运动非常熟悉,因此,对生成的虚拟人运动质量要求也很高,即便是非常微小的失真,也很容易被人们察觉。因此,基于运动捕获及物理控制器与运动捕获混合的方法成为研究与应用的热点。

人类目前已经积累了大量的人体运动捕获数据。这些数据的积累使基于数据驱动的动画技术成为一个重要的研究方向。数据驱动的人体动画研究如何对捕捉的人体运动数据进行充分重用,从而完成虚拟人运动的生成与控制。而对数据重用的基础则是高效的人体运动检索及精简表示技术。基于人体数据的压缩及检索技术,可构建统一的人体运动捕获数据库框架,从而为人体运动合成提供数据库技术支持。本书首先对人体运动数据中的处理技术即人体运动压缩与检索技术进行阐述,然后重点介绍基于低维空间表达的人体运动合成技术。参考文献

[1] BADLER N I, PHILLIPS C B. Simulating humans: computer graphics, animation, and control[M]. Oxford University Press, 1992.

[2] GIRARD M. Constrained optimization of articulated animal movement in computer animation[M]. Morgan Kaufmann Publishers, 1990.

[3] YIN K K, LOKEN K, PANNE M V D. SIMBICON: simple biped locomotion control[J]. ACM Transactions on Graphics (TOG), 2007,26(3):105.

[4] ARMSTRONG W W, GREEN M W. The dynamics of articulated rigid bodies for purposes of animation[J]. The Visual Computer, 1985,1(4):231-240.

[5] WILHELMS J, BARSKY B A. Using dynamic analysis to animate articulated bodies such as humans and robots[C]//Proceedings-Graphics Interface '85. Montreal, Que,Can, 1985:97-104.

[6] GEIJTENBEEK T, PRONOST N. Interactive character animation using simulated physics: a state-of-the-art review[C]//Eurographics-STAR. 2012: 2492-2515.

[7] 刘更代, 潘志庚, 程熙, 等. 人体运动合成中的机器学习技术综述[J]. 计算机辅助设计与图形学学报, 2010,(9):1619-1627.

[8] FALOUTSOS P, PANNE M V D, TERZOPOULOS D. Composable controllers for physics-based character animation[C]//ACM SIGGRAPH 2001, 2001:251-260.

[9] HODGINS J K, WOOTEN W L, BROGAN D C, et al. Animating human athletics[C]//ACM Computer Graphics. 1995:71-78.

[10] LASZLO J, PANNE M V D, FIUME E. Limit cycle control and its application to the animation of balancing and walking[C]//Conference on Computer Graphics and Interactive Techniques. DBLP, 1996:155-162.

[11] RAIBERT M H, HOGDINS J K. Animate of dynamic legged locomotion[J].Computer Graphics,1991,25(4):349-358.

[12] WOOTEN W L. Simulation of leaping, tumbling, landing, and balancing humans[M].Georgia Institute of Technology, 1998.

[13] HODGINS J K, POLLARD N S. Adapting simulated behaviors for new characters[C]//ACM Siggraph, 1997:153-162.

[14] SHARON D, PANNE M V D. Synthesis of controllers for stylized planar bipedal walking[C]//IEEE International Conference on Robotics and Automation.2005:2387-2392.

[15] WANG J M, FLEET D J, HERTZMANN A. Optimizing walking controllers[J]. ACM Transactions on Graphics (TOG), 2009,28(5):1-8.

[16] ABE Y, SILVA M D, POPOVIC J. Multiobjective control with frictional contacts[C]//ACM SIGGRAPH/Eurographics Symposium on Computer Animation. Eurographics Association: San Diego, California, 2007: 249-258.

[17] SHKOLNIK A, TEDRAKE R. High-dimensional underactuated motion planning via task space control[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. 2008:3762-3768.

[18] LASA M D, MORDATCH I, HERTZMANN A. Feature-based locomotion controllers[J].ACM Transactions on Graphics (TOG), 2010,29(4):131.

[19] YE Y, LIU C K. Synthesis of responsive motion using a dynamic model[J]. Computer Graphics Forum, 2010,29(2):555-562.

[20] WEI X, MIN J, CHAI J. Physically valid statistical models for human motion generation[J]. ACM Transactions on Graphics (TOG), 2011,30(3):19.

[21] SOK K W, KIM M, LEE J. Simulating biped behaviors from human motion data[J].ACM Transactions on Graphics, 2007,26(3):107.

[22] SILVA M D, ABE Y, POPOVIC J. Interactive simulation of stylized human locomotion[J]. ACM Transactions on Graphics, 2008,27(3):1-10.

[23] GU Q, PENG J L, DENG Z G. Compressions of human motion capture data using motion pattern indexing[J]. Computer Graphics Forum, 2009, 28(1): 1-12.

[24] GRASSIA F S. Practical parameterization of rotations using the exponential map[J].Journal of Graphics Tools, 1998,3(3):29-48.

[25] WANG J, FLEET D, HERTZMANN A. Gaussian process dynamical models for human motion[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2008, 30(2):283-298.第2章 人体运动数据压缩技术[1,2]

近年来,基于数据驱动的动画技术得到了广泛研究。它被应用在交互式应用中,如游戏和动漫制作等方面。该技术通过基于已采[3~5]集的运动捕获数据,借助先进的运动合成及运动仿真技术,能合成虚拟角色的各类型运动。该技术的快速发展也使运动捕获数据规模不断扩大,而如何对这些数据进行高效压缩以方便存储和网络传输成为一个亟待研究的问题。

与运动捕获数据压缩相关的技术是人体网格动画数据压缩,典型[6]的有基于八叉树、基于主成分分析(PCA, principal component [7,8][9][10,11]analysis)、基于小波变换、基于运动预测以及基于几何[12]图像编码的方法。

很多人体捕获运动数据压缩的方法是从网格运动压缩中借鉴而来,但相对于网格动画数据,人体运动捕获数据是具有层次骨骼结构的高维时序数据。这种高维数据中具有骨骼之间的空间相关性冗余、帧序列之间的时间相关性冗余以及由这两种冗余衍生的片段级冗余。因此,如何充分利用这种相关性来减少冗余成为算法设计的核心。2.1 运动捕获数据压缩流程

人体运动捕获数据的压缩通常有5个步骤,其顺序为:压缩前数据预处理、几何编码、数据量化、熵编码以及误差控制与矫正。需要说明的是,并不是每种压缩方法都要严格经过所有过程,例如,完全无损压缩方法就不需经过误差矫正的处理过程。2.1.1 压缩前数据预处理(1)运动数据表示方式定义

人体运动捕获数据的层次骨骼结构使靠近末端的关节旋转容易有误差的累积,而且欧拉角构成的运动信息在本质上是非线性的,不能[13][13]有效地进行主成分分析。因此,Arikan在其方法中采用位置信息进行处理。他定义了一些3D Marker点,将角度信息转换到如图2.1

[13]所示的表示方式之下,图2.1中,T为关节的位移信息、R为旋转信息,计算得到的位置信息存入[a|b|c]中。采用类似的表示方式的还有[14][15]Gu等和Liu等的方法。图2.1 将关节角度转换为在虚拟Marker上的坐标

然而利用位置坐标的表示方式很难保证处理过程中的骨骼长度,进而导致骨骼变形。因此,解压时通常需要复杂的重建恢复操作[16],而且,旋转表示方式(如欧拉角)是传统视频游戏等应用中普遍采用的方式。如果将这些角度信息转换成位置信息,则会带来额外[17][16~20]的系统开销。因此,很多方法将骨骼旋转作为直接处理的压缩对象。(2)运动数据分割及聚类

相对于长运动序列,短小运动片段内部的线性关系会更为明显。为了充分利用这种线性相关性,在几何编码前,压缩算法通常会把运[13]动分割成小片段。例如,Arikan将运动分割成等长的片段;而Liu[15][21][15]等和Lin等则将运动分割成非等长的片段。Liu等采用Barbic等[22]的概率主成分分析(PPCA,probabilistic principal component analysis)分割算法将长运动序列分割成具有独立语义的短小运动片段,如跑、走和跳等。

对分割后的短小运动片段进行聚类有利于将相似的运动帧序列聚集到一起,从而更大程度地利用其相关性。例如,在应用主成分分析[13][23][14]之前,Arikan采用了谱聚类算法对片段进行聚类;Gu等、Lin[24][25][26]等和Zhou等提出的方法也有类似的聚类过程;Bulut等则选择聚类的中心作为关键帧。2.1.2 几何编码

为了使熵编码具有较高的效率,需要对数据进行几何编码。一般情况下,几何编码方法包括三类:(1)数据变换,如主成分分析[13,15,24,27][17,28~30][18,31]、小波变换和离散余弦变换等;(2)曲线拟[13,15,32][24,33]合,如贝塞尔曲线、样条曲线等;(3)数据的预测,如[29,34]无损压缩方法中的线性预测等。对压缩方法来说,几何编码方法是算法的核心,本章将重点进行分类讨论。2.1.3 数据量化

量化实质上是一个投射过程,其过程通常是从连续(或近似连续)的值集投射到较少值集上。量化按处理对象的不同可分为矢量量化和标量量化。标量量化是为单个标量值进行的量化;矢量量化则是[35]对由数个标量组成的矢量进行量化。如Kuo等对选择的I帧运动数据进行空域上的矢量量化。

按量化值的分布情况,量化也可分为等规格量化和非等规格量化两种方式。等规格量化是指对各关节数据量化程度都相同,这种量化[36]方式简单,是一种普遍采用的方法。如Chew等在将人体运动数据转换为图像后,将每个图像中的一个像素变为16位的灰度图,其实是对人体旋转数据的一个等规格量化。但是,在人体运动捕获数据的骨骼结构中,各关节通常是不对等的,末端关节误差通常只影响自身,而根关节及近根节点关节的旋转误差通常影响下面各子关节并形成误差累积,这种误差累积经过多层后会显著放大。针对这一问题,研究[27]者提出了非等规格的量化方案。如Váša等采用拉格朗日乘子通过计算最小全局误差矩阵的方式得到各关节不同量化程度的方案;而在[34]Wang等的算法中,对预测参数进行非等间隔的查找表设计也是一种典型的非等规格量化方法。2.1.4 熵编码[37]

经过几何编码后的数据通常进入到熵编码通道。熵编码在很多人体数据压缩算法中虽然不是重点描述的对象,但作为一个底层编码算法,对人体运动压缩算法的整体性能(压缩比、时间效率等)产生至关重要的影响。2.1.5 误差控制与矫正

运动捕获数据压缩算法多为有损压缩算法,有损压缩会带来数据损失,特别是运动数据中的高频细节数据。这些高频信息一般来自角色与环境的接触。如角色行走时脚着地,地的反弹力很大并且作用时[13]间较短,相应地会产生高频关节数据。对这部分数据要单独处理,尽量采用无损或损失较小的压缩算法以保留高频信息。如[13]Arikan对与环境接触部分的关节数据单独采用类似于JPEG (joint [17]photographic experts group)方法进行压缩;而在Beaudoin等的方法中为了减少末端环境接触骨骼(简称环境骨骼)误差,存储其真实位置与小波压缩后位置的差值,并在解压时采用逆向运动学(IK,[17]inverse kinematics)进行矫正。图2.2所示为是否采用IK矫正的对比效果。从图2.2可看出,标准的、未经过优化的小波算法有很大的数据误差,而经过优化的小波算法误差虽然很少,但是如果不经过IK矫正,也会产生滑步现象。图2.2 小波压缩中的逆向运动学矫正

环境骨骼的误差来源于骨骼本身的误差和上层骨骼的累积误差两个方面。因此,如果上层累积误差较大,即使对环境骨骼进行了精确处理,也会由于累积误差而导致环境骨骼的误差存在。因此,较好的方法是对上层骨骼进行精度更高的控制;或者以最小化人体运动的整[27]体误差为目标,对各骨骼进行不同精度的控制。如Váša等提出沿着人体骨骼层次结构进行不同精度的处理,并通过控制总体误差矩阵来达到对人体各骨骼不同精度的控制。

以上讨论的环境骨骼误差和累积误差控制方法均为在压缩过程中的误差控制方法。在解压缩时,也可通过实施已知约束来矫正解压后的运动数据。普遍采用的方法是对环境骨骼进行逆向运动学[16,17,28,29]的矫正,文献[36]提出采用滤波方法进行矫正。2.2 运动捕获数据压缩方法分类原则

从不同的角度划分,人体运动数据压缩有多种分类方法。2.2.1 基于运动数据中的冗余类别进行分类

人体运动数据的冗余通常有三类:时间轴上的冗余、空间关节间的冗余以及片段之间的冗余。严格来说,片段之间的冗余属于时空冗余的组合。(1)消除时空域数据冗余类方法

运动捕获数据是一种时间序列数据,相邻帧之间有很大的相关性,这样的相关性称为时域冗余。有许多消除这种冗余的方法:[13]Arikan利用贝塞尔曲线来拟合运动片段,使一个片段只通过几个控[24]制点就可表示;Lin等利用Catmull-Rom样条曲线来逼近经过重复[17,28~30]运动分析后的数据;小波技术通过存储有限的小波系数来表示整个运动等。

运动数据的各关节之间也有相关性,这种相关性称为空间相关性,如人走路,左手向后摆时,右腿一般会向前。这种空间的数据冗[22]余使运动数据各关节之间具有某种程度的线性关系。Barbic等在利用主成分分析对运动数据进行分析时观察到:在保留同等信息的预设下,表示单一运动需要的主元很少;而如果此单一运动与另外一个类型不同的运动片段拼接,要表示这个拼接后的数据,需要的主元则会有所增加。这一方面印证了人体运动中关节间的线性关系,另一方面证明运动数据越短小,运动越单一,这种线性关系就越突出。基于这[13,15,25]些结论,研究者提出了基于分段主成份分析的人体运动压缩方法。[16]

Tournier等则基于主成分分析在黎曼流形上的扩展,提出采用主测地线分析(PGA, principal geodesic analysis)挖掘分析人体运动[38][39]数据内的低维流形;Hou等和Kruger等则用张量来表示人体运[38][39]动数据,基于canonical polyadic张量分解或高阶奇异值分解来消除运动数据中的时空域冗余。(2)消除片段域数据冗余类方法

除了时域冗余和空间冗余外,在大型运动库中,有许多重复或相似的运动片段,如果能充分利用这些重复片段,则能高效且快速地压[13]缩运动数据。Arikan首先提出了利用大型运动库中重复片段的概念。[14]Gu等用k-means进行聚类,然后取聚类的平均值作为运动的模式,这样与之相似的运动只需要存储指向这个模式的索引,从而达到[24]消除片段冗余的目的。Lin等则提出在大型运动数据库中发现主片段,进而寻找与该主片段相似的重复片段,通过存储重复片段与主片[40]段之间差值的方式有效地消除了片段冗余。Hou等则将人体运动切分成等长最优的片段集,然后采用低秩逼近的方法将这些片段投射到一对正交矩阵上,从而最大程度地利用人体运动片段之间的低秩特点来消除其中的数据冗余。2.2.2 基于运动数据是否损失进行分类

基于压缩过程中数据是否有损失分为有损压缩方法与无损压缩方法。人体运动压缩算法的损失来源于两个方面:一是人体运动数据经过了降维、曲线拟合和信号变换等有损处理过程;二是人体运动数据压缩流程中的量化步骤。以上处理过程通常是不可逆的,从而导致数据的损失。因此,绝大多数的人体运动数据压缩方法是有损的压缩方[13~21]法。

为了满足工程领域对人体运动数据精确度较高的要求,有研究者[34,36]提出无损压缩方法或近似无损压缩方法。完全无损的压缩方法通常基于数据预测等完全可逆的变换;而部分无损的压缩方法则一般在变换中尽量保持可逆,另一方面则通过误差矫正算法对解压后的运[36]动数据进行矫正,如Chew等采用优化的运动过滤算法(MMF,modified motion filter)进行误差矫正。

要避免数据损失或者出现复杂的矫正过程,有效的方法是研究人[41]体运动数据完全无损的压缩方法。Kuo等采用片段级Hermite样条对每个自由度的数据进行插值预测,然后利用差分脉冲编码调制及[34]Huffman编码对差值进行压缩。Wang等对网格数据压缩中的平行[42]四边形预测器进行扩展,并根据人体运动数据的层次结构,提出采用带参数的平行四边形预测器对人体运动数据进行预测,然后采用熵编码算法进行压缩编码。2.2.3 基于算法部署平台进行分类

基于算法运行的平台可分为基于移动平台和基于PC平台的压缩方法。移动平台具有功耗要求高、存储空间小等特点,算法通常尽量[20]避免复杂运算。Chattopadhyay等提出了基于层次结构的智能索引在移动设备上压缩和传输人体动画参数(BAP, body animation [33]parameter)数据。Han则采用多项式曲线拟合方法来减少人体运动数据在移动设备上的存储。运行于移动平台上的方法通常可运行在PC平台上,反之并不一定成立。2.2.4 基于运动数据传送方式进行分类

基于人体运动数据在网络上传输的方式,可分为基于层次细节渐进和非渐进传输压缩方法。非渐进的压缩方法较为常见;渐进压缩方法通常基于人体骨架层次结构,通过对人体运动数据采用不同压缩粒[44]度控制而实现渐进压缩与传输。如基于视频压缩Bit-plane coding[29]的方法、Li等提出的基于小波技术的方法。

下面以基于冗余类别的分类方法为主线,对人体运动捕获数据压缩方法进行综述。需要注意的是,基于片段冗余的方法中很多也采用了消除时空冗余的方法,但由于这类方法的基本思想是消除片段的冗余,本文把它们归入此类。2.3 基于消除时空域数据冗余的方法

基于消除时空域数据冗余的方法又可细分为基于曲线拟合、基于数据降维、基于信号处理、基于四元数空间稀疏表达和基于关键帧提取的方法。2.3.1 基于曲线拟合的方法[32]

Khan等将人体运动平移及旋转数据作为N维欧氏空间的曲[13][21]线,采用二次贝塞尔曲线最小二乘进行拟合。Arikan和Lin等则首先将运动数据进行分割,然后采用三次贝塞尔曲线对分割后的片段[13][21]进行拟合。不同的是,Arikan采用等间隔分割策略,而Lin等则[33]依据数据的连续性情况进行非等间隔分割。Han提出利用多项式曲线拟合的方法对人体运动数据进行精简表示,从而使人体运动数据可存储及应用在功耗要求较苛刻的移动设备上。2.3.2 基于数据降维的方法[15][22]

Liu等首先基于概率主成分分析运动分割方法对运动进行分割,将运动数据分割成短小的片段。使每个片段都在一个低维空间,这样有利于进行主成分分析处理。对每个片段进行主成分分析处理后,运用自适应的基于三次样条曲线的关键帧提取方法进行关键帧提取。然后将这些关键帧的数据投射到主成分分析的少数主元上,就能显著[27]地压缩数据。为了消除累积误差,Váša等提出分析人体运动各局部节点误差与目标误差矩阵的关系,引入拉格朗日乘子来最优地平衡压缩比与误差。进一步将以一段姿态集(预设参数为120帧)为单位进行主成分分析的降维。最后采用熵编码对降维后的数据进行编码压缩。[16]

主测地线分析是主成分分析在黎曼流形上的扩展,Tournier等运用主测地线分析对人体运动进行降维,并利用IK对主测地线分析的参数进行匹配和优化;最后只需要保留末端效应器及根节点轨迹的相关参数,就能有效地对数据进行还原,从而有效地压缩数据。2.3.3 基于信号处理的方法

基于数据降维的方法利用了关节之间的冗余,在压缩的过程中,各自由度是互相关联的。而基于信号处理的方法(如小波技术)通常将各自由度作为相互独立的信号进行处理。也有一些方法利用了各自[36]由度之间的关系,如Chew等将人体运动看作帧数和自由度数两个维度的图像。(1)基于小波变换的方法[17]

Beaudoin等根据运动捕获数据特点,将优化的小波技术应用到人体运动捕获数据的压缩中。他们定义了一个变形矩阵来度量压缩前后的误差变化,对每个自由度选择使变形矩阵最小的优化小波系数。通过这种优化,能够很大程度地提高压缩质量,并在解码速度上[13]优于Arikan等的方法,该算法适合对短小运动片段进行压缩。Li等[29]观察到,人体运动中低频分量对运动的影响较小,舍弃一些此类分量,对应的小波系数对人体运动影响很小。基于此,他们提出基于小波变换与正向运动学结合的渐进压缩方法。[17][28]

针对Beaudoin等的方法计算复杂的缺点,Lee等基于其之[45,46]前的工作设计了一种基于多分辨率小波的压缩方法。他们基于自适应的误差估计矩阵来平衡需保留的小波系数与视觉效果,以达到[30]使用最少的小波系数得到符合要求的视觉效果。Firouzmanesh等则根据每个自由度在人眼视觉上的重要程度来确定应保留的小波系数。(2)基于压缩MPEG-BAP数据的方法

MPEG-4中定义了人体运动数据的BAP组织形式以及具体的压缩[18]编码标准,该标准包括基于线性预测和基于离散余弦变换(DCT,discrete cosine transform)两种压缩方案。在线性预测方案中,运动数据中的I帧不需预测,而后续的P帧则用之前的I帧或P帧作为预测值。随后对预测校正值运用算术编码进行编码压缩。在DCT方案中,16个连续的帧运用DCT对数据进行变换;然后直流和交流系数被分别编码,其中直流值用前面的直流值作为预测值进行编码,而交流值则直接编码。需要注意的是,在以上两种方案中,都有对数据的量化处理。

MPEG-4中未充分利用人体运动数据的特点,因此,编码压缩比[20]不高。针对这种情况,Chattopadhyay等提出了一种在移动设备上压缩和传输BAP数据的算法——BAP-Indexing。该算法利用人体骨骼的层次结构来智能地索引运动数据,根据运动矩阵的浮点数分布情况将数据放入不同的“桶”中,使每个浮点数都可用一个索引来表示,从而有效地压缩了数据。该算法利用3个预先定义的质量控制参数就能有效地控制压缩质量与压缩比的平衡。由于要针对移动设备,所以充分考虑了解码效率和客户端的电力消耗。相比于MPEG-4标准中的压缩算法,BAP-Indexing算法有效地降低了网络带宽和功耗。(3)基于运动数据图像映射的方法[36]

Chew等提出了基于虚拟角色动画图像的算法。首先以图形的帧数和自由度数作为图像的两个维度,将人体运动数据投射成一个16位的image maps。然后对其中的每一帧,采用模糊C均值聚类方法进行分组。聚类后的人体数据能充分平衡关节空间的连续性和人体运动时序的连续性,从而为编码算法更有效地减少数据冗余打下基础;[47][36]最后采用J2K标准对聚类后的数据进行编码。图2.3给出了652帧运动数据在自由度数为62时的image maps,其中,横轴是帧数,竖轴是自由度数。由于652不能整除62,所以最后一个map不完全;而且因量化及传输错误等原因,解压得到的人体运动数据需要进一步处理以消除其中的伪迹(artifact),可采用MMF算法进行平滑处理。该算法在保证存在较小的视觉误差的基础上取得了最高120:1的压缩比,而算法的一个缺点是针对整个运动信号的规格化分析需要较大的时间开销。图2.3 652帧运动数据在自由度数为62时的image maps2.3.4 基于四元数空间稀疏表达的方法[19]

Zhu等观察到当前的稀疏表达大多不是为四元数空间而设计,因此,提出在四元数空间中直接进行人体运动的稀疏分解(QSSD,quaternion space sparse decomposition)的方法,它将人体的旋转数据分解成字典和带稀疏约束的权重两个部分。这样,欧拉空间中的线性组合及权重操作就分别转变成了四元数空间的乘以及幂操作。在压缩之前,首先提取参考姿态、根节点信息以及所有节点的旋转信息,[16]并利用Tournier等提出的方法对根节点及旋转信息进行压缩;然后将压缩后的节点旋转信息利用QSSD方法进行分解;最后利用算术编[37]码进行编码压缩。该算法的思想也可用于对运动数据的检索。2.3.5 基于关键帧提取的方法

对人体运动进行等间隔采样时,由于运动激烈程度不同造成运动缓慢部分过采样,而运动激烈部分则欠采样。因此,关键帧提取的主要目标是自适应地从人体运动中发现可最大程度概括该运动的帧序列。严格来说,关键帧提取方法不是人体运动压缩方法的分支,但部分关键帧提取方法可作为人体运动压缩流程的一个环节,甚至可直接改造成人体运动压缩方法。[48]

朱登明等将原始高维数据映射到低维状态空间,然后进行运[49]动数据的聚类分割,并将分割点作为关键帧的采样点。Lim等则将人体运动看作高维曲线,采用曲线简化方法提取曲线上距离两端连线[50][51][49]最远的点作为关键帧点。杨涛等和Wang等则基于Lim等的方法分别进一步进行分层处理及GPU(graphics processing unit)加[52]速。沈军行等首先将第一帧看作关键帧,然后求后面帧与最新关键帧的距离。如果此距离小于某个阈值,则删除该帧;否则保留为关[53]键帧。Matsuda等将手写字迹优化的方法引入到关键帧提取中。刘[54]云根等则定义重建误差为关键帧提取有效性的度量标准,根据重建误差的大小来决定关键帧的取舍;它能提取出具有最小重建误差的[55]关键帧,从而有利于运动数据的压缩。蔡美玲等将关键帧提取分为帧预选和基于重建误差优化的精选两个阶段。在精选阶段,定义最[56]小重建误差作为关键帧提取过程中的优化目标。Liu等和Zhang等[57]将遗传算法应用到人体运动关键帧提取中,基于遗传算法与单纯[56]形法结合的运动关键帧提取方法也以重构误差最小为目标。Bulut[26][58]等则将网格动画中的curve saliency运用到人体捕获数据中,以度量运动帧的重要程度,然后采用聚类方法将相似的帧进行聚集,通过选取聚类中有限数量的帧来进一步实现关键帧的提取。2.4 基于消除片段域数据冗余的方法

基于消除片段域数据冗余的方法又可细分为基于动作片段分析和基于聚类及降维的方法。2.4.1 基于动作片段分析的方法[24]

Lin等首先定义了主片段、重复片段和唯一片段的概念。主片段是运动库中具有代表性的一些动作;重复片段(或称从片段)是与此类代表性动作相似的重复动作;而唯一性片段是不能归入到以上两类运动片段中的。首先,将运动分割成具有独立语义的片段,然后,对这些片段进行聚类,这样每个片段只包含相同语义的运动。聚类后,用主成分分析对数据进行降维。随后,各聚类中的运动被连接起来,[59]并运用Kovar等的运动匹配及检索方法进行重复运动片段的分析,可得到相似姿态路径。接着,对这些相似路径进行分析、切分,就能得到主片段以及与其相似的重复片段。这样,在每个聚类中,只需要存储主片段的原始值以及重复片段与主片段的差值,就能还原数据。对唯一片段这类数据,则需要进行单独处理。最后,还需要对以上主片段、差值序列数据利用Catmull-Rom样条曲线进行拟合,这样只需[24]存储控制点信息就能有效地还原数据。Lin等的算法集成了多种优秀的运动分析及编码算法,因此,取得了很高的压缩比和时间效率;[59]但由于该算法依赖匹配网进行运动片段的分析提取,其较高的时间复杂度使算法难以扩展到大型运动数据库中。2.4.2 基于聚类及降维的方法[14]

Gu等观察到人体某个部分运动重复的概率要大于整个人体运动重复的概率。为了充分利用这种重复性,他们提出将人体骨骼结构分成一个层次结构,如图1.7所示。对层次结构的每个部分,用自适应的k-means进行聚类。将k-means的中心点作为运动的模式,这样,可确定层次中各节点运动的模式库。对输入的某一个运动,就可以将其转变为模式库索引编号的序列,这样能显著地压缩数据。该方法对重复运动较多的数据特别有效,它设计的提取和创建运动模式库的方法不仅可用于运动压缩,也可用于运动检索,但算法过于依赖数据聚类,使预处理过程的时间复杂度较高。[40]

Hou等首先对人体运动片段求出一个最优的片段长度,然后将人体运动切分成同一长度的片段集;为了利用运动片段之间的关联性,采用低秩逼近的方法将这些片段投射到一对正交的矩阵上,从而抛弃大部分冗余的元素,以达到数据压缩的目的。

如前所述,人体运动压缩中常混合采用多种冗余消除技术。而基于消除片段域冗余类方法更是在多种技术运用的基础上加入了片段分析技术。表2.1给出了重要方法所采用的冗余消除技术及误差控制方式,其中,“—”表示未采用相关技术。表2.1 重要方法所采用的冗余消除技术及误差控制方式2.5 文章小结

人体运动捕获数据压缩是一个比较新的研究热点,其方法也多借鉴于通用数据压缩、视频压缩和网格运动压缩等研究。然而,人体捕获数据也有自己的特点,如骨骼层次结构、运动数据的四元数空间和运动关节之间相关性等。因此,如何结合这些特点设计几何编码方法进行处理就成为人体运动捕获数据压缩方法的核心问题。

人体运动数据压缩技术的发展促进了相关技术及产业的发展,如视频游戏、角色动画等。在产业界,人体运动捕获数据得到越来越多的应用。然而,在实际应用前,如何对人体运动数据进行高比例压缩存储及实时高保真解压成为两个非常紧迫而现实的需求。如在游戏产业中,运动捕获数据已应用于动作类游戏(“QQ炫舞”等游戏产品),但是当前的算法仍不能很好地满足压缩比、数据无损和实时性等方面的要求。因此,人体运动捕获数据的压缩继续成为研究热点,期待更多的研究人员参与,提出更高效的算法。

未来的人体捕获数据压缩可能更多需要关注以下4个方面。(1)实时高效的人体运动数据完全无损压缩方法。随着运动捕获技术在工业界的应用,对实时人体运动压缩方法的需求越来越大。所开发的人体运动捕获数据无损压缩方法已成功应用到游戏“QQ炫舞”中。在实际应用中,“QQ炫舞”对解压缩算法的时间要求是100000根骨骼在3 ms之内解压完成。如此,实时性的要求使部分有损压缩方法中广泛采用的IK矫正变得不太现实;而失去IK矫正机制,有损压缩方法的数据损失则被大大提高。因此,开发实时高效的无损压缩方法会成为学术界、工业界研究的一个热点。(2)统一人体运动压缩与检索的人体捕获数据处理方法。人体运动压缩与检索是对人体运动数据处理的两个基本方面。数据驱动的角色动画技术的基础是对人体运动捕获数据方便的重用,因此,若能有效统一人体运动压缩与检索方法,则可形成人体运动数据处理平台,进而更好地满足实际应用需求。在实际处理过程中,为了高效地压缩数据,一些算法使用运动索引技术,这些技术经过调整就可以变成一个运动检索算法。例如,在我们之前的工作中,提出以运动主要[60]本征向量及本征值作为运动精简索引,并提出通过构建分层聚类[61][14]结构来将运动压缩与检索进行统一。再如,Gu等设计了提取运动模式和创建运动模式库的方法,该模式库既可对运动数据进行编码,又可进行数据检索。因此,人体运动数据压缩与检索在本质上是可融合的。人体运动数据压缩与检索方法亟待更高效的融合方法,期待学术界进行更深入的研究。(3)探索融合几何编码的浮点压缩方法。人体运动数据无论是旋转数据还是位移数据,均是以浮点方式表示存储,若能对这些浮点数进行高效压缩,则能显著地提高压缩比例。近年来,在浮点数据特[62~65]别是科学浮点数据压缩方面已取得了较大的进展。而在当前的人体捕获数据压缩中,如四元数的几何编码中,均未考虑与浮点压缩方法的融合。因此,若能将两者结合,研究其融合方法,则有望得到高效的人体捕获数据压缩方法。(4)基于大数据的运动数据压缩方法研究。随着云计算技术的发展,人体运动数据在云端的聚集成为可能。如何充分利用云端数据存储中的人体运动数据片段级甚至整个运动级的相似性,充分挖掘数据之间的关联性进行数据的几何编码及压缩,成为一个亟待研究的问题。参考文献

[1] PEJSA T, PANDZIC I S. State of the art in example-based motion synthesis for virtual characters in interactive applications[J]. Computer Graphics Forum, 2010, 29(1):202-226.

[2] WANG X, CHEN Q D, WANG W L. 3D human motion editing and synthesis: a survey[J]. Computational and Mathematical Methods in Medicine, 2014, 2014(1):104535.

[3] 潘志庚, 吕培, 徐明亮, 等. 低维人体运动数据驱动的角色动

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载