当前位置: 首页 > news >正文

CVPR 2022 Oral | Bailando: 基于编舞记忆和Actor-Critic GPT的3D舞蹈生成

目录

测试结果:

02 提出的方法


测试结果:

预测有3个步骤,速度比较慢

02 提出的方法


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

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

编舞记忆中,每个元素都是从专业舞蹈中提取的符合空间要求的标准舞姿。具体来说,我们设计了一个针对人体姿态序列的VQ-VAE(Vector Quantized Variational Auto-Encoder)网络,对舞蹈数据的姿态序列进行编码和量化到一个编码本Z中。

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

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

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

2. 动作GPT (motion GPT)

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

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

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

GPT的训练是直接而有效的。然而,这个框架有一个弊端,即很难向损失函数中加入一些人工定义的正则化项(比如希望让生成的舞蹈更加符合音乐节拍),因为GPT的学习的对象是舞姿在编舞记忆中的编号。

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

03 实验结果

1. 对比实验

相关文章:

  • [论文笔记] Open-sora 2、视频数据集介绍 MSR-VTT
  • Spring AOP基于注解方式实现
  • python中的模块和包
  • 【C++】深度解剖多态
  • 数据结构与算法:链式二叉树
  • c++单例模式和call_once函数
  • 一键部署Tesseract-OCR环境C++版本(Windows)
  • 速盾网络:cdn加速技术和云计算的区别
  • spring三种配置方式总结
  • 笔记本上使用usb蓝牙适配器
  • 软件测试相关内容第三弹--软件测试基础
  • round四舍五入在python2与python3版本间区别
  • ubuntu 20.04 安装 huggingface transformers 环境
  • 从零搭建NodeJS项目(小白教程)
  • 2024年阿里云服务器租用费用一年和包月价格表
  • Android 控件背景颜色处理
  • Consul Config 使用Git做版本控制的实现
  •  D - 粉碎叛乱F - 其他起义
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java面向对象及其三大特征
  • Linux下的乱码问题
  • magento2项目上线注意事项
  • MySQL QA
  • mysql外键的使用
  • PHP面试之三:MySQL数据库
  • Python学习之路16-使用API
  • QQ浏览器x5内核的兼容性问题
  • Redis 懒删除(lazy free)简史
  • Redux系列x:源码分析
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Twitter赢在开放,三年创造奇迹
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 分享一份非常强势的Android面试题
  • 后端_MYSQL
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 如何利用MongoDB打造TOP榜小程序
  • 如何用vue打造一个移动端音乐播放器
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 仓管云——企业云erp功能有哪些?
  • $.ajax()参数及用法
  • (06)金属布线——为半导体注入生命的连接
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计ssm电影分享网站
  • (接口封装)
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .Net 8.0 新的变化
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net打印*三角形
  • .NET连接数据库方式
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @property @synthesize @dynamic 及相关属性作用探究