这项研究由华为技术有限公司(新加坡)与新加坡中央研究院的联合团队完成,论文于2026年4月30日发布,arXiv编号为2604.28130,感兴趣的读者可通过该编号检索完整论文。
你有没有注意到,游戏里那些栩栩如生的角色动作、电影里以假乱真的数字生物,背后都藏着一项叫做"动作捕捉"的技术?简单说,这项技术就是把真人或动物的动作"搬运"到虚拟角色身上。拍电影时,演员穿着满是荧光小球的紧身衣,摄像机记录下每一个关节的运动轨迹,然后计算机把这些数据"贴"到虚拟角色的骨架上,角色就动起来了。
然而,传统做法既昂贵又麻烦,而且有个让人头疼的限制:每套动作数据通常只适配特定的角色骨架。给人类角色采集的动作,往往没法直接用在一只四脚行走的恐龙或者长着翅膀的神鸟身上——骨骼结构完全不同嘛。更别说,专业的动捕设备动辄要花掉几十万甚至上百万,根本不是普通创作者能承担的。
正因如此,近年来有研究者开始尝试一个更大胆的方向:能不能只用一段普通手机拍的视频,就自动推算出任意角色骨架的动作数据?华为与新加坡中央研究院的团队就在这条路上走出了迄今为止最扎实的一步,他们把这套系统命名为 MoCapAnything V2,意思是"捕捉任何东西的动作,第二代"。
---
一、从"流水线作业"到"一气呵成"——为什么这次升级意义重大
要理解这次进步有多关键,得先从他们的上一代系统说起。MoCapAnything V1 的工作流程,好比一条分工明确的流水线:第一道工序,由一个神经网络(可以理解为一种能自己"学习"的程序)看着视频,猜出每个关节在三维空间中的位置;第二道工序,再由一套叫做"逆运动学"(Inverse Kinematics,简称IK)的数学工具,把这些关节位置换算成每个关节该转多少度的角度数据。
这条流水线有个根本性的缺陷,就像工厂里两个车间各自为政、互不沟通。第一道工序的神经网络只需要把关节位置猜准,根本不管第二道工序好不好用;第二道工序的IK工具是纯数学推算,既不能"学习",也不能把自己的错误反馈给第一道工序去纠正。更糟糕的是,光靠关节位置根本不能唯一确定关节的旋转角度——这就像你知道一根手指尖在空间中的位置,但手指究竟是正转了30度还是侧倾了45度,单凭位置信息是说不清楚的。
V1还有另一个笨重的地方:它在推算关节位置之前,要先重建出角色的完整三维网格(就是那种由无数三角形拼成的虚拟皮肤)。这一步极其耗时,处理一段120帧的视频需要将近15分钟来重建网格,整个流程加起来超过20分钟。而且预测出来的网格本身也会有误差,这些误差会像滚雪球一样越滚越大,最终影响动作质量。
MoCapAnything V2 彻底打破了这条流水线的逻辑,把两道工序改造成了一个从头到尾一起训练、一起优化的统一系统。这就好比把两个各自为政的车间合并成一个大工坊,工人们相互配合、及时反馈,生产出来的产品质量自然更有保障。不仅如此,V2还把那个耗时巨长的三维网格重建步骤彻底省掉了,让整个流程的速度提升了约20倍——同样的120帧视频,V2只需要不到1分钟。
---
二、解开"旋转之谜"的关键钥匙——参考姿态配对
前面提到,单靠关节位置无法唯一确定旋转角度,这是整个问题的核心难点。V2团队用了一个颇为巧妙的方案来解决这个谜题。
打个比方:假设你看到一张照片,上面有一扇门,门的把手位置你能精确测量出来。但你并不知道这扇门是向左开还是向右开,因为仅凭把手的位置坐标,这两种情况都说得通。现在,如果有人额外告诉你:"当门把手在这个位置时,门是向左开着的,转动角度是30度"——有了这条额外信息,谜题就迎刃而解了。
V2引入的"参考姿态-旋转配对"(reference pose-rotation pair)就是起这个作用的。具体来说,当你想把一段视频的动作迁移到某个特定的虚拟角色(比如一只老鼠骨架或者一个机器人骨架)时,系统只需要这个角色的一帧动画数据作为"参考"——这帧数据同时包含关节位置和对应的旋转角度。有了这把钥匙,系统就知道了这个特定骨架是如何定义自己的坐标方向的,后续的旋转预测就从一个模糊的多解问题,变成了一个有明确答案的条件推断问题。
骨架的"休息姿态"(rest pose,也就是角色在不做任何动作时的默认站姿)承担的是另一半工作:它告诉系统每个关节的相对位置原点在哪里。用上面那个比喻来说,休息姿态告诉你"门框在哪",而参考配对告诉你"门是怎么转的"。两者合在一起,才能完整描述这扇门的运动方式。
研究团队在实验中验证了这个设计的必要性:当他们移除参考配对、只保留休息姿态时,系统在遇到从未见过的新骨架时,旋转误差从约6.54度急剧跳升到约24度——几乎翻了四倍。而只有参考配对没有休息姿态时,误差是约7.37度,说明两者各有贡献,合用效果最佳。
---
三、系统的"大脑"如何运转——两个协同工作的模块
V2的整个系统由两个主要模块构成,它们共享同一套"思考方式",并在训练时相互学习、共同进步。
第一个模块负责"看视频、猜位置",研究团队叫它视频转姿态模块(Video-to-Pose)。它的工作方式类似于一位经验丰富的舞蹈老师:先看一眼参考帧(也就是目标角色静止时的样子),把每个关节的位置和骨架布局记在脑子里,然后再逐帧观看输入视频,推算出视频里的角色在每个时刻各关节应该在哪个位置。
为了让这个过程更聪明,系统用了一个叫 DINOv2 的图像分析工具(这是Meta公司开发的一种强大的视觉理解模型,在训练时保持固定,不再更新)来提取视频中的视觉特征。与此同时,每个关节的名称(比如"左前膝"、"脊柱中段")会被转换成语义描述信号,让系统能够理解不同骨架上功能相似的关节,哪怕它们的编号或名称完全不同。
第二个模块负责"从位置推旋转",叫做姿态转旋转模块(Pose-to-Rotation)。它拿到第一个模块输出的关节位置序列,再结合前面提到的参考配对和休息姿态,推算出每个关节在每一帧的精确旋转角度。这个模块的内部结构有点像一个分层的翻译器:先把关节位置"翻译"成特征向量,再通过多轮"询问参考配对"的交叉注意力机制(可以理解为一种反复对照参考信息的比较过程),把特征向量"翻译"成最终的旋转角度。
两个模块共用的核心组件是一种叫做"全局-局部图引导多头注意力"(GL-GMHA)的机制。这个名字听起来复杂,背后的逻辑却很直观:骨架上的关节既有局部的依赖关系(比如小腿的运动强烈受制于大腿),也有全局的协调需求(比如整个身体的重心平衡)。GL-GMHA通过交替切换"只看邻近关节"和"看遍所有关节"两种注意力模式,让系统同时兼顾这两种需求。实验表明,这种交替设计比单纯全局关注或单纯局部关注效果都更好。
---
四、一起训练,才能真正协同——端到端优化的奥妙
把两个模块合并成一个系统还不够,关键在于让它们在训练时真正"对话"。V2采用的策略是让第二个模块(旋转预测)的误差信号能够流回第一个模块(位置预测),告诉它"你猜的位置虽然在空间上差不多,但对旋转预测来说不够好,请调整"。
这种双向反馈在单独训练两个模块时完全不可能实现,因为V1的IK数学工具是不可微分的(可以理解为:它不支持"把错误反向传递"这种操作)。V2用可学习的神经网络替代了IK,从根本上打通了这条反馈通道。
不过,训练过程中有一个实际的挑战:在真实使用时,第二个模块拿到的是第一个模块预测出的有噪声的关节位置;但在训练时,如果一开始就用有噪声的位置,模型很难收敛学习。为了解决这个矛盾,团队设计了一套"混合训练策略":训练初期,主要用干净准确的真实关节位置来喂给第二个模块,让它先学会基本的旋转推理;随着训练进行,逐步增大用预测位置(有噪声)训练的比例,直到最终完全切换到预测位置。这个切换过程经过30个训练周期完成,就像学游泳时先用浮板、再慢慢放手一样循序渐进。
实验数据非常直观地验证了这个策略的价值。如果完全切断第二个模块的误差向第一个模块反馈(梯度分离),Zoo-Unseen(未见过的骨架)上的旋转误差是7.82度;打通反馈后,误差降到6.54度。如果只用真实位置训练,遇到新骨架时误差会跳到13.28度,因为训练和实际使用之间存在巨大的分布差异。而混合训练策略兼顾了稳定性和适应性,取得了最佳结果。
---
五、实验怎么说——数字背后的真实意义
研究团队在两个主要测试集上评估了V2的性能。第一个是Truebones Zoo,包含1038段动物动作序列,覆盖了从常见到罕见再到完全没见过的各种动物骨架,测试集按"见过的物种"、"少见的物种"和"从未见过的物种"分成三组。第二个是Objaverse,包含1000个来自三维资产库的样本,涵盖各种奇特的人形和非人形结构,专门用来测试系统对离谱新奇目标的适应能力。
衡量标准主要有两类:一类是位置误差(关节位置猜得有多准,单位是厘米),另一类是旋转误差(关节角度猜得有多准,单位是度)。
在旋转误差这个最核心的指标上,V2相比V1实现了大幅跃升。V1用预测网格(实际使用时的真实情况)时,三种动物分组的平均旋转误差大约在20度左右;V2则把这个数字压到了约10度。更值得关注的是在"从未见过的骨架"这组:V2达到了6.54度,反而比"见过的骨架"组(10.73度)和"少见的骨架"组(14.38度)更低。原因在于,从未见过的骨架测试集里,运动类型以走跑跳这类常见动作为主,一旦坐标系通过参考配对锚定好了,这类动作的旋转推理反而比较容易。
与其他基线方法(HRNet、ViTPose、VIBE、GLoT)的对比同样一目了然。这些方法的旋转误差普遍在20度到26度之间,而V2全部低于15度,在未见骨架上更是达到6.54度,差距相当显著。
在效率上,V2把整体推理时间从V1的20多分钟压缩到不足1分钟,这20倍的加速完全来自两个设计决策:去掉网格重建,以及用神经网络替代迭代式IK求解。
---
六、系统的局限——研究团队自己说了什么
任何技术都有边界,研究团队对此相当诚实。
第一个局限是运动分布的问题。系统的旋转预测能力建立在训练数据所覆盖的运动类型上。如果你硬要让一个四足动物骨架做出"双手举起过头顶"这种完全反自然的动作,系统可能会给出不合理的旋转结果,因为它从来没在训练数据里见过这种组合。解决这个问题的直接方法是扩大训练数据的多样性,覆盖更多骨架-动作的组合。
第二个局限是场景假设。现在的系统假设画面里只有一个主体,镜头运动不太剧烈,也没有严重的遮挡。现实中那种人群拥挤、画面混乱、主体时隐时现的视频,系统处理起来效果会打折扣,因为这类情况在训练数据里很少出现。
第三个局限是数据覆盖的不均匀。Truebones Zoo里大约只有几十种动物的数据,每种动物的序列数量差异悬殊。对于数据稀少的物种,旋转质量的上限被数据量卡住了,而不是被模型能力卡住的。
---
说到底,MoCapAnything V2 做的事情,是把一个"两步走"的问题变成了一个"一口气完成"的问题,并且找到了解开旋转歧义这把锁的正确钥匙。这把钥匙的形式出乎意料地简单:只需要目标骨架的一帧参考动画,就能让系统知道这副骨架"说话的语言"是什么。
对普通人来说,这意味着未来的游戏开发者、动画创作者、甚至教育软件制作者,可能只需要一段手机视频,就能让各种形态的虚拟角色重现那段动作——无论是人形机器人、幻想生物还是写实动物,都不需要昂贵的专业设备,也不需要等待漫长的处理时间。
这项技术目前还处于研究阶段,但它描绘的那个方向——让动作捕捉变得像拍照一样简单、适用于任意角色——已经不再是遥不可及的设想。有兴趣深入了解技术细节的读者,可以通过arXiv编号2604.28130找到完整论文,或访问项目主页 animotionlab.github.io/MoCapAnythingV2 查看演示视频。
---
Q&A
Q1:MoCapAnything V2 需要什么输入才能给虚拟角色生成动作?
A:MoCapAnything V2 需要两样东西:一段包含运动主体的普通视频(比如手机拍的人走路或动物奔跑的视频),以及目标虚拟角色的骨架信息,包括骨架结构、休息姿态,还有至少一帧已知关节旋转的参考动画数据。这帧参考数据通常在角色的绑定文件里自带,不需要额外制作。
Q2:MoCapAnything V2 和 V1 相比具体快了多少,精度有没有下降?
A:MoCapAnything V2 的推理速度比 V1 快了约20倍,处理120帧视频从超过20分钟压缩到不足1分钟。精度方面非但没有下降,旋转误差反而从 V1 的约20度降低到约10度,在从未见过的骨架上更达到6.54度。速度和精度实现了同步提升,主要原因是去掉了耗时的三维网格重建步骤,并用可学习的神经网络替代了传统的数学IK求解器。
Q3:MoCapAnything V2 能处理哪些类型的角色骨架?
A:MoCapAnything V2 在设计上支持任意骨架拓扑结构,涵盖了人形、四足动物、鸟类等各种结构的角色,系统支持最多150个关节的骨架。实验中在Truebones Zoo数据集上测试了上百种动物,以及Objaverse里各种结构奇特的人形和非人形三维资产,对从未见过的新骨架同样能给出合理的动作结果。