二、Bailando: 3D Dance Generation by Actor-Critic GPTwith Choreographic Memory
Bailando :演员评论家GPT与编舞记忆的3D舞蹈生成
三、论文学习:
1、现阶段音乐生成舞蹈的挑战:现有CNN等直接音乐特征映射舞蹈特征的方法无法给舞蹈施加空间约束。裁剪、拼接舞蹈动作块方法,很难对齐节奏和节拍。
1)空间约束:由音乐生成的舞蹈根据编舞规范需要施加空间约束,并非所有物理上可行的3D人体姿势都适用于舞蹈。舞蹈式姿态的子空间对身体有更严格的位置标准,并根据编舞规范选择性地具有视觉表现力和情感感染力。
2)与音乐的时间一致性:生成的舞蹈需要与不同的音乐流派保持时间上的一致性,生成的舞蹈序列在各种类型的节拍上应与音乐节奏保持一致,同时保持整个动作流畅。
2、本文方法解决上述问题:
1)空间约束:通过总结舞蹈风格子空间动作的基本和可重用部分,本文建立了一个量化舞蹈单元的有限字典,及舞蹈记忆,本文使用 VQ-VAE 无监督的方式将3D关节序列编码和量化到代码本中,,其中每个学习到的代码都显示为代表独特的舞蹈姿势。为了进一步扩大编排记忆可以表示的范围,将3D姿势划分为组成的上半身和下半身,并分别学习半身体的vq-vae,这样任何一段舞蹈都可以表示为成对的姿势代码序列。
2)时间一致性:为了生成时间和谐的舞蹈序列,引入了一种名为运动GPT的类似GPT的网络,将音乐和源姿态代码转换为目标的未来姿态代码。由于三维姿态在编舞记忆中被划分为组合半体,我们提出了交叉条件因果注意层来增强运动GPT,以保持生成体的连贯性。此外,为了实现不同运动节奏和音乐节拍之间的精确时间同步,我们应用了一种策略强化学习方案,通过演actor-critic GPT 微调和新设计的节拍对齐奖励函数来进一步提高运动GPT。
3)本文贡献:(1)创建了一个编码记忆网络VQ-VAE,编码和量化舞蹈3d姿势(2)创建了一个结合编舞记忆和交叉条件因果注意的 actor-critic GPT网络
3、本文方法:与其他基于学习的方法不同,我们不会学习从音频特征到 3D 关节序列连续域的直接映射。相反,我们首先将空间标准舞蹈动作编码并量化为有限码本 Z 作为编舞记忆,每个代码 zi 都表示具有上下文语义信息的舞蹈姿势。具体来说,我们分别在上半身和下半身学习 VQ-VAE,并将舞蹈动作表示为一系列组合的上下姿势代码对 p = [pu; pl]。然后,我们引入运动 GPT 将音乐特征和源姿势代码转换为未来的姿势代码。此外,为了实现生成的动作节奏和音乐节拍之间的同步对齐,我们在提出了在动作 GPT 上使用我们新设计的节拍对齐奖励强化学习进行演员评论家学习。生成的姿势代码序列最终由 VQ-VAE 解码器解码并组合成流畅的 3D 舞蹈。
1)舞蹈记忆网络:VQ-VAE 网络修改为3d动作编码量化网络
(1)把动作转为 J×3 3D世界坐标系点位、并分成上下两部分分别做以下步骤
(2)经过 E 进行编码,把帧数×节点上×位置信息(T,J,3)-> e动作特征矩阵 (T,C=512)
(3)经过编码记忆密码本 Choreographic Memory Codebook, 他的作用可以输入 e (T,C)编码成(T,1)维数组,然后把这个一维数组解码成 eq(T,C)矩阵。
(4)通过两个解码器分别解码,Dp解码(T,2 到 J,3)的节点位置数据 P,Dv解吗(T,1,3)的节点位置数据V,最后拼接 [V , 上P ,下P] 成完整 (T,J,3)动作数据
(5)训练时先训练Dp,然后固定Dp参数固定,添加Dv层只预测V进行微调训练
2)交叉条件运动GPT: actor-critic GPT 修改GPT 网络使用编码记忆密码本 Choreographic Memory Codebook 通过把e编码的一维数组数据,去训练预测下一个一维数组数字,组成一串动作数组,通过 Choreographic Memory Codebook解码成 eq ,然后舞蹈记忆网络解码成真正的动作数据
(1)通过舞蹈记忆网络将真实的3d舞蹈动作数据编码成编码记忆密码本的Pup、Plow
(2)将音乐信息和经过特征提取的 P 拼接,然后经过 Transformer 层 fs + fa输出预测未来的姿势数组 aup,alow
(3)通过 Choreographic Memory Codebook解码、通过 舞蹈记忆网络解码成真正的动作数据
3)强化学习:加强舞蹈节拍一致性
(4)增加另一个单独三层Transformers fv 作为 评论家模型,原模型为演员模型
(5)TD-error 得分为 评论家得分 + 身体一致性得分 和 节奏对齐得分(3.3公式没看懂,有大佬看懂这部分可以留个言😄)
4、实验