本文首发于:行者AI
随着二次元文化的倒退,虚构偶像越发炽热。
虚构偶像技术次要蕴含歌唱合成和舞蹈生成,即能唱和能跳。
本文针对舞蹈生成,抉择发表在ICLR2021的《Dance Revolution: Long Sequence Dance Generation with Music via Curriculum Learning》予以介绍,该论文由复旦大学、微软、美团和Rinna AI单干实现。
1. 舞蹈生成
舞蹈生成(Dance Generation),输出一段音乐序列(往往是音频特色),失去一段同样时长有意义的动作序列,即给音乐配舞蹈。上面将简略介绍音频特色和动作序列。
1.1 音频特色
音频的数据文件,由巨量的采样点组成。1秒钟音频能够达到上万个采样点,给模型训练带来微小的艰难。在理论应用中,音频个别不作为间接的输入输出,而是取音频的特色作为输入输出。
音频的常见特色有:
MFCC
MFCC delta
constant-Q chromagram
tempogram
在理论应用中,不须要具体理解上述音频特色,只需晓得上述音频特色将音频的工夫序列长度放大了近百倍。
1.2 动作序列
图1. 动作序列提取图
动作序列是指姿势预计(pose estimation)生成的对于动作的时序数据,每个工夫步的数据由关键点组成,用来表征人的肢体动作。如图1,纯色的点组成了以后动作的关键点,其连线能很好表征以后人物的肢体静止。(详情参见https://github.com/CMU-Percep...
动作序列能够只提取人物肢体静止,排除人物、背景等烦扰音素,提取舞蹈动作,因此用动作序列示意舞蹈。
舞蹈是一种节奏很强的动作,除了上述常见特色,作者将鼓点的独热编码也视作音频特色,用于模型训练。
1.3 舞蹈生成问题定义
在理解了音频特色和动作序列后,这里给出舞蹈生成问题的定义。
对于给定的音乐-舞蹈数据集D,D由成对的音乐和舞蹈动作序列片段组成,音乐和舞蹈动作一一对应,X为音乐片段,Y为舞蹈动作片段。用D训练一个模型g(·),使得g(X)=Y。
这种输出序列输入序列的问题,被定义为序列到序列(Sequence-to-Sequence,简写为seq2seq)。相较于机器翻译序列到序列问题,音乐能够配很多舞蹈,没有唯一性,音乐更像是一种格调(style)。作者从seq2seq问题登程,所做的优化思路也是来自于seq2seq问题。
1.4 背景和动机
通过钻研以后舞蹈生成的办法,作者发现现有的舞蹈生成有两种次要形式:
第一种是拼接办法(将不同舞蹈动作拼接起来)
第二种是自回归模型(如lstm等模型)
第一种办法短少天然度,而第二种会受限于自回归模型的谬误累积,只能生成较短的动作序列,因此作者提出两种办法来解决:
课程学习
部分注意力
这两种办法将在模型构造中进行介绍。
2. 模型构造
图2. 舞蹈生成模型结构图
如图2,该模型输出音频特色通过encoder和decoder失去动作序列。
上面将别离介绍encoder以及decoder。
2.1 encoder
encoder同一般的seq2seq问题,采纳了相似transformer的架构,由N个transformer block组成,每个transformer block由multi-head self-attention和feed forward neural network串联组成。
部分注意力
音频是一个工夫信号序列,相较于文本序列,音频的工夫步更长,一句话最多上百字,但一个音频能够有百万个采样点,即便做了特征提取,音频的长度也在上千个左右。而transformer的multi-head self-attention模块计算复杂度为序列长度的平方,序列长度越长,计算所需资源越多。另一方面,音频满足短时不变性,对有意义的音频进行任意截取,截取的片段依然有意义。因此,作者提出将全连贯的self-attention变成部分的(local),如图2左上角,对每一个工夫步的attention设置窗口大小,让模型只需计算前后k/2的数据。
图3. 部分注意力公式
图3即为local multi-head self-attention的实现,相较于multi-head self-attention,local的实现只是在求和时退出范畴限度,理论实现时只须要乘一个mask矩阵即可。
2.2 decoder
图4. decoder公式
图4为decoder的实现。decoder的backbone是一般的RNN网络,将上一个工夫步的信息hi-1以及上一个RNN cell的隐状态yi-1作为输出,失去以后的RNN cell的隐状态hi,与encoder输入的以后工夫步的隐状态zi拼接通过线性层失去最终输入yi。不同于机器翻译等自然语言问题,做推理时舞蹈生成不须要对以后工夫步进行采样。
课程学习
课程式学习(curriculum learning)认为模型该当像人一样,学习该当从易到难。对于分类问题,课程学习该当先学习简略的样本,而后学习艰难的样本;对于seq2seq问题,课程学习该当先学习短的序列,每次只去预测以后步的下一步(teach forceing),在模型训练到肯定水平后,逐渐开始减少后续预测的序列长度,比方减少到预测以后步的后两个工夫步。paper作者对课程学习在舞蹈生成问题上做了改良,这里不作开展。
3. 评估规范
这篇paper提出的模型相较简略,亮点在于评估的标注规范。
舞蹈生成相似语音合成,罕用的评估办法分为两类:主观评估和主观评估。
主观评估从测试数据角度,评估生成的舞蹈的真实性、格调一致性以及与配乐的匹配。
3.1 Fréchet Inception Distance
图5. FID计算公式
图5是Fréchet Inception Distance的计算公式。Fréchet Inception Distance简称FID,用于计算两个散布的类似度。原理是,假如两个高斯分布的矩阵,其均值和协方差越相近,则这两个矩阵越类似。如上图公式,是均值,∑是协方差,Tr 示意矩阵对角线上元素的总和。
在舞蹈生成中,FID用于和实在舞蹈整体的类似水平,即舞蹈的真实性。
3.2 ACC
用来评估舞蹈生成与音乐风格的统一水平。训练一个MLP(多层感知机)来对实在舞蹈进行分类(例如芭蕾、嘻哈、风行,类别来自于音乐分类),用MLP对生成的舞蹈进行分类,并评估是否与音乐的类别统一。
3.3 Beat Coverage
节奏覆盖度(Beat Coverage)为舞蹈动作节奏总数与音乐节奏总数的比率。节奏覆盖率越高,舞蹈的节奏型越强。
3.4 Beat Hit Rate
节奏命中率(Beat Hit Rate)为所有静止节奏中,命中音乐节奏数量占动作节奏总数的比率。命中率越高,舞蹈动作越符合音乐。
3.5 Diversity
多样性(Diversity ),在测试集上依据音乐生成一些舞蹈,评估这些舞蹈整体的多样性。
3.6 Multimodality
多态性(Multimodality),依据单个音乐生成多个舞蹈,评估这些舞蹈整体的多样性。
上述很多评估规范来自《Dancing to Music Neural Information Processing Systems》,如果想全面理解舞蹈生成畛域,笔者倡议浏览这篇paper。
3.7 主观评估规范
3.1至3.6介绍的规范均为主观评估规范。舞蹈好坏的很多方面是难以量化的,须要人工评估,即主观评估。主观评估:找多位业余舞者,播放提出模型生成的舞蹈、比照模型生成的舞蹈以及实在的舞蹈,并问如下三个问题,舞者进行打分。
- 真实性:抛开音乐而言,哪个舞蹈更实在?
- 丝滑性:抛开音乐而言,哪个舞蹈更丝滑?
- 匹配性:就格调而言,哪个舞蹈更与音乐相匹配?
组织者对每个音频三项指标的打分进行均匀,失去最终评估后果。
4. 总结
这篇论文提出了一个SOTA的舞蹈生成模型,生成的舞蹈相较于前人钻研,靠近真人舞蹈。论文作者给出了示例视频:https://www.youtube.com/watch...
从这个视频咱们也能看到目前舞蹈生成的有余:
- 生成的舞蹈可能违反人类生理构造:从视频中能够看到很多扭曲的手臂,是正常人无奈做到的动作。
- 舞蹈生成帧率太低:本篇论文模型帧率为15 FPS ,远低于视频失常的帧率。
- 舞蹈生成没有实时性:因为模型生成速度慢,达不到实时生成的速度要求;模型多采纳seq2seq架构,先对音乐整体编码,再逐渐解码,没有思考到实时性的需要。
- 生成品质有待晋升:即便是业余的人,在看这篇论文的示例视频时,仍能看到很多不谐和的肢体动作。
舞蹈生成从去年开始进入热潮,生成的舞蹈品质始终在进步,近期谷歌公布了《Learn to Dance with AIST++》,慧夜科技公布了《DanceNet3D:DanceNet3D: Music Based Dance Generation with Parametric Motion Transformer》,舞蹈生成作为实现虚构偶像的重要技术,备受器重。
通过关注以后舞蹈生成的钻研,笔者也发现了舞蹈生成的热点:
- 更优质的数据集
- 3D舞蹈生成
- transformer base模型构造
- 更高帧率
舞蹈生成是行者AI虚构偶像钻研的一部分。笔者和其余研究者们在一直摸索新的办法和评估规范,欢送宽广同行交换与单干,以及退出。