• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 范文 > 正文

    面向类人角色动画的骨骼运动数据生成算法

    时间:2023-04-09 10:30:04 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

    王 磊,李书杰,谢文军,贾 伟

    (合肥工业大学 计算机与信息学院,安徽 合肥 230601)

    目前,角色动画被广泛应用于虚拟现实、游戏和电影制作中。由骨骼运动数据生成角色动画是目前主流动画制作软件(如3Dmax、Maya、Blender等)采用的方式,即用已有骨骼运动数据驱动3D角色模型。早期骨骼运动数据的获取方式是由动画制作师逐帧制作,人力成本和时间成本都较高。随着动作捕捉仪的出现,骨骼运动数据可以通过可穿戴或光学动作捕捉仪获取,但是由于动作捕捉仪穿戴不便,并且只能在特定环境下使用,其只能采集少量表演者的运动数据。然而3D类人角色模型丰富多样,具有多种多样的骨骼长度和比例,因此若将动捕数据直接用于驱动不同骨骼长度和比例的角色,则会出现穿地、自相交等不合理现象。

    从国内外研究现状来看,使用动作捕捉仪采集表演者A的运动数据驱动类人动画角色B,这一问题的常用解决方案是运动重定向技术,即将表演者A的运动数据经过运动重定向算法生成类人动画角色B的数据,如图1所示。

    图1 动捕采集表演者A的运动数据驱动类人动画角色B

    目前,3D人体骨骼运动重定向方法可以分为2种:一种是基于约束的优化求解算法;另一种是基于深度学习的算法。基于约束的优化求解方法的典型代表是逆向运动学方法,即通过角色A的末端效应器位置约束角色B的末端效应器位置,然后再反向求解角色B的其余骨骼节点的坐标。由于约束优化类方法基于人为定义的约束条件求解角色B的运动,其中人为定义的约束往往会造成运动失真的现象。随着深度学习的发展,大量研究人员探索用深度神经网络实现运动重定向。文献[1]提出的运动神经网络(neural kinematic networks,NKN)以源角色A的运动数据作为输入,输出为目标角色B的运动;文献[2]提出的姿态运动网络(pose movement networks,PMnet)在NKN的基础上进一步提高了输出运动的精度。

    但是,此前的深度学习算法都要求源角色A和目标角色B均具有大量运动数据作为训练集,实际问题却是角色A的运动数据由动作捕捉仪获得,往往仅有少量采集数据。并且,若B是一个设计师设计的全新角色,则无相关数据可以用于训练网络。针对这一实际问题,本文提出一种深度学习算法,该算法能够使用少量源角色的数据,生成无任何已知运动数据的目标角色的运动数据。另外,从种类上来说,作为目标角色的类人动画角色种类丰富多样,而源角色往往只是少数几位在动作捕捉环境下的表演者,因此若想驱动丰富多样的类人动画角色,则需要使用少数几位表演者的数据,生成多种不同的目标角色的数据。

    本文提出的算法首先利用少量源角色的动捕数据训练一个运动数据自编码器,然后在该自编码器生成的隐变量空间中通过迭代约束求解的方式获得多种不同类人角色模型的骨骼运动数据。该方法在训练阶段仅需要用到源角色的运动数据,无需目标角色的数据作为训练数据。在执行阶段,只需要通过调整迭代约束求解时的参数,即可获得不同目标角色的运动数据。

    综上所述,本文的工作包括以下3个方面:

    (1) 提出了一种深度学习算法,该算法能够基于单一源角色的运动数据生成目标角色的运动数据,且无需目标角色的运动数据作为训练集。

    (2) 提出的算法能够使用单一源角色的运动数据训练网络,该网络训练完成后能生成多种不同目标角色的运动数据。

    (3) 在Adobe Mixamo数据集上的实验表明,当基于单一源角色运动数据生成未知角色的运动数据时,本文提出的算法比现有运动重定向算法具有更高的精度,即本文的算法更适用于面向类人角色动画的骨骼运动数据生成。

    本文讨论的问题是利用少量动捕采集的表演者的运动数据驱动丰富多样的类人动画角色。目前该问题常用的解决方案是运动重定向,即将源角色A的运动数据经过重定向计算得到目标角色B的运动数据。因此,本文首先介绍运动重定向相关技术和方法,再介绍本文算法与现有运动重定向算法的区别与联系。

    运动重定向算法是指将源角色运动重定向到与其在骨骼长度比例,甚至是拓扑结构不同的目标角色上,即在保持原始运动特征的前提下,根据目标角色的骨架结构对原始数据进行编辑和修改的过程[3]。从国内外研究现状来看,针对3D骨骼运动数据重定向的方法可以分为2种类型,包括传统的基于约束求解的算法和基于深度学习的算法。

    1.1 传统约束算法

    基于约束的优化求解算法的典型代表是逆向运动学方法,即通过源角色的末端效应器位置约束目标角色的末端效应器位置,然后再反向求解角色B的其余骨骼节点的坐标。但是,逆向运动学方法逐帧求解目标角色的运动,使得求解出来的运动存在一定的抖动现象。文献[3]将运动重定向问题看成时空约束问题,在整个运动序列上进行优化求解,从而减轻了抖动问题;文献[4]首先运用逆向运动学方法逐帧求解重定向后的运动,然后再用B样条对运动轨迹进行平滑拟合以去除抖动;文献[5]对每帧进行逆向运动学求解,然后通过最小化相邻帧之间末端效应器差别减少运动的抖动;文献[6]提出一种快速重定向算法可以将一些特定指定行为迁移到任意骨架上,但是其结果仍需要额外的平滑处理。

    早期的传统运动重定向算法往往依赖人为设置的约束,如末端效应器约束、平滑性约束等,在约束函数的解空间中按照特定规则选取某个最优解。但是需要指出的是,这个解空间是在数量上满足那些人为设置约束的向量构成的空间,但并不一定满足运动学约束。这一特性使得传统的运动重定向方法输出的数据往往会丢失一些运动学特性,使得运动存在抖动现象,而且即使经过平滑运算后,仍然存在不自然、不真实的现象。

    1.2 深度学习算法

    随着动捕数据的积累,研究者们也探索利用深度学习算法提升运动重定向算法的性能。文献[7]提出一种基于变分自编码器的运动重定向的网络结构,但是该网络需要用配对训练数据训练网络。所谓配对训练数据,是指在训练时需要源角色和目标角色完全同步并一致的动作序列。但是对于重定向问题而言,最难获取的是配对训练数据。动作捕捉仪显然很难同时获得2个不同角色完全一致的动作,而动画师能手工制作出来的配对数据量也非常少。

    近年来涌现了许多利用非配对数据的研究。文献[10]受非配对的图像翻译(unpaired image-to-image translation)任务[8-10]的启发,结合生成对抗网络(generative adversarial nets,GAN)[11]提出运动重定向网络NKN,运用GAN来解决运动重定向问题,不需要使用配对数据来训练网络。此后,产生了一系列效仿它解决运动重定向的工作。例如,文献[2]提出PMnet网络,采用四元数格式的隐变量,使得该网络能够较好地表达运动数据的特征,提升了结果的精度。文献[12]提出一种基于骨骼感知的神经网络(skeleton-aware networks,SAN),该方法通过池化操作提取源角色和目标角色的公共骨架,使得网络不仅能够在同一种骨架拓扑结构下完成重定向任务,而且在不同骨架拓扑结构间也有不错的表现。但是这些方法仅对训练数据集中的角色能够较好地实现重定向,而当训练集中不包括目标角色的数据时,生成的目标角色的骨骼运动数据效果欠佳。

    1.3 本文算法与重定向算法的区别

    本文算法与现有重定向算法的相同点是算法输入均为源角色的运动序列和目标角色的骨架信息,生成目标角色的运动;不同点在于现有重定向算法在训练时需要有目标角色的运动序列作为训练数据,而本文提出的算法在训练时可以没有任何目标角色的运动数据,因此本文算法的意义在于可以生成多种没有原始数据的目标角色的骨骼运动序列,可以作为骨骼运动数据库的增强算法。

    为验证本文算法的特点,在实验中本文用仅包含1位表演者动捕数据的训练数据集对网络进行训练,并实现了依据该表演者的数据生成多种不同目标骨骼的运动序列,如图2所示。

    图2 由1位表演者动作捕捉数据生成多种目标骨骼运动序列

    2.1 整体思路

    本文算法分为训练阶段和运行阶段2个阶段。在训练阶段,依据已有的骨骼运动数据训练1个运动自编码器,训练时该网络的输入、输出均为训练集中已有的运动数据,训练损失函数为重建均方误差;在运行阶段,利用已训练好的自编码器,输入表演者的运动序列以及目标骨骼的参数,然后迭代生成所需的骨骼运动序列。本文所采用的网络结构如图3所示。

    图3 本文采用的网络结构图

    为验证本文所提算法能够仅用少量动捕设备采集的运动数据生成多种不同的骨骼运动数据,本文从Adobe Mixamo数据库中仅选取了1个角色的运动数据来训练网络,即训练集中仅包含1种骨架结构。

    然后用训练好的自编码器生成不同的角色运动序列并与文献[2,12]的结果进行对比。其中,Adobe Mixamo数据库中不同角色的数据具有不同的骨骼节点数量和动画帧率,在训练网络之前需要对运动数据进行预处理,包括:将运动数据降采样为60帧/s;保留角色的22个骨骼关节点,如图4所示;将训练数据分割为120帧的运动片段。

    图4 本文所采用类人角色骨架示意图

    2.2 骨骼运动数据生成算法

    (1)

    (2)

    在(2)式中,正则化的作用是让qA成为单位向量。

    (3)

    (4)

    (4)式也是正则化操作。

    其次,将骨架编码信息和正则化后的隐变量连接起来,再经过全连接层FΔ,得到:

    (5)

    接着令:

    qA=Hamiton(qA,qAΔ)

    (6)

    (7)

    最后,本文的网络训练损失函数定义为:

    (8)

    (9)

    其中,φA为迭代的初始值。

    (10)

    (11)

    (12)

    qB′=Hamiton(qB′,qBΔ′)

    (13)

    (14)

    接下来,利用文献[13]中的Adam函数,逐步修正隐变量φB′使得如下函数小于一定阈值:

    (15)

    其中:迭代系数λangle=0.3;λfoot=0.5;2个损失函数分别为角度约束和触地约束。

    (1) 角度约束。文献[14]指出,相似的运动之间有相似的关节角。因此,本文通过角度约束让生成的骨骼运动与源运动有相同的关节角度:

    (16)

    (2) 触地约束。此约束用于避免生成的骨骼运动数据出现穿地的现象。本文通过约束生成运动的左脚、右脚、左脚踝、右脚踝4个关节的纵坐标与地面的最小值来避免穿地现象:

    (17)

    现有文献中用深度神经网络生成目标角色的骨骼运动数据的方法主要是通过运动重定向网络,这些运动重定向网络均需要目标角色的运动数据来训练网络。本文算法的主要特色是在没有目标角色数据的情况下生成目标角色的运动。为说明本文算法的有效性,在对比实验中本文从Adobe Mixamo数据库中仅选用1个角色的运动数据来训练网络,然后分析不同方法在这种情况下生成新角色运动的效果。

    在训练阶段,选用Adobe Mixamo数据库中的Malcolm角色的数据对网络进行训练。在实验过程中,选用Adobe Mixamo数据库中Aj的运动数据作为输入,产生目标角色Big-vegas、Claire和Mutant的数据,如图5所示。其中Aj的身高为141.97 cm,而Big-vegas、Claire、Mutant的身高分别为155.40、139.49、162.75 cm。本文对比的算法包括PMnet和SAN。测试数据共有200个不同的运动片段。

    图5 本文算法与现有算法生成的骨骼运动数据效果对比

    根据文献[1]中的方法,本文用均方误差和帧间平滑性2个数值指标来衡量生成骨骼运动数据的效果,见表1所列。表1中,均方误差是指生成数据关节坐标与真实数据关节坐标之间差值,是常用的衡量骨骼运动数据差异的方法;
    帧间平滑性表明了生成运功数据的抖动程度,值越大抖动程度越大。

    表1 不同算法的结果对比

    表1中的数据表明,本文算法在没有目标角色的骨骼运动数据情况下,生成的骨骼运动数据效果在均方误差和数据平滑性上均明显优于PMnet和SAN。此外,可以看出,迭代操作对本文的结果有较大的提升。

    为了清晰地展示本文算法与其他算法结果的差别,本文对比同一运动序列经过不同算法处理后的结果如图5所示。图5未提供不迭代操作的结果,主要原因是其不是本文算法的完全体,且不是本文对比的重点算法。由图5可知,本文算法生成的骨骼运动数据与真实数据之间有较高的相似性,而PMnet和SAN生成的骨骼运动数据均出现了失真的现象。

    在训练数据集仅包含一个角色的运动数据的情况下,采用本文的方法可以生成大量不同角色的运动,如图6所示。

    图6 本文算法生成的骨骼运动数据库

    从图6可以看出,本文算法可以实现利用1个角色的运动数据生成多种不同角色的骨骼运动数据,可以有效实现骨骼运动数据库的数据增强,并且极大地提高了骨骼运动数据的可重用性。

    目前,骨骼动画是角色动画软件主要采用的动画制作方式,骨骼运动数据是角色动画制作的重要素材。但是通过动捕设备获得骨骼运动数据成本高,能获取的数据量少。本文提出了一种骨骼运动数据生成算法,该算法能够基于少量的采集数据生成大量的骨骼运动数据,能够有效对骨骼运动数据库进行增强。

    本文实验结果表明本文所提算法的有效性,生成的骨骼运动数据与真实数据具有较高的相似性。当然,本文算法生成的数据必然与真实数据还有一定的差异,但本文算法作为数据增强方法,已经可以较大地减少动画师的手工制作时间。在本文算法的基础上,可以实现交互式的骨骼运动数据生成插件,首先由本文算法生成初始的运动数据,再由动画师做少量修改即可供动画软件使用,可以有效节约动画制作成本。

    猜你喜欢重定向骨骼约束做家务的女性骨骼更强壮中老年保健(2021年5期)2021-12-02三减三健全民行动——健康骨骼中老年保健(2021年5期)2021-08-24约束离散KP方程族的完全Virasoro对称数学年刊A辑(中文版)(2020年1期)2020-05-19解决安卓文件夹乱象计算机与网络(2018年19期)2018-09-10重复压裂裂缝重定向的措施研究科学与财富(2018年12期)2018-06-114G伪基站的监测定位与规避协同分析移动通信(2017年13期)2017-09-29骨骼和肌肉小布老虎(2017年1期)2017-07-18自我约束是一种境界公民与法治(2016年8期)2016-05-17适当放手能让孩子更好地自我约束人生十六七(2015年6期)2015-02-28CAE软件操作小百科(11)计算机辅助工程(2012年5期)2012-11-21
    相关热词搜索: 骨骼 算法 生成

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章