本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 CARLA 執行自動駕駛模擬掃描
本教學課程會逐步引導您使用可設定的多感應器擷取執行 CARLA
此任務會執行車道變更切入案例,其中 NPC 車輛開始於 Ego 車輛後方,在 105 秒的前方階段加速至距離 Ego 20 公尺的位置,然後切入 Ego 車道。它會跨可設定的自我速度、VPC 速度和 NPC 起始距離進行掃描,為每個參數組合建立任務 (預設 2×2×2 = 8 個任務)。每個任務會從您選取的攝影機視點擷取多感應器資料,並產生下列輸出:
-
來自每個所選攝影機視點的 RGB 影格
-
語意分割影格
-
LiDAR 點雲 (
.ply) -
2D 和 3D 週框方塊 (KITTI 格式)
-
每個攝影機案例影片 (H.264 MP4)
-
拼接網格影片 (如果您選取多個攝影機)
以下影片示範在截止日期雲端上的 CARLA 模擬掃描工作流程。
預估時間:1–2 小時,包括 Docker 映像組建。任務通常會在大約 13 分鐘內完成。
執行本教學課程會針對處理任務的 GPU 工作者執行個體和 Amazon ECR 映像儲存體產生費用。
概觀
若要完成本教學課程,請遵循下列步驟:
-
完成先決條件。
-
設定您的陣列。
-
建置並推送 Docker 映像。
-
提交模擬任務。
-
監控任務。
-
檢閱輸出。
-
清除資源。
先決條件
開始之前,請先完成下列設定:
-
如果您還沒有AWS 帳戶
,請建立帳戶,確保其可存取 GPU 執行個體 ( g6.4xlarge建議)。 -
在本機安裝 Docker
以建置 CARLA 映像。 -
在帳戶中建立 Amazon ECR
儲存庫以託管建置的映像。 -
在本機安裝截止日期雲端 CLI
。
設定您的陣列
您需要具有 Conda 佇列環境 (頻道:conda-forge、套件:ffmpeg) 和 GPU 機群 (下限:1 個 NVIDIA GPU 搭配 16 vCPU 和 64 GiB 記憶體) 佇列的截止日期雲端陣列。
IAM 許可 – 您的佇列角色需要 Amazon ECR 提取許可,因為任務指令碼在佇列角色登入資料docker pull下執行。連接如下所示的政策:
{ "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 基礎映像在 Dockerscenario_runner和 進入點上的自訂映像層,並擷取指令碼,以便每個截止日期雲端任務可以啟動 CARLA、執行駕駛案例,並在單一容器中記錄感應器資料。
建置和推送 Docker 映像
-
如果您沒有 Amazon ECR 儲存庫,請建立 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 . -
在任務特定設定索引標籤的案例設定下,將自我速度、NSC 速度和 NPC 距離設定為逗號分隔的整數。跨產品會建立您的任務網格。
-
在攝影機視點下,選取要擷取的攝影機。正面是預設選擇。可用的位置為前、左前、右前、後、左後和右後。
-
在進階下,將容器映像 URI 設定為 ,
以及 Amazon ECR 儲存庫所在的 AWS 區域。ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 -
選擇提交。
或者,使用 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
監控工作
在截止日期雲端主控台中監控進度。每個任務都會在任務資料表中顯示其參數值 (EgoSpeed、NpcSpeed、NpcDistance)。任務通常會在大約 13 分鐘內完成。
日誌輸出會顯示:
-
案例產生和參數值
-
CARLA 伺服器開機和準備
-
感應器擷取進度 (每個攝影機的影格計數)
-
每個攝影機的視訊編碼
-
網格視訊拼接 (如果您選取多個攝影機)
檢閱輸出
下載輸出
-
任務完成後,從您在提交時使用的相同目錄執行下載命令,因此
OutputDir路徑 (預設./outputs) 會解析為相同的位置:deadline job download-output --job-idjob-id -
截止日期 雲端會將輸出還原至您在提交任務時選取的
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×3,否則為較小的網格。
-
擷取速率會隨著攝影機計數而擴展 – 擷取指令碼會在每次排清時同步寫入 PNGs。對於所有 6 個攝影機,每個排清會使用單一攝影機寫入 14 個 PNGs,而不是 2 個 PNG,而增加的 I/O 會將排清速度減到低於 7 個 FPS 目標。影片編碼器固定為 7 FPS,因此相同的案例會產生每個攝影機的較長影片,其中啟用了少數攝影機,而啟用了許多攝影機的較短、更密集的多視角影片。這種同步設計是刻意的權衡,讓範例的架構保持較小且易於調整。生產管道會將感應器 I/O 平行化。
清除
為了避免持續收費,請清除您為此教學課程建立的資源:
清除教學課程資源
-
如果您特別為此教學課程建立 GPU 機群,請停止或刪除它。如果您使用預先存在的共用機群,請將其保留在原處。
-
如果您不再需要映像,請刪除
carla-deadlineAmazon ECR 儲存庫。
相關資源
下列資源提供其他資訊: