关节、相机、开拍!面向任意骨架的3D运动与视频联合生成 Joints, Camera, Action! Co-Generating 3D Motion and Video for Arbitrary Rigs
首个为任意骨架联合生成视频、3D动作并自动配准相机的模型JCA
前置知识
流匹配 (Flow Matching)
一类生成建模训练范式:定义从干净样本 $z_0$ 到噪声 $\epsilon$ 的线性插值路径 $z_s = (1-s)z_0 + s\epsilon$,训练网络预测速度场 $v^\star = \epsilon - z_0$,采样时从纯噪声出发沿学到的速度场积分还原样本。它可视为扩散模型的简洁化重构,是当前视频与动作生成的主流目标函数。
本文的运动去噪器与视频分支均以流匹配为目标训练,桥接引导也作用在速度预测上,不懂流匹配无法理解训练与推理流程。
DiT 与视频生成骨干 Wan2.2
DiT 把扩散/流匹配模型的骨干设计成 Transformer,token 是图像 patch 或视频潜帧 patch。本文视频分支采用 Wan2.2 I2V-A14B(14B 参数、含高噪/低噪两个专家去噪器)并用 rank-32 LoRA 适配;运动分支则是一个 10 块、隐藏宽 384 的小型 DiT,每帧每关节一个 token。
桥接层是按块配对插入两个 DiT 的,视频潜帧与运动帧还存在 1:4 的时间对齐关系,这些都建立在 DiT 的块结构之上。
3D 骨架 (rig) 与前向运动学
rig 是绑定到网格上的骨架,形式化为有向树 $G=(\mathcal{J},\mathcal{E})$:关节为节点、骨骼为边。动画由每关节旋转驱动,经前向运动学 (FK) 逐层传播得到各关节世界坐标。本文用 18 通道/关节的冗余表示(6D 旋转、相邻帧相对旋转、位置、位置差分),根关节存世界系,非根关节存父局部旋转与根系位置,解码后再用 IK 拟合固定骨长。
整篇论文的运动表示、图编码器输入、相机拟合用的 3D 关节位置全部围绕 rig 的树结构与 FK 展开。
图注意力网络 GATv2
在图结构上做注意力的网络:每个节点对邻居计算注意力权重并聚合消息,GATv2 改进了原始 GAT 的静态注意力限制。本文用 4 层 GATv2(6 头、宽 384)沿骨骼边双向传播,用两种可学习的边类型嵌入区分父→子与子→父消息,再接一个全自注意力块让远离的关节直接通信。
不同资产的关节数(2 到 256)与连接方式千差万别,GATv2 是让同一个编码器支持任意拓扑的关键。
零初始化交叉注意力(ControlNet 思想)
在预训练模型中插入新层时,把新层的输出投影矩阵初始化为零,使训练起点上新层输出恒为零、残差通路保持恒等,原模型行为完全不变,随训练逐渐学出耦合。ControlNet 用这一技巧向图像扩散模型注入结构条件,成为条件化大模型的标准做法。
JCA 的视频-运动桥接层正是零初始化的,这保证联合训练从两个各自预训练好的模型出发,是参数高效耦合的基石。
无分类器引导 (CFG)
推理时放大条件影响的标准技巧:$\tilde v = v(\varnothing) + \omega\,[v(c) - v(\varnothing)]$,其中 $c$ 是文本条件、$\varnothing$ 是空文本、$\omega$ 是引导强度。训练时随机丢弃条件使模型同时学会条件与无条件预测。
本文的标准文本引导就是 CFG;其提出的 bridge guidance 沿用同一数学形式,但对比的是'桥接开/关'两种模型状态,读懂 CFG 才能理解这一核心创新。
研究动机
视频生成模型已经能画出极其逼真的运动,但输出只有像素:你可以在 3D 场景里放一只绑定了骨架的猴子资产,让视频模型生成'跳过横杆'的视频,却无法把这一跳变成可在该场景中回放的 3D 关节运动——视频模型既不给 rig 动作,也没有把动作放进场景的相机。最直接的事后补救是从生成视频里反推动作,但论文指出从像素提升运动(video-first 管线,如 Puppeteer、AKD——后者每个资产需约 25 小时优化)会引入误差,使动画与视频漂移;而现有联合生成模型要么只支持人类 SMPL 骨架(UniMo、EchoMotion、CoMoVi),要么像 AnimaX 那样从四个固定视角生成 2D 姿态图再三角化出 3D,这条间接路线还把训练数据限制在罕有多视角的丰富场景视频之外。架构上,若按 EchoMotion 的混合设计把运动专用权重嫁接到 40 块视频骨干的 20 块上,仅运动侧 Transformer 就要新增约 7B 参数。
本文的目标是本文要构建单一模型 JCA:给定文本提示、任意拓扑的 rig(关节数 2 到 256 均可)以及可选的带 2D 关节标注的参考首帧,同时生成(1)与场景几何一致的视频、(2)该 rig 的逐关节 3D 旋转与位置轨迹、(3)把 3D 运动配准进所生成场景的相机参数,使动作可直接在原 3D 场景中回放。附加目标包括:新增参数尽量小(对比 7B 的代价);运动要响应周围场景(如真的跳过横杆、沿雪坡滑行);同一模型无需额外训练即可反向使用——从视频提取任意 rig 的动作(video-to-motion)、从给定动作生成视频(motion-to-video),并支持用少量 RGB 关键帧控制 3D 轨迹。
与已有工作不同的是,本文的独特切入是把'视频先验'与'运动先验'解耦再轻量缝合:不扩展视频骨干,而是单独预训练一个把骨架当图处理、可只用纯运动数据训练的运动模型(运动数据易得、还能把人类动作重定向到上万个随机骨架以扩充拓扑),再用少量零初始化双向交叉注意力'桥'连接到预训练视频模型,总新增仅 178M 参数。推理时提出 bridge guidance——对比桥接开与关两种状态的速度预测并放大其差值来强化跨模态一致。针对'共生成却不知道运动在场景何处'的配准难题,引入学习式关节定位头预测每个 3D 关节在图像中的 2D 位置,由 2D-3D 对应拟合相机。数据上则绕开'不存在配对自然视频与任意 rig 动作语料'的困境,用生成式视频编辑器把带精确 3D 标注的 Objaverse 资产动画放进语义合适的场景,构建 118K 视频的 OiV 数据集。
核心方法
直觉上,视频模型从海量数据学会了'世界如何动'却不知道骨架在哪,运动模型围绕骨架构建却缺少场景与外观先验,JCA 让两者在去噪过程中互相塑造。技术路线分四步:第一,从头预训练一个流匹配运动去噪器 $\hat v = \Phi_\theta(Z^s, s, D, \mathcal{E}, c)$:每个关节每帧一个 token,输入是 18 通道运动 $Z^m\in\mathbb{R}^{N\times J\times 18}$(流匹配路径 $z_s=(1-s)z_0+s\epsilon$、速度目标 $v^\star=\epsilon-z_0$),每个 Transformer 块内先对全部 $NJ$ 个 token 做全局自注意力,再做沿骨骼边的图注意力,并由文本交叉注意力与噪声水平自适应归一化调制;rig 由图编码器(4 层 GATv2 + 全自注意力)编码成每关节描述子 $D\in\mathbb{R}^{J\times 384}$,逐块投影后加到对应 token 上。第二,把运动去噪器的 10 个块与 14B 的 Wan2.2 I2V-A14B 视频骨干(rank-32 LoRA 适配)近似均匀配对,在配对块间插入双向零初始化交叉注意力桥:$B_{m\to v}=\mathrm{Attn}(\bar H_v,\bar H_m)\,O_v$、$B_{v\to m}=\mathrm{Attn}(\bar H_m,\bar H_v)\,O_m$,其中 $\mathrm{Attn}(X,Z)=\mathrm{softmax}(QK^\top/\sqrt{d_k})V$,输出加到接收方自注意力结果后再进门控残差;时间轴统一为视频潜帧 $f$ 对应运动帧 $n/4$。第三,训练辅助定位头从两分支末层特征预测每个关节的 2D 像素位置,拟合相机完成场景配准。第四,构建约 200K 视频-运动对(OiV 118K + 人类 60K + 机器人 27K)做联合训练。
核心创新是'解耦预训练 + 零初始化桥接 + 推理时桥引导'三件套,与已有方法的本质区别在于信息交换的方式与位置。EchoMotion、CoMoVi 把运动专用 Transformer 块嫁接进视频骨干并做联合自注意力,代价约 7.03B 新参数且只能处理人类 SMPL 骨架;AnimaX 依赖多视角渲染与三角化这条间接路线。JCA 保持两个骨干完全独立,只通过约 178M 参数的交叉注意力桥交换特征,使运动模型可以先在纯运动数据(含重定向到 10,000 个随机人形骨架的 100K 序列)上学'骨架如何动',视频模型保留'世界如何动'的先验。零初始化保证联合训练起点就是两个工作正常的预训练模型。bridge guidance 则是新的推理机制:对桥接禁用/启用两种配置各做一次文本 CFG,再按 $\hat v_i=\tilde v_i^{b{=}0}+\omega_{\mathrm{bridge},i}\,[\tilde v_i^{b{=}1}-\tilde v_i^{b{=}0}]$ 放大桥接带来的改变($\omega_{\mathrm{bridge}}=2$、$\omega_{\mathrm{text}}=3$),使视频与运动彼此拉动。关节定位头把生成的 3D 关节'锚'进视频帧:运动帧 $4f$ 的关节 query 只对视频潜帧 $f$ 的 patch key 做注意力,权重平均 patch 中心得 $\bar Y_f=A_f C$,2D-3D 对应进而拟合单目透视相机。
方法步骤详情
完整流程如下。(1)运动表示:每关节 18 通道——6D 旋转、相邻帧相对旋转 $\rho(R_{n,j}^\top R_{n+1,j})$、位置与位置差分;根关节用世界坐标,非根关节旋转取父局部、位置在根系下表达;用固定数据集统计量标准化,解码后以 IK 把关节位置拟合回固定骨长。(2)rig 编码:每关节输入=冻结文本编码器嵌入的关节名+静息位姿几何+参考图 2D 坐标+根/链/叶 one-hot,经 4 层 GATv2(双向边、边类型嵌入)与一个全自注意力块输出 $D\in\mathbb{R}^{J\times 384}$,只算一次全程复用。(3)运动预训练:32 张 H100 上 200K 步、lr $10^{-4}$、batch 256,数据为 125K 纯运动序列(BONES-SEED 重定向到随机 SOMA 人形骨架 + HumanML3D)加配对语料的运动侧。(4)视频适配:Wan2.2 I2V-A14B 用 rank-32 LoRA 训 10K 步。(5)联合训练:更新运动模型(56.06M)、rig 编码器(6.41M)、桥(115.45M)、定位头与 LoRA(153.35M),共 331.28M 可训练参数,视频基座/VAE/文本编码器冻结;随机丢弃条件:caption 三种方式各 0.05、参考图 0.20、桥禁用 0.10、运动干净 0.10、视频干净 0.10(后三者互斥)——'干净模态作条件'使模型学会 video-to-motion 与 motion-to-video;batch 32,50K 步后 lr 降至 $10^{-5}$ 且视频流损失权重 1→10,报告 70K 步检查点;总损失=两分支流匹配损失+smooth-L1 定位损失。(6)推理:每去噪步 4 次前向({真实提示,空提示}×{桥关,桥开}),先做文本引导再做桥引导缩放。(7)相机拟合:定位头在去噪后半程的平均 2D 预测线性插值后与 3D 关节配对,用可靠性加权鲁棒重投影拟合旋转、平移、焦距(主点固定图像中心)。(8)条件模式与关键帧控制:固定视频潜变量为干净即得 video-to-motion,固定运动即得 motion-to-video;关键帧控制把给定 RGB 帧插入稀疏参考视频(其余帧置零)、VAE 编码后配时间掩码输入,无需任何额外训练。
技术新颖性
新颖性可归纳为四点。其一,任务层面:这是第一个直接为任意 rig 共生成视频与 3D 关节运动的模型——不需要网格几何输入、不需要多视角、不做事后把动作拟合到视频的优化,且运动对场景敏感、可被图像关键帧控制。其二,架构层面:用图结构(GATv2 边注意力+描述子逐块注入)承载任意拓扑骨架,相比把运动分支嫁接进视频骨干的 EchoMotion 式设计节省约 6.8B 参数(177.92M vs 约 7.03B),并首次证明'运动先验可从无视频的运动语料习得、再经小容量桥接与视频先验融合'这条路线可行。其三,推理层面:bridge guidance 是一种新的 classifier-free 式引导——以往工作(VideoJAM、时空跳跃引导)对比的是去掉光流输入或跳过某些层,JCA 对比的是跨模态连接本身的开与关,且桥在训练期以 0.10 概率被禁用,使'断开态'在训练分布内、引导有良好定义。其四,配准层面:学习式关节定位头+相机拟合首次解决了联合生成中'运动不知道自己在场景哪里'的问题,Fig. 5 显示对齐前企鹅会沉到雪面之下、对齐后正确贴合。数据管线同样是创新:用 Bernini 视频编辑器给白底资产渲染换上语义合适的真实感场景,并用 SAM 轮廓比对、VGGT 相机漂移检测、Qwen 物理合理性审查过滤破坏 3D 标注的编辑结果。
实验结果
论文用四组实验加两个消融验证方法。(1)文本驱动任意骨架动画(20 个 Puppeteer 测试集资产×5 条 GPT 生成的动作提示=100 对,GPT-6 Astra 盲评 0-100):JCA 提示遵循 58.4,大幅领先最强基线 ActionMesh 的 43.4(Puppeteer 41.1、AnimateAnyMesh 20.6);网格畸变仅 0.20%(边长中位相对变化),优于 Puppeteer 0.36、AnimateAnyMesh 1.96、ActionMesh 7.07;动态度 0.83 最高(AnimateAnyMesh 只有 0.11,说明其'平滑'其实源于几乎不动),平滑度 0.983 略低于 AnimateAnyMesh 的 0.993。这支持了论文的核心论断:rig 信息应在生成时就参与,而不是事后从视频里恢复。(2)人类联合生成(250 条 HumanML3D 测试提示,对比 EchoMotion):通用模型同步性落后(PA-MPJPE 114.8 vs 97.7),但在人类子集上微调 10K 步后 JCA SMPL-FT 全面反超——PA-MPJPE 72.3(降 26%)、SA-MPJPE 91.0 vs 114.9、SA-MPJVE 272.6 vs 431.3(降 37%);解剖质量 0.938 vs 0.730、美学 0.573 vs 0.533;EchoMotion 动态度更高(0.828 vs 0.488),但其非静态相机率达 74.0%(JCA 约 45%),高动态可能部分来自镜头运动而非肢体动作。(3)耦合消融(JCA SMPL-FT):完全断开交叉注意力使 PA-MPJPE 恶化到 140.71,接通但无桥引导为 84.78,加桥引导($\omega_{\mathrm{bridge}}=2$)降至 72.27,证明跨模态连接及其推理时放大都实质有效。(4)视频到动作(TrueBones Zoo 未见测试集 67 段):零样本 PA-MPJPE 66.40,落后拿了真值首帧姿态的 MoCapAnythingV2(41.95)但在序列对齐指标上超过 TopoCap(SA-MPJPE 81.60 vs 87.71、SA-MPJVE 351.47 vs 1412.25);微调后 Ours-FT 达 39.27/47.68/174.95,与 MoCapAnythingV2 相当且不需要首帧 3D 姿态。另有运动侧消融:联合训练把提示遵循从纯运动预训练的 51.6 提升到 58.4、动态度从 0.72 升至 0.83、畸变仅从 0.14% 微增到 0.20%。定性上,模型展示了场景感知动画(猴子跳横杆、企鹅沿雪坡滑行)、真实 Unitree G1 机器人的视频+动作共生成、以及首末帧关键帧之间自动补全 3D 轨迹与视频。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 文本驱动任意骨架动画(100 资产-提示对) | 提示遵循(GPT-6 Astra 盲评,0-100) | 58.4 | ActionMesh 43.4(最强基线);Puppeteer 41.1;AnimateAnyMesh 20.6 | +15.0 分(相对最强基线提升约 34.6%) |
| 文本驱动任意骨架动画(100 资产-提示对) | 网格畸变(边长中位相对变化,%)↓ | 0.20 | Puppeteer 0.36;AnimateAnyMesh 1.96;ActionMesh 7.07 | 较最强基线 Puppeteer 降低约 44%,较 ActionMesh 降低约 97% |
| 文本→视频+SMPL 人类运动联合生成(250 条 HumanML3D 提示) | PA-MPJPE (mm) ↓ | 72.3(JCA SMPL-FT) | EchoMotion 97.7 | 降低 26% |
| 文本→视频+SMPL 人类运动联合生成(250 条 HumanML3D 提示) | SA-MPJVE (mm/s) ↓ | 272.6(JCA SMPL-FT) | EchoMotion 431.3 | 降低 37% |
| 人类联合生成视频质量 | 人体解剖质量(VBench)↑ | 0.938(JCA SMPL-FT) | EchoMotion 0.730 | +0.208(约 28%) |
| 视频→动作(TrueBones Zoo 未见测试集,67 段) | PA-MPJPE (mm) ↓ | 39.27(Ours-FT) | MoCapAnythingV2 41.95(其额外获得真值首帧姿态);TopoCap 51.29 | 降低约 6.4% 且不需要首帧 3D 姿态;零样本版 66.40 仍超过 TopoCap 的序列对齐指标 |
| 视频-运动耦合消融(JCA SMPL-FT) | PA-MPJPE (mm) ↓ | 72.27(桥接 + bridge guidance) | 断开交叉注意力 140.71;有桥无桥引导 84.78 | 相对断开态降低约 48.6%,桥引导额外贡献约 12.5 分 |
| 联合训练 vs 纯运动预训练(100 资产-提示对) | 提示遵循 / 动态度 | 58.4 / 0.83 | 纯运动模型 51.6 / 0.72 | 提示遵循 +6.8,动态度 +0.11,畸变仅 0.14%→0.20% |
局限与改进
作者明确承认四点:其一,相机对齐流程假设推理时相机静止,无法处理运动镜头;其二,训练骨架偏向双足——Objaverse 可动画角色大多是动作有限的双足角色,补充的纯运动数据也全部是人形重定向,对蛇类、多足等奇异拓扑的迁移主要依赖视频先验;其三,场景只能通过生成的视频间接影响运动,模型从未看到 3D 场景几何,因此没有任何机制保证接触正确或防止肢体穿入地面/物体,'视频里场景一致'不等于'3D 里物理一致';其四,与角色交互的物体在视频中会动但不会被恢复成 3D,且每个片段只动画一个 rig。我自己的观察还有几点:提示遵循 58.4/100 说明即便最好的模型离'忠实执行指令'仍有很大距离;该指标完全依赖 GPT-6 Astra 主观盲评(每次约 $0.38、30.4K 输入 token),评委可能偏好渲染清晰、动态明显的视频,存在系统性偏差风险;同步性指标用 GVHMR 从生成视频回收运动再与生成运动比对,若两个模态共享系统性错误则指标偏乐观;桥引导使每步去噪需 4 次前向,加上双流去噪,推理成本显著高于单流视频模型;OiV 管线刻意过滤相机漂移与原地运动、只保留通过所有检查的片段,训练分布可能偏窄(静止相机、简单动作);零样本视频到动作仍落后专门的 MoCapAnythingV2,说明通用性与专门化之间仍有差距。
独立分析的弱点
弱点一:无物理约束。运动分支对场景几何完全盲,企鹅可能滑进雪里、猴子可能'踩'在横杆上方悬空——生成视频看着合理,回放到 3D 却会穿模。改进方向:作者已提出把 3D 场景几何作为运动分支条件,或在训练/引导中加入接触项;更激进的可用轻量物理仿真器对输出动作做投影修正或重定向到物理轨迹。弱点二:推理成本高。桥引导要求每去噪步 4 次前向(两种提示×桥两种状态),叠加 14B 视频骨干,实际部署代价大。改进方向:只在部分去噪步启用桥引导、训练一个单前向的蒸馏学生模型、或用自适应策略仅在视频-运动分歧大的时刻放大耦合。弱点三:评测主观且可能循环。提示遵循靠 LLM 评委、同步性靠从生成视频反推运动的闭环。改进方向:补充大规模人类偏好研究;引入不依赖回收的可验证指标(如基于定位头的 2D 投影一致性)。弱点四:骨架分布偏双足。重定向数据全部基于 SOMA 人形变体,对非人形拓扑(鱼、昆虫、多臂机器人)泛化存疑。改进方向:引入程序化生成或从网格自动推导的非人形骨架重定向语料;用 RigMo 类无预定义骨架的表示扩大覆盖。弱点五:静态相机假设限制了'电影感'的运镜生成。改进方向:把相机外参作为另一组可生成变量联合去噪,或借鉴 VGGT 类模型在推理时联合估计动态相机并逐帧配准。
未来方向
作者在结论中给出的方向:把配准扩展到运动相机;加强非双足骨架上的动作迁移并更好地保住视频模型原有能力;把 3D 场景几何条件化进运动分支或在训练/引导中加入接触项,使场景一致的视频变成物理一致的 3D 动作;恢复交互物体的 3D 运动并支持单片段多 rig——'从动画一个资产走向动画一个场景'。基于论文成果还可自然延伸:其一,机器人方向——模型已用 DROID 等 27K 机器人片段训练并演示了 Unitree G1,可把 JCA 作为机器人操作的'视频级世界模型',为策略评估与仿真到现实合成带有可回放 3D 动作的数据;其二,控制粒度——把关键帧控制推广到轨迹草图、障碍物约束、接触点指定等更丰富的 3D 条件,与 MaskedMimic 式动作修补结合;其三,一致性训练——利用定位头的 2D 预测在训练期加入自监督重投影一致性损失,可能同时改善配准与同步;其四,效率——研究桥层稀疏化或与双时钟去噪调度(Time-to-Move)结合,降低多前向开销;其五,数据自举——用 JCA 自身为新资产生成场景化动画,再经验证回流训练集,形成数据飞轮。
复现评估
复现门槛较高。开源情况:论文出自 NVIDIA/Technion/Bar-Ilan,正文仅说明'视频与更多结果见项目页',未明确承诺公开代码或权重;其构建基础 Wan2.2 I2V-A14B、Objaverse/-XL、OpenVid、HAA500、DROID、ALOHA、RoboCerebra、TAVIS、BONES-SEED、HumanML3D、SAM-Body4D、Dyn-HaMR、GATv2 等均为公开资源,评测依赖的 Puppeteer、AnimateAnyMesh、ActionMesh、EchoMotion、GVHMR、MoCapAnythingV2、TopoCap 也各有公开实现,但关键的 Bernini 视频编辑器与 Qwen 数据清洗环节未必人人可得。算力:全部阶段在 32 张 H100 80GB 上完成——运动预训练 200K 步(batch 256)、视频 LoRA 10K 步、联合训练 70K 步(batch 32),学界实验室通常难以原样复制,缩小模型规模是现实选择。数据:约 200K 视频-运动对与 125K 纯运动序列需要重跑整套'渲染→VLM 选场景→视频编辑→SAM/VGGT/Qwen 三重验证'管线,工程量可观(OiV 覆盖 2 到 256 关节,110K/4K/4K 划分)。评测:GPT-6 Astra 盲评每个动画约 $0.38、30.4K 输入 token,500 个动画约 $190,成本可控但依赖特定商用模型。总体判断:对拥有数十卡集群与较强工程能力的团队,复现中等偏难;仅做推理与应用(若权重开源)则容易得多。
论文图表
论文首页大图,用四行演示 JCA 的全部四种能力:给定 rig+文本联合生成视频与 3D 运动(猴子在场景中跳过横杆且动作适配环境);给定首末帧的关键帧控制(自动补全中间的 rig 轨迹与视频);视频到动作(从输入视频恢复任意 rig 的 3D 运动);动作到视频(视频遵循给定的 3D 运动)。
一张图概括了论文的全部任务设定与输出形态,读者可先建立'输入什么、输出什么'的直觉,再进入方法细节。
与人类专用模型 EchoMotion 的对比:通用 JCA 同步性落后(PA-MPJPE 114.8 vs 97.7),但 SMPL 微调后 72.3/91.0/272.6 全面反超(PA-MPJPE 降 26%、SA-MPJVE 降 37%);解剖质量 0.938 vs 0.730;EchoMotion 动态度 0.828 更高但其非静态相机率 74.0%(JCA 45.6%),高动态可能部分来自镜头运动。
最重要的对标实验:既诚实展示通用模型在专门领域的差距,又证明小幅微调即可超越人类专用 SOTA,还用非静态相机率揭示了动态度指标的陷阱。