当机器人需要"两只眼睛":DUET-DINO 如何让世界模型学会 7-DoF 精细操作
一个机器人的困境
想象你是一个机械臂。你的"大脑"是一个潜在世界模型——它通过观察大量机器人视频学会了预测"如果我执行动作 a,场景会变成什么样"。这个能力让你可以做"想象式规划":在脑子里 rollout 候选动作序列,挑一个最优的去执行。
但你有两个问题:
问题一:你只有一只"眼睛"(侧视相机)。这只眼睛看得到整个桌面,但看不清夹爪附近的细节。你想抓一个杯子,需要精确控制旋转角度让夹爪对齐杯把——但侧视相机在这个距离上分辨率不够,世界模型的预测对旋转动作几乎无感。
问题二:你的世界模型只会预测"粗略移动"。之前的 V-JEPA 2 世界模型在 3-DoF(xyz 平移+夹爪)上还行,但面对完整的 7-DoF(3 平移+3 旋转+1 夹爪),它的预测对细粒度旋转完全失效。你能"想象"到伸手过去,但"想象"不到手腕该怎么转。
DUET-DINO 解决了这两个问题。它给机器人装上了"两只眼睛"——侧视相机+腕部相机——并且让两只眼睛的潜在表征在模型内部互相看见对方。
核心创新:同时跨视角世界建模
DUET-DINO 的架构有三个关键组件:
1. 双视角编码
机器人有两个相机:
- 侧视相机(static side-view):固定在 workspace 旁边,看到全局场景——桌面、物体分布、机械臂整体位置
- 腕部相机(wrist-mounted):装在夹爪上,看到 gripper-centric 的局部几何——夹爪和物体的精细相对位姿
2. 跨视角注意力条件化
这是 DUET-DINO 的核心创新。两个视角的潜在表征不是独立处理的——它们通过交叉注意力块(cross-attention blocks)互相查询:
- 侧视潜在 z_side 作为 Query,腕部潜在 z_wrist 作为 Key/Value → 更新后的侧视表征"看到了"腕部信息
- 腕部潜在 z_wrist 作为 Query,侧视潜在 z_side 作为 Key/Value → 更新后的腕部表征"看到了"侧视信息
3. 视角特定预测头
跨视角条件化后的潜在表征,分别送入各自的预测头 P_side 和 P_wrist。预测头是视角特定的——它们保持各自的动力学专长,但输入已经被"对方的信息"丰富了。预测头架构沿用 V-JEPA 2 的设计,预测下一帧的潜在表征。
训练损失结合了 teacher-forcing(单步预测)和 autoregressive rollout(K=2 步滚动预测),在 DROID(62,877 轨迹)+ RoboArena(5,856 轨迹)上从头训练 120k 步。
为什么 DINOv3 比 V-JEPA 2 好?
这是论文最意外的发现之一。V-JEPA 2 是专门为视频理解训练的 1B 参数模型,DINOv3 是"只"840M 参数的图像编码器。按理说 V-JEPA 2 应该更好——它理解时序动力学。
但实验显示相反:
| 模型 | 腕部视角 Reach 成功率 |
|---|---|
| V-JEPA 2 单视角腕部 | 37% |
| DINOv3 单视角腕部 | 79% |
| V-JEPA 2 DUET | 41% |
| DINOv3 DUET (DUET-DINO) | 92% |
DINOv3 虽然是图像编码器(不理解时序),但它的特征空间对空间几何变化更敏感——旋转一点点,DINOv3 特征就有明显响应,而 V-JEPA 2 特征几乎不变。
这和近期"白盒方法复兴"的发现同构:不是参数量大的模型就更好——表征空间的内在结构(DINOv3 对空间几何的敏感性)比规模更重要。
7-DoF 规划:从"粗略移动"到"精细操作"
之前的潜在世界模型规划主要在 3-DoF 上工作(xyz 平移+夹爪开关)。DUET-DINO 扩展到完整 7-DoF:
- 3 维平移(Δx, Δy, Δz)
- 3 维旋转(Δroll, Δpitch, Δyaw)
- 1 维夹爪(Δgripper)
关键创新:归一化双视角目标成本。不是简单相加 ‖z_side - z_goal_side‖ + ‖z_wrist - z_goal_wrist‖——因为两个视角的潜在空间尺度不同。DUET-DINO 对每个视角的成本做归一化后再组合,避免某一个视角主导规划。
实验结果:三个任务的完整画像
Task 1: Reach(到达)
10 个不同位置的物体,机械臂从 home pose 出发到达目标位置(5cm 精度内)。
- V-JEPA 2-AC*(官方 checkpoint):55%
- V-JEPA 2 DUET:41%(训练更久反而更差!)
- DINOv3 单视角侧视:18%
- DINOv3 单视角腕部:79%
- DINOv3 独立双视角:78%
- DUET-DINO:92%(FPE 仅 5.4cm)
Task 2: Angled Reach(角度到达)
需要同时满足位置(5cm)和朝向(12°)精度。
- V-JEPA 2-AC*:2.5%(几乎完全失败)
- V-JEPA 2 DUET:25%
- DINOv3 独立双视角:55%
- DUET-DINO:72.5%(FAE 仅 22.7°)
Task 3: Grasp and Lift(抓取抬起)
最复杂的任务:需要接近物体、对齐夹爪、闭合、抬起。在视觉分布偏移(5 种背景×5 种物体配置×4 任务=100 次评估)下:
- DINOv3 单视角腕部:25%
- DINOv3 独立双视角:45%
- DUET-DINO:63%
为什么"独立双视角"不够?
论文的关键 ablation:独立训练两个视角的预测头,然后简单组合它们的规划成本。结果:78% reach、55% angled-reach——比单视角好,但远不如 DUET-DINO 的 92%/72.5%。
差距来自哪里?跨视角条件化让两个视角"知道对方在干什么"。
考虑一个场景:机械臂旋转手腕时,侧视相机看到的画面几乎不变(夹爪在远处看就是一个点),但腕部相机看到的画面剧烈变化。如果两个视角独立预测,侧视预测头会"以为什么都没发生",给出低损失——这个虚假的"一切正常"信号会误导规划器。
DUET-DINO 的交叉注意力让侧视表征"看到"腕部的变化——即使侧视画面本身没变,它的潜在表征会被腕部信息更新,从而产生更准确的预测。这是"信息互补"而非"信息冗余"。
对 AI 研究的启示
1. "判断-闸门解耦"的机器人版本
DUET-DINO 的交叉注意力是一个"闸门"——它控制信息在两个视角之间流动。和 DoM(Difference of Means)检测 reward hacking 的逻辑同构:不是看外部输出(预测的画面),而是看内部状态(跨视角条件化后的潜在表征)。内部状态比外部输出更可靠——这个模式在 AI 安全、可解释性、机器人规划中反复出现。
2. "代理目标陷阱"的机器人版本
V-JEPA 2 的腕部视角预测在 L1 损失上可能不差——它"看起来"在预测合理的画面。但这个代理目标(像素级重建)和真实目标(捕捉动作引起的视觉变化)不一致。V-JEPA 2 学会了"保守预测"——大部分画面不变,损失就低。但这正是它无法支持精细规划的原因。
DINOv3 没有这个问题,因为它的特征空间天然对空间几何敏感——不需要专门训练就捕捉到了旋转引起的变化。好的表征空间比好的预测器更重要——这是"已经解决好的问题通常没解决好"的又一例。
3. "最小干预原则"的架构版本
DUET-DINO 没有重新设计一个全新的世界模型——它保留了 V-JEPA 2 的预测头架构,只增加了交叉注意力块。这个"最小干预"让它在已有基础设施上获得了巨大提升。和 dQwen3.5 只双向化注意力层、保持 RNN 因果的逻辑同构:尊重结构差异比强行统一更优。
4. "指数放大效应"的规划版本
单视角腕部预测器 79% vs DUET-DINO 92%——看起来只差 13 个百分点。但在 100 步规划 horizon 上,每步的微小预测误差会累积放大。DUET-DINO 的 92% 意味着平均每步预测更准一点点,但这个"一点点"在长 horizon 上变成了"能完成"vs"不能完成"的质的差别。这和 log(N)-Questions 中 p^log₂N 的指数放大效应完全同构。
局限与未来
论文诚实地承认了局限:
- 计算成本高:CEM 每步评估 800 个候选动作,无法实时控制
- 代码未开源(论文说"will be open-sourced",目前只有 project page)
- 只在 tabletop 场景验证——是否泛化到更复杂的 manipulation 还未知
结语
DUET-DINO 给了一个干净优美的故事:
- 什么时候需要双视角? 当任务需要精细旋转控制时——单视角的预测对旋转动作不敏感
- 怎么结合双视角? 不是独立预测后简单组合,而是在潜在空间通过交叉注意力让两个视角互相看见对方
- 什么编码器最好? 不是最大的——DINOv3(840M)比 V-JEPA 2(1B)更好,因为它的特征空间对空间几何更敏感
---
*本文是对 arXiv:2609.10506 的深度解读。项目页面:utn-air.github.io/DUET-DINO,代码和模型权重尚未公开。*