ロボット学習のデータセット品質を検証する方法
LeRobot の動画、Parquet、メタデータファイルを理解し、そのうえで時間同期、画像品質、デモンストレーションの完全性を確認します。
- データセット構造
- 時間同期
- 品質チェック
- トラブルシューティング
データセット構造
seed_rebot_b601_rs/test のような記録済みデータセットは、次のようなレイアウトになっています:
~/.cache/huggingface/lerobot/seed_rebot_b601_rs/test/
├── data/
│ └── chunk-000/
│ └── file-000.parquet ← Numerical frames: state / action / timestamps
├── videos/
│ ├── observation.images.front/
│ │ └── chunk-000/
│ │ └── file-000.mp4 ← Front camera: concatenated video for 50 episodes
│ └── observation.images.wrist/
│ └── chunk-000/
│ └── file-000.mp4 ← Wrist camera: the same arrangement
└── meta/
├── info.json ← Version, fps, frame count, and feature definitions
├── stats.json ← Mean, variance, and extrema for each feature
├── tasks.parquet ← Task descriptions
└── episodes/
└── chunk-000/
└── file-000.parquet ← Per-episode records
3 つのフォーマットが 3 種類の情報を保持します:
| フォーマット | 内容 | なぜこの形式を使うのか? |
|---|---|---|
| MP4 動画 | 両方のカメラからのすべての画像フレーム | 画像はデータセットサイズの 90% 以上を占めます。個々の画像ファイルと比べて、動画圧縮により 1~2 桁のサイズ削減が可能です。 |
| Parquet テーブル | フレームごとの状態、アクション、タイムスタンプ、インデックス | カラムナ形式のストレージにより、テーブル全体を読み込まずに、例えばジョイント 3 の値だけをすべて読むことができます。 |
| メタデータ | 構造、統計、タスク、エピソードインデックス | ローダーや学習プログラムは、他のファイルを解釈するために、まずこれらを読み込みます。 |
タイムスタンプと同期
- 画像は USB 経由で、ジョイントデータは CAN 経由で送られるため、自然とコンピュータに到達するタイミングが異なります。LeRobot は タイムスタンプ を割り当て、同じ論理的瞬間を表す画像・状態・アクションが 1 行にそろうように整列させます。

データセット全体の品質を評価する
学習にデータセットを使う前に、次の 4 つの観点を確認します:

画像をリプレイして確認する
前述のとおり、可視化には lerobot-dataset-viz を、ロボット上でのリプレイには lerobot-replay を使用します。少なくとも エピソード 0、途中のエピソード 1 つ、最後のエピソード を確認してください。最初のエピソードでワークフローを、途中のエピソードでドリフトを、最後のエピソードでオペレータの疲労による品質低下がよく分かります。
リプレイ中は、次の点を確認します:
-
両方のカメラビューが表示されており、黒いフレーム、破損した画像、ストリームのフリーズがないこと。
-
画像がシャープで露出が適切であり、ブロックとグリッパが通して見えていること。
-
アクションと画像が整合しており、グリッパが閉じるとき、画像でもブロックに接触している様子が見えること。
-
エピソードが標準的な初期姿勢から始まり、停止条件が満たされた状態で終了していること。
問題が発生したときの対処
問題の範囲に応じて対処します:
-
少数の不良エピソード(例:エピソード 3 と 17 の画像がぼやけているなど)の場合:その 2 つを削除し、代わりに 2 つ録り直します。
-
広範囲の問題(例:エピソードの半分で照明条件が変わっている、あるいは 1 バッチ全体で動画とアクションがずれているなど)の場合:データセット全体を録り直します。不整合な修正をつぎはぎにするより、データ量が少ない方がまだましなことがあります。
削除後、ツールはデータセットを自動的に再構築します。エピソードインデックスは連番になり、stats.json は再計算されます。エピソードを削除・追加する場合でも、ツールがメタデータを再生成するため、手動で編集する必要はありません。