赵鋆凡 苏明扬 李 秀
清华大学深圳国际研究生院,广东深圳 518055
深度学习的飞速发展为各行各业带来了巨大的变革,GAN、Transformer、Diffusion 等一系列生成模型的提出让人工智能(AI)在自然语言处理(NLP)、计算机视觉(CV)等领域不断逼近甚至超越人类。人工智能生成内容(Artificial Intelligence Generated Content,AIGC)凭借其低成本、高效率的内容产出能力正在受到各行各业的重视。2019 年,Stable Diffusion 以其惊人的图像绘制能力让AIGC 正式进入工业界的视野,而2022 年ChatGPT 的提出让人们在惊叹于人工智能的超高速发展之余也开始畅想AIGC 将能为各产业带来怎样的变革。
事实上,在电影及其相关产业中,AIGC 已经开始发挥重要作用。大量的游戏公司采用图像生成平台Midjourney 作为原画产出工具,菲律宾28 Squared和Moon Ventures 工作室运用ChatGPT 辅助剧本创作,7 天内创作了时长6 分38 秒的短片《安全地带》;而Blender、Maya 等三维软件也集成了相关AIGC 模型,辅助建模师的日常工作,提高3D 动画生成流水线的效率。
3D 人体动画生成(3D Human Motion Animation Generation)一直是深度学习领域的研究重点,随着各类生成模型的发展,AI 已经可以根据文本、音乐等输入信息生成符合人类需求的3D 人体动画。
3D 人体动画生成包含多个细分的研究领域,例如文本驱动的人体动画生成、音乐驱动的舞蹈动画生成、视频驱动的人体动画生成等,这些3D 动画生成方法将为影视、游戏、广告等多个行业带来更优质的解决方案。以人类最古老艺术之一的舞蹈为例,得益于动作捕捉、3D 图形学等技术的飞速发展,舞蹈艺术以数字化的形式在多个行业扮演着越来越重要的角色。然而,在实际的3D 舞蹈动画制作过程中,成本往往极其昂贵且效率低下。一条5 分钟的3D 舞蹈动画需要昂贵的动作捕捉系统、有经验的动画工程师和专业舞者耗时数十天去打磨。于是AI生成舞蹈成为优化影视行业动画制作管线的重要手段。
本文介绍了目前3D 人体动画生成在国内外的研究现状,并对目前学界前沿的三种人体动作生成算法进行了集成,结合Blender 软件,实现了一个可用于实际生产的3D 人体动画生成工具。
在剧本、图像、声音等创作领域,AIGC 已经在实际赋能电影行业,也让人们看到了AIGC 更广阔的应用前景。CG 电影或3D 动画电影中需要大量的角色动作,而目前这些动作仍然是依赖于动画师手动制作或动作捕捉系统完成。比如《阿凡达》全程通过动作捕捉系统赋予超现实的角色各种动态,又如国内知名的3D 动画电影《哪吒之魔童降世》《大圣归来》等,也都完全依靠经验丰富的3D 动画师在Maya 等3D 软件中手动制作。
尽管动作捕捉系统的开发提供了更精准、更真实的动画制作方案,但是仍存在系统价格昂贵、后期处理工作量较大等问题,且对于表演场地的光照、反射情况要求较高,给电影摄制带来了较大困扰。另一方面,邀请经验丰富的3D 动画师制作,则需较长的制作周期与较高的人力成本,即无论是动作捕捉获得还是动画师制作都存在成本高、效率低的问题。
而在深度学习领域,动作生成已经成为一个备受关注的研究课题。随着GAN、Diffusion 等生成式模型的提出,AIGC 已经可以生成高真实感的3D 人体动作。目前国内外主流的3D 人体动画生成算法可以分为合成式和生成式两类。合成式方法在生成人体动作的时长和真实感上占据优势,生成式方法则在生成人体动作的多样性上占据优势。
合成式方法通常是基于经典的动作图搜索相应算法并合成舞蹈,其核心思想是:在动作图中选择最符合输入特征的动作片段,并将多个片段拼接成一个完整且流畅的动作序列。在这类任务中,最具代表性的是音乐到舞蹈的跨模态生成。
Arikan[1]早在2002 年就正式引入了基于图的运动合成概念,将动作合成问题转化为找寻并拼接转移代价总和最小的动作序列来合成一段长时动作。在这种思路的指导下,动作合成任务通常被认为是在构造的运动图中找到最优路径。
网易所推出的ChoreoMaster[2]通过将配对的音乐-舞蹈数据进行联合训练,将音乐和舞蹈信息映射到一个统一的隐空间中,获取音乐与舞蹈的关联性,并在传统动作图的方法上,加入了风格节奏匹配和编舞规则约束。同时,其生成结果已应用到其游戏开发当中,也是首个落地的舞蹈合成系统。
Ho[3]等人则基于ChoreoMaster 的工作,着重对舞蹈音乐的节奏匹配和图搜索进行了优化。通过对运动序列做随机扭曲,提取出运动的节奏特征,以表征配对音乐与动作的节奏信息,从而训练一个匹配音乐的节奏特征网络。
合成式方法的优点在于可以获取长时稳定的动作序列,但却缺乏生成的多样性,只能从已有的动作数据中合成,不利于电影创作过程中创作者进行再创作的需要。
深度学习中的生成式模型已广泛应用于生成各种形式的数据内容。基于此,研究者们也提出了3D人体动作生成算法。
Zhang 等[4]提出了一个基于Diffusion 模型的人体动作生成网络。该网络通过对输入的文本进行编码,经过Diffusion 模型,可以将一个噪声去噪为一个动作序列。Tevet 等[5]在其基础上进一步改进,提出了动作扩散模型(Motion Diffusion Model,MDM),其不仅支持文本作为输入,同时支持音乐、文本、动作等多模态信息的输入,最终生成符合约束条件的3D人体动作序列。
Lee 等[6]提出了首个音乐驱动的2D 舞蹈生成网络,该网络使用变分自编码器(VAE)对舞蹈单元建模,并使用生成式对抗网络(GAN)循环生成舞蹈序列。由于人体骨骼自然形成了一个图形结构,Ren等[7]和Ferreira 等[8]采用了Graph Convolutional Network来提高生成的二维舞蹈动作的自然度。Yang 等[9]则利用Normalize Flow 构建了基于关键帧控制的舞蹈生成网络,实现了一定程度的动作可编辑。Tseng等[10]则基于Diffusion 网络实现了完整的动作可编辑,不只是基于关键帧的生成,还可对局部动作进行调节。Gong 等[11]则基于VQ-VAE 和将不同的动作信息映射到同一码本空间中,生成了同时包含文本和音乐输入条件的多模态舞蹈生成网络。
生成式方法可以根据约束条件生成新的人体动作,并在生成动作的多样性上有更好的表现,然而受限于生成式网络的长时建模能力,生成式方法很难生成长时稳定的3D 人体动画,并且可控性也更差。
笔者集成的3D 人体动画生成工具包括两个部分,即3D 人体动画生成算法和基于Blender 的3D 人体动画数据处理与可视化插件。我们挑选了三种目前学界前沿的3D 人体动画生成算法,在Python 环境下进行了集成,让用户可以自由选择模型进行动画生成。为了帮助用户便捷地将算法生成的动作数据转化为实际制作中可用的动画素材,我们编写了一个基于Blender 的插件,不仅能够对动作数据进行重定向和数据增强,而且可以直接将算法生成的结果可视化并导出为fbx 格式的动画文件,直接运用在实际内容的生产中。
考虑到实际的应用场景和ChatGPT 的普及应用,文本到3D 人体动画的跨模态生成应该被优先考虑。除此之外,随着数字化舞蹈在影视、游戏等行业中占据越来越重要的角色,且相关生成技术较为成熟,音乐到3D 舞蹈动画的跨模态生成模型也被集成在内。
综合真实性、多样性、约束条件匹配度等维度的指标,笔者选择了三个3D 人体动作生成模型集成在我们的工具中,分别是文本约束的生成模型MDM、音乐约束的生成模型EDGE[12]和音乐约束的合成模型ChoreoMaster。
笔者选取了HumanML3D 数据集[13]和FineDance数据集对三个模型进行了重新训练。HumanML3D是由HumanAct12 和Amass 数据集结合而成的3D 人体运动语言数据集。它涵盖了广泛的人类活动,如日常活动(“走路”“跳跃”等)、运动(“游泳”“打高尔夫球”等)、杂技(“侧手翻”等)和艺术(“跳舞”等)。HumanML3D 数据集包含14,616 个动作和由5,371 个不同单词组成的44,970 个描述,其总时长为28.59 小时,平均动作长度为7.1 秒,平均描述长度为12 个单词。FineDance 数据集是一个3D 人体舞蹈动画数据集,所有舞蹈动作全部由动作捕捉系统捕捉完成,一共包含22 个舞蹈流派,346 首音乐舞蹈配对数据对,总计52,701 秒的数据量,是目前已公布的数据量最大、包含舞蹈流派最多的3D 人体舞蹈动画数据集(图1)。
图1 风格多样化的舞蹈动画生成
MDM[5]是在2022 年由Tevet 等提出的基于无分类器扩散的3D 人体动作生成模型。MDM 是基于之前已有的文本到动作的Diffusion 模型改进而来。MDM 在每个扩散步骤中对样本进行预测,而不是对噪声预测,并且提出了多种损失,包括运动姿势损失、足部接触损失、运动速度损失等,提高了动作生成的真实性。MDM 采用Transformer 模型编码器部分对音乐信息和动作信息进行编码,通过Diffusion模型来生成符合约束条件的动作。此外MDM 支持多种约束条件的输入,包括文本、音乐、动作,是扩展性非常强的3D 人体动作生成模型。笔者使用了HumanML3D 人体动作数据集和FineDance 音乐舞蹈数据集对MDM 进行了训练,让MDM 可以根据文本、音乐等多模态信息生成动作。
EDGE[10](Editable Dance Generation)是在2022 年由Tseng 等提出的基于Diffusion 模型的3D 人体舞蹈动画生成式模型。EDGE 创新地将Jukebox 引入,将其作为音乐特征的提取器,并采用Transformer 模型的解码器部分对音乐和动作信息进行编码,再通过Diffusion 模型生成符合约束条件的动作。EDGE 最大的特色在于其可编辑性,能够生成任意长时的舞蹈动画,并可以对指定的舞蹈动作进行替换。此外EDGE 提出了接触一致性损失来消除生成运动中的足部滑动。我们在FineDance 数据集对EDGE 进行了重新训练,让其拥有生成更多流派舞蹈动作的能力。
ChoreoMaster[2]是由Chen 等在2021 年提出的一种合成式3D 舞蹈动画生成算法。这个算法包括一个动作音乐的嵌入框架和一个基于图搜索的动作合成框架。在嵌入框架中,他们对动作和音乐数据先各自进行聚类,再用配对的音乐舞蹈数据对进行联合训练,最终将音乐和舞蹈映射到一个统一的隐空间中,这样的方法在找到音乐和舞蹈的风格关联性的同时,大幅降低了对数据的需求量。之后他们又设计了一个节奏特征分类网络以寻找音乐和舞蹈节奏的关联性。寻找到音乐和舞蹈的风格、节奏关联性后,在传统动作图的方法上,加入了风格节奏匹配的约束和一些已有编舞规则的约束。我们同样在FineDance 数据集上对ChoreoMaster 进行了重新训练,让其具备生成更多样舞蹈动作的能力。
总体上看,MDM 可以实现文本到动作的跨模态生成,EDGE 作为一种生成式方法可以生成多样化的舞蹈动画,ChoreoMaster 作为合成式方法可以提供长时稳定且流畅的舞蹈动画。
AIGC 的迅速发展为各行各业都带来了巨大影响。AIGC 生成3D 人体动画算法发展迅猛,生成结果已经达到了实际应用标准。然而,目前由算法生成的三维动画结果都是以矩阵形式存储的人体关节点姿势信息,虽然可以通过SMPL-X 和PyRender 进行图片和视频展示,但无法直接应用于影视场景中,且角色模型的重定向也存在困难,易用性较差。为了将学界的先进算法真正落地在实际应用场景中,笔者集成了一款基于Blender 的数据处理和可视化工具(图2)。该工具有两种功能,第一种功能可以对动作捕捉采集或者动画师制作的舞蹈数据进行批处理,方便对生成模型再训练;第二种功能可以将生成的数据可视化并导出为fbx格式动画文件。
图2 基于Blender的可视化工具
在笔者构建的工具中,首先可以对AIGC 所依赖的动画数据进行提取和镜像增强。研究选择了在学术界广泛应用的SMPL-X 模型作为目标角色模型。SMPL-X 模型包含55 个骨骼点,其中包括1 个全局控制的根骨骼骨盆(Pelvis)节点、21 个身体骨骼、30 个手部骨骼和3 个脸部骨骼。通过读取骨骼的旋转信息并添加根骨骼的全局位置信息,将其存储在NumPy 数组中,以实现高效的动作数据提取。这种格式的文件不仅信息集中、存储消耗小、读取方便,而且可以高效地处理大量数据,对于深度学习的应用具有重要意义。
为了增加数据的多样性和实用性,笔者采用镜像技术对数据进行了增强。通过交换身体左右部分(包括手部和腿部)的骨骼信息,实现了批量式的数据增强,从而提升AIGC 算法所需数据内容的丰富性。
为进一步提高效率,笔者将整个数据处理流程实现了自动化。用户只需要简单地在Blender 中指定待处理的批量动作捕捉数据文件路径以及相应的输出路径,我们的工具就会自动进行数据提取和镜像增强。这一流程大大简化了数据处理的步骤,同时也有效节省了动画制作的时间和精力(图3)。
图3 动作数据提取与增强功能
在完成动作数据的处理和增强后,笔者还完成了对AIGC 生成的动作数据的可视化和格式转换,使生成的3D 人体动画可以实际应用于影视制作中(图4)。这一工具读取并解析存储在数组中的SMPL-X骨骼旋转信息,并将其应用到用户指定的角色模型中。这意味着用户可以自由地更换角色模型,而不需要改变底层的动作数据,从而将丰富的AIGC 动作生成算法运用到动画电影制作中。
图4 AIGC 算法生成动画可视化功能
用户指定待可视化的动作数据文件和角色模型,将其导入到场景中。工具会读取数组动作文件的长度,设置当前动画的时间帧长度,之后对每一帧进行处理,基于骨骼层级,读取每一帧根骨骼pelvis的位置信息以及每一个骨骼节点的旋转信息,并将这些信息赋予对应的骨骼属性,将其烘焙到当前帧中。最后,将已经烘焙动作的角色模型导出为fbx 格式,直接作为动画资产应用于影视制作中。
随着AIGC 在各行各业中展现出越来越大的应用潜力,其在电影行业的应用场景也在不断被探索。目前图像生成、音乐生成、文本生成等AIGC 工具已经逐步应用到电影制作管线中,并展现出低成本、高效率的优势。
3D 人体动画生成对于电影行业中3D 动画制作具有重要的应用价值。目前学界主流的生成式方法和合成式方法发展迅猛,生成的3D 人体动画已经可以满足一些较低质量要求的3D 动画需求,然而受限于缺失综合能力强的AI 大模型和易用性差的缺陷,主流算法尚未被实际应用于电影制作中。
为了探索AIGC 在电影行业更多的应用可能,笔者针对3D 人体动画生成这一具体研究领域,集成了一款可用于实际生产的3D 人体动画生成工具。这个工具集成了目前表现最好的三种3D 人体动画生成算法,该工具能够根据用户输入的文本、音乐信息生成相应的3D 动画,此外,考虑到工具的易用性,笔者还开发了基于Blender 的动作数据批处理和可视化插件,帮助用户便捷地将模型输出结果转化为可实际使用的fbx格式的动画文件。
此工具仍然存在一些不足之处。由于目前没有能够同时支持多模态信息输入的动画生成模型,只能选择将三个模型集成在一起,导致工具体量过于庞大和冗余;而Blender 的可视化插件也暂时不能支持同时显示多个动画。这些都有待持续改进和迭代。fbx 是通用的动画文件格式,支持多种软件读取和编辑,动画文件在相应的软件中被渲染成最终的视频,未来我们将把动画视频渲染流程也集成在工具中,并着重关注小屏幕到大银幕的适配问题,帮助从业者更便捷地实现动画视频的高效生产。
可以预见,AIGC 将在未来深度赋能电影行业,从图像、剧本、声音到动画,多项资源都可以通过AIGC 生产实现降本增效的效果。作为相关行业从业者,我们应积极探索新技术的应用前景,同时考虑到技术的局限性与风险性,扬长避短,共同促进行业繁荣。
作者贡献声明:
赵鋆凡:设计论文框架与整体思路,撰写和修订论文,集成3D 人体动画生成算法,全文文字贡献50%;
苏明扬:撰写和修订论文,开发blender插件,全文文字贡献40%;
李秀:指导论文工作,全文文字贡献10%。