| 名称 | i4h-workflow-dataset-convert |
| 版本 | “0.6.0” |
| 描述 | 将智能体HDF5记录转换为LeRobot数据集(parquet、meta、视频)。当用户要求转换HDF5、准备训练或导出到LeRobot时使用;不用于查看——使用 [[i4h-lerobot-viz]]。 |
| 开源协议 | Apache-2.0 metadata: |
| 作者 | “Isaac for Healthcare Team isaac-for-healthcare-support@nvidia.com” tags: - isaac-for-healthcare - i4h - dataset - lerobot - conversion |
i4h 工作流 — 转换数据集
目的
将智能体HDF5记录转换为LeRobot数据集(parquet + meta + 视频)。当用户要求转换HDF5、准备训练或导出到LeRobot时使用。
基础代码
以下步骤驱动 i4h-workflows 基础代码(workflows/agentic/ 目录)。如需复用现有检出,请将 I4H_WORKFLOWS 设置为其路径(不执行克隆)。否则,本流程会解析当前代码库,或克隆到 ~/i4h-workflows——默认选择此路径,无需提示。在解析后的根目录下运行以下所有命令:(此处省略bash代码)。
基本要点
- 使用生成 HDF5 时相同的
--env。 - 环境配置(事实来源):
workflows/agentic/config/environments/<env>.yaml提供机器人、任务、摄像头以及dataset.*(动作/状态名称、分割、模态)转换器的默认值。 - 输出到
HF_LEROBOT_HOME/<repo-id>。
运行
按顺序运行以下步骤。每一步都是单独的 bash 调用;变量在本地代理的 tmux 会话中持续存在。
步骤1 — 设置并解析 HDF5
请设置 HDF5_PATH 指向真实录制文件(绝对路径)。录制文件来自 teleop、mimic 或 validate(它在每个 runs/eval_* 目录下写入 data/verify.hdf5)。若未设置路径,则会列出候选文件。(此处省略脚本)
步骤2 — 转换
执行转换脚本,指定环境、HDF5路径、仓库ID和h264视频编码,并覆盖现有输出。(此处省略命令)
注意事项
- 必须使用
--video-codec h264。转换器默认的 AV1 编解码器会在微调时破坏 GR00T 的decord视频读取器。 - Scissor SO-ARM 从 YAML 分割生成
meta/modality.json,并为dataset.modality_template_path设置模板。 - G1 locomanip 和 assemble-trocar 使用环境 YAML 中的
dataset.modality_template_path。 - 所有相机流都会调整为环境 YAML 中
policy.image_size指定的大小(可通过--image-size H W覆盖),从而将混合分辨率相机(如头戴相机+俯视相机)标准化为模态配置所期望的尺寸。
验证
${HF_LEROBOT_HOME}/local/${ENV_ID}/meta/info.json存在。- 日志报告保存的片段数。
- 每集视频文件存在于
${HF_LEROBOT_HOME}/local/${ENV_ID}/下。
先决条件
- 已通过 [[i4h-workflow-setup]] 设置工作流(必须存在
.venv)。 - 存在要转换的 HDF5 录制(将
HDF5_PATH设为绝对路径;若未设置或错误,运行块会列出候选)。 - 使用生成 HDF5 时相同的
--env(其 YAML 提供机器人、任务、相机、模态和转换器默认值)。 HF_LEROBOT_HOME设置为<repo-id>的输出位置。
限制
- 必须使用
--video-codec h264;默认 AV1 编解码器会在微调时破坏 GR00T 的decord读取器。 - 所有相机流都调整为环境 YAML 中的
policy.image_size(可用--image-size H W覆盖)。 - G1 locomanip 和 assemble-trocar 需要环境 YAML 中的
dataset.modality_template_path;scissor SO-ARM 从 YAML 分割生成meta/modality.json。
故障排除
- 错误:
.venv未找到 / 模块导入失败 - 原因:工作流未设置。解决:先运行 [[i4h-workflow-setup]]。 - 错误: 输入 HDF5 未找到 - 原因:
--hdf5-path错误或缺失。解决:将HDF5_PATH指向现有录制。 - 错误: 微调时
decord无法读取视频 - 原因:数据集使用默认 AV1 编解码器。解决:使用--video-codec h264重新转换。 - 错误: 模态配置缺失/错误 - 原因:
--env错误,导致机器人/任务/相机/模态默认值与 HDF5 不匹配。解决:使用生成录制时相同的--env。
最终响应
报告源 HDF5、数据集路径、仓库 ID、片段数、跳过或失败的片段。