动作数据集
动作数据集为运控训练提供参考动作。用于分发的 minimal 格式与预计算训练格式彼此 独立,训练只能读取后者。同步的机器人状态、参考动作和相机录制见 遥操数据集。
下载预构建数据集(推荐)
python scripts/setup/download_assets.py --only robots data
下载后先预计算所有已下载数据集,再把合并后的预计算数据集根目录用于训练:
python train_mimic/scripts/data/precompute_dataset.py \
data/datasets --outdir data/datasets_precomputed --jobs 8
python train_mimic/scripts/train.py --motion_file data/datasets_precomputed
如需自定义构建,继续阅读下文。
录制 Pico clips
使用交互式 Pico 录制脚本,从实时 body tracking 生成训练可用的 NPZ clips:
pip install -e '.[pico4]'
python scripts/run/record_pico_motion.py
录制器会先启动 Pico receiver 和实时 Retarget viewer,再等待输入 clip 名;
因此终端空闲时预览仍会持续运行。输入动作语义名后,用 R 开始录制、S
保存、D 丢弃、N 输入新名字、Q 退出。保存的 clip 会写入
data/pico_motion/clips/,文件名格式为 <semantic_label>_<timestamp>.npz;不会写
每段 clip 的 JSON,因此可以手动改名或删除。
将所有已录制 clips 构建为标准 HDF5 shard 数据集:
python train_mimic/scripts/data/build_dataset.py \
--spec data/pico_motion/pico_recorded.yaml --force
预处理后至少需要保留一段有效 clip。
自定义构建
数据主线:typed source YAML -> preprocess/filter -> minimal HDF5 shards -> precomputed training dataset
python train_mimic/scripts/data/build_dataset.py \
--spec train_mimic/configs/datasets/twist2.yaml
输出目录结构
data/datasets/<dataset>/
└── shard_*.h5
data/datasets_precomputed/<dataset>/
└── shard_*.h5
- 若 spec 包含
bvh或npzsource,完整 dataset builder 会在转换期间使用临时clips/目录,并在 shard 写入完成后删除。重新 build 不会复用已转换 clips。 - 若 spec 全部是
pkl或seed_csvsource,builder 会直接并行产出 shard,默认不写中间 clip 文件 build_dataset.py只写最小分发数据集,不执行 FK 预计算。precompute_dataset.py会写出独立的训练数据集,里面包含最小运动数据以及预计算的 joint velocity 和 body FK/velocity。- 训练只接受预计算后的数据集目录。它会递归发现指定根目录下的预计算
*.h5shard,因此使用data/datasets_precomputed可以一起训练所有已下载数据集。 - 训练会在启动时把所有发现的预计算 motion window 全量加载到内存中。joint velocity 和 body FK/velocity 不会在训练时计算。
YAML spec
示例(train_mimic/configs/datasets/twist2.yaml):
name: twist2
target_fps: 30
preprocess:
normalize_root_xy: true
ground_align: first_frame_foot
sources:
- name: OMOMO_g1_GMR
type: pkl
input: data/twist2_retarget_pkl/OMOMO_g1_GMR
- name: lafan1
type: bvh
input: data/lafan1_bvh
bvh_format: lafan1