Bailando 音乐生成舞蹈网络学习

2024-08-23 16:44

本文主要是介绍Bailando 音乐生成舞蹈网络学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、代码/论文

二、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、实验

这篇关于Bailando 音乐生成舞蹈网络学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099937

相关文章

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

详解Java中如何使用JFreeChart生成甘特图

《详解Java中如何使用JFreeChart生成甘特图》甘特图是一种流行的项目管理工具,用于显示项目的进度和任务分配,在Java开发中,JFreeChart是一个强大的开源图表库,能够生成各种类型的图... 目录引言一、JFreeChart简介二、准备工作三、创建甘特图1. 定义数据集2. 创建甘特图3.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06