2025/10/27 10:34 Show HN: Automate Robot Data Quality Improvement

やっほー、ロボ子!今日はLeRobot Episode Scoring Toolkitについて話すのじゃ!

博士、こんにちは。LeRobot Episode Scoring Toolkit、面白そうですね!これは一体何をするものなんですか?

これは、ロボットの行動データセットを評価して、良いエピソードとそうでないエピソードを区別するツールキットなのじゃ。例えば、視覚的な明瞭さとか、動きの滑らかさとか、衝突がないかとか、色々な品質をチェックできるぞい。

なるほど!品質を数値化するんですね。具体的には、どのような機能があるんですか?

例えば、「視覚的な明瞭さ」では、ぼかしや露出過多、低照度フレームを評価するのじゃ。「滑らかさ」では、関節角度の急激な変化をチェックするぞい。「衝突」は、急な加速度の変化を見て、接触を検出するのじゃ。

すごい!色々な側面から評価できるんですね。Gemini APIも使われているとありますが?

そう!Gemini APIを使って、タスクがちゃんと成功したかを評価するのじゃ。例えば、ロボットが鉛筆を正しく持てたか、みたいなことを判断できるぞい。

なるほど。画像認識で判断するんですね。インストール方法はどうなっていますか?

Python 3.8以上が必要で、リポジトリをクローンして、`pip install -r requirements.txt`で依存関係をインストールするだけなのじゃ。Gemini APIを使う場合は、APIキーを設定する必要があるぞい。

意外と簡単ですね!実際に使うときは、どんなコマンドを叩くんですか?

`python score_dataset.py --repo_id lerobot/aloha_static_pro_pencil --output ./output/lerobot/aloha_static_pro_pencil --threshold 0.5`みたいな感じじゃな。これで、HuggingFaceからデータセットをダウンロードして、スコアリングして、スコアが0.5以上のエピソードをフィルタリングしてくれるぞい。

なるほど!`--threshold`でフィルタリングの閾値を設定できるんですね。他のオプション引数にはどんなものがありますか?

`--nominal`でエピソードの予想される継続時間を設定したり、`--vision_type`でビジョンスコアリングの方法を選んだりできるぞい。`opencv`か`vlm_gemini`が選べるのじゃ。

`opencv`と`vlm_gemini`ですか。Geminiを使わない場合は`opencv`を選ぶということですね。

その通り!あと、`--policy_name`でトレーニングのポリシータイプを設定したり、`--overwrite`で既存のデータセットを上書きするかどうかを設定したりできるぞい。

出力形式はJSONファイルですか?

そうじゃ。`results/{repo_id}_scores.json`に保存されるぞい。コンソールにも各エピソードのスコアが表示されるし、`--output`を指定すれば、フィルタリングされたデータセットも作成されるのじゃ。

トレーニングパイプラインとの統合もできるんですね。ベースラインとフィルタリングされたデータセットでパフォーマンスを比較できるのは便利ですね。

そうじゃ!デフォルトのポリシーはACT(Action Chunking Transformer)で、ステップ数とかバッチサイズも設定できるぞい。WandBロギングもデフォルトで有効なのじゃ。

トラブルシューティングの情報も充実していますね。GeminiのAPIレート制限エラーはよくありそうなので、覚えておきます。

もし、全部のエピソードがフィルタリングされちゃったら、`--threshold`の値を下げるのじゃぞ!

はい、博士!LeRobot Episode Scoring Toolkit、とても勉強になりました。これを使えば、ロボットのデータセットの品質を簡単に評価できますね。

そうじゃろう!最後に一つ、ロボ子。このツールキットを使えば、ロボットのデータセットだけでなく、ロボ子の魅力もスコアリングできるかもしれないのじゃ…!

えっ、私をスコアリングですか!?それはちょっと…、エラーが発生しそうです。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。