Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

机器之心编辑部专栏

你能freestyle一段舞蹈吗?DanceNet3D:我可以!

会 freestyle 的AI来了,给定起始动作与音乐,新方法 DanceNet3D 就可以生成一段与音乐合拍且流畅优美的舞蹈。

近来,AI 舞蹈生成技术的擂台大有你方唱罢我登场之势。谷歌团队的 AI Choreographer 刚推出不久,就迎来了强劲的对手——DanceNet3D。

先来看段 Demo :

DanceNet3D 是由来自慧夜科技、北航以及港中文 MMLab 的学者联合推出的高质量三维舞蹈动作生成算法。给定起始动作与一段音乐,该算法可以生成一段与音乐合拍且流畅优美的舞蹈。该算法结合了慧夜科技在动画产业界的技术经验,采用了人体运动的关键动作 - 中间运动参数曲线的表达形式,为运动生成的建模提供了一种全新的思路。相比于其他运动生成方法,该方法的生成效果具有显著优势。

此外,该工作还提出了首个由专业动画师团队打造的高质量舞蹈数据集 PhantomDance。该数据集搜集了 Niconico、YouTube 上的 300 个热门舞蹈,包含宅舞、嘻哈、爵士、Old School 等多种风格,由专业动画团队在职业舞者指导下,历时 18 个月完成。对比目前学术界来自运动捕捉或真人舞蹈视频的三维重建算法,PhantomDance 在音乐匹配程度、动作优雅程度、艺术表现力上都具有绝对优势。目前该团队公开了其中的 100 个舞蹈 - 音乐数据对,这些数据对组成了 PhantomDance100。

  • 论文地址:https://arxiv.org/abs/2103.10206

  • 项目及数据集地址:https://huiye-tech.github.io/project/dancenet3d/

两阶段舞蹈生成框架

由于数据基本都来源于动作捕捉、三维重建,舞蹈合成、乃至更广泛的运动合成研究领域,因此往往会把问题建模成逐帧的骨骼参数(位移、旋转)的输出。然而在实际的 3D 动画产业中,无论是动画制作软件 Maya、Blender,还是游戏引擎 Unity3D、Unreal,角色运动都是用曲线来编辑和表示的。这里的曲线指的是位移的 (t_x, t_y, t_z),旋转的(r_x, r_y, r_z) 等参数中的每一维作为纵轴,以时间为横轴的函数曲线。动画师一般会先制作一系列的关键帧来确定动作的主体形式,然后通过曲线编辑器调节特定参数的曲线形状来完善动作细节。受此启发,DanceNet3D 提出了关键姿势 (key pose) - 中间曲线 (inbetween motion curve) 的两阶段舞蹈生成框架,如下图所示。

每个阶段都采用相似的编码器 - 解码器(encoder-decoder)结构,并使用对抗训练(adversarial training)的训练模式,如下图所示。

其中编码器部分采用常见的 Transformer 模型,而解码器部分则是该研究提出的 MoTrans 模型。MoTrans 是对 NLP 领域传统 Transformer 针对运动合成的精心改造,其核心由运动链网络(Kinematic Chain Networks,图中的 KCN)和可学习局部注意力机制(Learned Local Attention,LLA)构成。接下来我们分别看一下 KCN 和 LLA。

KCN 是一种以 SMPL 模型的 24 个关节点为运算结点的图神经网络(GNN)变体。区别于常规 GNN 的操作,KCN 采用了模拟机器人控制理论中的正向运动学(Forward Kinematics)和反向运动学(Inverse Kinematics)的网络操作方式,通过线性层把结点特征映射到运动学控制空间后,先从根结点向叶结点传播特征参数,并沿路径进行特征融合,然后再自叶结点向根结点做一遍相似操作,如下图所示。

常规 transformer 中的注意力属于全局注意力,即一个 query 对所有的 key 做内积,对所有 value 进行加权求和。然而人体运动是有显著局部性的,一个时刻的姿态和它临近时间内的姿态动作强相关,但是和距离较远的时间几乎没有关系,例如十秒前角色举起了双手,在当前时刻既可能是举起双手,也可能是放下双手,甚至可能处于坐下的状态。根据这个性质,DanceNet3D 在解码器中引入了带有可学习核函数的 LLA 模块,如下图所示。

值得一提的是,由于注意力的输入来自 KCN 的输出,以关节点的形式排布,天然符合原始 transformer 中多头(multi-head)的理念,于是 DanceNet3D 中把每个 KCN 输出的节点作为一个 head,采用线性投影(linear projection)进行并行操作,由于注意力之后的前馈(fead-forward)操作仍然使用 KCN 模型,所以省去了原始多头注意力中最后的 concat 操作和线性操作,在 head 数量相同的情况下减少了计算量。研究者将其称为结构化多头注意力(structured multi-head attention),其将节点作为 head 的定义,相比于原始的多头机制更具物理意义。

实验及结果

该研究首先进行了消融实验,验证了曲线建模、KCN 和 LLA 各自的有效性:

之后该研究在 AIST++ 和 PhantomDance 两个数据集上进行的对比实验表明,DanceNet3D 与包括谷歌的 AI Choreographer 在内的其他工作相比,都具有显著优势。

理论AI舞蹈生成DanceNet3D
1
相关数据
核函数技术

核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量函数。最常应用于SVM支持向量机中

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

对抗训练技术

对抗训练涉及两个模型的联合训练:一个模型是生成器,学习生成假样本,目标是骗过另一个模型;这另一个模型是判别器,通过对比真实数据学习判别生成器生成样本的真伪,目标是不要被骗。一般而言,两者的目标函数是相反的。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

局部注意力机制技术

每生成单个目标词都需要考虑原语句子的所有词在计算上是非常昂贵的,也不是必需的。为了减少这种问题,Luong et al. [20] 提出了一种仅关注固定窗口大小 2D+1 的局部注意力机制

三维重建技术

三维重建是指利用二维投影或影像恢复物体三维信息(形状等)的数学过程和计算机技术。

推荐文章
暂无评论
暂无评论~