翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CARLA を使用して自動運転シミュレーションスイープを実行する
このチュートリアルでは、設定可能なマルチセンサーキャプチャを使用して CARLA
このジョブは、車線変更のカットインシナリオを実行します。このシナリオでは、NPC 車両がエゴ車両の背後で開始し、105 秒の先行取得フェーズ中にエゴの 20 メートル前に加速してそれ自体を配置し、エゴの車線をカットします。設定可能なエゴ速度、NPC 速度、NPC 開始距離をスイープし、パラメータの組み合わせごとにタスクを作成します (デフォルトは 2×2×2 = 8 タスク)。各タスクは、選択したカメラ視点からマルチセンサーデータをキャプチャし、次の出力を生成します。
-
選択した各カメラの視点からの RGB フレーム
-
セマンティックセグメンテーションフレーム
-
LiDAR 点群 (
.ply) -
2D および 3D 境界ボックス (KITTI 形式)
-
カメラごとのシナリオビデオ (H.264 MP4)
-
ステッチグリッドビデオ (複数のカメラを選択した場合)
次の動画は、Deadline Cloud での CARLA シミュレーションスイープワークフローを示しています。
推定時間: Docker イメージビルドを含む 1~2 時間。タスクは通常、それぞれ約 13 分で完了します。
このチュートリアルを実行すると、タスクを処理する GPU ワーカーインスタンスと Amazon ECR イメージストレージに対して料金が発生します。
概要
このチュートリアルを完了するには、次の手順に従います。
-
「前提条件」を完了します。
-
ファームをセットアップします。
-
Docker イメージをビルドおよびプッシュします。
-
シミュレーションジョブを送信します。
-
ジョブをモニタリングします。
-
出力の確認
-
リソースをクリーンアップします。
前提条件
開始する前に、次の設定を完了します。
-
AWS アカウント
がまだない場合は作成し、GPU インスタンスにアクセスできることを確認します ( g6.4xlarge推奨)。 -
CARLA イメージを構築するために Docker
をローカルにインストールします。 -
アカウントに Amazon ECR
リポジトリを作成して、ビルドされたイメージをホストします。 -
Deadline Cloud CLI
をローカルにインストールします。
ファームをセットアップする
Conda キュー環境 (チャネル: conda-forge、パッケージ: ffmpeg) と GPU フリート (最小: 16 vCPU と 64 GiB メモリを備えた NVIDIA GPU) を持つキューを持つ Deadline Cloud ファームが必要です。
IAM アクセス許可 – タスクスクリプトはキューロールの認証情報docker pullで実行されるため、キューロールには Amazon ECR プルアクセス許可が必要です。次のようなポリシーをアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "arn:aws:ecr:REGION:ACCOUNT_ID:repository/*" }, { "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }
フリートホスト設定 – フリートワーカーには Docker と NVIDIA Container Toolkit が必要です。GitHub の Docker および NVIDIA Container Toolkit ホスト設定スクリプト
Docker イメージを構築してプッシュする
ジョブは、Docker Hub の carlasim/carla:0.9.16 ベースイメージに基づいて Docker scenario_runnerおよびエントリポイントとキャプチャスクリプトのカスタムイメージレイヤー。各 Deadline Cloud タスクが CARLA を起動し、運転シナリオを実行し、センサーデータを 1 つのコンテナに記録できるようにします。
Docker イメージを構築してプッシュするには
-
Amazon ECR リポジトリがない場合は、リポジトリを作成します。
aws ecr create-repository --repository-name carla-deadline --regionREGION -
autonomous_driving_carlaバンドルのdocker/ディレクトリから、イメージを構築します。cd docker/ docker build -t carla-deadline:0.9.16 .注記
Dockerfile は Docker Hub
carlasim/carla:0.9.16からベースイメージとしてプルします。最初のビルドでは、約 8 GB がダウンロードされます。 -
イメージを Amazon ECR にプッシュします。
aws ecr get-login-password --regionREGION| \ docker login --username AWS --password-stdinACCOUNT_ID.dkr.ecr.REGION.amazonaws.com docker tag carla-deadline:0.9.16 \ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 docker pushACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16
シミュレーションジョブを送信する
GUI 送信者を使用してジョブを送信するには
-
バンドルディレクトリから、送信者を開きます。
cd autonomous_driving_carla deadline bundle gui-submit . -
ジョブ固有の設定タブのシナリオ設定で、ego 速度、NPC 速度、NPC 距離をカンマ区切りの整数として設定します。クロスプロダクトはタスクグリッドを作成します。
-
カメラビューポイントで、キャプチャするカメラを選択します。フロントがデフォルトの選択です。使用可能な位置は、前面、前面左、前面右、背面、背面左、背面右です。
-
Advanced で、コンテナイメージ URI を に設定
し、Amazon ECR リポジトリが存在する AWS リージョンを設定します。ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 -
[Submit] を選択してください。
または、CLI を使用して を送信します。
deadline bundle submit . \ --farm-idFARM_ID\ --queue-idQUEUE_ID\ --name "CARLA Lane Change Demo" \ -p ImageURI=ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 \ -p AwsRegion=REGION
ジョブのモニタリング
Deadline Cloud コンソールで進行状況をモニタリングします。各タスクは、タスクテーブルにそのパラメータ値 (EgoSpeed、NpcSpeed、NpcDistance) を表示します。タスクは通常、それぞれ約 13 分で完了します。
ログ出力には以下が表示されます。
-
シナリオ生成とパラメータ値
-
CARLA サーバーの起動と準備
-
センサーキャプチャの進行状況 (カメラあたりのフレーム数)
-
各カメラのビデオエンコード
-
グリッドビデオのステッチング (複数のカメラを選択した場合)
出力を確認する
出力をダウンロードするには
-
ジョブが完了したら、送信時に使用したのと同じディレクトリからダウンロードコマンドを実行し、
OutputDirパス (デフォルト./outputs) が同じ場所に解決されるようにします。deadline job download-output --job-idjob-id -
Deadline Cloud は、ジョブの送信時に選択した
OutputDirディレクトリに出力を復元します。
各タスクは、パラメータに という名前のサブディレクトリに出力を生成します。
outputs/ └── ego20_npc30_dist10/ ├── rgb/ │ ├── front/frame_000001.png ... frame_000062.png │ └── rear/frame_000001.png ... frame_000062.png ├── semantic/ │ ├── front/... │ └── rear/... ├── lidar/frame_000001.ply ... ├── bbox_2d/{front,rear}/frame_*.txt ├── bbox_3d/frame_*.txt └── video/ ├── front_scenario.mp4 ├── rear_scenario.mp4 └── grid_scenario.mp4
既知の制限事項
-
Linux のみ – CARLA Docker イメージには、NVIDIA GPU ドライバーを搭載した Linux ホストが必要です。ワーカーは Linux フリートで実行する必要があります。
-
x86_64 のみ – CARLA Docker イメージは ARM アーキテクチャをサポートしていません。
-
モザイクイメージ – 2 台以上のカメラを選択すると、ジョブは RGB/セマンティックモザイクイメージを生成します。レイアウトは、6 つすべてがアクティブな場合は 2 x 3 で、それ以外の場合は小さいグリッドです。
-
キャプチャレートはカメラ数に応じてスケール – キャプチャスクリプトはフラッシュごとに PNGs を同期的に書き込みます。6 台のカメラすべてで、各フラッシュは 2 台ではなく 14 台の PNGs を 1 台のカメラで書き込み、I/O の増加は 7 FPS ターゲットを下回るフラッシュを遅らせます。ビデオエンコーダーは 7 FPS に固定されているため、同じシナリオでは、少数のカメラを有効にしてカメラごとに長いビデオを生成し、多くのカメラを有効にして短くて高密度のマルチビュービデオを生成します。この同期設計は、サンプルのアーキテクチャを小さく、簡単に適応させるための意図的なトレードオフです。本番パイプラインはセンサー I/O を並列化します。
クリーンアップ
継続的な課金を回避するには、このチュートリアル用に作成したリソースをクリーンアップします。
チュートリアルリソースをクリーンアップするには
-
このチュートリアル専用の GPU フリートを作成した場合は、そのフリートを停止または削除します。既存の共有フリートを使用した場合は、そのままにします。
-
イメージが不要になった場合は、
carla-deadlineAmazon ECR リポジトリを削除します。
関連リソース
以下のリソースは追加情報を提供します。