NTU S-Lab等提出基于GPT的3D舞蹈生成新框架(CVPR 2022 Oral)

2024-01-16 08:50

本文主要是介绍NTU S-Lab等提出基于GPT的3D舞蹈生成新框架(CVPR 2022 Oral),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关注公众号,发现CV技术之美

本篇文章分享 CVPR 2022 Oral 论文『Bailando: 3D Dance Generation by Actor-Critic GPT with Choreographic Memory』,由 NTU S-Lab 等提出基于 GPT 的 3D 舞蹈生成新框架。

详细信息如下:

7ca1665b9feb870da1c0623c0daa37e2.png

  • 论文链接:https://arxiv.org/abs/2203.13055

  • 项目链接:https://github.com/lisiyao21/Bailando

      01      

问题背景

近些年,虚拟主播产业逐渐变得火爆,虚拟人物的表演受到越来越多人的喜爱。驱动3D虚拟人物根据音乐跳舞也成为了非常热门的研究课题。

然而,想要自动化地为一段音乐配舞仍然是个非常困难的任务。其中难点有两个:

第一,舞蹈在空间上有一定规则和范式,并非是所有所有物理上可行的 3D 人体姿势都适用于舞蹈。舞蹈通常有着对身体有更严格要求的姿态标准,并且要具有表现力和感染力。我们可以随意产生一段人体姿态,但如果生成的姿态东倒西歪,就无法达到舞蹈的标准。

第二,生成的舞蹈动作,要在时间上同音乐保持连贯。舞蹈动作应该保持流畅,且能与不同节拍的音乐保持节奏一致。

大多数现有的舞蹈生成研究都试图设计一个巧妙的神经网络,把音乐信号直接映射到高维连续空间中的3D人体关键点序列[1, 2, 3, 4]。但是,此类方法在实践中通常不够稳定,比如经常会出现僵住或轻微的乱晃。这是因为,这些映射的目标空间,没有被显示地约束为符合舞蹈标准的子空间,因此容易回归到不符合舞蹈标准的姿态。

为了达到舞蹈的空间姿态标准,一些研究工作收集了很多真实舞蹈动作的片段,并通过拼接这些片段,编排成新的舞蹈[5]。虽然这种方法可以通过直接操作真实数据保证生成的舞蹈的空间质量,但收集、剪裁这些舞蹈片段需要巨大的人工工作量。更关键的是,因为每一段舞蹈片段的时长、速度以及对应音乐的节奏是固定的,因此,没有办法复用于其他速度和节奏的音乐。比如,对应4/4拍音乐的片段可能无法被用于3/4拍的音乐,每分钟80拍的没法适用于每分钟60拍的。对于不同速度和节奏的音乐,这种方法就很难保证上述的时间一致性。

针对这两个难点,我们提出了一个“两阶段”的编舞框架Bailando。在第一阶段,我们利用量化自编码器(VQ-VAE)将符合空间标准的舞姿编码和量化到一个名为“舞蹈记忆”的编码本中;在第二阶段,我们利用生成预训练Transformer(GPT)将音乐转换为视觉上令人满意的舞蹈。我们还进一步通过引入评论家网络给生成的舞蹈打分,以指导 GPT 编排出与背景音乐节奏具有时间一致性的舞蹈动作。

      02      

提出的方法

2.1 针对舞蹈序列的VQ-VAE和编舞记忆

与之前的方法不同,我们不学习从音频特征到 3D 关键点序列的连续域的直接映射。相反,我们先让神经网络“观看”大量的舞蹈数据,自己从里面“总结”出有意义的舞蹈元素,并且记录下来成为“编舞记忆”。编舞记忆中,每个元素都是从专业舞蹈中提取的符合空间要求的标准舞姿。

具体来说,我们设计了一个针对人体姿态序列的VQ-VAE(Vector Quantized Variational Auto-Encoder)网络,对舞蹈数据的姿态序列进行编码和量化到一个编码本Z中。

d8e9e2d897cae0d240c41d97989b1ff4.png

Z表示VQ-VAE的量化编码本,即“编舞记忆”,其中每一个元素都代表着一个标准的舞姿。为了使舞蹈记忆能涵盖更广泛的舞蹈动作,我们对舞蹈动作的上下身用独立的VQ-VAE进行学习,分别得到上下半身的编码本,并对上下半身进行组合式的拼接。我们还单独学习一个网络分支Dv,用于预测人体关键点的整体位移。 

训练VQ-VAE的损失函数分为:

9ec21959f0276a84ea98f27a331e8996.png

其中,重构函数不仅考虑到对关键点位置P的重构,还考虑到对一阶(速度)和二阶(加速度)导数的重构。

d3096cbcdd4308d31feaeca7107d2a65.png

2.2 动作GPT (motion GPT)

在我们从舞蹈数据中总结出了标准的舞姿库“编舞记忆”后,编舞的任务就变成了对音乐的每一时刻,选择一个合适的舞姿与之对应。这一步我们用到了GPT(Generative Pretrained Transformer)。

4bb0583c59c174d9764ff635af561ffb.png

对于每一时刻t,GPT根据0到t-1时刻的音乐(m)、上半身(u)和下半身(l)信息来预测t时刻的上、下半身舞姿,并对每一个存在编舞记忆中的舞姿计算一个概率。而GPT的学习则是通过对预测的概率与真实动作之间的Cross-Entropy损失函数进行优化。

2.3 “演员-评论家”(Actor-Critic)学习

GPT的训练是直接而有效的。然而,这个框架有一个弊端,即很难向损失函数中加入一些人工定义的正则化项(比如希望让生成的舞蹈更加符合音乐节拍),因为GPT的学习的对象是舞姿在编舞记忆中的编号。为了解决这个问题,我们采用了一种名为“演员-评论家”的强化学习框架。

具体来说,我们把GPT前3层视作一个表示当前状态的“状态网络”,后几层视作一个产生“动作”的“演员网络”,并单独引入一个新的GPT分支作为“评论家网络”。评论家网络的打分和人工设计的奖励函数R,将决定GPT生成的舞蹈是好的(应该鼓励),还是不好的(应该避免),并通过对相应损失函数的优化提升GPT的效果。

36db4d43e02dbda9a7a18ecc1723bcd8.png

      03      

实验结果

3.1 对比实验

我们在AIST++ 数据集上分别对比了Bailando和其他模型的效果,如下表所示,可以看到Bailando相比于已有的方法的有很大优势。

236a8f63f906832d3eefc8e469a5d464.png

以下是一些对比实验的视频:

3.2 消融实验

为了验证每个模块的效果,我们进行了各种消融实验,实验结果也验证了我们提出的每个模块的有效性:

f37591cc17838cfe4615092bbcb453e6.png

以下是消融实验的对比视频:

3.3 为现实音乐伴舞

AIST++的音乐和现实中的音乐有一定差异(比如,没有歌词),但我们依然可以产生还不错的结果:

      04      

总结

在本文中,我们提出了一个名新的3D舞蹈生成框架Bailando,来解决舞蹈生成任务中的空间和时间挑战。该框架由一个通过编码和量化舞蹈动作来解决空间约束的“编舞记忆”,和一个让合成的舞蹈与音乐的保持时间一致性的“演员-评论家” GPT 组成。我们提出的方法不仅在标准数据集AIST++上获得了最好的定量结果,并且在对用户的主观调研中获得了相较其他方法更高的评价。

Bailando的相关代码目前已经开源,欢迎各位同学使用和交流。

  • 论文链接:https://arxiv.org/abs/2203.13055

  • 项目链接:https://github.com/lisiyao21/Bailando

MMLab@NTU

https://www.mmlab-ntu.com/

参考文献

[1] Jiaman Li, Yihang Yin, Hang Chu, Yi Zhou, Tingwu Wang, Sanja Fidler, and Hao Li. Learning to generate diverse dance motions with transformer. arXiv, abs/2008.08171, 2020.

[2] Zijie Ye, Haozhe Wu, Jia Jia, Yaohua Bu, Wenting Chen, Fanbo Meng, and Yanfeng Wang. Choreonet: Towards music to dance synthesis with choreographic action unit. ACM MM, 2020.

[3] Ruozi Huang, Huang Hu, Wei Wu, Kei Sawada, and Mi Zhang. Dance revolution: Long sequence dance generation with music via curriculum learning. ICLR, 2020.

[4] Ruilong Li, Shan Yang, D A Ross, and Angjoo Kanazawa. Learn to dance with aist++: Music conditioned 3d dance generation. ICCV, 2021

[5] Chen Kang, Zhipeng Tan, Jin Lei, Song-Hai Zhang, Yuan-Chen Guo, Weidong Zhang, and Shi-Min Hu. Choreomaster: Choreography-oriented music-driven dance synthesis. In SIGGRAPH, 2021

作者信息

李思尧 | 南洋理工大学 S-Lab 一年级博士生,导师是Chen Change Loy副教授。以一作身份发表3篇顶会论文,曾连续获得ICCV 2019、ECCV 2020 AIM视频插帧赛道冠军。目前主要研究兴趣为内容生成。

7db22ef69fd95d056a283a4b0fc4eabe.png

END

加入「姿态估计交流群👇备注:pose

ae07475593fa94e97e93de322c33870a.png

这篇关于NTU S-Lab等提出基于GPT的3D舞蹈生成新框架(CVPR 2022 Oral)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

hdu 1102 uva 10397(最小生成树prim)

hdu 1102: 题意: 给一个邻接矩阵,给一些村庄间已经修的路,问最小生成树。 解析: 把已经修的路的权值改为0,套个prim()。 注意prim 最外层循坏为n-1。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstri