OpenEMMAは、Waymoのエンドツーエンドマルチモーダルモデル(EMMA)のオープンソース実装であり、自動運転車のモーションプランニングのためのエンドツーエンドフレームワークを提供します。OpenEMMAは、GPT-4やLLaVAなどのビジョンランゲージモデル(VLM)の事前学習された世界知識を活用し、テキストと前方カメラ入力を統合して、将来の自車ウェイポイントを正確に予測し、意思決定の理由を提供します。私たちの目標は、研究者や開発者が自動運転の研究と応用を進めるためのアクセス可能なツールを提供することです。
- [2024/12/19] 🔥OpenEMMAをリリースしました。エンドツーエンドのモーションプランニング自動運転タスクのためのオープンソースプロジェクトです。詳細は論文をご覧ください。
OpenEMMAを始めるには、以下の手順に従って環境と依存関係を設定してください。
-
環境設定
Python 3.8を使用してOpenEMMAのためのConda環境を設定します:conda create -n openemma python=3.8 conda activate openemma
-
OpenEMMAリポジトリのクローン
OpenEMMAリポジトリをクローンし、ルートディレクトリに移動します:git clone [email protected]:taco-group/OpenEMMA.git cd OpenEMMA
-
依存関係のインストール
cudatoolkitがインストールされていることを確認します。インストールされていない場合は、以下のコマンドを使用します:conda install nvidia/label/cuda-12.4.0::cuda-toolkit
OpenEMMAに必要なコアパッケージをインストールするには、以下のコマンドを実行します:
pip install -r requirements.txt
これにより、YOLO-3Dなどの重要なオブジェクト検出ツールの依存関係がすべてインストールされます。YOLO-3Dを実行するために必要なウェイトは、最初の実行時に自動的にダウンロードされます。
-
GPT-4 APIアクセスの設定
GPT-4の推論機能を有効にするために、OpenAIからAPIキーを取得します。コード内で直接APIキーを追加するか、環境変数として設定します:export OPENAI_API_KEY="your_openai_api_key"
これにより、OpenEMMAがGPT-4にアクセスして将来のウェイポイントと意思決定の理由を生成できるようになります。
環境を設定した後、以下の手順に従ってOpenEMMAを使用できます:
-
入力データの準備
nuScenesデータセットをダウンロードして解凍します。 -
OpenEMMAの実行
OpenEMMAのメインスクリプトを実行するには、以下のコマンドを使用します:python main.py \ --model-path qwen \ --dataroot [dir-of-nuscnse-dataset] \ --version [vesion-of-nuscnse-dataset] \ --method openemma
現在、以下のモデルをサポートしています:
GPT-4o
、LLaVA-1.6-Mistral-7B
、Llama-3.2-11B-Vision-Instruct
、およびQwen2-VL-7B-Instruct
。特定のモデルを使用するには、--model-path
引数にgpt
、llava
、llama
、およびqwen
を渡します。 -
出力の解釈
モデルを実行した後、OpenEMMAは./qwen-reults
ディレクトリに以下の出力を生成します:-
ウェイポイント: 自車の将来の軌道を予測するウェイポイントのリスト。
-
意思決定の理由: モデルの推論のテキスト説明。シーンのコンテキスト、重要なオブジェクト、および行動の決定を含みます。
-
注釈付き画像: 元の画像に重ねられた計画された軌道と検出された重要なオブジェクトの視覚化。
-
コンパイルされたビデオ: 注釈付き画像から作成されたビデオ(例:
output_video.mp4
)。時間経過とともに予測された経路を示します。
-
このパッケージの使用に関するヘルプや問題については、GitHubのissueを提出してください。
このプロジェクトに関連する個人的な連絡は、Shuo Xing([email protected])までお願いします。
このコードがあなたの仕事に役立つことを嬉しく思います。 私たちのコードを使用するか、私たちの仕事を拡張する場合は、私たちの論文を引用してください:
@article{openemma,
author = {Xing, Shuo and Qian, Chengyuan and Wang, Yuping and Hua, Hongyuan and Tian, Kexin and Zhou, Yang and Tu, Zhengzhong},
title = {OpenEMMA: Open-Source Multimodal Model for End-to-End Autonomous Driving},
journal = {arXiv},
year = {2024},
month = dec,
eprint = {2412.15208},
doi = {10.48550/arXiv.2412.15208}
}