多任务机器人数据标注 - NUSNiuMu/insight-capture-dashboard GitHub Wiki
多任务机器人数据标注
数据分段、自动标注、人工审核和数据集验收已从采集产品的职责中拆出,独立项目为 robot-dataset-annotator。采集仓库继续负责可靠录制、回放和原始数据完整性;标注仓库负责 任务语义、候选边界、审核决定、批次恢复与训练数据验收。
30 个 rosbag 的生产复盘
本轮从 insight_record_20260811_150758 起处理 30 个包,共检查 566 个源片段,人工通过
491 条 episode、失败 75 段,最终 95,783 帧、约 53.2 分钟训练数据。
| 指标 | 结果 |
|---|---|
| 三相机审核页 | 2,178 页 |
| 最终数据集占用 | 约 17 GB |
| 审核中间产物 | 约 23 GB |
| 纯导出耗时 | 约 3.5 小时,平均 7 分钟/包 |
| 自动候选正确率 | 408/409,99.8% |
| 自动候选召回率 | 408/491,83.1% |
| 自动拒绝误杀 | 83/157,52.9% |
质量门整体可靠,主要成本不在最终 Parquet 写入,而在穷尽视觉审核、三路视频重复编码和任务 中断后的人工恢复。自动门已经适合加速候选确认,但召回率不足,不能直接把自动拒绝当成失败。
本轮还确认旧 schema 的信息损失:一个停顿片段可能包含多次完整操作,而“一片段一个 episode”只能保留其中一次。新 schema 允许一个 source segment 下保存多个按时间排序且互不 重叠的 episode。
独立仓库边界
robot-dataset-annotator/
src/robot_dataset_annotator/
core/ 决策 schema、产物审计、原子状态推进
tasks/ 任务插件;cup-pick-place 是首个插件
adapters/ Insight、rosbag、LeRobot 等外部格式边界
task_specs/ 原子动作、最短帧数和插件入口
cli.py rda 稳定命令入口
skills/ 可迁移安装的 Codex 生产 Skill
AGENTS.md 自动化开发、验证、文档和默认推送约束
CLAUDE.md 与 AGENTS.md 同步提交的兼容说明
依赖方向固定为 CLI → core ← tasks。core 不导入 ROS、OpenCV、PyArrow、LeRobot 或采集
Dashboard;格式依赖留在 adapters,任务语义留在 tasks。以后新增装配、倒水、抽屉、按钮等
任务时,只增加 task spec、插件和标注回归集,不复制整条杯子流水线。
当前项目已包含:
- 显式路径的 session 配置;
- 由真实产物推导的可恢复批次状态机;
- session 注入的 argv 命令模板与默认只读的
rda resume,确认后才用--execute续跑; - 穷尽审核和多 episode 决策校验;
- 可插拔的自动边界接口;
- 纸杯四阶段融合边界插件;
- Insight 低维 Parquet 适配器;
- 标准
process-robot-datasetsSkill; - 跟踪在仓库中的
AGENTS.md/CLAUDE.md,要求代码改动同步文档、测试、提交和推送。
迁移已在 Dashboard 提交 fa53956 完成:采集仓库删除杯子专用脚本、测试、专题文档、
后端分流和 Dataset 页任务选项,只保留通用 bag / auto_pause、LeRobot、UMI 与
ego-hand 导出。旧 process-cup-rosbags Skill 已删除,由独立仓库随附的通用 Skill 取代。
原始 rosbag、审核决定和已生产数据集是生产证据,不作为代码残留删除。
tests/ 只作为本地验证资产保留,被 .gitignore 排除,不上传 GitHub。MANIFEST.in 和
setuptools discovery 同时排除测试路径,wheel 与 sdist 均不包含测试文件。
可迁移路径规则
Skill 和源码禁止写设备绝对路径。执行时如果用户没有给出完整信息,必须先确认:
- 标注框架 checkout;
- 原始录制根目录;
- 审核产物根目录;
- 数据集输出根目录;
- task spec;
- 需要 ROS 或硬件依赖时的容器/运行环境。
确认后由 rda configure 生成本次 session;路径只保存在用户选择的 session 文件中,不写回
Skill。批次恢复一律运行 rda audit,不把终端窗口、PID 或旧 campaign report 当作权威状态。
后续优化顺序
- 三相机交互式时间轴:全片段低帧率覆盖,事件附近 30 Hz 精调;
- 用 566 段已审核数据把自动候选召回率提升到 95% 以上,同时保持高精度;
- 审核代理改为单份低码率 mosaic,减少三视频、mosaic 和页面的重复编码;
- 提供固定版本的 LeRobot validator 容器,避免临时安装覆盖 Jetson PyTorch;
- 增加磁盘预估、低空间停止领取、临时目录原子提交和 provenance hash。
任何效率优化都不应默认取消源片段和必需相机的穷尽视觉审核。新的接受标准必须另行定义并 经过明确批准。