新浪科技 股票

北京大学出手,让AI真正"懂"人体动作

市场资讯 06.19 22:23

(来源:科技行者)

这项由北京大学计算机学院联合AI?机器人公司完成的研究,以预印本形式发布于2026年6月,论文编号为arXiv:2606.15142,题为《MotionVLA: Vision-Language-Action Model for Humanoid Motion》。感兴趣的读者可通过该编号在arXiv平台查阅完整原文。

如果你曾看过那些游戏里的NPC或者科幻电影里的机器人,你大概会注意到一个奇怪的违和感——他们走路的时候脚好像在地板上滑,做复杂动作时四肢会莫名其妙地抖动,或者做到一半动作突然"飘移"了方向。这不是导演的失误,也不是美工偷懒,而是当前人工智能在生成人体动作时面临的一个根深蒂固的技术难题。北京大学的研究团队把这个问题摆上了台面,并提出了一套颇为巧妙的解决方案——MotionVLA。

研究的出发点听起来很朴素:给机器一张场景图片和一段文字描述,比如"一个芭蕾舞演员伸展双臂向左转,然后踮起脚尖做一系列芭蕾动作",让机器生成对应的逼真人体运动序列。但要做到"逼真",远比听上去难得多。人体运动同时包含两种截然不同的信息——一种是慢悠悠的、关于姿态的大框架信息(你的手臂大概在哪里、你的身体朝哪个方向),另一种是快速变化的、关于运动力学的细节信息(你的脚落地时有没有摩擦、你的关节速度是否合理)。这就好比同时录制一首交响乐,既要录下缓慢流动的旋律主线,也要精确捕捉鼓手每一次击打的节奏细节——而过去的方法,却偏偏只用了一台麦克风去录这两种信号。

一、一台麦克风录两种信号,问题出在哪里

要理解研究团队发现的核心问题,可以借用一个录音的比喻来贯穿整个理解过程。人体动作数据,在计算机里是一串数字序列。为了让模型能够处理这些数字,研究者通常先把它们"编码"成离散的符号——就像把一段音乐转换成乐谱上的音符,让语言模型能够逐个预测和生成。这个编码过程,专业上叫做"量化"或者"词元化",可以理解为把连续的声音信号翻译成有限的文字符号。

过去几乎所有的方法,都用同一本"字典"来翻译所有的动作信号。这本共用字典,用专业语言来说叫做"单码本"或"共享码本"。问题就出在这里。研究团队用一种叫做"离散余弦变换"(DCT)的数学工具分析了人体动作数据,这个工具就像一个棱镜,能把混合的光线分解成不同频率的颜色。他们发现了一个惊人的不对称:描述关节位置的信号,是非常"低频"的,就像乐曲里缓慢变化的旋律,只需要5个低频成分就能覆盖整个信号93%的能量;而描述关节速度的信号,是非常"高频"的,就像鼓点中快速变化的节拍,同样的5个低频成分只能覆盖其中37%的能量,相差超过五十个百分点。

这意味着什么?当你用同一本字典来翻译这两种信号时,字典会自然而然地偏向那个信号更"主流"的一方——也就是低频的姿态信息。高频的速度信息,就像乐谱里的细微装饰音,会被字典当成"噪音"悄悄丢掉。结果是:模型学到了如何摆出一个个正确的姿态,但完全丧失了对运动过程中速度和力学细节的感知。时间一长,这种缺失就会积累成明显的视觉问题——脚在地板上无声无息地滑动,身体在转向时莫名地漂移,动作的长序列里充斥着抖动和失真。

研究团队在论文中展示了一个直观的对比:ViMoGen是当时最先进的同类方法之一,但它在生成长序列动作时,到后半段会出现明显的关节错位和身体漂移,这些问题被白色圆圈标注出来;而他们的新方法,从头到尾都与真实动作高度吻合。

二、拆开麦克风,分频道录音——DSFT的设计逻辑

既然用一台麦克风录两种信号会互相干扰,那很自然的想法就是:拆成两台麦克风,分别录。这就是他们提出的"双流频域词元化器"(Dual-Stream Frequency-Domain Tokenizer,简称DSFT)的核心思路。

具体做法是这样的。研究团队首先对人体动作数据的每一个维度做了细致的频率分析,用一个叫做"低频比例"的指标来衡量每个维度的信号有多"平滑"。结果发现,所有维度自然地分成了两大阵营,就像棱镜把白光分成冷暖两侧——一侧是关节位置和旋转角度,信号平稳,低频为主;另一侧是关节速度和根部运动,信号活跃,高频为主。这种分布在两个不同的数据集(HumanML3D和ViMoGen)上都得到了验证,说明这是人体运动数据的一个本质特征,而非偶然现象。

于是他们把人体动作特征向量一分为二。以HumanML3D数据集为例,263维的特征向量被拆成了190维的"基础流"(Base Stream)和73维的"物理流"(Phys Stream)。基础流包含关节的空间位置和旋转角度,物理流包含关节速度和根部动态信息。两个流完全独立地进行频率压缩和编码。

在压缩环节,他们对两个流使用了不同的截断参数。基础流只保留前5个低频成分(Kb=5),因为5个成分就能覆盖86%到93%的能量,已经足够精准。物理流则保留前25个成分(Kp=25),因为速度信号的能量分布在更宽的频率范围内,需要更多成分才能覆盖大部分信息——25个成分大约能覆盖80%的物理流能量。这就像录制古典音乐时,录旋律只需要普通品质的话筒,录打击乐则需要专门的高动态范围麦克风,各用其器,而非强行统一。

压缩完成后,两个流各自经过独立训练的BPE编码器(一种类似文字压缩的技术,能把数字序列变成更紧凑的符号序列),分别生成基础词元序列和物理词元序列。解码时,只需逆向操作即可还原完整的动作数据。

值得注意的是,DSFT生成的词元序列比原来的单流方案更紧凑。在HumanML3D上,单流方案平均每帧需要15.21个词元,而DSFT的Kp=25配置只需要11.24个词元,减少了近四分之一。更关键的是,DSFT在重建质量上大幅超越了单流方案——衡量生成动作分布与真实动作分布差异的rFID指标,从0.9461骤降至0.1868,说明双流独立编码保留了更完整的动作统计特性,而单流编码因为高频信息的丢失,生成的动作分布已经偏离真实数据相当远了。随着物理流保留的频率成分增多(Kp从10增至30),重建质量也持续改善,但序列长度也随之增加,研究团队最终选择Kp=25作为精度与效率之间的最佳平衡点。

三、让两条流汇入同一条河——MotionVLA的生成框架

有了双流编码器,下一步是让语言模型能够理解和生成这两种词元。研究团队选择了阿里巴巴的Qwen3.5大语言模型作为骨干网络,在其上搭建了MotionVLA框架。

他们的设计思路延续了分频录音的比喻。既然物理流的信号依赖于姿态的基础结构——你的脚怎么移动,取决于你的腿处于什么姿态——那么在生成序列时,就应该先生成基础流词元,再生成物理流词元。模型在预测物理细节时,能够通过注意力机制"回头看"已经生成的所有姿态词元,从而做出更准确的物理预测。

具体来说,每个动作样本被表示为一个统一的词元序列:先是一个开始标记,然后是一串基础流词元,然后是一个分隔标记,接着是物理流词元,最后是结束标记。整个序列被当作一个连贯的文本来处理,模型按照从左到右的顺序逐个预测词元,就像写一篇文章一样。

为了让Qwen3.5能够处理运动词元,研究团队对其词汇表进行了扩展。原始词汇表有248,320个词,他们新增了8,195个运动专用词元(基础流和物理流各4,096个,再加上3个结构标记),扩展后总词汇量达到256,515个。

训练分两个阶段进行。第一阶段是"词元嵌入预热":冻结Qwen3.5所有层的参数,只训练新增的词元嵌入(即让模型知道新词元大概处于什么语义空间),用Adafactor优化器跑500步。第二阶段是"LoRA微调":在所有线性投影层上加入LoRA适配器(一种高效的参数微调技术,只需要调整少量额外参数就能让大模型适应新任务),同时继续更新词元嵌入和输出层,在8张H100显卡上跑10个周期。整个训练过程Qwen3.5的原始权重始终保持冻结,既保留了预训练语言模型的通用理解能力,又通过LoRA适配让它学会了运动生成这个新技能。

在推理阶段,模型还引入了一个"相位感知约束":在分隔标记出现之前,模型只允许生成基础流词元;分隔标记出现之后,只允许生成物理流词元。这个约束防止模型在生成过程中把两种流的词元混在一起,确保基础姿态总是先于物理细节生成,维持了整个设计的层次结构。

训练数据方面,对于ViMoGen-228K这个大规模多模态数据集,模型同时使用了41,971条带场景视频的野外视频动作数据和170,942条来自光学捕捉的高质量室内动作数据,前者提供场景条件化的训练信号,后者提供高精度的动作监督。对于HumanML3D,则只使用23,384条带文字描述的动作数据进行纯文本驱动的训练。

四、和其他方法比一比,成绩单说明了什么

研究团队在两个主要测试集上评测了MotionVLA。一个是MBench,这是专门评测动作物理质量的细粒度基准,包含450条测试样本,从八个维度打分:动作与条件的一致性、动作的泛化性、抖动程度、动态程度、脚部漂浮、脚部滑动、身体穿透和姿态质量。另一个是HumanML3D,这是文本驱动动作生成领域的标准测试集,评测指标包括FID(生成分布与真实分布的差距)、R-Precision(文字与动作的匹配准确率)、多样性和多模态性等。

在MBench上,MotionVLA在"动作与条件一致性"这个最核心的指标上取得了0.55的最高分,比上一代最强基线ViMoGen的0.53提高了3.8%。在"脚部滑动"这个直接体现物理真实性的指标上,MotionVLA取得了0.0049的最低值(越低越好),优于ViMoGen-light的0.0051。这意味着用MotionVLA生成的动作,脚在地面上的滑动感明显更小,看起来更像真实的行走和运动。与此同时,MotionVLA在"动作泛化性"上排名第二,在"抖动程度"上也排名第二,全面超越了MDM、T2M-GPT、FineMoGen、MotionLCM、MoMask、MotionDiffuse、MotionCraft等一众知名方法。

值得一提的是,MotionVLA还额外使用了场景图像作为输入条件,而对比方法都只用了文字描述。也就是说,MotionVLA在条件更丰富的情况下取得了更好的效果,这本身就说明场景视觉信息的加入确实能帮助模型生成更符合实际情境的动作。

在HumanML3D上,结果同样令人印象深刻。MotionVLA在"多样性"这个指标上取得了最接近真实数据分布的得分(9.548,真实数据是9.503),在"多模态性"(同一文字描述下动作的变化丰富程度)上取得了2.821,是所有生成方法中最高的。R-Precision、FID和MM-Dist也都保持在有竞争力的水平。研究团队特别指出,在HumanML3D上没有场景图像输入,因此性能提升主要来自DSFT本身的表示质量,而非多模态条件化——这说明双流编码的设计本身就能让模型学到更丰富、更多样的动作表示。

研究团队还做了骨干网络规模的消融实验,对比了0.8B、2B、4B和9B参数量的Qwen3.5模型。结果发现,从0.8B到2B的提升是最显著的,而从2B到4B、9B的提升则越来越小,在某些指标上甚至几乎没有变化。这说明在当前数据规模和训练配方下,2B的模型已经能充分挖掘DSFT词元中包含的信息,更大的模型并不能带来额外的收益,2B因此被定为默认配置,在性能和效率之间取得了最好的平衡。

五、让专家来打分——人类偏好研究的结果

量化指标固然重要,但"看起来像不像真人动的"这件事,最终还是要人来判断。研究团队邀请了五位来自人体动作分析和角色动画领域的专业评估人,对100对动作进行了盲测比较,每对包含一条MotionVLA生成的动作和一条ViMoGen生成的动作,从正面和侧面两个角度同时展示,每条3秒,以20帧每秒的速率播放。评估人不知道哪条是哪个方法生成的,只需要选择"左边更好"、"差不多"或"右边更好"。

五位专家共完成了500次比较。结果是:MotionVLA在64%的比较中被认为更好,ViMoGen只在14%的比较中被认为更好,剩下22%被认为差不多。五位专家的偏好分布相当一致,最低的一位也给了MotionVLA 55%的偏好率,说明这不是个别评估人的偏差,而是稳定的整体感知优势。

六、从虚拟到现实——在机器人上跑起来

研究不止停留在数字上。研究团队还把生成的动作放进了MuJoCo物理仿真器(一个广泛用于机器人研究的物理引擎)进行可视化验证,并且真实部署在了宇树科技的G1 EDU人形机器人上。给定一段文字描述,比如"这个人径直走向房间另一端"、"这个人转身然后走到房间尽头"、"这个人径直走然后转弯",MotionVLA生成运动词元,DSFT将其解码为关节角度轨迹,经过关节映射后在G1机器人上实时执行。三个示例都成功完成了文字描述的动作,验证了整套技术链路在真实硬件上的可行性。

说到底,这项研究做的事情可以用一句话概括:它发现了一个之前没人注意到的根本性问题——把快信号和慢信号塞进同一本字典会导致快信号被悄悄丢掉——然后用一个干净利落的方案解决了它:给两种信号分别建立自己的字典。这个思路本身并不复杂,但它触及的是整个动作生成领域长期以来的一个系统性盲点,效果也确实摆在那里:更少的脚滑、更丰富的动作变化、更符合场景的整体表现,还有真实机器人上跑起来的验证。

当然,这套系统目前还有一些局限,研究团队也坦诚地写了出来:目前只测试了2B这一个主要规模的骨干网络,在更大规模下的行为还不清楚;基础流和物理流的划分方式是固定的,对所有动作类型和序列长度用同一套参数,可能不是所有情况下的最优解;两个流的生成顺序也是固定的,没有根据动作内容自适应调整。未来的研究方向包括更大的骨干网络、更广泛的数据集,以及更灵活的自适应分流和生成策略。

对于关心具身智能、角色动画、人机交互或者机器人控制的读者来说,这篇研究指向了一个值得深思的方向:有效的运动表示,不仅仅关乎压缩率和重建误差,更关乎在离散化之前如何组织和尊重信号本身的物理特性。有兴趣深入探究的读者,可以通过arXiv编号2606.15142找到完整论文,代码也已开源在GitHub的AIGeeksGroup/MotionVLA仓库中。

Q&A

Q1:DSFT双流词元化器为什么能减少脚部滑动问题?

A:脚部滑动本质上是速度信号失真造成的——脚的速度没有在接地瞬间正确归零。传统单码本编码会把速度信号当成低频姿态信号的"噪音"丢掉,导致模型对接地时刻的速度变化不敏感。DSFT把速度信号单独放进物理流,用更宽的频率预算保留了速度的高频细节,模型因此能学到更准确的接地动态,脚部滑动自然减少。

Q2:MotionVLA和普通文本转动作方法的主要区别是什么?

A:最主要的区别有两点。第一,MotionVLA除了接受文字描述,还能同时接受场景图像作为输入,生成的动作会考虑环境上下文。第二,MotionVLA用了双流编码分别处理慢变的姿态信息和快变的速度信息,而普通方法把两者混在同一个编码空间里,导致速度细节容易丢失,长序列里出现抖动和漂移。

Q3:MotionVLA需要多少计算资源才能运行?

A:推理阶段只需要一张H100(80GB显存)GPU即可运行,使用的是参数量为20亿的Qwen3.5-2B骨干网络。训练阶段使用了8张H100,跑了10个训练轮次。研究团队发现,2B规模的模型已经能充分挖掘DSFT词元包含的信息,更大的模型(4B、9B)带来的额外提升很有限,因此2B是性能与效率的最佳平衡点。

加载中...