机器之心专栏
作者:网易互娱AI Lab
AI 合成舞蹈的方法百家争鸣,但能够真正落地、用于实际生产的成熟系统却是初次面世。
近日,网易互娱 AI Lab 在 SIGGRAPH 2021 官方精选预告片上展现了其首个符合实际生产环境应用要求的舞蹈动画合成系统 ChoreoMaster。该系统可依据音乐风格生成爵士、二次元、街舞等不同类型的舞蹈动画,目前已为网易旗下的多款游戏项目产出了数个小时的高质量舞蹈动作资源,先来看段精彩的 demo 吧。
网易互娱 AI LAB 与清华大学合作对该方案进行了系统性技术梳理,并撰写论文《ChoreoMaster: Choreography-Oriented Music-Driven Dance Synthesis》。该文章已被 SIGGRAPH 2021 接收,入选 SIGGRAPH 2021 Technical Papers Preview Trailer(精选预告片),同时也将在计算机动漫节( Computer Animation Festival ,CAF)上播放。
- 论文地址:https://netease-gameai.github.io/ChoreoMaster/Paper.pdf
- 项目地址:https://netease-gameai.github.io/ChoreoMaster/
舞蹈动画在游戏和影视行业已非常普遍,目前业内制作舞蹈动画大多采用的是手 K 或动捕,生产一段高质量的舞蹈动画依然需要耗费大量的时间和精力。因此 AI 合成舞蹈成为时下热门的研究课题。但舞蹈作为一种独立的艺术形式,其动作与配乐在风格、节奏和结构等方面无一不透露出编舞学的专业知识,想要稳定输出高质量的结果并非易事。尽管业界也曾出现过多项红极一时的研究成果,如 AI Choreographer 和 DanceNet3D,然而这些方案并未落地于实际商业生产应用。
从左到右分别为 AI Choreographer、DanceNet3D 和 ChoreoMaster 输入 hip hop 乐曲后的生成效果
历经两年多的潜心研发,网易互娱 AI LAB 的研发团队提出了符合实际生产环境应用要求的 AI 舞蹈动画合成方案 ChoreoMaster。该方案的亮点在于:除了能够快速稳定地输出一段符合编舞美学、符合多种舞种风格、连贯自然的舞蹈动画以外,还灵活支持丰富的约束方式来指导算法按照用户期望的方向合成舞蹈动画,如可替换或删除指定片段、预设舞蹈轨迹和限制舞蹈范围等。
网易互娱 AI LAB 的研究者们从打造实际生产力工具的角度对 AI 舞蹈合成问题进行了新的思考。作为一款美术资源生产工具,美术同事对舞蹈动画合成系统有两方面的期待。首先,必须能够持续、稳定地输出符合落地质量标准的舞蹈动作资源;其次,合成的过程必须具备足够的可解释性和可控性,能以最直观的方式让用户快速获得期望的结果。
已有方案
虽然目前学术界已经有大量关于「基于音乐的舞蹈合成问题」的研究工作,但并没有一个已有算法框架能符合上述两方面的期待。从技术原理上划分,目前的方案可以被分成两个流派:基于传统图优化的方案和基于深度生成模型的方案。
基于传统图优化的方案构建于「基于图的动作合成(graph-based motion synthesis)」框架。其思路为对已有舞蹈动作数据进行切割分,形成大量舞蹈动作片段,并构建一个关于舞蹈动作片段的动作图(motion graph),图的每个节点对应一个舞蹈动作片段,图的每条有向边标记了两个邻接节点之间的过渡代价。这个过渡代价度量了一个动作片段是否能平滑地衔接在另一个动作片段后面。通过定义一个关于音乐片段和舞蹈动作片段匹配度的经验函数,基于音乐的舞蹈动画合成问题就转化成了在动作图中寻找一条与输入音乐匹配度尽量高、同时内部过渡代价尽量小的路径(walk)。该优化问题可以用标准的隐马尔可夫模型(HMM)进行建模,并使用 Viterbi 或 Beam-Search 算法高效求解。这套图优化框架具备优雅、完备的理论保障,能够以鲁棒、可解释、可控的方式合成平滑的动作,也因此成为了图形学领域处理动作合成问题的标准解决方案。
然而,目前基于图优化的方法生成的舞蹈动作远远达不到专业美术的审美标准。一方面,基于浅层人工特征定义的音乐 - 舞蹈匹配度并不能真实地刻画音乐和舞蹈的内在关联;另一方面,一段完整的舞蹈也远远不止将一批舞蹈动作片段平滑地拼接在一起那么简单,即使每个片段都非常美观。专业美术在看了这些方法合成的结果后,都会给出「动作拼凑感强」、「音乐动作契合度差」、「缺乏编舞合理性」等反馈。
在深度学习技术兴起后,深度生成模型在图像、语音、文本等诸多领域的任务中取得了令人瞩目的成绩,也很自然地被应用到了基于音乐的舞蹈合成任务中。从生成模型的角度来看,基于音乐的舞蹈合成任务属于经典的针对时序数据的跨模态翻译问题,前文展示的 DanceNet3D 和 AI Choreographer 方案都遵循这一思路。得益于深度人工神经网络在特征提取和表征方面的强大能力,只要数据充足并且训练充分,这类方法都可以在一定程度上学习到音乐和舞蹈之间的一些深层次关联。
然而,与其他领域面临的问题一样,基于深度生成模型的方法想要在实际生产环境落地还有很长的路要走。首先,人工神经网络属于众所周知的黑盒模型,其合成的结果几乎没有任何的可解释性和可控性。其次,从机器学习的角度来说,人工神经网络理解数据本质属性的方式是将其投影到低维隐空间。在这个投影过程中,属于高频分量的动作细节往往会被当成不重要的噪音而被故意丢弃。由于丢失了这些高频信息,深度生成模型合成的舞蹈动作很容易表现得很「呆滞」,甚至有些时候连流畅性都难以保证,更不要说达到专业美术的预期。最后,高质量三维舞蹈动作数据的生产成本要远远高于图像、语音、文字等形式的数据,可供训练的高质量音乐 - 舞蹈数据非常有限。舞蹈本身又是一门比较复杂的艺术形式,这导致了目前所有的深度生成模型的泛化性都很受限,模型在处理训练数据集之外的音乐时,效果难以保证,很容易输出奇怪的结果。
ChoreoMaster 方案
在尝试了多种方案,但合成的结果屡屡不尽如人意之后,网易互娱 AI LAB 的研究团队开始从舞蹈艺术角度对结果进行审视,并系统性地学习了编舞学(Choreography)这门独立学科。研究者们从编舞学庞杂的主观经验性规律中,总结出了一些普适规则。在与专业美术持续不断的迭代中,大家发现只要合成的舞蹈能够遵循这些规律,就能达到美术的质量要求,甚至能够获得专业编舞老师的认可。
这些普适的编舞规则可以总结为:
- 风格相契合,即音乐和舞蹈动作所传达出来的情绪和氛围应该是相似的;
- 节奏相匹配,即音乐的节奏点和舞蹈的节奏点应该是同步的,并且这些节奏点出现的模式一般呈现明显的规律性和周期性;
- 结构相呼应,即音乐和动作的组织结构应该是一致的,如重复的音乐段落(主歌、副歌等)对应的舞蹈动作段落一般也是重复的,重复的音乐小节对应的舞蹈动作小节一般是镜像对称的。
基于这些编舞学规则、并结合已有方案的优缺点,网易互娱 AI LAB 的研究者提出了一种全新的基于音乐的舞蹈合成系统——ChoreoMaster。该系统能够以稳定、可解释、可控的方式持续输出符合落地标准的高质量舞蹈动作,是业界首个 production-ready 的舞蹈合成工具。
ChoreoMaster 的技术方案如上图所示,包含两个模块:面向编舞的音乐 - 舞蹈 Embedding(左)和面向编舞的舞蹈动作合成(右)。其中,音乐 - 舞蹈 Embedding 模块利用深度学习技术,从高质量音乐 / 舞蹈数据库中构建音乐 - 舞蹈在风格、节奏契合度方面的度量,用于定量描述音乐片段和舞蹈片段之间的风格匹配度和节奏匹配度;而舞蹈动作合成模块则对传统的图优化框架进行扩展,在动作图构建和优化目标函数中融入风格、节奏和结构方面的编舞学规律。下面分别对这两个模块进行简单介绍。
面向编舞的音乐 - 舞蹈 Embedding
该模块的目标是将音乐和舞蹈的风格相契合和节奏匹配度这两条主观性规律转化成可计算的客观定量表达。因此,该模块整体是一个跨模态 Embedding 架构,包含 Style(风格)和 Rhythm(节奏)两个分支,分别用于将音乐 / 动作片段从各自的模态空间映射为同一低维空间(32 维)的 Style Embedding 和同一低维空间(8 维)的 Rhythm Embedding。网络结构如下图所示。
在 Style 方面,ChoreoMaster 首先利用有风格标签的音乐数据和动作数据独立训练两个分类网络,音乐分类网络采用了在 music tagging 领域 SOTA 的卷积循环 backbone,包含四个卷积层和两个 GRU 层。动作分类网络则采用了对称的设计,只是将其中的卷积层替换成了经常应用于骨骼动画数据的图卷积层。由于这两个网络独立训练,所以这个阶段并不需要配对的音乐舞蹈数据。
在两个分支各自训练到收敛的基础上,ChoreoMaster 利用配对的音乐和舞蹈数据对这两个分支进行联合训练,训练目标是让两个网络在尽量保持自身分类准确率的前提下,将配对的音乐和舞蹈数据映射为距离尽量小的特征向量。经过独立 联合两阶段的训练,音乐和动作两个分支最后一层输出的 32 维向量就构成了音乐和动作的 Style Embedding,两个 Style Embedding 之间的欧氏距离就可以定量度量音乐 - 音乐、音乐 - 动作、动作 - 动作之间的风格契合度。
与 Style 不同的是,音乐的 Rhythm 是可以从乐理角度给出明确定义的。在编曲时,音乐都会按均等的时间单位进行组织,其中最小的单位就是一拍。所谓 Rhythm 指的就是音乐中强拍和弱拍的组合规律。一首音乐中的强、弱拍的组合并不是杂乱无章的,而是会呈现出一定的规律,表达这种规律的最小单位是小节(meter),同一首音乐中每小节的长度也是固定的。例如 3/4 拍音乐,指的是 4 分音符为一拍,每小节 3 拍。2/4、3/4、4/4 这种拍号标记称为音乐的 Time Signature。
由于顿音符、连音符、修饰符等标记的存在,在实际演奏的音乐中,小节内的重拍并不一定严格出现在 Time Signature 所定义的位置,还会存在空拍、半拍等情况。因此 ChoreoMaster 将 Rhythm Embedding 表示为一个称为 Rhythm Signature 的 0-1 向量,其中的偶数位和奇数位分别对应音乐 Time Signature 中的主拍和半拍位置,每个位置的值则表示该位置是否存在实际的乐器节奏点(1:存在,0 不存在)。Rhythm Signature 中连续的 0 对应了乐谱中的连奏(legato)。由于收集的数据集和业务实际需求基本都是 4 拍音乐,因此在 ChoreoMaster 目前的实现中,Rhythm Signature 被定义为 8 位,如下图所示。
两个 Rhythm Signature 之间的距离可以定义为带权曼哈顿距离(偶数位权重 1,奇数位权重 0.5)。这样,8 位的 Rhythm Signature 天然构成了一种低维 Embedding。理论上所有可能的 Rhythm Signature 多达 256 种,但是在让专业人员对数据库中所有成对的音乐和舞蹈数据进行标注后,研究人员统计发现,常见的 Rhythm Signature 其实只有 13 种。因此 Rhythm 分支的目标可以通过一个简单的分类网络进行实现,该网络同样包含音乐和动作两个分支,各自以 2 个卷积层 1 个全连接层进行特征提取,之后送入权重共享的 3 个全连接层进行分类。
与 Style 分支不同的是,节奏信息更直观地反应在音乐的强弱变化和动作的速度、加速度等信息中,因此 Rhythm 分支以音乐信号的 energy、onset 和动作数据骨骼点的速度、加速度、触地等高层信息作为输入。此外,由于 Rhythm Signature 的分布与音乐 / 舞蹈的风格存在明显的相关性(如国风舞蹈的 Rhythm Signature 中会包含更多的 0,街舞的 Rhythm Signature 中则会包含更多的半拍),因此音乐 / 舞蹈的 Style Embedding 信息也被送入了 Rhythm 分支,跟 Rhythm 特征拼接在一起,送入权重共享的三个全连接分类层。
从前面的介绍中可以发现,ChoreoMaster 没有像很多其他基于深度学习的音乐舞蹈合成框架一样,用一个统一的网络来构建音乐 - 舞蹈之间的跨模态关联,而是采用了一种解耦的方式来处理 Style 和 Rhythm。站在实用的角度来看,ChoreoMaster 的这种设计有两方面考虑:一方面,将 Style 和 Rhythm 解耦,可以提升后续合成算法的可解释性和可控性;另一方面,独立的 Rhythm 分支也可以更好地融入乐理先验,提升网络的可用性和泛化性。
面向编舞的舞蹈动作合成
为了保证系统的鲁棒性、可解释性和可控性,ChoreoMaster 选择了图优化框架来实现舞蹈动作的合成。与之前的图优化方案不同的是,ChoreoMaster 在音乐舞蹈合成场景下,对「基于图的动作合成(graph-based motion synthesis)」框架做了充分的扩展,将风格、节奏和结构方面的编舞学规律融入到了动作图构建和图优化目标函数中。前文已经简单介绍过基于图优化的舞蹈合成思路,这里重点列举一下 ChoreoMaster 的不同点。
在动作图构建方面:
(1)对舞蹈动作以小节(meter)为单位进行切分,而不是以节拍(beat)为单位进行切分,也就是说动作图的每个节点对应了一个完整的舞蹈动作小节,这样可以保证合成的舞蹈动作中每个小节内部组织方式的合理性;
(2)在计算动作图节点之间的过渡代价时,除了传统的连续性代价,还引入了以 32 维 Style Embedding 进行度量的风格兼容性代价,这样可以有效避免合成的舞蹈动作中出现突兀的风格跳变。如下图中展示的一样,如果只有动作连续性的代价,可爱风动作很容易过渡到性感风或炫酷风动作;
(3)采用了一些数据增广手段,对动作图的节点数进行扩充,扩充方式包括左右镜像(下图左),上下半身融合(下图右)和小节重组。其中,小节重组指的是从「1234」和「abcd」两个小节,生成两个新的小节「12cd」和「ab34」,前提是「1234」和「abcd」的 Rhythm Signature 一致、Style Embedding 非常接近,并且「12」和「cd」、「ab」和「34」可以平滑地拼接在一起。上下半身融合和小节重组生成的新数据,全部都进行了人工校验。
在优化目标方面:
- 以 Style Embedding 和 Rhythm Signature 之间的距离来度量音乐和舞蹈小节之间的匹配度,即 HMM(隐马尔可夫模型)中的 data term;
- 以动作图边上保存的过渡代价来定义 HMM 的 transition term;
- 音乐和舞蹈的结构一致性规律则被转化成了重复(repeat)和镜像(mirror)两种约束,并松弛为惩罚项融入了 HMM 的目标函数中。两种约束都只会发生在内容非常相似的音乐小节之间。当检测到两个音乐小节内容一致时,如果这两个小节属于不同的音乐章节(也叫乐句,phrase),则这两个小节对应的舞蹈动作应该是重复的,如重复的主歌、副歌对应的动作也是重复的;如果这两个小节属于相同的音乐章节,则这两个小节对应的舞蹈动作应该是互相镜像的,如左手一个慢动作、右手一个慢动作。
最后,通过三组对比实验来直观感受一下风格、节奏和结构这三条编舞规律对合成结果的影响。
更多实现细节和结果展示请参见项目主页:https://netease-gameai.github.io/ChoreoMaster/