跳转至

X-Dancer: Expressive Music to Human Dance Video Generation

会议: ICCV 2025
arXiv: 2502.17414
代码: https://zeyuan-chen.com/X-Dancer/ (项目页)
领域: 扩散模型 / 视频生成
关键词: 音乐驱动舞蹈生成, 人体图像动画, 自回归Transformer, 扩散模型, 2D姿态建模

一句话总结

X-Dancer 提出了一个统一的 Transformer-扩散框架,从单张静态图像和音乐输入出发,通过自回归 Transformer 生成与音乐节拍同步的 2D 全身舞蹈姿态 token 序列,再利用扩散模型将这些 token 转化为高保真的舞蹈视频,在多样性、表达力和视频质量上均超越了现有方法。

研究背景与动机

领域现状:音乐驱动的舞蹈生成是一个热门方向,现有方法主要分为两类——基于 3D 骨骼的运动生成(如 Bailando、EDGE)和基于扩散模型的端到端视频合成(如 Hallo)。

现有痛点: - 3D 方法受限于数据集(主要依赖 AIST++ 多视角数据集),舞蹈多样性不足,且仅包含身体姿态不含头部和手部动作 - 从 2D 单目视频恢复 3D 姿态容易引入误差 - 端到端扩散方法(如 Hallo)难以捕捉长程运动和音频上下文,且主要验证于说话人头部动画,是否能处理全身运动尚不确定

核心矛盾:高质量、多样化的舞蹈数据量大但以 2D 单目视频为主,而现有方法要么依赖稀缺的 3D 数据,要么无法有效建模长程音乐-运动对应关系

本文目标:如何利用广泛可获取的 2D 单目舞蹈视频,生成具有表达力且与音乐同步的长程舞蹈动画?

切入角度:放弃 3D 骨骼建模,转而在 2D 空间建模舞蹈动作,利用 VQ-VAE 对全身各部位分别进行 token 化,再通过 GPT 风格 Transformer 自回归生成

核心 idea:将 2D 全身姿态按身体部位分别 token 化并结合关键点置信度,通过交叉条件自回归 Transformer 生成音乐同步的运动序列,再用隐式 motion decoder 引导扩散模型合成视频

方法详解

X-Dancer 的 pipeline 分为两阶段:(1) 基于 Transformer 的音乐到舞蹈运动生成;(2) 基于扩散模型的视频合成。

整体框架

输入为一张参考人像 \(I_R\) 和一段音乐序列 \(M_t\),输出为与音乐节拍同步、外观与参考图一致的舞蹈视频序列 \(I_{M_t}\)。首先通过 VQ-VAE 将 2D 全身姿态编码为离散 token,然后 GPT 模型自回归预测 token 序列,最后扩散模型根据 token 序列和参考图生成视频帧。

关键设计

  1. 组合式置信度感知姿态 Token 化(Compositional Confidence-Aware Pose Tokenization):

    • 功能:将每帧 2D 全身姿态(含 60 个关键点 + 置信度)分为 5 个部位(上半身、下半身、左手、右手、头部),分别编码和量化
    • 核心思路:每个部位使用独立的 1D 卷积编码器 \(E^j\) 和 512 条目的码本 \(Z_q^j\),每个部位用 6 个 token 表示,码本嵌入维度为 6D。量化后将所有部位的 latent 拼接输入共享解码器重建全身姿态
    • 训练损失:\(\mathcal{L}_{VQ} = \sum_{j=1}^{B} \|\hat{p}^j - p^j\|_2 + \beta \sum_{j=1}^{B} \|sg[z_e^j(p)] - z_q^j(p)\|_2\),使用 EMA 更新码本
    • 设计动机:单一 VQ-VAE 难以捕捉手指、头部倾斜等高频细节,分部位建模允许不同频率的动作独立表示,增强表达覆盖范围。置信度信息使模型能处理运动模糊和遮挡
  2. 交叉条件自回归运动建模(Cross-Conditional Autoregressive Motion Modeling):

    • 功能:基于 GPT 模型预测下一帧各部位的 token 分布,同时与音乐特征同步
    • 核心思路:音乐条件以两种方式注入——(1) Jukebox + Librosa 音乐嵌入合并为全局起始 token,提供风格和流派信息;(2) 逐帧音乐嵌入与运动 token 拼接,确保逐帧同步。建模联合分布 \(\phi(C_{1:T}^{1:B}|F_g) = \prod_t \prod_j \prod_k \phi(c_{k,t}^j | ...)\)
    • 跨部位交叉条件:按"上下身→头→手"顺序建立层次依赖,当前 token 以所有先前时刻所有部位 + 当前时刻已生成部位为条件
    • 长程一致性:从上一个片段均匀采样 8 帧作为跨片段运动上下文
    • 设计动机:独立建模各部位可能产生异步动作(如上下身方向不一致),交叉条件利用部位间互信息保持全身协调
  3. 隐式运动 Token 解码器(Implicit Motion Token Decoder):

    • 功能:将 1D 姿态 token 隐式转换为 2D 空间引导,注入扩散 UNet
    • 核心思路:从可学习的 2D 特征图出发,通过 AdaIN 注入 16 帧窗口内的 token 序列(含置信度),逐步上采样到 UNet 各分辨率。与时序模块协同训练
    • 与显式骨架图方案对比:传统做法先解码 token 为关键点坐标再渲染骨架图,但这引入不可微过程,阻碍端到端训练,且丢失置信度信息。隐式方案保留时序上下文,更鲁棒地处理 Transformer 生成的抖动姿态
    • 设计动机:端到端可微训练使运动解码与外观参考联合优化,生成的姿态引导能自适应不同体型

损失函数 / 训练策略

三阶段训练(8×A100 GPU): - 阶段1:VQ-VAE,40k steps,batch=2048,lr=\(2\times10^{-4}\) - 阶段2:自回归 Transformer(GPT-2 初始化),300k steps,batch=24,lr=\(1\times10^{-4}\),64 帧序列,2224-token 上下文窗口 - 阶段3:扩散模型(SD1.5 + ReferenceNet),先训练 2 帧,再训练 16 帧时序,90k steps,lr=\(1\times10^{-5}\)

实验关键数据

主实验

运动生成质量对比(Tab.1):

方法 FVD↓ (AIST/In-House) DIV↑ (AIST/In-House) BAS↑ (AIST/In-House)
Ground Truth 509.58/129.75 34.10/29.67 0.24/0.22
Hallo 548.81/249.12 28.66/28.98 0.16/0.20
Bailando 621.22/534.02 22.34/24.05 0.19/0.19
EDGE 639.46/303.36 24.87/27.29 0.26/0.24
X-Dancer 531.52/238.22 25.61/28.08 0.23/0.21

视频合成质量对比(Tab.2):

方法 FVD↓ FID-VID↓ ID-SIM↑
Hallo 609.08 76.99 0.4870
EDGE+PG 613.81 93.73 0.3034
Our motion+PG 735.05 72.71 0.4894
X-Dancer 507.06 61.94 0.5317

消融实验

Transformer 设计消融(Tab.3):

配置 FVD↓ DIV↑ BAS↑
w/o 全局音乐上下文 265.73 27.04 0.2142
w/o 全局运动上下文 247.54 26.42 0.2154
子数据集+GPT-medium 402.63 24.40 0.2112
子数据集+GPT-small 332.93 24.58 0.2046
X-Dancer (Full) 238.22 28.08 0.2182

VQ-VAE 与视频扩散消融(Tab.4):

配置 Pose L1 (Full/Head/Hands) Video PSNR↑/LPIPS↓/FVD↓
Single-Part VQVAE 0.83/0.64/0.52 -
Multi-Part VQVAE 0.50/0.40/0.42 -
GT Pose + PG - 19.465/0.197/294.52
Multi-Part + PG - 18.836/0.207/384.16
Multi-Part + MD - 19.148/0.207/295.87

关键发现

  • Multi-Part VQ-VAE 大幅降低姿态重建误差:全身 L1 从 0.83 降至 0.50,头部和手部也有显著改善。定性结果显示单部件方案无法控制髋部摇摆、抬腿和头部倾斜等精细动作
  • 全局音乐/运动上下文均有贡献:去掉它们后 FVD 上升、BAS 下降
  • 模型和数据规模的可扩展性:从 GPT-small 到 GPT-medium,从 10k 到 100k 数据,所有指标均有显著提升
  • 隐式 Motion Decoder 优于显式 Pose Guider:在身份保持(ID-SIM: 0.5317 vs 0.4894)和时序平滑性方面表现更好

亮点与洞察

  • 2D 姿态建模替代 3D 骨骼建模 — 这是一个务实且聪明的选择。2D 姿态检测比 3D 估计更可靠,且 2D 舞蹈视频数据远比 3D 数据丰富,使得模型的多样性和可扩展性大幅提升
  • 置信度感知的 token 化 — 将关键点置信度编码进 token 中,使模型能学习运动模糊和遮挡的时序变化分布,这在以往的运动生成方法中很少见
  • AdaIN 隐式注入运动 token — 避免了骨架图渲染的不可微过程,实现端到端训练,且方法可迁移到其他需要将离散 token 转为空间引导的任务

局限与展望

  • 仅在日常舞蹈视频上训练,缺乏专业舞者数据,导致动作精确度和音乐对齐度有提升空间
  • 对超出训练分布的人像(如卡通风格)可能产生渲染伪影
  • 当前三阶段分别训练(受限于显存),未实现真正的端到端联合训练
  • 无法处理多人场景和复杂交互

相关工作与启发

  • vs Bailando/EDGE: 它们在 3D 空间生成运动,受限于 AIST++ 数据集的有限多样性;X-Dancer 在 2D 空间建模,数据可扩展性远超前者
  • vs Hallo: Hallo 端到端生成但难以处理大幅度关节运动,且时序一致性差(DIV 高但实际是抖动导致的噪声);X-Dancer 解耦了运动生成和视频合成
  • vs DabFusion: DabFusion 探索了音乐条件的图像到视频生成,但 X-Dancer 通过显式的运动 token 中间表征实现了更好的控制

评分

  • 新颖性: ⭐⭐⭐⭐ 2D 全身分部位 token 化 + 置信度感知是新颖贡献,但整体 Transformer+扩散框架并非全新
  • 实验充分度: ⭐⭐⭐⭐ 有详细的定量对比、消融和可扩展性分析,但缺少用户研究数据
  • 写作质量: ⭐⭐⭐⭐ 方法描述清晰,逻辑递进
  • 价值: ⭐⭐⭐⭐ 首个音乐驱动的人体图像动画框架,有实际应用价值

相关论文