图形学顶会高分收录!天美联合提出基于深度学习的间补动画实时生成技术
1. 导语
人体动画广泛应用于游戏互动电影等场景中。业界为了做出足够合理逼真的动画姿态,通常会利用动作捕捉对真实人体姿态进行记录,并由动画师手动编辑已经记录好的姿态,生成可以在游戏中使用的动画序列。
尽管这一套流程所产生的动画序列能够真实地表现游戏角色特定动作,但在游戏角色从一个动作切换到另一个动作的过程中,由于缺少动作捕捉信息,一般只能通过启发式的手段进行程序生成,例如利用blending的方式混合前后两个动作姿态。但启发式的方法容易产生不真实的动作表现,并且使用专家系统难以避免所有可能造成的不真实问题。
为了解决这个问题,天美J1&F1工作室和腾讯游戏学堂牵头成立的「浙江大学-腾讯游戏智能图形创新技术联合实验室」金小刚教授团队联合提出了一种基于神经网络的动画间补算法,希望通过深度学习在一个大规模的动作捕捉数据库中学习动作生成内在逻辑,并能够实时生成真实可信的动作。
天美J1&F1工作室在动画技术的游戏应用方面有着多年的积淀,而金小刚教授团队是动画技术领域学术研究的先驱。作为工业界与学术界的结合,双方的合研论文 “Real-time Controllable Motion Transition for Characters” 被SIGGRAPH 2022 Technical Paper 高分收录。
2. 现有工具及方案不足
现有多种不同的动作插值问题的处理形式,比如说把插值问题当作动作计划(planning)问题,通过复杂的带约束优化过程求解,效率比较低。
另一方面,数据驱动方法通过在结构化的数据集中搜索,避免了较慢的优化过程,但是由于控制和约束是多样的,需要的数据集非常庞大。
在深度学习领域,动作插值被当成了动作流形的学习问题或者控制问题,但这些方法很难转换为一个动作插值生成器。
2.1 基于深度学习的离线方法
离线方法可以把间补问题类比成一个图像补全问题。用卷积网络或者Transformer补全动作序列中的缺失部分。离线问题中时间不是主要目标,也可以使用后处理方法对结果进行修改。
2.2 基于深度学习的在线方法
一种把深度学习动作生成器改成间补动作生成器的方式是添加约束项。但是简单的添加约束难以保证高质量的结果。添加时序编码的方式,并借助GAN网络能够基本保证动作生成的质量。但是,之前的方法没有显式的提取人体骨骼的动态层级,也没有利用关节的相互关系,生成序列的泛化性较差。
2.3 诉求总结
出于以上目的,我们需要探索一个基于深度学习的快速高质量的动作间补算法,能够包含如下要求:
利用前后两个动画序列间补出中间长度为(0.2s ->0.8s)的动作序列。生成的动画序列如果不满足60fps,在不损失逼真程度的情况下可以通过blending方式进行补充。该动作捕捉的真实性由如下几条判断:
(1)第一条所述的动作序列不能存在骨骼交错,姿态超过人体极限等明显视觉不真实的情况。
(2)如果作为程序输入的是动作捕捉的训练集,则结果应该符合该动作捕捉的ground truth,如果相似的动捕数据太多最后会趋于这些动作的平均动作(平均动作也应该是合理的动作)。
(3)用户调研,生成效果应该至少好于blending方式。
(4)生成过程中,耗费在该算法上的峰值不应该超过1/60s。即保证完全另外开一个线程的前提下能够做到实时生成的要求。
3. 基于神经网络的动作间补算法
3.1 算法实现
我们的方法包括两个主要部分:自然运动流形模型和用于运动生成的采样器。我们首先介绍了学习自然运动流形。然后,我们引入从学习的流形中生成满足目标帧和目标过渡持续时间的运动的采样策略。
3.1.1 自然运动流形模型
自然运动流形模型利用CVAE和多模态映射解码器学习人体运动内在关系,将已知下一帧速度的人体运动编码到流形空间,使得可以通过对流形空间采样恢复出运动姿态。
3.1.2 间补动画采样器
虽然CVAE可以学习自然流形,但它只能执行不受控制的生成,所以我们训练了一个采样器使得能够自动生成间补动画。
在训练过渡采样器时,我们在每个学习步骤中从一个窗口中采样5到30帧的过渡长度,以便网络能够从不同的过渡长度和目标帧中学习。
3.2 最终成果
图中橙色的人体为关键帧,蓝色的为间补出来的动作帧。给定目帧和到目标的时间,角色能够自动调整脚步大小,前进速度和动作类型,在规定的时间内平滑地运动到目标帧。
3.2.1 生成质量
我们在两个数据集上进行了和其他方法的对比,我们使标准的插值作为基准,分别对比了RTN,添加了脚步滑动约束的RTN (+skating loss),并替换我们的条件变分自编码器为自编码器(AE)和变分自编码器(VAE),验证了我们生成的质量并不是简单的扩展先前的方法和使用任意的编码器均能实现的。
我们测试了三个不同的指标,分别是所有关节的全局位置的L2范数,NPSS指标和脚步滑动指标。下面为这些方法在Lafan1数据集上的指标对比:
关节位置的L2范数
间补帧长度 | 5 | 15 | 30 |
插值 | 0.37 | 1.24 | 2.31 |
RTN | 0.22 | 0.59 | 1.16 |
+Skating Loss | 0.28 | 0.68 | 1.27 |
AE | 0.28 | 0.63 | 1.16 |
VAE | 0.20 | 0.56 | 1.11 |
我们的方法 | 0.20 | 0.56 | 1.12 |
NPSS
间补帧长度 | 5 | 15 | 30 |
插值 | 0.0073 | 0.1135 | 0.5229 |
RTN | 0.0056 | 0.0719 | 0.3495 |
+Skating Loss | 0.0071 | 0.0799 | 0.3715 |
AE | 0.0078 | 0.0835 | 0.3721 |
VAE | 0.0055 | 0.0701 | 0.3420 |
我们的方法 | 0.0055 | 0.0702 | 0.3455 |
滑步损失
间补帧长度 | 5 | 15 | 30 |
插值 | 1.708 | 2.081 | 2.144 |
RTN | 0.483 | 0.698 | 0.930 |
+Skating Loss | 0.249 | 0.349 | 0.455 |
AE | 0.294 | 0.485 | 0.649 |
VAE | 0.255 | 0.353 | 0.502 |
我们的方法 | 0.244 | 0.343 | 0.469 |
可以看到,综合三个评价,我们的方法是唯一能在三个评价中都接近最好评价的方法。
3.2.2 泛化性
我们的方法可以在输入条件改变,甚至变得不太合理的时候(例如非常长或者非常短的时间间隔,目标在初始的反方向或者距离初始非常远),我们的方法总是能生成合理自然的结果。
3.2.3 不同的动作姿态
我们测试不同动作姿态的指标,我们将Lafan1数据集中的跑步和行走序列归类为步行,跳舞序列包括Lafan1的舞蹈序列,搏击序列和体育序列,跳跃序列包括所有跳跃动作,障碍序列包括所有角色避开障碍物的动作。
对于间补长度为30帧的结果,指标如下表所示:
L2范数
动作 | 步行 | 跳舞 | 跳跃 | 障碍 |
插值 | 2.76 | 2.40 | 1.89 | 2.23 |
RTN | 0.99 | 1.51 | 1.21 | 1.21 |
我们的方法 | 0.95 | 1.48 | 1.18 | 1.15 |
NPSS
动作 | 步行 | 跳舞 | 跳跃 | 障碍 |
插值 | 0.6430 | 0.6405 | 0.4000 | 0.4513 |
RTN | 0.3380 | 0.5197 | 0.3123 | 0.3158 |
我们的方法 | 0.3306 | 0.5141 | 0.3205 | 0.3085 |
滑动损失
动作 | 步行 | 跳舞 | 跳跃 | 障碍 |
插值 | 2.743 | 1.844 | 1.381 | 2.024 |
RTN | 1.187 | 1.103 | 0.640 | 0.657 |
我们的方法 | 0.589 | 0.571 | 0.326 | 0.293 |
可以看出我们的方法相比起RTN,在位置的平均损失下略有提升,在动作质量上,我们的滑步显著减少,在实际效果中几乎看不出滑动。
3.2.4 不同时间长度
我们丢弃每个sample的30帧长的序列,要求网络分别用15帧,8帧和60帧的时间恢复出来,并衡量不同方法的脚步损失误差。
同时,我们测试了一个极端例子,我们丢弃一帧,但要求网络用100帧的时间将它恢复回来。
时间 | 8 | 15 | 60 | 100 |
插值 | 7.302 | 3.917 | 1.075 | 0.004 |
RTN | 4.050 | 2.087 | 0.814 | 0.522 |
我们的方法 | 3.363 | 1.350 | 0.438 | 0.110 |
对于放慢100倍来说,因为两帧间隔非常短,所以对于插值方法来说,两帧之间的脚步差值减小了100倍,所以指标上最好。对于其他所有例子,我们的方法都显著好于RTN。在时间非常短的情况下,很难生成合理的动作,但我们的方法仍能表现最好。
在视觉上,当开始帧和结束帧在一个步行周期的同一个阶段(比如都是左脚在前),RTN就有可能生成滑动的动作,而我们的方法能够快速生成一小步,使其行走到目标位置。
3.2.5 不同的目标位置
对于不同的目标位置,我们测试了两种情况。一是将目标位置向前移动到两倍远于初始目标位置的地方,二是将目标位置向前移动到初始位置的反方向。
在向前测试中,我们的方法倾向于生成几个大步伐或者更多的步伐来弥补多出来的距离,RTN总是生成和数据集类似的相同的步长,通过滑动来弥补距离。
向后的实验要更困难一些,因为我们的数据集中没有太多类似的数据,并且,由于两个姿态面朝同向且时间不够进行两次转身,所以所有生成的动作都倾向于往后退。
这种情况下,RTN总是生成可辨认的滑动而我们的不会。我们认为这是因为我们的自然流形模型成功捕捉了训练集中的速度向后的姿态动作,使得能够合成。
我们也测试了一个极端例子,设置目标帧在初始帧的10m远,并让角色以60帧的时间移动过去。在训练集中,最远距离只有5.79m,最长的时间长度只有30帧。下图展示了RTN(第一行),VAE(第二行)和我们的方法(第三行)的结果:
因为目标距离太远,RTN生成滑动的动作,没有髋关节作为条件输入;VAE生成的结果类似于混合了爬行和跑步的结果;而我们的方法能够生成快速奔跑的结果。
最后附官网链接:
浙江大学-腾讯游戏智能图形创新技术联合实验室
浙江大学是教育部直属、省部共建的普通高等学校,经过一百多年的建设与发展,学校已成为一所基础坚实、实力雄厚,特色鲜明,居于国内一流水平,在国际上有较大影响的研究型、综合型大学。腾讯游戏学堂致力于打造游戏知识分享和行业交流的平台,通过游戏行业专业人才培养、高校产学研合作、行业交流及开发者生态建设等,推动游戏行业良性发展,助力游戏人“成就游戏梦想”。腾讯游戏学堂为了进一步促进产学融合,实现双方人才、技术、信息、资源的全面共享与互动,共同建设了“浙江大学-腾讯游戏智能图形创新技术联合实验室,实验室将利用浙江大学在计算机科学、机械、数学等方面的雄厚科研实力,结合腾讯互动娱乐在产业化与技术推广方面的优势,在虚拟现实、计算机图形与视觉计算、计算机辅助设计等领域解决重大技术问题,促进行业技术进步,聚焦前沿技术探索,将研发实验室建设成为在国内具有一定影响力的科学研究和人才培养基地。
金小刚教授
教授、博士生导师,来自浙江大学计算机科学与技术学院。是“十三五”国家重点研发计划首席科学家,浙江大学-腾讯游戏智能图形创新技术联合实验室主任,浙江省虚拟现实产业联盟理事长,中国计算机学会虚拟现实与可视化专委会副主任委员,杭州钱江特聘专家。在ACM TOG (Proc. of Siggraph)、IEEE TVCG等国际重要学术刊物上发表论文140多篇,多次获得国内外重要奖项。