MoCapAnything V2:面向任意骨骼的端到端动作捕捉 MoCapAnything V2: End-to-End Motion Capture for Arbitrary Skeletons
首个端到端可学习的任意骨骼单目视频动作捕捉框架,用参考姿态-旋转对锚定坐标系解决旋转歧义
前置知识
逆运动学 (Inverse Kinematics, IK)
IK 是从关节的目标空间位置反推出各关节旋转角度的过程。给定骨骼的父子拓扑和骨长(rest pose),IK 求解一组关节旋转 $\mathbf{r}$ 使得前向运动学(FK)作用后关节落在期望的三维位置上。传统 IK 通常是解析法或迭代优化,逐帧独立求解,不可微。
本文核心正是把不可微的解析 IK 替换成一个可学习的神经旋转解码器(Pose2Rot),理解 IK 的局限(如骨轴扭转自由度无法确定、逐帧无时序上下文)才能理解本文动机。
旋转的 6D 连续表示
Zhou et al. 2019 指出,旋转矩阵、四元数、欧拉角在神经网络回归时都存在不连续性,会导致训练困难。6D 表示取旋转矩阵前两列共 6 个数 $\mathbf{r}\in\mathbb{R}^{6}$,再经 Gram-Schmidt 正交化恢复完整旋转,是连续可导的,网络回归更稳定。
本文旋转解码器输出的就是每关节 6D 旋转 $r_t\in\mathbb{R}^{J\times 6}$,损失在几何测地角误差上计算,理解这个表示才能读懂输出层和损失设计。
rest pose 与局部坐标系约定
骨骼的 rest pose(静止姿态/绑定姿态)由骨长偏移 $\mathbf{o}\in\mathbb{R}^{J\times 3}$ 定义,它固定了每个关节局部坐标系的原点;但每个关节局部坐标轴的朝向约定(axis convention)由建模者自定,rest pose 并不决定它。同一段关节位置轨迹在不同轴约定下对应完全不同的旋转序列。
这正是 Pose→Rotation 映射病态(ill-posed)的根源:本文提出的参考姿态-旋转对就是为了提供缺失的『坐标轴』信息,读懂这层几何直觉是理解全文关键创新的前提。
图引导多头注意力 (GMHA) 与骨骼拓扑感知
GMHA (Gat et al. 2025) 把骨骼图的关节关系(拓扑距离、运动链连接性)作为注意力偏置注入 Transformer,让注意力显式感知骨骼结构。本文扩展为 Global-Local 变体 (GL-GMHA),交替使用限制在运动链(祖先路径)上的局部层和全连接的全局层。
GL-GMHA 是两个阶段共享的骨干注意力模块,支撑了跨任意拓扑、任意关节数的泛化能力,是方法能同时建模肢体内约束和全身协调的技术基础。
研究动机
从单目视频恢复任意骨骼(人、动物、各种奇异拓扑角色)的可驱动动画是计算机视觉与图形学交叉的长期难题。前代工作 MoCapAnything V1 (Gong et al. 2026) 采用分解式(factorized)流水线:先用学习式 Video-to-Pose 网络(依赖 4D mesh 中间表示)预测三维关节位置,再用一个约束感知的解析 IK 求解器把位置转成旋转。这个设计有两大根本缺陷。第一,关节位置并不能完全决定旋转——比如骨轴扭转(bone-axis twist)这类自由度是位置无法约束的,解析 IK 无法消歧,导致渲染时出现『关节乱转 (joint spinning)』和肢体翻转伪影。第二,IK 阶段不可微,V→P 和 P→R 两个模块无法联合优化,位置预测器只能面向位置精度训练,完全无视下游旋转目标。此外 mesh 中间表示在实际预测时会引入噪声并逐级累积。定量上,V1 在旋转角误差上停留在约 $17^\circ$ 到 $22^\circ$ 区间,且一段 120 帧序列推理要 20 分钟以上(mesh 重建约 15 分钟、IK 优化约 5 分钟)。
本文的目标是本文目标是构建首个完全端到端可训练的任意骨骼动作捕捉框架,让 Video-to-Pose 和 Pose-to-Rotation 两个阶段都变成可学习的神经模块并联合优化,使旋转目标的梯度能够回流穿过位置中间表示直至视觉编码器,从而让中间的位置表示不再只为位置精度服务、而是自适应地重塑为更利于旋转恢复的表示。同时希望去掉 mesh 中间表示以提升鲁棒性并大幅加速推理,最终在 seen/rare/unseen 各类骨骼上都显著降低旋转误差、并实现约 $20\times$ 的推理加速。
与已有工作不同的是,本文的独特切入点在于:作者洞察到 Pose→Rotation 映射之所以病态,本质是『缺少坐标系信息』——rest pose 只提供了每个关节局部坐标系的原点,却没提供坐标轴朝向,导致 $R=f(P,\mathbf{o})$ 是多值映射。以往方法只用静态几何(骨骼、mesh、渲染视图)作参考信号,无法消歧。本文创造性地引入一个来自目标资产的『参考姿态-旋转对 (reference pose–rotation pair)』,它对任何绑定好的骨骼都天然可得(比如资产自带动画的任意一帧),与 rest pose 一起就完整指定了局部坐标轴约定,把多值的 P→R 变成一个良约束的条件预测问题。这个看似简单的锚点信号是解锁整条流水线端到端训练的技术关键。
核心方法
整体思路可以先用一句直觉概括:告诉模型『对这个骨骼的坐标定义而言,这组关节配置对应这些旋转』,模型就能把从视频里看到的运动翻译成目标骨骼的旋转参数。技术路线上,框架把问题分解为两阶段并由显式中间表示串联:$\text{Video}\xrightarrow{\text{Stage 1}}\text{Pose}\xrightarrow{\text{Stage 2}}\text{Rotation}$。给定视频 $V=\{I_1,\dots,I_T\}$ 和由父索引 $\boldsymbol{\pi}$、骨长偏移 $\mathbf{o}\in\mathbb{R}^{J\times3}$、每关节语义标签定义的目标骨骼 $S$,输出每帧每关节的 6D 旋转 $r_t\in\mathbb{R}^{J\times6}$。中间的姿态 $p_t\in\mathbb{R}^{J\times3}$ 是相机坐标系下相对根关节的三维关节位置。关节数最多补齐到 150(最大训练骨骼 143 关节)。Video-to-Pose 模块直接从视频预测位置序列(不经 mesh),Pose-to-Rotation 模块把位置映射为旋转,两者都以同一参考帧为锚,且两阶段共享 GL-GMHA 注意力,整条 V→P→R 联合端到端训练。
核心创新是『参考条件化的旋转建模』:作者把 rest pose 与参考姿态-旋转对分工看待——rest pose $\mathbf{o}$ 提供坐标系原点,参考对 $(p_{\text{ref}}, r_{\text{ref}})$ 提供坐标系轴,两者结合完整确定局部坐标系约定,从而把病态的多值 $R=f(P,\mathbf{o})$ 转化为良约束的条件预测 $R=f(P,\mathbf{o},p_{\text{ref}},r_{\text{ref}})$。这与已有方法的本质区别在于:V1 等分解式方法用不可微解析 IK 做 P→R,既无法解 twist 等自由度、也阻断了梯度回流;本文让 P→R 成为可学习神经解码器后,第一次使整条流水线端到端联合训练成为可能,旋转损失的梯度能回流重塑位置表示。消融显示单是让 P→R 可学习还不够(detached 变体 Zoo-Unseen 为 $7.82^\circ$),真正的收益来自端到端梯度耦合(联合训练降到 $6.54^\circ$)。
方法步骤详情
具体分五个子模块(对应 Fig. 3 的 A–E)。(A) 参考查询编码器:参考帧的关节位置 $p_{\text{ref}}\in\mathbb{R}^{J\times3}$ 经频率位置编码后投影到维度 $d$,加上用 T5 文本编码器编码关节名得到的每关节语义嵌入(提供与命名/关节数无关的类别无关关节身份),再通过若干 RefFusionBlock(含 GL-GMHA 关节自注意力、普通自注意力、以及对冻结 DINOv2 参考图像特征 $z_{\text{ref}}$ 的交叉注意力)融合,输出参考关节查询 $Q_{\text{ref}}\in\mathbb{R}^{J\times d}$。(B) 时序姿态解码器:以 $Q_{\text{ref}}$ 和每帧 DINOv2 图像特征 $z_t$ 为输入,用 GL-GMHA 做跨关节空间推理、用带 RoPE 的窗口化每关节时序注意力做跨帧建模,输出 $\hat{P}\in\mathbb{R}^{T\times J\times3}$;被标记为位置静止的关节用参考位置覆盖。(C) 旋转提示编码器(Pose Encoder):把预测位置经 GL-GMHA 与时序注意力处理成姿态特征 $Q\in\mathbb{R}^{T\times J\times d}$。同时 (D) 锚编码器分两部分:Rest Pose Encoder 从 $\mathbf{o}$ 加语义嵌入得静态几何特征 $E_{\text{rest}}$;Reference Encoder 联合嵌入 $p_{\text{ref}}$ 与 $r_{\text{ref}}$ 并用 FiLM 以 $E_{\text{rest}}$ 调制,产出坐标系锚 $C_{\text{ref}}\in\mathbb{R}^{J\times d}$。(E) 旋转解码器:$L=8$ 层,每层依次做 $E_{\text{rest}}$ 的 FiLM 调制、带 RoPE 的每关节时序自注意力、GL-GMHA 空间注意力、对锚 $C_{\text{ref}}$ 的交叉注意力(仅前 $L_{\text{cross}}=6$ 层)、前馈残差,末层用两层 MLP 投影为 6D 旋转;旋转静止关节用参考旋转覆盖。训练采用混合姿态策略:每个样本按概率 $p_{\text{pred}}(e)=p_{\text{start}}+(p_{\text{end}}-p_{\text{start}})\cdot\min(1, e/E_{\text{warmup}})$ 随机决定给旋转模块喂真值位置还是预测位置,$p_{\text{start}}=0.1,\ p_{\text{end}}=1.0,\ E_{\text{warmup}}=30$,早期用真值保证收敛、后期全用自身预测以弥合训练-推理分布差。
技术新颖性
技术新颖性体现在多个层面。首先是问题层面的新洞察:把 P→R 病态性归因于『缺失坐标系信息』并用可天然获取的参考姿态-旋转对显式锚定坐标轴,这是概念性突破,Table 4 证实了 rest pose 管原点、参考对管轴的分解——Zoo-Unseen 上去掉参考对误差飙到 $24^\circ$,加上后降到 $7.37^\circ$。其次是第一个真正端到端可训练的任意骨骼 V→P→R 框架,用可学习旋转解码器替代不可微解析 IK,让旋转梯度回流重塑位置表示。第三是 GL-GMHA 注意力,交替局部运动链推理与全局跨支协调,Table 6 显示它在四个划分上都优于原始全局 GMHA。第四是去掉 mesh 中间表示直接从视频预测位置,避免预测 mesh 噪声累积并带来约 $20\times$ 加速。此外还有把显式关节位置作为『骨骼共享的结构瓶颈』的设计(Table 5 证明隐式/直接回归都在 unseen 上崩溃)。
实验结果
核心发现是本文方法在旋转精度和效率上全面且大幅领先。在主表 Table 1(Truebones Zoo 的 Seen/Rare/Unseen 加 Objaverse 四划分,位置单位 cm、旋转单位度,均越低越好)上,本文的旋转角误差在 Zoo-Seen 为 $10.73^\circ$、Zoo-Rare $14.38^\circ$、Zoo-Unseen $6.54^\circ$、Objaverse $11.06^\circ$,而 HRNet/GLoT/ViTPose/VIBE 等基线即便同样接收参考输入并采用端到端 V→P→R,旋转质量都被『卡』在约 $20^\circ$(如 HRNet Zoo-Seen $19.86^\circ$、GLoT $20.24^\circ$),因为它们的架构无法有效利用参考和拓扑线索消解坐标轴歧义。值得注意的是 Zoo-Unseen 的 $6.54^\circ$ 竟然低于 Seen 和 Rare,作者解释这一划分以行走奔跑等常见运动为主,坐标轴被参考对锚定后旋转变得直观。位置精度上本文也很强(JP 普遍 $2\sim4$ cm,远优于基线的 $19\sim37$ cm)。与 V1 的对比(Table 2,均在 Zoo 上训练评测)最能说明问题:V1 用真值 mesh+IK 位置误差最低但旋转仍达 Seen $17.47^\circ$/Rare $18.52^\circ$/Unseen $20.56^\circ$,用预测 mesh 时误差进一步恶化到 $20.02^\circ$/$19.82^\circ$/$22.04^\circ$;而本文无 mesh 就把旋转降到 $10.91^\circ$/$14.36^\circ$/$6.68^\circ$,位置精度追平 V1 真值 mesh 变体。摘要与结论也总结为平均旋转角误差从约 $17^\circ$ 降到约 $10^\circ$(4.8 节给出三划分平均 $10.6^\circ$ vs V1 真值 mesh $18.9^\circ$、预测 mesh $20.63^\circ$)。消融方面:Table 3 证明端到端梯度耦合关键(detached $7.82^\circ$ → 联合 $6.54^\circ$,GT-only 因分布差在 Unseen 失败到 $13.28^\circ$);Table 4 证明参考对不可或缺(无参考 $24^\circ$ →有参考 $7.37^\circ$→加 rest pose 最佳 $6.54^\circ$);Table 5 证明显式位置中间表示的必要(Direct V→R $23.73^\circ$、Latent+Aux $23.57^\circ$ 在 Unseen 崩溃,本文 $6.54^\circ$);Table 6 证明 GL-GMHA 优于全局 GMHA($6.69^\circ$)和全局部($11.60^\circ$);Table 8 显示 8 层最优(6 层 $7.00^\circ$、12 层 $7.66^\circ$ 均更差);Table 9 显示无参考交叉注意力 $L_{\text{cross}}=0$ 时 Unseen 崩到 $23.49^\circ$、$L_{\text{cross}}=6$ 最佳。效率上 120 帧序列 V1 需 20 分钟以上,本文位置和旋转单次前向约 $10$ 秒、全程不到 1 分钟,约 $20\times$ 加速且不损精度。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Zoo-Seen 旋转恢复 | 几何测地角误差 Ang. Err (°) | 10.73 | HRNet 19.86 / V1(Pred Mesh) 20.02 | 相对基线约降 8~9°,约减半 |
| Zoo-Rare 旋转恢复 | 几何测地角误差 Ang. Err (°) | 14.38 | HRNet 24.72 / V1(Pred Mesh) 19.82 | 相对 HRNet 降约 10° |
| Zoo-Unseen 旋转恢复(未见骨骼泛化) | 几何测地角误差 Ang. Err (°) | 6.54 | HRNet 24.59 / V1(GT Mesh) 20.56 | 相对基线降约 14~18°,提升最大 |
| Objaverse 旋转恢复(分布外) | 几何测地角误差 Ang. Err (°) | 11.06 | HRNet 31.37 | 降约 20° |
| 关节位置精度(Zoo-Unseen) | MPJPE (cm) | 3.39 | HRNet 37.87 / GLoT 26.13 | 降约一个数量级 |
| 推理效率(120 帧序列) | 端到端耗时 | 约 10s 前向 / 全程 <1 分钟 | V1 >20 分钟 | 约 20× 加速 |
| 三划分平均旋转精度 vs V1 | 平均 Ang. Err (°) | 10.6 | V1 GT Mesh 18.9 / Pred Mesh 20.63 | 降约 8~10° |
局限与改进
作者坦承三点局限。第一,旋转解码器隐式地从数据学到每种骨骼的合理运动先验,因此对『不自然』的重定向(如把鸟的振翅动作迁移到狗、让狗用前腿『飞』)预测旋转会漂向该骨骼的典型配置,即使 Video-to-Pose 已恢复出预期姿态;反方向(人体骨骼再现这类奇异动作)则可行,解决办法主要是用这类配置增广训练集。第二,尚未探索遮挡情形,是未来重要方向。第三,当前动物数据仅约 1000 条序列,规模偏小,作者预期扩大数据后结果会进一步提升。我个人补充几点观察:其一,方法强依赖测试时能拿到目标资产的参考姿态-旋转对,对只有裸视频、无绑定资产的纯野外场景适用性受限;其二,位置精度仍略逊于 V1 真值 mesh 变体,作者也承认更强的 mesh 预测器能缩小位置差距但代价高;其三,评测集中在动物和 3D 资产,真实人类基准(如 3DPW/Human3.6M)上的定量对比缺失,且野外视频只有定性展示;其四,最大关节数硬编码为 150,超大骨骼需调整。
独立分析的弱点
几个具体弱点及改进方向。其一,参考姿态-旋转对在推理时被当作必然可得,但很多真实动捕场景只有视频没有绑定好的目标资产,此时框架无法工作——改进方向是探索从视频自监督推断或用一个通用『规范坐标系』回退,减少对显式参考对的硬依赖。其二,不自然重定向会被运动先验『拉回』典型配置,说明模型把坐标系消歧和运动合理性纠缠在了一起——可考虑把坐标系锚定(几何)与运动先验(统计)解耦,例如给一个开关控制是否施加先验,或用无分类器引导式的条件强度调节。其三,混合姿态调度虽缓解训练-推理分布差,但 $p_{\text{pred}}$ 的线性 warmup 较简单,可尝试基于当前位置预测误差自适应调整混合比例。其四,遮挡完全未处理,野外视频常有自遮挡和被物体遮挡,可引入时序补全或不确定性建模。其五,1000 条动物序列规模小易过拟合特定物种,Rare 划分误差($14.38^\circ$)明显高于 Unseen($6.54^\circ$)就暗示了数据不均衡,可通过数据增广或合成运动扩充稀有物种。
未来方向
作者明确提出的方向包括:用不自然配置增广训练集以支持更多奇异重定向、研究遮挡场景、以及扩大动物数据规模。基于成果可进一步延伸:(1) 把参考条件化思想推广到多参考对融合(Table 4 已提到默认单对、ablation 分析了多对),研究最优参考帧选择;(2) 结合物理约束或接触先验,减少脚滑等动画伪影;(3) 拓展到多人/多角色交互场景;(4) 探索把冻结 DINOv2 换成可微调或视频原生编码器以进一步提升位置精度、缩小与真值 mesh 变体的差距;(5) 面向实时应用做流式推理,当前虽已 $20\times$ 加速但仍是离线批处理;(6) 引入真实人体基准的定量评测建立更全面的对比。
复现评估
复现评估中等偏难。正面因素:论文提供了项目主页(https://animotionlab.github.io/MoCapAnythingV2/)含动画结果,超参数相当完整——冻结 DINOv2 ViT 骨干、序列长度 $T=48$、旋转解码器 $L=8$ 层且前 $L_{\text{cross}}=6$ 层带参考交叉注意力、每关节时序注意力窗口 5、Adam 优化器、8× V100 训练 60 epoch、batch size 8、约一天完成、损失权重 $\lambda_{\text{pos}}=\lambda_{\text{rot}}=\lambda_{\text{rot\_v}}=1.0$ 与 $\lambda_{\text{root}}=0.1$、混合调度 $p_{\text{start}}=0.1,\ p_{\text{end}}=1.0,\ E_{\text{warmup}}=30$、最大关节 150。数据集 Truebones Zoo(1038 条动物序列、104715 帧,测试 60 条分 Seen/Rare/Unseen)和 Objaverse(1000 样本)均公开可得,还用 T5 文本编码器编码关节名、frequency 位置编码、FiLM 调制等标准组件。负面因素:文中未明确说明是否开源训练/推理代码与预训练权重(仅给项目页),复现需自行实现 GL-GMHA、RefFusionBlock、锚编码器等定制模块;算力门槛 8× V100 训练一天对个人复现有一定压力;Truebones Zoo 需付费获取(gumroad),且数据预处理中的 position-static/rotation-static 标记、骨骼归一化到 $[-1,1]^3$ 再缩放到 $1\text{m}^3$ 立方体等细节需要精确对齐。总体属于工程量较大但方法描述清晰的可复现工作。
论文图表
总览图:给定人或动物的输入视频,方法在多样骨骼拓扑间推断出与拓扑无关的骨骼序列;以参考资产为条件,端到端框架预测可直接用于动画的旋转,使参考资产复现输入运动。
一图说清任务定义与端到端 pipeline 的输入输出,是理解全文问题设定的入口。