コンテンツにスキップ

BEHAVIOR-1K評価

BEHAVIOR-1Kは、Stanfordによる家事タスクシミュレーションベンチマークで、1000の日常活動(料理、掃除、整理整頓など)を特徴としています。2025 BEHAVIOR Challengeの構造に従い、50の完全な家事タスクでトレーニングと評価を行います。R1Proヒューマノイドロボット(双腕 + ベース + 胴体、23次元のアクション空間)を使用します。

評価プロセスは以下の2つの主要な部分で構成されています:

  1. behavior 環境と依存関係のセットアップ。
  2. starVLAbehavior の両方の環境でサービスを起動して評価を実行。

behavior のconda環境をセットアップします:

Terminal window
git clone https://github.com/StanfordVL/BEHAVIOR-1K.git
conda create -n behavior python=3.10 -y
conda activate behavior
cd BEHAVIOR-1K
pip install "setuptools<=79"
# --omnigibson: OmniGibsonシミュレーターのインストール(BEHAVIORの物理エンジン)
# --bddl: BDDLのインストール(タスク定義用のBehavior Domain Definition Language)
# --joylo: JoyLoのインストール(テレオペレーション制御インターフェース)
# --dataset: BEHAVIORデータセットアセットのダウンロード(シーン、オブジェクトモデルなど)
./setup.sh --omnigibson --bddl --joylo --dataset
conda install -c conda-forge libglu
pip install rich omegaconf hydra-core msgpack websockets av pandas google-auth

starVLA環境でも以下を実行:

Terminal window
pip install websockets

手順:

  1. チェックポイントをダウンロード
  2. 必要に応じて以下のスクリプトを選択
Terminal window
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash examples/Behavior/start_parallel_eval.sh

start_parallel_eval.sh を実行する前に、以下のパスを設定してください:

  • star_vla_python: StarVLA環境のPythonインタプリタ
  • sim_python: Behavior環境のPythonインタプリタ
  • TASKS_JSONL_PATH: トレーニングデータセットからダウンロードしたタスク説明ファイル(examples/Behavior/tasks.jsonl に含まれています)
  • BEHAVIOR_ASSET_PATH: behaviorアセットパスのローカルパス(./setup.sh でインストール後、デフォルトは BEHAVIOR-1K/datasets

(B) 別々のターミナルでのデバッグ

Section titled “(B) 別々のターミナルでのデバッグ”

デバッグを容易にするため、クライアント(評価環境)とサーバー(ポリシー)を2つの別々のターミナルで起動することもできます:

Terminal window
bash examples/Behavior/start_server.sh
bash examples/Behavior/start_client.sh

上記のデバッグファイルはトレーニングセットでの評価を実行します。

(C) タスクごとの評価(メモリセーフ)

Section titled “(C) タスクごとの評価(メモリセーフ)”

メモリオーバーフローを防止するため、start_parallel_eval_per_task.sh も実装しています:

Terminal window
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 bash examples/Behavior/start_parallel_eval_per_task.sh
  • スクリプトは INSTANCE_NAMES の各タスクに対して順次評価を実行します
  • 各タスクについて、TEST_EVAL_INSTANCE_IDS のすべてのインスタンスをGPU間に割り当てます
  • 前のタスクが完了するのを待ってから、次のタスクに進みます

  1. RGBLowResWrapper: RGBのみを視覚観測として使用し、カメラ解像度は224x224です。低解像度RGBのみの使用はシミュレーターの高速化と評価時間の短縮に役立ちます。このラッパーはスタンダードトラックで使用可能です。

  2. DefaultWrapper: データ収集中に使用されるデフォルトの観測設定によるラッパー(RGB + 深度 + セグメンテーション、ヘッドカメラは720p、リストカメラは480p)。このラッパーはスタンダードトラックで使用可能ですが、RGBLowResWrapperと比較して評価がかなり遅くなります。

  3. RichObservationWrapper: 法線やフローなどの追加観測モダリティ、および特権タスク情報を読み込みます。このラッパーは特権情報トラックでのみ使用可能です。

BEHAVIORのアクション次元は23です:

"R1Pro": {
"base": np.s_[0:3], # Indices 0-2
"torso": np.s_[3:7], # Indices 3-6
"left_arm": np.s_[7:14], # Indices 7-13
"left_gripper": np.s_[14:15], # Index 14
"right_arm": np.s_[15:22], # Indices 15-21
"right_gripper": np.s_[22:23] # Index 22
}

動画は {task_name}_{idx}_{epi}.mp4 の形式で保存されます。idx はインスタンス番号、epi はエピソード番号です。

Segmentation fault (core dumped): Vulkanが正しくインストールされていない可能性が高いです。こちらのリンクを確認してください。

ImportError: libGL.so.1: cannot open shared object file:

Terminal window
apt-get install ffmpeg libsm6 libxext6 -y