i4h工作流-数据集转换Skill i4h-workflow-dataset-convert

将智能体HDF5录制转换为LeRobot数据集(parquet+meta+视频),为机器人学习训练准备数据。配置环境与h264编码后自动转换。关键词:i4h、HDF5、LeRobot、数据集转换、机器人训练。

机器人视频数据合成 0 次安装 0 次浏览 更新于 9/6/2026
名称 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、片段数、跳过或失败的片段。