论文链接:https://arxiv.org/pdf/2502.17414
亮点直击
一种基于Transformer-Diffusion的新型音乐到舞蹈人体图像动画方法,在运动多样性、表现力、音乐对齐和视频质量方面达到了最先进的性能。
一种跨模态Transformer模型,通过使用带有关键点置信度的全身2D人体姿态的多尺度tokenization方案,捕捉与音乐特征同步的长距离舞蹈动作。
一种基于扩散的人体图像动画模型,能够解释时间姿态tokens并将其转化为一致的高分辨率视频输出。
展示了引人入胜的零样本音乐驱动人体图像动画,以及具有特色的编舞生成。
解决的问题
-
生成平滑、多样的全身舞蹈动作:传统方法主要生成3D人体动作,受限于数据集多样性和3D姿态估计的准确性,难以捕捉到与音乐节奏复杂同步的细腻动作。
-
将生成的动作转化为高质量视频:需要将生成的身体动作转化为高保真视频,保持与参考图像的视觉一致性,并确保时间上的平滑性。
提出的方案
-
X-Dancer框架:提出了一种新颖的零样本音乐驱动图像动画pipeline,能够从单张静态图像生成多样且长距离的逼真人体舞蹈视频。
-
统一Transformer-Diffusion框架:结合自回归Transformer模型和扩散模型,前者生成与音乐同步的2D身体、头部和手部姿态的扩展tokens序列,后者生成连贯且逼真的舞蹈视频帧。
应用的技术
-
自回归Transformer模型:用于生成与音乐同步的舞蹈姿态tokens序列,结合全局注意力机制捕捉音乐风格和先前的运动上下文。
-
扩散模型:通过AdaIN(自适应实例归一化)将生成的姿态tokens动画化参考图像,形成完全可微分的端到端框架。
-
多部分tokenization方案:对每帧2D全身姿态进行多部分tokenization,结合关键点置信度捕捉多尺度人体动作。
-
跨模态Transformer:训练一个跨模态Transformer,自回归预测未来N帧的姿态tokens,与每帧音乐特征配对。
达到的效果
-
多样性和表现力:X-Dancer能够生成多样且具有表现力的舞蹈视频,显著优于现有方法在多样性、表现力和逼真度方面的表现。
-
高分辨率和逼真视频:通过扩散模型生成高分辨率、逼真的视频,保持与参考图像的视觉一致性和时间平滑性。
-
可扩展性和定制能力:展示了在不同模型和数据规模上的可扩展性,并能够微调到特定的编舞。
方法
给定一张肖像作为参考图像 和一个表示为 的音乐序列,本文的目标是生成一系列舞蹈帧 ,其中 表示帧索引。生成的序列 旨在保持 中描绘的外观和背景上下文,同时呈现与提供的音乐节奏和节拍相协调的表现性舞蹈动作。如下图2所示,本文的模型分为两个阶段进行训练:基于Transformer的2D人体舞蹈动作生成和基于扩散的视频合成。
数据表示
生成视觉表示:为了生成人体舞蹈视频,采用隐空间扩散模型(Latent Diffusion Models),在图像隐空间中合成样本,并通过预训练的图像自动编码器实现。在训练过程中,图像的潜在表示会逐渐被高斯噪声 破坏,遵循去噪扩散概率模型(DDPM)框架。然后,训练一个基于UNet的去噪框架,增强空间和时间注意力块,以学习反向去噪过程。
在训练中,对视频进行以人为中心的裁剪,生成统一分辨率为896×512的图像,涵盖半身到全身的舞蹈。首先建立音乐与人体舞蹈动作之间的关联,而不是直接在音乐条件下捕捉复杂的像素级运动,从而指导最终的视觉合成。
运动建模:与之前生成3D空间中人体动作的方法不同,将多样化的舞蹈动作表示为2D姿态序列。与3D对应物相比,2D人体舞蹈动作可以从大量的单目视频中广泛获取,无需复杂的多视角捕捉设置或劳动密集型的3D动画。此外,2D姿态的检测显著更可靠和鲁棒。为了增强真实感和运动表现力,不仅建模大范围的身体关节运动,还建模更精细的细节,如头部运动和手势,捕捉运动中的细微差别。本文将关键点检测置信度纳入姿态表示中,使模型能够处理运动模糊和遮挡。因此,每帧全身姿态由 J 个关节表示,记为 ,其中最后一个维度编码关键点置信度。
音乐嵌入:受[37]启发,利用预训练的Jukebox模型提取丰富的音乐特征,并通过音频处理工具Librosa使用独热编码(one-hot encoding)补充节奏信息。我们将这些提取的嵌入(记为 表示Jukebox特征, 表示Librosa特征)重新采样并与视频帧率同步,确保音乐和视觉元素之间的每帧对齐。
基于Transformer的音乐到舞蹈动作生成
给定一组单目、单人、音乐同步的舞蹈视频及其配对的2D全身姿态检测数据,目标是建模骨骼舞蹈动作与音乐特征之间复杂且非线性的关联。为此,首先引入了一种组合式的、置信度感知的VQ-VAE(向量量化变分自编码器),以捕捉不同身体部位的多样化且细腻的人体舞蹈姿态。接着,利用类似GPT的Transformer自回归地预测未来的姿态tokens,建模tokens空间中的时间运动过渡,并将其与同步的音乐嵌入对齐。
组合式置信度感知人体姿态tokenization:本文的方法基于标准的VQ-VAE框架,并以自监督的方式进行训练。给定带有相关关键点置信度的全身2D姿态 ,一个1D卷积编码器将 映射为潜在姿态嵌入 ,然后通过映射到可学习codebook中的最近表示 进行量化,最后解码器 从 重建姿态 。然而,正如先前的研究[32, 41, 45]所指出的,空间关键点之间的依赖关系复杂,普通的VQ-VAE通常难以捕捉细微的姿态细节,例如手指运动和头部倾斜,这是由于量化过程中的信息丢失以及不同身体部位姿态变化的多频特性。
为了提高表现力覆盖范围,训练独立的2D姿态编码器 ,并学习 个独立的codebook ,分别对应上半身、下半身、左手、右手和头部,使模型能够在不同频率水平上对2D全身姿态变化进行空间分解。通过这种方式划分姿态,不同身体部位的码可以灵活组合,从而增强每个独立codebook中表示的表现力范围。为了捕捉部位间的空间相关性并确保跨身体部位的信息流动,我们将量化后的姿态潜在表示连接起来,并输入到一个共享的解码器中。然后,通过单独投影头将生成的嵌入映射到重建的关键点坐标,从而实现联合重建,同时保留细腻的部位特定细节。
使用以下损失函数同时训练编码器、解码器和组合codebook:
其中 是停止梯度操作,第二项是权衡参数为 的承诺损失。使用指数移动平均(EMA)来更新codebook向量,并移除嵌入损失 以实现更稳定的训练。
跨条件自回归运动建模:在训练组合式量化多部位codebook后,训练视频中检测到的2D人体姿态可以通过编码和量化表示为codebooktokens序列。每个检测到的姿态被映射为一系列对应的codebook索引,结构化为独热向量,表示每个元素的最近codebook条目。将其表示为 ,其中 是每帧中身体部位 的tokens数量。
基于这种量化运动表示,设计了一个时间自回归模型,以预测每个身体部位可能后续姿态的多项分布,条件为输入的音乐嵌入 和 以及先前的运动tokens。本文的运动生成Transformer通过两种方式以音乐输入为条件。首先,将Jukebox和Librosa音乐嵌入组合为起始tokens,作为全局音乐上下文(如风格和流派),为整个运动序列生成提供信息。其次,受[32]启发,我们将逐帧投影的音乐嵌入与相应的运动tokens连接起来,作为Transformer模型的输入,确保运动与音乐特征之间的精确同步。这种双重条件使本文的模型能够生成全局一致且局部同步的舞蹈动作。
在自回归模型训练中使用 帧。为了处理具有一致运动风格和平滑过渡的扩展运动序列生成,还将跨段运动上下文纳入Transformer模型。具体来说,从先前的运动段中均匀采样8帧作为运动上下文,并将其附加在全局音乐上下文输入之后。将组合上下文表示为 。
由于我们独立建模身体部位,保持组装后的全身姿态的一致性对于避免异步运动(例如上半身和下半身朝不同方向移动)至关重要。为了解决这个问题,利用多部位运动之间的互信息,设计了跨身体部位的交叉条件模型。具体来说,使用GPT模型估计 的联合分布,如下所示:
本文通过两种方式构建身体部位之间的交叉条件:(1) 当前运动tokens以所有身体部位的所有先前运动信息为条件,确保部位间的时间一致性;(2) 通过将身体部位按上半身、下半身、头部和手部排序,我们建立了从主要部位(上半身/下半身)到更精细的高频运动(头部和手部)的层次依赖关系。由于每个身体部位的姿态由少量tokens表示,我们通过实验观察到,因果注意力足以建模每个部位内的下一个tokens分布。这种建模策略保持了每个身体部位的整体运动一致性,生成具有表现力和合理性的舞蹈动作。
本文的GPT模型通过监督训练优化,使用下一个tokens概率的交叉熵损失。值得注意的是,由于我们的姿态tokenization包含相关的关键点置信度,Transformer还学会了建模置信度的时间变化(例如由运动模糊和遮挡引起的),从而能够捕捉视频中观察到的更真实的运动分布。
基于扩散的舞蹈视频合成
利用本文训练的Transformer模型生成的运动tokens序列,采用扩散模型来合成高分辨率、逼真的人体舞蹈视频,条件为生成的运动和给定的参考图像。为此,利用预训练的T2I扩散主干,并加入额外的时间模块以提高跨帧一致性并确保时间平滑性。为了传递参考图像的上下文,一个参考网络(作为主干UNet的可训练副本)提取身份外观和背景的参考特征,这些特征由主干UNet内的自注意力机制交叉查询。运动控制通过一个附加模块实现,通常配置为ControlNet或轻量级PoseGuider,将运动条件转换为2D空间引导,添加到UNet特征中。
为了将生成的运动tokens纳入人体图像动画,一种方法是利用训练好的VQ-VAE解码器 将姿态tokens解码为关键点坐标,然后可视化为2D骨架图以进行运动条件化。这些骨架图可以通过PoseGuider模块为最终的扩散合成提供运动指导。虽然这种方法在一定程度上有效,但由于骨架图的可视化引入了不可微分的过程,阻碍了端到端训练,并通常导致关键点置信度信息的丢失。此外,由于时间模块是在真实视频数据上训练的,其中姿态序列通常是平滑的,它可能在推理时难以处理由Transformer模型生成的抖动或不一致的运动。
本文引入了一种可训练的运动解码器,以隐式且直接地将1D姿态tokens转换为2D空间引导,而不是将运动tokens显式转换为2D骨架图作为姿态引导条件。该解码器从可学习的2D特征图开始,通过AdaIN层注入包含关键点置信度的1D姿态tokens序列,逐步将该特征图上采样为与去噪UNet特征分辨率对齐的多尺度特征图。运动解码器与时间模块一起在16帧序列窗口内训练,有效地将tokens序列解码为连续的姿态引导,整合了相邻帧的时间上下文。此外,通过在训练中引入参考图像上下文,我们通过实验观察到,与基于骨架的姿态引导器相比,合成的姿态引导保留了最少的身份和身体形状信息,使生成的运动tokens能够无缝适应具有不同身体形状和外观的角色。
实验
实现细节
数据集:本文的模型在一个精心策划的视觉-音频数据集上训练,该数据集包含107,546段单目录制的人体舞蹈表演视频,涵盖室内和室外场景,平均剪辑时长为30秒。每段视频被裁剪为896×512分辨率,并以30帧每秒(fps)重新采样,涵盖了从半身到全身的各种舞蹈风格,展示了不同身体形状和外观的个体。
训练:本文的完整流程分为三个阶段进行训练。首先,训练一个多部位姿态VQ-VAE,将60个关节坐标(包含关键点置信度分数)编码并量化为5个部位的姿态tokens。每个身体部位的姿态使用6个tokens,每个token对应一个包含512个条目的6维嵌入codebook。该VQ-VAE训练了40,000步,批量大小为2048,学习率为2×10⁻⁴。接下来,训练一个自回归模型用于姿态tokens预测,训练300,000步,使用预训练的GPT-2模型权重初始化,批量大小为24,学习率为1×10⁻⁴。该模型使用64帧的姿态序列进行训练,上下文窗口总共有2224个tokens,从而在推理时通过滑动片段生成扩展的舞蹈动作。在最后的扩散阶段,我们使用视频中随机选择的两帧微调去噪UNet和ReferenceNet,然后联合训练运动引导解码器和时间模块,使用连续16帧的扩散损失。扩散阶段训练了90,000步,学习率为1×10⁻⁵,批量大小为16。所有阶段均在8块A100 GPU上使用AdamW优化器进行训练。
推理:在推理时,从参考图像姿态编码的姿态tokens开始自回归舞蹈动作生成,保持与指定身体形状一致的骨架一致性。扩展的舞蹈序列以64帧的滑动片段生成,重叠12帧,同时从先前生成的运动中均匀采样8帧作为全局运动上下文。使用完整的生成姿态tokens序列,同时合成所有视频帧,并应用提示传播以提高时间平滑性。
评估与比较
据我们所知,目前没有现成的方法可以从单张人体图像生成音乐驱动的2D视频。为了进行基线比较,调整并组合了现有模型以创建两个基线。首先,调整了基于音频驱动的扩散肖像动画模型Hallo,通过用我们的音乐嵌入替换其音频特征,并通过交叉注意力模块为人体图像生成动画。对于第二个基线,利用3D音乐到舞蹈生成模型(如Bailando和EDGE)进行运动合成,将其输出投影为2D骨架图,然后输入到带有姿态引导器的扩散模型中以进行受控的图像动画。注意到,在提交时,AIST数据集因维护而不可用,因此无法在与Bailando和EDGE相同的数据集上训练本文的模型。在AIST++的测试集(40个视频)以及我们策划的音乐视频数据集的测试集(230个视频)上对所有模型进行了单独评估。
定量评估 从运动生成和视频合成的质量两方面与基线方法进行了数值比较。计算生成舞蹈动作与真实训练序列之间的Fr ́echet视频距离(FVD),以评估运动保真度。对于运动多样性,计算生成姿态特征的分布范围(DIV),生成的运动应尽量匹配真实分布的分数,而不是最大化其绝对值。为了数值评估音乐与生成舞蹈姿态之间的对齐性,本文遵循[21, 32]的方法,通过计算每个音乐节拍与其最接近的舞蹈节拍之间的平均时间距离来测量节拍对齐分数(BAS)。这些评估在2D姿态空间中进行,将Bailando和EDGE的3D骨架运动投影到2D,并从重新训练的Hallo模型中检测合成视频的姿态。如表1所示,本文的方法在运动保真度(FVD)方面优于所有基线方法,同时在音乐节拍对齐(BAS)和多样性(DIV)方面达到第二好的成绩。值得注意的是,EDGE是在专业舞者的序列上训练的,而我们的数据集包含日常个体的视频,这反映在真实视频的节拍对齐分数中。尽管如此,本文的方法在节拍对齐方面显著优于在AIST++上训练的Bailando和在我们策划的数据集上训练的Hallo。Hallo将运动生成和视频合成耦合在一起,其DIV分数高于X-Dancer,主要是由于其极其嘈杂的视频输出导致姿态投影后的骨架运动抖动和混乱。
为了评估视频合成的保真度,测量了真实舞蹈视频与生成舞蹈视频之间的FVD和FID-VID分数。此外,使用ArcFace分数评估身份保持能力,该分数测量面部身份特征的余弦相似度(ID-SIM)。所有指标均在我们的测试视频数据集上评估。作为额外基线,将EDGE和Bailando中的运动生成器替换为我们训练的Transformer模型,并使用姿态引导器生成动画。如下表2所示,本文的方法在视觉质量和身份保持方面表现最佳,这归因于我们将运动生成和视频合成解耦的设计(与Hallo相比),以及使用隐式运动tokens解码器而非显式姿态引导器。
定性比较 在下图3中展示了本文的方法与基线方法的视觉比较。修改后的Hallo代表了一个端到端的扩散pipeline,直接合成最终视频而无需中间运动生成。然而,它表现出明显的伪影,特别是在大范围关节身体运动中,并且经常无法保持人体关节拓扑结构。Bailando和EDGE在3D空间中生成身体运动,未考虑场景上下文或参考图像中的人体形状。尽管在姿态引导器输入中对骨架对齐进行了后处理,这些方法仍然难以解决显著的身份和形状失真问题,通常会产生与背景场景不自然的交互。此外,它们没有建模头部和手部运动,导致舞蹈动作比X-Dancer更僵硬且表现力不足。
针对特定编舞的微调 虽然本文的方法作为零样本pipeline运行,能够无缝泛化到新的参考图像和音乐输入,但它也可以通过仅使用少量样本舞蹈视频进行微调,以生成特定编舞。这种适应性对于像EDGE和Bailando这样的3D运动生成模型具有挑战性,因为它们需要大量努力来创建3D舞蹈动作。如下图4所示,本文的方法在使用来自不同表演者的仅30个舞蹈视频进行微调后,成功捕捉并模仿了特定的编舞,展示了其在适应特定舞蹈风格方面的效率和多功能性。
消融实验
本文通过从完整训练pipeline中系统地移除各个设计组件来进行消融实验。首先,评估了多部位VQ-VAE在捕捉细腻且富有表现力的人体运动方面的有效性。与单部位全身VQ-VAE相比,本文的方法在每关节的L1重建误差上显著降低(0.5像素 vs. 0.83像素),在手部(0.4像素 vs. 0.64像素)和头部(0.42像素 vs. 0.52像素)方面表现出明显改进。这种改进转化为扩散模型中更优的运动多样性、表现力和控制精度,如补充材料中的定量指标和视觉示例所示。接下来,评估了全局音乐和运动上下文对运动生成的影响。如下表3所示,这两种上下文都有助于生成更一致、合理且与音乐同步的运动。
通过扩展模型参数和数据集规模,进一步分析了2D运动建模和基于Transformer的自回归生成的优势。在所有指标中,观察到随着训练参数从117M(GPT-small)增加到345M(GPT-medium),以及数据规模从10k视频增加到100k视频,性能显著提升,这凸显了单目舞蹈视频数据在我们架构中的可扩展性潜力,并为进一步的性能改进提供了方向。在前面表2中,将基于tokens的运动引导与AdaIN方法与显式解码骨架图的姿态引导器进行了比较。本文的方法由于时间运动上下文的存在,减少了运动抖动并增强了时间一致性,同时展示了更优的身份和身体形状保持能力,如补充视频中所示。
结论
X-Dancer,一种新颖的框架,将自回归Transformer与扩散模型相结合,从单张参考图像生成高质量的音乐驱动人体舞蹈视频。与之前的工作不同,X-Dancer在2D空间中建模和生成舞蹈动作,利用单目舞蹈视频中广泛可访问的2D姿态来捕捉多样化且富有表现力的全身运动。本文的方法在视频质量、运动多样性和表现力方面达到了最先进的水平,为创建生动且与音乐同步的舞蹈视频提供了可扩展且适应性强的解决方案,适用于各种人体形态和风格。
局限性与未来工作:本文的模型仅在从互联网上策划的真实人体日常舞蹈视频上训练,这些视频可能存在噪声,且舞蹈动作可能缺乏专业舞者视频中的精确性。因此,域外的人体图像可能导致渲染伪影,生成的舞蹈动作有时可能与音乐不完全对齐。虽然我们设计了端到端可训练且可扩展的pipeline,但由于内存限制,目前分阶段实现。未来的工作将探索大规模、多机训练,以进一步提高性能和效率。
参考文献
[1] X-Dancer: Expressive Music to Human Dance Video Generation