本文转载自 | 智源社区
报告人 | 刘利斌
整理 | 熊宇轩
编辑 | 李梦佳说到 2021 年与计算机相关的最火的概念,一定少不了「元宇宙」。元宇宙是一个庞大的工程,而计算机图形学则是对元宇宙起到支撑作用的一系列关键技术。借着「元宇宙」的东风,计算机图形学有望焕发「第N春」。
计算机图形学包含几何建模、渲染、计算机动画等研究方向。与其它方向相比,计算机动画的特点在于其研究主要面向场景中能够运动的物体。刘利斌博士主要的研究方向为「角色动画」,即场景中所有能够主动运动的物体(例如,人、动物)。
2021 年 9 月 30 日,北京大学前沿计算研究中心助理教授、智源新星刘利斌在青源 Talk 第 6 期上发表了题为「角色动画生成」的演讲。
本文整理自报告,视频回放链接:
刘利斌,2009于清华大学获得数理基础科学专业学士学位,2014年在清华大学获得计算机科学与技术专业博士学位。加入中心之前,刘利斌博士曾于加拿大不列颠哥伦比亚大学(The University of British Columbia)及美国迪士尼研究院(Disney Research)进行博士后研究,后加入美国硅谷创业公司DeepMotion Inc.担任首席科学家。刘利斌博士的主要方向是计算机图形学、物理仿真、运动控制以及相关的优化控制、机器学习、增强学习等领域。截止2021年9月,刘利斌博士在计算机图形学领域顶级国际会议及期刊上发表论文十余篇,引用近700次,并曾多次担任图形学主要国际会议如SIGGRAPH、PacificGraphics、Eurographics等的论文程序委员。在传统角色动画的生成过程中,我们首先需要通过机器学习、计算机视觉、图形学方法对角色进行建模。
图 1:角色动画生成流程接着,我们需要进一步进行计算机动画的处理,将角色模型绑定到骨骼模型之上。这样一来,我们就可以通过改变骨骼的姿态来改变人、动物等角色的姿态。为了将该模型展示出来,我们需要进行相机控制。最后,我们通过渲染在场景中生成动作。上述过程往往需要耗费大量的时间和人工劳动成本。因此,研究人员试图通过人工智能技术加速角色动画的生成过程。
图 2:绑定过程中的挑战以绑定过程为例,动画师需要手工地通过专业软件为皮肤刷上权重,保证骨骼在运动时产生自然的外观形变。为了提升上述过程的效率,我们试图通过算法实现自动绑定。在得到角色模型后,我们需要通过算法提取出复合实际情况的骨骼框架,并计算出蒙皮的权重,从而将皮肤绑定到骨骼上。
图 3:automatic rigging & skinning早在 2007 年,Baran 等人基于几何操作提出了 Pinocchio 算法来实现自动绑定。2020 年,Xu 等人在 SIGGRAPH 大会上提出了著名的 RigNet,通过神经网络完成几何操作,实现更加鲁棒、漂亮的骨骼提取和绑定,同时也允许用户在一定程度上干预绑定过程(例如,调整骨骼密度、关节位置)。不过由于该方法不支持用户自定义的骨骼结构,在实际应用中经常需要解决诸如动作重定向等问题,在一些任务场景中需要往往额外的工作才能保证动作的质量。
图 4:Learning Skeleton Articulations with neural blend shapes为了解决这个问题,我们在 SIGGRAPH 2021 上提出了完全基于神经网络学习的自动绑定方法。该方法能够自动根据输入的角色模型提取出符合预先设定的骨骼结构的骨骼模型,并且完成自动的绑定。在完成绑定之后,将动作(例如,关节旋转)导入到模型中,就可以直接驱动角色来产生相应的外观变化。
图 5:Envelope branch该方法通过基于 MeshCNN 的架构根据输入的模型提取每个顶点绑定的权重,并估计出骨骼的位置,从而真正提取出骨骼的结构。由于原始的蒙皮权重刻画了骨骼的运动,会影响顶点网格模型的影响力,我们可以根据估计出的蒙皮权重反推出骨骼 模型。具体而言,我们通过 skinning based pooling 将蒙皮权重和顶点上的特征转化成骨骼特征,并最终提取到骨骼结构。
图 6:运动质量LBS 是目前广为使用的线性混合皮肤模型,其主要的缺陷在于:形变较大时,会出现体积的损失。为了弥补该缺陷,人们通常会采用手动创建的 Blend Shapes 方法将体积损失补全。
图 7:Residual Branch我们的模型提供了相应的组件,能够根据输入数据估计出 Blend Shapes,改善形变较大时的绑定效果。网络架构如图 7 所示,在推理时,我们会根据角色当前的姿态计算将 Blend Shapes 融入骨骼的程度。
图 8:训练过程由于我们才训练时并不知道骨骼的 Skinning 权值和 Blend Shapes 的真实值,所以采用了间接监督的训练方式,模型输入为样本的姿态及其形变情况。我们采用 SMPL 作为训练数据集,并且加入了额外的连通性数据增强方式提升网络的鲁棒性。
图 9:实验结果实验结果表明,加入了神经 Blend Shapes 组件之后,可以在大型形变的场景下显著改善动画质量,使用 Envelope 模型估计出的 Skinning 权值也优于原始的 LBS 对比基线。
图 10:细节形变值得注意的是,我们的模型具备很强的对人体细节形变(例如,肌肉的抖动)的捕捉能力。
图 11:相机轨迹规划在游戏、电影等场景下,相机的镜头语言也是叙事的重要部分,我们需要实时、自动地生成相机运行轨迹,形成某种镜头语言和风格。
图 12:传统方法传统意义上,我们可以根据摄影、艺术方面的一些技术和先验知识设计优化目标,从而生成相机轨迹。然而,我们有时难以通过语言或数学方式来描述这样的先验知识。
图 13:Example-driven Virtual Cinematography by Learning Camera Behaviors我们在 SIGGRAPH 2020 上发表了论文「Example-driven Virtual Cinematography by Learning Camera Behaviors」,试图从输入视频中提取出对风格的表示,使拍摄虚拟动画场景的过程展现出相似的风格。
图 14:建模相机行为在拍摄电影时,运镜的过程在很大程度上是由人物之间的相对关系决定的。基于这一观察,假设在场景中始终至少有两个角色,我们可以将两个角色的相对关系、它们跟镜头之间的关系、人的朝向、相机的位置等信息表示成一个特殊的场景特征。具体而言,我们在表示物体位置时,采用了完全局部的环面坐标系,从而过滤掉全局运动的影响。
图 15:Mixture of Experts为了提取到这种表示,我们提出了如图 15 所示的 Mixture of Experts 架构,将不同拍摄场景对应的不同风格的 Expert 混合起来。首先,我们通过门控神经网络得到各个场景特征的权重,并根据该权重混合不同的 Experts,从而得到具有特定风格的相机运动轨迹。
图 16:Camera Keyframing with Style and Control然而,「Example-driven Virtual Cinematography by Learning Camera Behaviors」中的方法并不能让用户参与到相机轨迹的控制中,无法通过指定关键帧等方式干预相机运动的过程。
图 17:两阶段的工作流程为了实现上述目标,我们在「Example-driven Virtual Cinematography by Learning Camera Behaviors」的基础上,在相机轨迹生成部分将关键帧信息、当前帧和关键帧相对位置关系作为额外的输入。
图 18:动画生成起初,动画师需要通过调整角色关键帧中的姿态等方式生成动画,这一过程十分耗时。如今,在电影、游戏产业中,我们往往首先对真人进行动作捕捉,然后将捕捉到的动作映射到虚拟角色上,从而生成角色动画,这大大降低了制作成本,提高了动作的丰富性。
图 19:Unsupervised Co-part Segmentation through Assembly然而,进行动作捕捉的设备往往十分昂贵。为此,一些研究人员试图估计出视频中人的姿态(例如,OpenPose)。但是这些姿态估计方法大多是有监督学习方法,要求我们首先对图像进行大量的标记。对于人的姿态标记相对容易,但是对于如图 21 所示的动物、机械臂的动作进行标记则较为困难。为了解决这一问题,我们在 ICML 2021 上发表了论文「Unsupervised Co-part Segmentation through Assembly」,充分利用视频中与动作相关的每个部位的相对信息,从而更好地对视频中的物体进行分类。
图 20:自监督组装为了进行自监督的训练,我们从不同的图片中分割出不同的部位。如果分割结果合理,我们可以将这些部位按照对应图片的形变进行仿射变换,再将变换后的部位组装回原图中。
图 21:部位组装——编码器首先,我们通过编码器提取部位的特征以及部位对应的变换。
图 22:部位组装——解码器接着,我们分别将每个部位的特征解码为对应的部位图。
图 23:部位组装最后,我们将部位图组合起来,恢复出原始图片。
图 24:训练过程与损失函数在输入两张图片时,我们首先通过编码器编码源图片的部位特征和变换以及目标图片的变换。接着,我们用目标图片的变换方式对源图片的部位特征进行变换。通过组装变换有的源图片的部位图,我们试图重构目标图片。
图 25:变换损失函数除了重建损失函数之外,我们还引入了一个变换损失函数。由于我们需要在区分部位的同时,在正则空间中估计角色的姿态。因此,我们假设所有部位在正则空间中为一个处于原点的形状,其变换对应于形状本身的协方差所在的方向。通过这个变换损失函数,我们可以赋予变换一定的物理意义。
图 26:交互式场景对于电影来说,通过上述方法得到的一次性的高质量角色动画可以满足要求。然而,对于游戏、虚拟数字人、VR、服务机器人等交互式场景,我们希望它们能够随着与用户的交互实时产生满足要求的自然的高质量的动作。从理论上说,我们不可能完全依靠动作采集获取到动作空间中所有的动作,需要重用已经采集到的动作。
图 27:运动图早期,研究人员采用运动图(Motion Graph)等基于状态机的方法完成上述目标,通过图模型根据动作之间的逻辑关系将它们结合起来。然而,如果涉及到的动作很多,状态机就会十分复杂,难以进行进一步的编辑。
图 28:生成运动为此,研究人员试图直接从无结构数据中学习嵌入在其中的策略,并通过学习一个能够根据用户指令产生新动作的生成模型。在神经网络被广泛使用之前,人们尝试过通过高斯过程、高斯混合模型完成上述任务。
图 29:神经运动生成近年来,一些基于自回归神经网络的动作生成模型纷纷涌现出来。我们将角色当前的状态、用户输入的指令、环境的变化输入给生成网络,网络会根据上述信息迭代更新角色的状态。其中,神经网络可以为门控网络、LSTM、标准化流等模型。然而,这些基于数据的方法本质上还是对已有数据的混合和重放,无法产生新的动作。
图 31:基于物理的角色动画此外,人摔倒等动作是一个物理过程,由此衍生出了基于物理仿真的角色动画。该方向的研究目标是在虚拟世界中还原真实世界的物理过程。然而,实现这种控制过程往往是十分困难的。
图 32:基于强化学习的方法在机器人领域中,一些学者试图对一些共性的动作展开研究。然而,这些研究缺乏对细节的刻画,机器人角色完成动作的样子与人类有较大差距,并不自然。近年来,随着强化学习的发展,很多工作基于强化学习使智能体模仿人的运动来学习控制器,从而控制角色运动。具体而言,智能体与所处的环境不断交互,并根据交互结果更新控制策略。我们通过奖励函数使仿真结果与输入的动作尽可能接近。由于仿真过程往往是黑盒,我们会使用 Reward-Weighted Regressoin 等模型无关的方法来求解。
图 33:组合控制策略除了基于简单的强化学习策略让角色学习灵活的动作,我们还可以对身体的不同部分采用不同的控制策略(例如,下半身保持平衡,上半身做出其它动作)。
图 34:多功能角色的控制图使角色同时学习到多种动作对于基于物理的动画来说是一个重要的目标。如前文所述,研究人员通过基于状态机的方法应用到基于物理仿真的角色动画中,将不同的运动控制策略结合起来,使角色实时地与物体和用户交互。
图 35:固定时间序号追踪的弊端在进行模仿学习时,我们希望生成的动作与参考数据一致。然而,在动态场景下,会出现一些与理想环境不符的突发状况。为了解决该问题,我们需要对运动控制策略进行规划,在跟踪原始参考数据无法成功时,需要跳过一部分参考数据进行新的尝试。
图 36:用于动作规划的 Q 网络为了在规划时从较长的应用数据中挑选出合适的数据,从而成功地完成动作,我们设计了一种基于深度 Q-学习网络的方法,从而实现了滑板、杂技运动等复杂的角色动画。
图 37:运动生成+基于物理的跟踪控制为了生成新颖的动作,我们试图将运动生成模型与物理仿真的追踪控制结合在一起。然而,由于生成的往往是物理不准确的,所以通过基于物理的方法跟踪这些动作时往往无法保证质量。
图 38:生成运动控制近年来,一些研究人员也试图首先采集大量的动作样本,然后通过自编码器寻找共同的隐空间,进而在隐空间中学习新的高层策略。这样一来,我们可以使角色同时掌握大量的动作来完成目标,但是在这个空间中的训练过程同样没有考虑到物理过程,动作的质量仍然较低。
图 39:生成对抗模仿学习此外,一些研究者试图将生成对抗网络(GAN)与强化学习/模仿学习相结合,从而考虑各种突发情况和物理参数的变化。然而,GAN 和强化学习的训练都较为不稳定,因此得到的动作也不够自然,质量较低。今年,来自加州大学伯克利分校和上海交通大学的研究者提出了对 GAN 中判别器的改进,加入了一些人为的干预从而生成更加自然的动作。
4Q&AQ1:角色动画生成未来的发展趋势如何?会遇到哪些新的机遇和挑战?A:角色动画最早在游戏和动画中应用地较多,目前工业界的标准范式还是基于状态机的方法。近年来,育碧、EA 等大型游戏公司开始注意到机器学习可以有效提升角色动画制作流程的效率。最近,国内一些公司尝试将角色动画技术应用到融媒体、数字人、直播带货等场景下。基于物理的角色动画具有巨大的潜力,今年大火的元宇宙概念的头部公司也将基于物理仿真的角色动画应用到产品中,但是该技术目前还不够成熟。Q2:「元宇宙」概念的发展前景如何?会发展成「头号玩家」等电影中描绘的形式吗?A:这一目标非常吸引人,但是要想实现这一目标,我们仍然还有很长的一段路要走。举例而言,VR、AR 是元宇宙的重要呈现形式,但是目前这些领域的算力支持还不够充足。元宇宙是一个很宏大的概念,角色动画等领域的研究往往只能触及其中的一个小的部分。Q3:能否预测一下角色动画、物理仿真等研究方向在未来的 5-10 年会有怎样的突破?A:我的研究工作的目标是试图构建一个「人工小脑」,让角色能够本能地维持正常的运动,这就要求角色能够学习到大量的动作技能,并将其转化为经验表示。从宏观意义上说,这也是通用人工智能的研究目标。