← 返回目录
第二节 · 闭环验证 + 探针判决(radio)
① 模型架构
本节不新增架构。闭环用第一节训好的权重原封不动(架构图与 🔥/❄ 标注见第一节)。为探针补训的三种注入不改网络结构,而是把热图画进输入本身:遮挡训练(训练期随机遮黑头部相机,逼模型只能从热图通道取信息)、轮廓叠加(热区轮廓+淡填充直接画在头部 RGB 上)、聚光调制(头部 RGB 逐像素乘热图,热区外变暗)。
为逼迫依赖而补训的三种注入(训练期真实输入样例)
遮挡训练:训练时头部相机以 50% 概率整帧置零(左右腕相机各另有 20% 独立置零),热图走独立通道(右下小图示意)——逼模型从热图找信息
轮廓叠加:热区两级等值线+淡填充直接画进像素(黄=外圈 0.25,红=内圈 0.6)
聚光调制:图像逐像素按热度调亮暗(暗处保留 5% 地板亮度)——不看热区就几乎看不见画面;只作用于头部相机,腕部相机与本体状态不变
三张均为训练管线同款变换从真实数据渲染的输入样例(radio,同一帧)。
② 训练数据与步数
| 模型 | 训练 |
| 基线 A / token 注入 B1(进闭环) | 不重新训练:第一节 10000 步检查点原封不动 |
| 遮挡训练 | radio 183 集,LoRA 微调 2000 步 |
| 轮廓叠加 | radio 183 集,LoRA 微调 2000 步 |
| 聚光调制 | radio 183 集,LoRA 微调 2000 步 / 6000 步两档 |
③ 可训与冻结参数
与第一节相同(轻量法):可训 🔥 = 注入模块 + 动作专家列 LoRA + 动作头 4 投影(约 1%);冻结 ❄ = SigLIP + Gemma + 动作专家列本体。
④ 评测方式:闭环怎么跑 + 探针怎么做
闭环:官方评测协议真跑任务——仿真器里机器人从头执行,注入臂的热图由 oracle(仿真器内实时读物体位姿+实例分割)逐帧现算,相当于喂"完美预测器"。探针:不跑任务,直接手术模型输入看损失反应,判断模型到底用没用热图。
⑤ 结果与结论
rollout 视频(结果 + 闭环评测实际输入原貌)
基线 · instance 309 · 成功 · 36 秒
看点:~15s 到咖啡桌前伸手,~25s 抓起收音机,末段完成开启
注入 + oracle · 同一 instance · 失败 · 108 秒
看点:全程在咖啡桌附近徘徊、多次伸手,未完成开启
oracle 三联 · instance 309(实拍 | 热图 | 叠加)
闭环评测实际输入原貌:光斑锁定目标,机器人未利用
口径说明:三联视频为闭环评测当时实际使用的 oracle 输出原貌(表面按当时实现整面标注);该实现与训练 GT 的"接触区一小块"口径存在差异,已记入对账。
诊断:为什么 radio 上逼不出依赖
radio 场景固定、物体固定、183 条演示动作高度一致:关节状态(本体感受)加腕部相机即可拟合训练集,头部相机的空间信息对模仿目标冗余,梯度没有压力去利用热图。这是任务性质——由此转入第三节:换到"不同 demo 收拾不同物体"的 task-0003,让视觉消歧成为拟合必需。
结论:闭环上完美热图没有带来成功率提升(基线 1/10,注入+oracle 0/10);探针判决五种注入全部未使用热图的空间信息——拿掉热图损失不升,翻转热图损失也不升,而拿掉头部图像损失明确上升。诊断为任务性质:radio 演示动作可由本体感受+腕部相机拟合,头部空间信息冗余,输入侧注入没有梯度压力。由此转入第三节:换需要视觉消歧的 task-0003,热图改作监督信号。
口径细节(协议 / oracle / 探针定义 / 与训练 GT 的差异)
| 项 | 值 |
| 闭环协议 | OmniGibson public_test,10 实例 × 1 rollout,上限 3225 步;q_score = 满足谓词/总谓词 |
| oracle | 仿真器内实时读物体位姿+实例分割逐帧计算;表面标注为当时实现的整面口径,与训练 GT(接触区一小块)存在分布差异;对结论影响有限(探针显示模型对热图零依赖) |
| 依赖探针 | 同批样本三遍前向:正常 / 置零热图 / 置零头部图像;报损失变化均值(8 批 × 32 样本) |
| 误导探针 | 热图上下+左右翻转后前向;与正确热图同样本同噪声配对 |