2014年,深度学习第一次在视频动作识别上打败了手工特征。那是个标志性的时刻,因为在那之前的两年里,一个叫"密集轨迹"的老派方法一直压着神经网络打,没人相信机器能自己学会理解动作。
十年后,机器人领域正在经历一场性质相似但更棘手的困境。
这次的问题不是"能不能识别动作",而是"能不能让一个AI大脑同时指挥不同身体的机器人"。听起来有点玄乎,但说白了就是这么回事:你训练出一个很聪明的世界模型,它能预测"如果机器人这样动,接下来会发生什么",但这个模型只认识一种机器人的语言。换一个机器人,它就懵了。
这篇来自NVIDIA、布朗大学、哥伦比亚大学等机构联合团队的论文,叫做《Hydra-0》,试图解决的正是这个问题。他们的答案挺朴素的:别教AI说各种机器人的"方言"了,教它看懂"像素往哪儿飞"就行。
为什么机器人之间互相听不懂
先说说这个问题到底有多顽固。
每个机器人都有自己的"母语"。工业机械臂说的是关节角度,末端执行器说的是空间坐标,人手做示范时根本没有"坐标"这回事。
**同样的末端执行器指令,装在不同结构的机器人身上,会产生完全不同的可见运动轨迹。**
这句话是整篇论文的起点,也是最容易被忽略的技术难点。想象你让两个人做"向前伸手"这个动作,一个人手臂长,一个人手臂短,虽然指令一样,但摄像头拍到的画面完全不同。如果你想训练一个AI去"看懂"这个动作会产生什么后果,你没法直接喂给它"向前伸手"这四个字,因为这四个字在不同身体上意味着不同的像素运动。
现有的很多世界模型(
**世界模型**:一种能够预测"如果执行某个动作,环境会如何变化"的AI系统,相当于给AI装了一个内心的物理模拟器
)就卡在这个地方。它们通常是针对某一种机器人训练的,用的是那个机器人专属的关节指令或末端坐标。这就导致一个尴尬的局面:你想用海量的、来自不同机器人、不同场景的视频数据去训练一个通用模型,但这些数据的"动作标签"格式根本对不上,没法直接混在一起训练。
这不是危言耸听。论文里提到的相关数据集,光是列出来就有DROID、ABC-130k、MolmoAct2、EgoDex、Deform360等七八个来源,涵盖单臂机械臂、双臂机器人、人手示范、手持夹爪等各种形态。这些数据加起来有超过2200小时的视频,如果不能被统一利用,那就是巨大的浪费。
如果继续用各家机器人自己的坐标系去训练,会发生什么?
答案在论文的实验数据里写得很清楚:用传统的相对6D末端执行器动作表示(也就是Cosmos 2.5基线模型采用的方式)训练出的模型,在夹爪运动的预测误差上,平均达到34.28像素,而改用本文提出的新方法后,这个误差降到了3.29像素,足足下降了90.4%。这不是简单的优化,这是表示方式本身的问题。
动作流:把所有机器人的语言翻译成一种通用语
Hydra-0的核心创新,叫做
**动作流(Action Flow)**:一种把机器人动作表示为图像平面上像素运动轨迹的方法,不管是机械臂、人手还是手持夹爪,动作都被统一描述成"画面里的点往哪儿移动"
这个想法乍一听有点反直觉。你可能觉得,机器人的动作难道不应该用更精确的物理量(比如关节角度、力矩)来描述吗?为什么要退回到"图像上的点在动"这么表面的东西?
但仔细想想就会发现,这恰恰是问题的关键。**摄像头拍到的画面,才是所有机器人共享的"最终真相"**。
不管你是六轴机械臂还是人手,不管你的关节结构多复杂,最后呈现在摄像头里的,都是一堆像素点的运动轨迹。动作流跳过了"机器人内部怎么运作"这个环节,直接抓住了"机器人在画面上长什么样、怎么动"这个共性。
这就好比你要给来自世界各地、说不同语言的人讲一个笑话。你没法把笑话翻译成每种语言分别讲一遍(那太麻烦,而且很多笑话翻译过去就不好笑了),但你可以用肢体语言和表情来表演这个笑话,这样不管观众说什么语言,都能看懂发生了什么。如果不这样做,会怎样?你要么放弃跨语言传播,要么雇一大堆翻译,效率极低,而且每种语言的"神韵"还都不一样。动作流干的就是这个"用肢体语言讲故事"的活。
具体怎么实现的?论文给出了两条并行的路径。
第一条路径叫做
**几何感知构造**:当你有机器人的三维模型和摄像头标定参数时,可以精确计算出机器人表面每个点在画面上的投影位置
在这种情况下,系统会在初始画面里挑选机器人表面上可见的一些点,然后利用机器人的运动学模型(也就是关节怎么带动机身移动的物理规律)算出这些点未来会移动到画面的哪个位置。这个计算过程用到了一个叫
**Isaac Lab**的物理仿真环境,NVIDIA自家的GPU加速机器人仿真框架,能够模拟机器人控制器和物理规律的真实交互过程
具体的数学表达是把三维点通过一系列坐标变换(机器人关节变换、相机外参、相机内参)投影到二维图像平面上,只有当这个点确实"看得见"(没有被遮挡、深度合理)时才会被记录下来。
第二条路径是给那些"没有机器人说明书"的视频数据准备的,叫做
**视频构造**:对于只有原始视频、没有机器人几何信息和相机标定的数据集,使用密集光流追踪算法配合语义分割,从像素运动本身反推出动作轨迹
这里用到了一个叫AllTracker的稠密点追踪工具,先把视频里所有能追踪的点都跟踪一遍,然后用一个叫SAM 3的分割模型(
**SAM 3**:Meta开发的一种通用图像分割模型,能够根据文字描述框出图像中对应的物体或区域
)把这些追踪点分成"机器人身体"和"被操作物体"两类。这样即便完全没有机器人的技术文档,也能从纯视频里提炼出动作流数据用于训练。
这两条路径的存在本身就说明了一个设计智慧:训练时可以"作弊"(用视频反推轨迹),但部署时必须"诚实"(用真实物理仿真算出轨迹),因为部署时你还没有执行动作,没法从"未来的视频"里偷看答案。
一个模型,四种看待动作的方式
光有动作流的概念还不够,训练时到底该让模型"盯着"哪些轨迹看,这也是个讲究的问题。
论文设计了四种
**训练时的条件采样模式**:Embodiment(本体)、Object(物体)、All(全部)、None(无),分别对应不同的关注焦点
Embodiment模式意味着模型主要盯着"动作执行者"的轨迹看,也就是机器人的手臂、夹爪,或者人手的运动。这是最主要的动作条件设定方式。
Object模式则反过来,让模型关注"被操作物体"的运动轨迹。这个模式有个特别巧妙的用法:在部署阶段,如果你直接给模型输入一段"你希望物体怎么动"的轨迹(比如从一个人类示范视频里提取出来的),模型反而能推断出"要让物体这样动,机器人应该怎么做"。这就是后面要讲的"逆向模式"的伏笔。
All模式是个保险措施,当语义分割不够准确、分不清哪些轨迹属于机器人哪些属于物体时,就把所有轨迹(包括没分类的)都扔进去,让模型自己去找规律。
None模式则完全不给任何轨迹条件,相当于让模型只靠文字和图像做预测,这是一种
**条件丢弃(Conditioning Dropout)**:训练时故意不提供某种条件信息,目的是让模型不会过度依赖这个条件,保持泛化能力
的经典技巧。
为什么要设计这么多种模式,而不是简单地"只训练一种"?
这就像一个厨师,如果只学过"看菜谱做菜",那哪天没有菜谱他就会束手无策;但如果他既学过看菜谱,也学过看食材临场发挥,还学过完全凭直觉做菜,那他的适应能力会强得多。如果Hydra-0只用一种固定的训练模式,那部署时遇到任何跟训练时不完全匹配的情况(比如某个数据源的物体分割标注缺失),模型可能直接失效。多模式训练相当于给模型的"应变能力"上了一份保险。
从静态图片到动起来的视频:技术细节
光说轨迹还不够,怎么把这些轨迹变成能指导视频生成的信号,这里有一套精巧的工程实现。
论文借鉴了两个前人的思路,一个叫ATI,一个叫Wan-Move(
**ATI和Wan-Move**:两种已有的轨迹条件视频生成方法,ATI用高斯传播的方式把初始帧特征沿轨迹扩散,Wan-Move则是把首帧的外观特征沿着潜在轨迹搬运
),Hydra-0把这两种思路结合并做了机器人化的改造。
具体来说,系统会先把初始画面编码成一个
**潜在特征(Latent Feature)**:神经网络内部对图像信息的压缩表示,不是直接的像素值,而是网络"理解"出来的一种抽象编码
然后针对每一条被选中的轨迹,从这个初始特征图里"采样"出一个源特征,再用高斯权重把这个特征沿着轨迹未来的位置"传播"出去。你可以把这个过程想象成往水面上扔一颗石子,涟漪会沿着预先设定好的路径扩散,而不是随机四散。
这里有个很实际的工程细节,值得单独说一说:系统在计算传播权重的时候,只取权重最大的两条轨迹参与计算(论文里叫TopK,K取2),而不是把所有轨迹都加起来平均。这是为了避免不同轨迹的信息在传播过程中互相"打架"、糊成一片,导致生成的画面细节模糊。
除了传播特征之外,系统还额外算了一个
**存在门控(Presence Gate)**:一个0到1之间的数值,标记画面上哪些区域是被轨迹信息覆盖的,哪些区域是原始未修改的背景
这个门控信号让视频生成的骨干网络能区分"这里有明确的动作指令"和"这里只是普通背景,按自己的理解生成就行",避免动作信息污染到不该动的区域。
这套动作条件信号最终会跟视频生成模型的主体架构对接。论文测试了三种不同的
**视频生成骨干网络**:Cosmos 2.5和Wan2.2的两个变体(I2V-A14B和TI2V-5B),都是当前比较先进的开源或半开源视频生成大模型
在Cosmos 2.5上,因为它的隐空间只有16个通道,团队额外加了一个17通道的"动作侧输入"(16个传播特征通道加1个门控通道)。在Wan2.2的两个变体上,处理方式略有不同,但核心思路是一致的:把动作条件作为一种视觉线索,跟原本的图生视频(I2V)条件拼接在一起送进模型。
值得一提的是,训练过程中原始的视频生成模型骨干权重是被冻结的,只有一小部分参数在被微调,这部分参数用了
**LoRA(低秩适配)**:一种参数高效微调技术,不改变原模型的绝大部分权重,只在关键层插入小规模的可训练矩阵,大幅降低训练成本
具体用的是64秩的LoRA模块,加在注意力机制的几个关键投影层上。这个选择背后的逻辑是:预训练的大模型已经学到了非常丰富的视觉生成能力,没必要从头训练,只需要"教会"它理解动作流这一种新的输入信号就够了。
实验结果:数字不会说谎
说了这么多设计思路,那实际效果到底怎么样?
论文在五个不同的数据集上做了系统评测:XVLA-Soft-Fold(布料折叠)、Deform360(可变形物体操作)、DROID(大规模单臂机器人数据)、MolmoAct2(双臂机器人)、ABC-130k(双臂机器人)。评测指标包括图像质量(PSNR、SSIM)、动作准确度(物体和夹爪的端点误差EPE,单位是像素)、以及视频分布质量(FID、FVD)。
先看一组关键对比数字:
| 数据集 | 模型 | 物体流误差(EPE)↓ | 夹爪流误差(EPE)↓ | FVD↓ |
|---|---|---|---|---|
| XVLA-Soft-Fold | Cosmos 2.5基线 | 6.65 | 35.78 | 479.9 |
| XVLA-Soft-Fold | Hydra-0 (Wan2.2 A14B 4步) | **3.47** | **3.20** | **238.5** |
| Deform360 | Cosmos 2.5基线 | 20.02 | 47.85 | 474.5 |
| Deform360 | Hydra-0 (Wan2.2 A14B 4步) | **6.86** | **5.06** | **166.5** |
| DROID | Cosmos 2.5基线 | — | 28.45 | 295.4 |
| DROID | Hydra-0 (Wan2.2 A14B 4步) | — | **3.13** | **118.6** |
这几组数字放在一起看,意味着什么?意味着在几乎所有场景下,改用动作流之后,夹爪运动的预测误差都下降到了个位数像素,而原来的基线模型误差普遍在三十到四十像素之间。这不是零点几个百分点的小幅优化,是数量级的差距。
平均下来,论文报告的最佳配置(Wan2.2 A14B加四步蒸馏采样)相比Cosmos 2.5基线,机器人运动误差降低了90.4%,物体运动误差降低了60.2%。
**这两个数字放在标题里,是因为它们确实撑得起这个位置。**
不过论文里也有个诚实的地方,值得说一说:VLM(视觉语言模型)打分这一栏,Hydra-0并没有全面领先,有些情况下甚至比不上原来的Cosmos 2.5。作者的解释是,VLM打分评估的是"画面看起来物理上合不合理、时序上连不连贯",而不是"动作有没有精确按照指令执行"。换句话说,一个模型可能生成了一段画面很流畅、很真实的视频,但机器人的手实际移动位置跟指令要求的差了十万八千里,VLM可能看不出这个偏差,但EPE指标一下就能测出来。这提醒我们,单一评测指标永远不够全面,得多个维度一起看才靠谱。
数据不够怎么办:多机身预训练的价值
除了准确度提升,这篇论文还测试了一个很实际的问题:如果某个新任务只有很少的训练数据,动作流这套框架能不能帮上忙?
他们用了六个来自Interactive World Simulator(IWS)数据集的任务做测试,包括双臂搬箱子、双臂理绳子、单臂抓取等。测试方式是逐步增加训练数据比例(从1%到100%),比较两种起点:一种是直接从原始Wan2.2权重开始训练(论文称为Ours PT),另一种是先经过多机身动作流预训练,再针对新任务微调(论文称为Ours MT)。
结果很直接:**在零数据(0%)的情况下,经过多机身预训练的模型在所有六个任务上,LPIPS、物体流误差和FVD三项指标都优于没有预训练的对照组。**
这个发现的意义在哪儿?
想象你要教一个完全没有厨艺经验的人做一道新菜。如果他之前从没进过厨房,你得从怎么拿刀、怎么开火教起,学习曲线会很陡。但如果他之前已经在其他菜系里练习过刀工和火候控制,哪怕这道新菜他没做过,他也能凭经验很快上手。多机身预训练干的就是这个"练刀工"的活,它让模型提前学会了"动作会怎样影响画面"这个通用规律,等真正遇到新任务时,只需要少量数据做"风味调整"就够了。
如果不做这个预训练会怎样?论文的对照数据给出了答案,没有预训练的模型在零数据情况下三项指标全面落后,而且这个任务特定的世界模型(IWS baseline)从零训练,表现更差。这说明单纯堆砌某一个任务的训练数据,效果远不如先建立跨任务的通用理解,再做针对性微调。
论文还发现一个有意思的现象:大部分性能提升在数据量达到20%的时候就已经趋于平稳,从20%涨到100%,各项指标的变化幅度都不超过7%。这意味着如果你的应用场景数据采集成本很高,可能根本不需要收集"完整"的数据集,收集五分之一的量就足够训练出接近上限的效果。
推理速度:从实验室到真实机器人的距离
一个模型光是准确还不够,如果生成一段视频要等半天,机器人早就撞墙了。论文对推理速度也做了系统优化。
这里用到三个层层递进的技术。
第一层是
**因果自回归转换**:把原本需要一次性生成整段视频的"双向去噪"过程,改造成分块、逐块生成的模式,每一块只依赖前面已经生成好的内容
这个改法借鉴了一个叫LongLive-2.0的技术,好处是能重复利用之前算好的内容(通过一种叫KV缓存的机制),不用每次都从头计算整个序列。
第二层是
**少步蒸馏**:训练一个更小、更快的学生模型,去模仿原本需要50步去噪才能生成的效果,学生模型只需要4步就能达到接近的质量
这用到了一个叫DMD2的蒸馏技术。
三个阶段的速度对比很直观:双向基线模型每生成一段视频要20.92秒,因果自回归版本降到12.48秒(快了1.68倍),最终的少步蒸馏学生模型只需要1.31秒(快了整整16倍),换算成帧率,从每秒3.87帧提升到每秒62帧。
这个速度提升为什么重要?如果一个世界模型要用来实时评估机器人的动作是否安全、是否会导致失败,那推理速度慢就意味着"来不及反应"。16倍的加速,是从"理论上可行"到"实际能用"之间那道关键的门槛。
反过来想:从物体动作反推机器人动作
前面讲的都是"给定机器人动作,预测会发生什么"的正向逻辑。但这篇论文最有意思的部分,恰恰是它的反向玩法。
论文管这个叫
**世界动作模型(World Action Model)**:不再给模型提供机器人自身的运动轨迹,而是只给它"你希望物体怎么动"的轨迹,让模型反推出应该采取的机器人动作
这个思路的起点是一个很朴素的观察:人类在教机器人干活的时候,往往展示的是"这个东西应该怎么被移动",而不是"我的手应该怎么运动"。如果你想叠一件衣服,你脑子里想的是"这一角要翻到那一角上面",而不是"我的手腕要转多少度"。
技术实现上,这套系统在训练时只用desired object flow(
**期望物体流**:从人类演示中提取出来的、被操作物体本身的运动轨迹,不包含操作者的手部或机械臂的轨迹信息
)来驱动模型,模型会在内部生成一段"隐含了兼容机器人动作"的视频特征,然后一个专门训练的
**动作头(Action Head)**:一个轻量级的神经网络模块,负责把视频模型内部的抽象特征"翻译"成机器人能直接执行的具体动作指令,比如关节角度或末端位置
把这些抽象特征转换成机器人真正能执行的指令。
这套动作头的训练方式也值得说一说:论文用的是配对的真实机器人执行数据,而且明确说了不需要是"成功的专家示范",失败的尝试也能用来训练,因为不管成功还是失败,只要记录下了"机器人做了什么动作、产生了什么运动结果"这对信息,就足够让动作头学会这个映射关系。
这是一个挺重要的设计取舍。如果非要用完美的专家示范来训练,那数据收集成本会非常高,而且专家示范本身就很稀缺。允许失败案例参与训练,相当于把原本被浪费的"失败经验"也利用起来了,这跟人类学习走路的过程有点像,没有人是只靠成功的尝试学会走路的,摔倒的经验同样在塑造肌肉记忆。
论文用了一个真实的柔性管道弯折任务来验证这套逆向系统。从一段人类示范视频里提取出物体(管道)应该怎么弯曲的轨迹,喂给Hydra-0,模型生成出一段"兼容的机器人动作"的视频,动作头把这段视频的内部特征转换成真实的机器人指令,最终机器人真的完成了这个任务,而且整个过程没有用到任何针对这个具体任务的专家机器人演示数据。
开环策略评估:不用真机器人也能打分
除了预测和控制,这篇论文还展示了一个挺实用的应用场景,用生成的视频来评估其他机器人策略的好坏,而不用真的把机器人拿出来跑一遍。
这套流程叫
**开环策略评估(Open-Loop Policy Evaluation)**:给定一段机器人已经执行过的动作轨迹,用世界模型"重放"出这段动作会导致的结果画面,然后判断任务是否成功,而不需要重新运行真实机器人
之所以叫"开环",是因为整个过程中,策略(也就是决定机器人下一步该做什么的AI)不会根据生成的画面做任何调整,动作轨迹是提前录制好、固定不变的。
论文在一个叫RoboLab的基准测试平台上,评测了五种不同的预训练机器人策略:π0、π0.5、GR00T N1.7、Cosmos-3 Edge和Cosmos-3 Nano。每个策略在六个任务上跑十次,总共300次实验,然后拿Hydra-0生成的评估结果去跟真实环境的成功率、以及人类评委的判断做对比。
结果是**皮尔逊相关系数达到0.96,斯皮尔曼相关系数达到0.93,平均绝对误差只有5.7个百分点。**
这个数字意味着什么?相关系数接近1,说明生成的"虚拟评分"跟真实世界的成绩几乎是同步变化的,如果一个策略在真实世界里表现好,Hydra-0生成的画面里它大概率也表现好。这对机器人研发有直接的现实价值:想象一个公司要测试100种不同的机器人控制策略,如果每一种都要在真机器人上跑好几十次实验,那时间和硬件成本会非常高,而且真实测试还有磨损、安全风险等麻烦。**如果能用一个足够准的虚拟环境先筛一遍,把最有希望的几个策略挑出来再上真机测试,效率会提升一大截。**
如果这套虚拟评估完全不准会怎样?那它就只是个花哨的演示,没有实际用途,公司该测多少次真机测试还得测多少次,一分钱都省不下来。0.96的相关系数说明这不是空中楼阁。
数据从哪儿来:七个来源拼出的训练语料
支撑起整套系统的,是一个横跨七个数据源、超过2200小时的多机身训练语料库。
这些数据来源包括:DROID(单臂机械臂,313.7小时)、ABC-130k(双臂机器人,1474.7小时)、MolmoAct2(双臂机器人,177.7小时)、EgoDex(人类手部动作,用苹果Vision Pro录制,125.7小时)、Deform360(手持夹爪操作可变形物体,84.8小时)、XVLA-Soft-Fold(双臂布料折叠,25小时)以及一个规模很小的H1-Fold-Clothes人形机器人折衣数据集。
值得一提的是,这些数据在使用前经过了几层过滤。有一个叫
**静态窗口过滤器**:剔除那些画面基本没什么运动的视频片段,标准是可见轨迹在整个窗口内的第90百分位路径长度低于50像素
的规则,还有一个专门针对DROID数据集的规则。
**无内容字幕过滤器**:如果一段视频的语言标注描述里没有实际可执行的动作内容,就把这段数据排除掉
这些过滤规则背后的逻辑很实际:如果训练数据里混进大量"什么都没发生"的静止画面,模型可能会学到错误的先验,误以为动作条件对画面几乎没有影响。
写在后面
读完这篇论文,最让我觉得有意思的一个点,是它对"什么是动作的本质"这个问题给出的一个务实答案。
我们习惯性地认为动作应该用物理量来精确描述,关节角度、力矩、速度,这些才是"真正的"动作表示。但Hydra-0的做法提醒我们,对于一个要理解"动作后果"的AI系统来说,画面里发生了什么,可能比动作本身用什么坐标系描述更重要。这有点像人类观察世界的方式,我们理解别人在干什么,靠的从来不是解析对方肌肉的电信号,而是看他手往哪儿伸、身体怎么动。
论文里那个"失败数据也能用来训练动作头"的细节,也值得单独琢磨一下。大部分机器人学习的论文都在追求"专家示范",好像只有完美的成功案例才有价值。但这里反过来说明,只要你记录下了"做了什么、发生了什么"这对完整信息,不管结果是成功还是失败,都是有用的训练信号。这跟人类反思自己犯过的错误从中学习,逻辑上是一致的。
论文自己也承认,现在的系统在抓取精度上还有厘米级的误差,作者猜测可能跟缺乏深度信息有关。这个问题还没解决,接下来加入深度感知、触觉反馈是不是就能补上这个缺口,还得看后续的实验。
Q&A
Q1:Hydra-0的动作流是什么意思?
A:动作流是把机器人或人手的动作表示为图像画面上的像素运动轨迹,不管是机械臂、双臂机器人还是人手示范,动作都被统一描述成画面里的点怎么移动,这样不同类型的机器人数据就能用同一套格式训练。
Q2:Hydra-0相比传统方法效果提升了多少?
A:论文的最佳配置相比采用传统6D末端执行器动作表示的Cosmos 2.5基线,机器人运动预测误差降低了90.4%,物体运动预测误差降低了60.2%,在开环策略评估中生成结果与真实成功率的相关系数达到0.96。
Q3:Hydra-0的世界动作模型能做什么特别的事?
A:它可以只根据人类演示中物体应该怎么运动的轨迹,反推出机器人应该采取的动作,并通过一个训练好的动作头转换成机器人真正能执行的指令,整个过程不需要针对具体任务的专家机器人示范数据。







