メインコンテンツまでスキップ

HDF5データセット

HDF5(Hierarchical Data Format v5)は、具身知能分野で広く利用される効率的かつ柔軟なストレージ形式です。階層構造(グループとデータセット)により、マルチモーダルな複雑データの整理・管理が容易で、高速な入出力とクロスプラットフォームでの共有に適しています。

HDF5データのインポート

実運用ではベンダや装置によりHDF5の構成や命名が異なります。プラットフォームは主流の外部コレクタ(例:Piper)に対応済みです。未対応スキーマがある場合は構造情報をご連絡ください。迅速に適合します。

HDF5データのエクスポート

アノテーション済みの mcap/bag/hdf5 入力を HDF5 へエクスポートできます。アノテーションで動作と自然言語指示を対応づけることで、VLA モデルが言語に従って動作できるようになります。

アノテーション手順は:データアノテーション

アノテーション完了後、必要なデータサブセットを選択してエクスポートします。

エクスポート対象の選択

  • グループ数: 1ファイルに含める原始ファイル数(1対1にしたい場合は 1)
  • リフレッシュレート: 1秒あたりのサンプリング頻度(ファイルサイズに影響)

エクスポート後、画面で結果を確認できます:

エクスポート成功

ダウンロードしたデータ:

エクスポート結果

データ構造

出力ファイルはグループ(例:chunk_001.hdf5)単位で、以下のようなツリー構造です。

  • ルート /
  • サブグループ /data, /meta
    • /data 配下はエピソード毎のサブグループ(episode_001, episode_002, ...)
  • /data/episode_xxx に含まれるデータセット:
    • 属性
      • task(英語の指示)
      • task_zh(中国語の指示)
      • score(品質スコア)
    • データ
      • action(関節コマンド,多次元配列)
      • observation.images.*(圧縮画像)
      • observation.state(センサー状態)
      • observation.gripper(グリッパ状態)

例:

HDF5 "./chunk_001.hdf5" {
FILE_CONTENTS {
group /
group /data
group /data/episode_001
dataset /data/episode_001/action
dataset /data/episode_001/observation.gripper
dataset /data/episode_001/observation.images.camera_01
dataset /data/episode_001/observation.images.camera_02
dataset /data/episode_001/observation.images.camera_03
dataset /data/episode_001/observation.images.camera_04
dataset /data/episode_001/observation.state
group /data/episode_002
dataset /data/episode_002/action
dataset /data/episode_002/observation.gripper
dataset /data/episode_002/observation.images.camera_01
dataset /data/episode_002/observation.images.camera_02
dataset /data/episode_002/observation.images.camera_03
dataset /data/episode_002/observation.images.camera_04
dataset /data/episode_002/observation.state
......
group /meta
}
}

読み取り例(Python)

h5py を用いた基本的な読み取り:

import h5py

with h5py.File('chunk_001.hdf5', 'r') as f:
print('top:', list(f.keys()))
episode_001 = f['/data/episode_001']
print('episode_001 datasets:', list(episode_001.keys()))
action = episode_001['action'][:]
print('action:', action)

適用シーンと利点

  • 大規模マルチモーダルの格納(高解像度画像、センサーなど)
  • 既定の圧縮でストレージ効率
  • クロスプラットフォームでの共有と移行
  • 階層構造により複雑タスクに適合

ロボット学習

エクスポートした HDF5 は模倣学習・強化学習・VLA モデルの訓練に直接利用できます。

詳細な手順とコード例:HDF5での学習