ロボット動画をトレーニング可能なデータに変換
daft-physical-ai は、Daft 上に構築された新しいオープンソースの Python ライブラリで、物理 AI における生のロボット動画からモデル学習用データへの処理を簡素化します。ハンドトラッキングと報酬スコアリングの2つのユースケースを提供し、遅延実行、バッチ処理、分散実行をサポートします。
物理AIの開発において、生のロボット動画からモデル学習に適したデータを準備するプロセスは、多くの場合、最も時間がかかり面倒な部分です。フレームのアノテーション、エピソードのスコアリング、訓練に適さない実行のフィルタリングなど、ほとんどのチームがこれらのパイプラインを自前で構築しています。この課題を解決するために、Eventual チームは daft-physical-ai をリリースしました。これは Daft 上に構築された新しいオープンソースの Python ライブラリで、生のロボット録画と学習済みモデルの間にある作業を効率化する既製の操作を提供します。
インストールは pip install daft-physical-ai で完了します。各操作は Daft UDF(ユーザー定義関数)として実装されており、任意のパイプラインに組み込むことができ、Daft が遅延実行、バッチ処理、分散実行を処理します。現時点では、ハンドトラッキングと報酬スコアリングの2つのユースケースに焦点を当てており、今後さらに機能が追加される予定です。
ハンドトラッキング(track_hands)は、Daft の画像列を受け取り、手の姿勢の列を返します。MediaPipe(CPU、2D)または WiLoR(GPU、3D MANO キーポイント)を選択でき、どちらも同じスキーマを返すため、パイプラインの他の部分を変更する必要はありません。各手法は追加のインストールオプションとして提供されます:pip install "daft-physical-ai[mediapipe]" または [wilor]。遅延実行のバッチ UDF であるため、データが具体化されるまで実際の処理は行われず、フレームは並列にアノテーションされます。
報酬スコアリング(score_rewards)は、報酬モデル(Robometer-4B)を使用してロボットのエピソードをスコアリングします。フレームごとのタスク進捗(0-1)と成功確率をデータセットの列として書き戻します。ユーザーは Robometer 評価サーバー(ローカル GPU または Modal)を実行し、パイプラインをその URL に向けます。スコアは通常の列として扱えるため、品質ゲートは1行で記述できます。例えば、最終フレームの成功確率が0.5未満のエピソードをフラグ付けして、BCやRLトレーニングに進む前にレビューすることが可能です。
簡単に試すには、uvx コマンドで実行可能なデモノートブックを生成できます。例えば、uvx daft-physical-ai hands でハンドトラッキングのデモ、uvx daft-physical-ai rewards で報酬スコアリングのデモが生成されます。パッケージは PyPI で公開されており、ソースコード、例、セットアップの詳細は daft-physical-ai リポジトリにあります。