Potato 把一个机器人演示回合作为一条时间线打开,相机画面在上,机器人自身的信号在下,标注者可以标出任务阶段、判断结果及其原因,并绘制进度曲线。Potato 免费开源,运行在你自己的服务器上,还能对世界模型推演做盲测评估,并测量标注者之间的一致性。
大型机器人数据集中的成功标记并不总是正确。DROID 样本上的一则讨论报告了一个被标为成功的回合,而其中夹爪把物体掉了;核查这些标记需要人来做。审核者需要在每一路相机以及夹爪和力信号中看到同一时刻,因为一次失败的抓取往往先在这些曲线上显现,之后才在视频里明显可见。Potato 的 episode_annotation 方案把相机画面和信号放在同一条时间轴上。多名标注者可以审核同一个回合,Potato 为每一类答案报告一致性。
Potato 中的机器人任务
每一行是 Potato 自带的一个层或方案,链接页面给出了它的配置。
一个回合审核方案
下面的方案启用了全部三个层。标注阶段每个回合只需几秒,一条稠密的奖励曲线则要几分钟,所以大多数项目只开启研究需要的层。
annotation_schemes:
- annotation_type: episode_annotation
name: episode_review
description: "Mark the phases, judge the outcome, and draw the progress."
source_field: episode
layers: [phases, outcome, reward]
phases:
- {name: reach, color: "#4ECDC4", key_value: "1"}
- {name: grasp, color: "#FFD93D", key_value: "2"}
- {name: transport, color: "#6C8AE4", key_value: "3"}
outcomes: [success, partial, failure]
failure_causes: [missed grasp, object slipped, collision]
reward_range: [0.0, 1.0]
series_shown: [gripper, wrist_force]series_shown 决定哪些已记录的信号以轨道形式显示在视频下方。这些轨道的降采样方式会保留最小值和最大值,所以只持续一帧的力峰值也仍然可见。
导入与导出数据
Potato 能导入 LeRobot v2 数据集、RoboMimic 和 ALOHA 布局的 HDF5 文件,以及 RLDS 数据集。Potato 没有 ROS bag 读取器,所以请先把 bag 转换成上述格式之一。导出时写出 LeRobot v2 和一份逐帧的 JSONL 附属文件(episode_jsonl),只读的公开数据集不必为了容纳你的标签而重写。
与 ATLAS、Rerun 和 Foxglove 的分工
ATLAS 是一款用于长时程动作切分的桌面工具,原生支持 ROS bag 和 RLDS,面向单个标注者精确放置边界。Rerun 和 Foxglove 用于可视化和调试机器人数据。Potato 是一款基于网页、可供多人同时使用的回合标注工具,并在每个层上测量一致性:阶段边界用时间 IoU 评分,结果用 Krippendorff's alpha,奖励曲线用 ICC 加 Pearson 相关系数。
常见问题
如何把机器人回合标注为成功或失败,并标出失败发生在哪里?
使用 episode_annotation 方案,开启 outcome 层和 phases 层:前者记录成功、部分成功或失败,以及从你定义的列表中选出的失败原因;后者标出每个阶段的起止时间。标注者做判断时,相机画面和机器人信号都显示在同一条时间线上。
如何对世界模型或视频生成的输出做盲测人工评估?
把同一场景的多段推演作为一个条目载入,rollout_evaluation 方案会把这些推演逐帧锁定、并排播放。各面板可以对每名标注者盲化并打乱顺序,顺序以标注者和条目为种子,保持稳定。标注者标出每段推演开始不合常理的那一帧,说明原因,并选出胜者。Potato 会就“是否发现崩坏”“崩坏在哪里”以及“属于哪类崩坏”分别报告一致性。
延伸阅读
- 如何标注机器人回合:规划一项回合审核研究
- 如何评估生成视频与世界模型:生成视频的评估规程
- 本站的相关页面:计算机视觉和AI 智能体评估