LeRobot 上駕駛學校

釋出於 2025 年 3 月 11 日
在 GitHub 上更新

L2D 簡述,全球最大的自動駕駛資料集!

  • 來自德國 30 個城市的 90+ TB 多模態資料(5000+ 小時駕駛時間)
  • 6 個環繞高畫質攝像頭和完整的車輛狀態:速度/航向/GPS/IMU
  • 連續:油門/剎車/轉向和離散動作:檔位/轉向燈
  • 設計用於訓練基於自然語言指令或未來路徑點的端到端模型
  • 自然語言指令。例如,每個片段的“當綠燈亮時,駛過電車軌道,然後穿過環島”
  • 未來路徑點與 OpenStreetMap 地圖對齊,並以鳥瞰圖呈現
  • 專家(駕駛教練)和學生(學習駕駛員)策略

最先進的視覺語言模型和大型語言模型在來源於網際網路的開源影像-文字語料庫上進行訓練,這引領了開源人工智慧的近期加速發展。儘管取得了這些突破,端到端人工智慧在機器人和汽車領域的應用仍然很低,這主要是由於缺乏高質量、大規模的多模態資料集,如 OXE。為了釋放機器人人工智慧的潛力,Yaak 與 🤗 的 LeRobot 團隊合作,並很高興地向機器人人工智慧社群宣佈學習駕駛(L2D)。L2D 是全球最大的多模態資料集,旨在為汽車領域構建開源空間智慧,併為 🤗 的 LeRobot 訓練管道和模型提供一流的支援。受版本控制最佳實踐的啟發,Yaak 還邀請人工智慧社群在我們的整個資料集(> 1 PB)中搜尋和發現新的片段,並將其收集排隊進行稽核,以便合併到未來的版本中(R5+)。

資料集 觀察 狀態 行動 任務/指令 片段 時長 (小時) 大小 TB
WAYMO RGB (5x) 2030 11.3 0.5*
NuScenes RGB (6x) GPS/IMU 1000 5.5 0.67*
MAN RGB (4x) GPS/IMU 747 4.15 0.17*
ZOD RGB (1x) GPS/IMU/CAN ☑️ 1473 8.2 0.32*
COMMA RGB (1x) GPS/IMU/CAN ☑️ 2019 33 0.1
L2D (R4) RGB (6x) GPS/IMU/CAN ☑️ ☑️ 1000000 5000+ 90+

表 1:開源自動駕駛資料集(*不包括雷射雷達和雷達)。來源

L2D 是使用安裝在德國 30 個城市 60 輛駕駛學校電動汽車上的相同感測器套件收集的,歷時 3 年。L2D 中的策略分為兩組——專家策略由駕駛教練執行,而學生策略由學習駕駛員執行。這兩組策略都包含駕駛任務的自然語言指令。例如,“當你擁有路權時,從環島第三個出口駛出,小心駛過人行橫道”。

專家策略 — 駕駛教練 學生策略 — 學習駕駛員

圖 1:視覺化:Nutron(為清晰起見僅顯示 6 個攝像頭中的 3 個)指令:“當你擁有路權時,穿過環島並從第三個出口駛出”。

專家策略沒有駕駛錯誤,被認為是最佳策略,而學生策略則已知存在次優性(圖 2)。

圖 2:學生策略,轉向生硬,以防止駛入迎面而來的卡車車道

兩組資料均涵蓋了獲得駕駛執照歐盟境內(德語版)所有必考駕駛場景,例如超車、環島和火車軌道。在釋出版本(見下方R3+)中,對於次優學生策略,將包含次優性的自然語言解釋。例如“在接近迎面而來的車輛時,方向盤操作不正確/生硬”(圖 2)

專家:駕駛教練 學生:學習駕駛員
專家策略是在駕駛教練操作車輛時收集的。駕駛教練在教授學習駕駛員方面擁有至少 10000+ 小時的經驗。專家策略組涵蓋的駕駛任務與學生策略組相同。 學生策略是在學員駕駛車輛時收集的。學員的駕駛經驗各不相同(10-50 小時)。根據設計,學員涵蓋所有歐盟規定的駕駛任務,從高速公路上的高速變道到狹窄步行區的導航。

L2D:學習駕駛

L2D(R2+)旨在成為最大的開源自動駕駛資料集,它能為人工智慧社群提供獨特且多樣的“片段”,用於訓練端到端空間智慧。透過包含全譜的駕駛策略(學生和專家),L2D 捕捉了安全操作車輛的複雜性。為了充分代表可操作的自動駕駛車隊,我們包含了具有不同環境條件感測器故障施工區域交通訊號燈不工作的片段。

專家和學生策略組均採用下表詳述的相同感測器設定捕獲。六個 RGB 攝像頭以 360 度視角捕獲車輛環境,車載 GPS 捕獲車輛位置和航向。IMU 收集車輛動態資料,我們從車輛的 CAN 介面讀取速度、油門/剎車踏板、轉向角、轉向燈和檔位資料。我們使用各自的 Unix Epoch 時間戳將所有模態型別與左前攝像頭(observation.images.front_left)同步。我們還在可行的情況下對資料點進行了插值,以提高精度(參見表 2),最後將取樣率降低到 10 赫茲。

圖 3:多模態資料視覺化,使用視覺化工具:Nutron(為清晰起見僅顯示 6 個攝像頭中的 3 個)

表 2:模態型別、LeRobot v2.1 金鑰、形狀和插值策略。

L2D 遵循德國官方的駕駛任務目錄詳細版本)對駕駛任務、駕駛子任務和任務定義的定義。我們為所有片段分配了唯一的任務 ID 和自然語言指令。LeRobot:task 為所有片段設定為“遵循路徑點,同時遵守交通規則和法規”。下表顯示了一些示例片段、它們的自然語言指令、駕駛任務和子任務。專家和學生策略在相似場景下具有相同的任務 ID,而指令則隨片段而異。

片段 指令 駕駛任務 駕駛子任務 任務定義 任務ID
LeRobot 視覺化 Nutron 視覺化 直行透過,繞過停著的送貨卡車,並讓路給迎面而來的車輛 3 透過、超車 3.1 透過障礙物和狹窄路段 此子任務涉及在遵循優先規則的同時透過障礙物或在狹窄道路上行駛。 3.1.1.3a 無交通標誌的優先通行規則(標準)
LeRobot 視覺化 Nutron 視覺化 直行透過無保護左轉,讓路給直行車輛 4 路口、交叉口、駛入行駛中的車輛 4.1 透過交叉路口和路口 此子任務涉及在遵循優先規則和觀察其他交通的情況下透過交叉路口和路口。 4.1.1.3a 左轉前右轉
LeRobot 視覺化 Nutron 視覺化 直行至讓行標誌,然後從環島第一個出口駛出 5 環島 5.1 環島 此子任務涉及安全透過環島、理解路權規則以及正確定位。 5.1.1.3a 單車道

表 3:L2D 中的示例片段、其指令和源自歐盟駕駛任務目錄的任務 ID

我們利用車輛位置 (GPS)、開源路徑規劃機 (Open-Source Routing Machine)OpenStreetMap 和大型語言模型 (LLM)(見下文)自動化指令和路徑點的構建。自然語言查詢的構造緊密遵循大多數 GPS 導航裝置中提供的逐嚮導航。路徑點(圖 4)透過將原始 GPS 軌跡與 OSM 圖進行地圖匹配,並從車輛當前位置(綠色)沿 100 米範圍取樣 10 個等距點(橙色)來計算,並作為驅動路徑點。

A sample L2D episode

圖 4:L2D 6 個 RGB 攝像頭,路徑點(橙色)和車輛位置(綠色)指令:直行至停車標誌,然後當你擁有路權時,從左側匯入行駛中的車輛

搜尋與整理

專家策略 學生策略
從駕校車隊收集的專家策略的 GPS 軌跡。點選此處檢視 L2D 中專家策略的完整範圍。 學生政策涵蓋的地理位置與專家政策相同。點選此處檢視 L2D 中學生政策的完整範圍。

我們使用 60 輛 KIA E-niro 駕校車隊在 30 個德國城市收集了專家和學生策略,並配備了相同的感測器套件。車隊收集的多模態日誌是非結構化的,不包含任何任務或指令資訊。為了搜尋和篩選片段,我們透過使用 OSRM 進行 GPS 軌跡的地圖匹配,並從 OSM 分配節點路徑標籤(見下節)來豐富原始多模態日誌。結合LLM,這一豐富步驟使得透過任務的自然語言描述來搜尋片段成為可能。

OpenStreetMap

為了高效地搜尋相關片段,我們透過使用 OSRM 對軌跡進行地圖匹配,來豐富 GPS 軌跡的轉向資訊。我們還使用地圖匹配的路線,並使用 OSM 為軌跡分配路線特徵、路線限制和路線機動(統稱為路線任務)(參見示例 地圖)。附錄 A1-A2 提供了我們為 GPS 軌跡分配的路線任務的更多詳細資訊。

圖 5:分配給原始 GPS 軌跡的駕駛任務 (檢視地圖)

分配給地圖匹配路線的路線任務被賦予開始和結束時間戳(Unix epoch),這相當於車輛進入和退出由任務定義的地理空間線串或點的時間(圖 6)。

開始:駕駛任務(最好在新標籤頁中檢視) 結束:駕駛任務(最好在新標籤頁中檢視)

圖 6:粉色:GNSS 軌跡,藍色:匹配路線,任務:讓行、鐵路道口和環島 (檢視地圖)

多模態搜尋

我們使用圖 5 中描述的路線任務對多模態資料進行語義時空索引。這一步提供了我們多模態資料的豐富語義概覽。為了在語義空間中透過指令搜尋代表性片段,例如“駛向環島,並在擁有路權時右轉”,我們構建了一個由 LLM 提供支援的多模態自然語言搜尋,用於在我們所有駕駛資料(> 1 PB)中進行搜尋並檢索匹配的片段。

我們將自然語言查詢(指令)構造為與大多數 GPS 導航裝置中提供的逐嚮導航緊密相似。為了將指令轉換為路線任務,我們使用指令提示 LLM,並引導其輸出為路線特徵、路線限制和路線機動列表,然後檢索分配給這些路線任務的片段。我們使用pydantic 模型對 LLM 的輸出進行嚴格驗證,以最大程度地減少幻覺。具體來說,我們使用llama-3.3-70b,並將輸出引導至 pydantic 模型定義的模式。為了進一步提高結構化輸出的質量,我們使用了大約 30 對已知的自然語言查詢和路線任務進行情境學習。附錄 A.2 提供了我們使用的情境學習對的詳細資訊。

Natural language search

指令:開到環島,當您有路權時右轉

LeRobot

🤗 上的 L2D 已轉換為 LeRobotDataset v2.1 格式,以便充分利用 LeRobot 中當前和未來支援的模型。人工智慧社群現在可以利用最先進的模仿學習和強化學習模型(如 ACTDiffusion PolicyPi0)來構建端到端自動駕駛模型。

現有的自動駕駛資料集(下表)側重於中間感知和規劃任務,如 2D/3D 物件檢測、跟蹤、分割和運動規劃,這些任務需要高質量的標註,因此難以擴充套件。相反,L2D 專注於端到端學習的發展,它直接從感測器輸入預測動作(策略)(表 1)。這些模型利用網際網路預訓練的 VLMVLAM

釋出

機器人 AI 模型的效能受訓練集中片段質量的限制。為確保最高質量的片段,我們計劃分階段釋出 L2D。每個新版本都會增加有關片段的額外資訊。每個版本 R1+ 都是先前版本的超集,以確保乾淨的片段歷史記錄。

1. 指令:駕駛任務的自然語言指令 2. task_id:片段到歐盟強制性駕駛任務的任務 ID 的對映 3. observation.state.route:來自 OSM 的車道計數、轉彎車道資訊 4. suboptimal:次優策略原因的自然語言描述

HF Nutron 日期 片段 時長 大小 指令 任務ID 觀察.狀態.路線 次優
R0 R0 2025 年 3 月 100 0.5+ 小時 9.5 GB ☑️
R1 R1 2025 年 4 月 1K 5+ 小時 95 GB ☑️
R2 R2 2025 年 5 月 10K 50+ 小時 1 TB ☑️ ☑️ ☑️ ☑️
R3 R3 2025 年 6 月 10 萬 500+ 小時 10 TB ☑️ ☑️ ☑️ ☑️
R4 R4 2025 年 7 月 1M 5000+ 小時 90 TB ☑️ ☑️ ☑️ ☑️

表 5:L2D 釋出日期

Yaak 藉助駕校車隊收集的整個多模態資料集比計劃釋出的要大 5 倍。為了進一步推動 L2D 在 R4 之後的發展,我們邀請 AI 社群在我們的整個資料收集中搜索和發現場景,並構建一個由社群驅動的開源 L2D。AI 社群現在可以透過我們的自然語言搜尋來搜尋片段,並將其收集排隊,由社群進行審查,以便合併到即將釋出的版本中。我們希望 L2D 能為空間智慧帶來一個 ImageNet 時刻。

Natural language search

圖 1:透過自然語言指令搜尋片段

將 L2D 與 HF/LeRobot 結合使用

# uv for python deps
curl -LsSf https://astral.sh/uv/install.sh | sh
# install python version and pin it
uv init && uv python install 3.12.4 && uv python pin 3.12.4
# add lerobot to deps
uv add lerobot
uv run python
>>> from lerobot.common.datasets.lerobot_dataset import LeRobotDataset
# This will load 3 episodes=[0, 1001, 9999], to load all the episodes please remove it
>>> dataset = LeRobotDataset("yaak-ai/L2D", episodes=[0, 1001, 9999])
>>> dataset
LeRobotDataset({
    Repository ID: 'yaak-ai/L2D',
    Number of selected episodes: '3',
    Number of selected samples: '326',
    Features: '['observation.images.front_left', 'observation.images.left_forward', 'observation.images.right_forward', 'observation.images.left_backward', 'observation.images.right_backward', 'observation.images.rear', 'observation.images.map', 'observation.state.vehicle', 'observation.state.waypoints', 'observation.state.timestamp', 'task.policy', 'task.instructions', 'action.continuous', 'action.discrete', 'timestamp', 'frame_index', 'episode_index', 'index', 'task_index']',
})',

閉環測試

LeRobot 駕駛員

為了對使用L2D和 LeRobot 訓練的 AI 模型進行真實世界測試,我們邀請 AI 社群從 2025 年夏季開始提交模型,以便在安全駕駛員的監督下進行閉環測試。AI 社群將能夠將他們的模型排隊進行閉環測試,在我們的車隊上選擇他們希望評估模型的任務,例如,導航環島或停車。模型將以推理模式(Jetson AGX 或類似裝置)在車輛上執行。模型將以兩種模式透過 LeRobot 駕駛員駕駛車輛:

  1. 按路徑點駕駛:“遵循路徑點,同時遵守駕駛規則和法規”,給定觀察.狀態.車輛.路徑點
  2. 按語言駕駛:“直行並在人行橫道處右轉

額外資源

參考資料

@article{yaak2023novel,
    author = {Yaak team},
    title ={A novel test for autonomy},
    journal = {https://www.yaak.ai/blog/a-novel-test-for-autonomy},
    year = {2023},
}
@article{yaak2023actiongpt,
    author = {Yaak team},
    title ={Next action prediction with GPTs},
    journal = {https://www.yaak.ai/blog/next-action-prediction-with-gpts},
    year = {2023},
}
@article{yaak2024si-01,
    author = {Yaak team},
    title ={Building spatial intelligence part - 1},
    journal = {https://www.yaak.ai/blog/buildling-spatial-intelligence-part1},
    year = {2024},
}
@article{yaak2024si-01,
    author = {Yaak team},
    title ={Building spatial intelligence part - 2},
    journal = {https://www.yaak.ai/blog/building-spatial-intelligence-part-2},
    year = {2024},
}

附錄

A.1 路線任務

路線限制列表。如果 OSM 中的路線標籤對策略施加限制,例如速度限制、讓行或施工,我們則將其視為限制。路線特徵是沿路線的物理結構,例如坡道、隧道和人行橫道。路線機動是駕駛員在城市環境中正常操作車輛時遇到的不同場景,例如多車道左轉和環島。

型別 名稱 分配 任務ID 釋出
路線限制 施工 VLM R1
路線限制 交叉交通 VLM 4.3.1.3a, 4.3.1.3b, 4.3.1.3d, 4.2.1.3a, 4.2.1.3b, 4.2.1.3d R2
路線限制 來車 VLM R2
路線限制 受限通道 OSM R0
路線限制 生活街道 OSM R0
路線限制 低速區(5、10、20 公里/小時) OSM R0
路線限制 單向 OSM 3.2.1.3b R0
路線限制 行人 VLM 7.2.1.3b R1
路線限制 優先前後 OSM 3.1.1.3b R0
路線限制 道路變窄 OSM R0
路線限制 停止 OSM 4.1.1.3b, 4.2.1.3b, 4.3.1.3b R0
路線限制 讓行 OSM 4.1.1.3b, 4.2.1.3b, 4.3.1.3b R0
路線特徵 橋樑 OSM R0
路線特徵 彎曲道路 OSM(派生) 2.1.1.3a, 2.1.1.3b R0
路線特徵 公交車站 OSM 7.1.1.3a R0
路線特徵 上坡行駛 OSM R0
路線特徵 降低路緣 OSM R0
路線特徵 窄路 VLM
路線特徵 停車 OSM R0
路線特徵 人行橫道 OSM 7.2.1.3b R0
路線特徵 交通減速帶 OSM R0
路線特徵 鐵路道口 OSM 6.1.1.3a, 6.1.1.3b R0
路線特徵 電車軌道 OSM 6.2.1.3a R0
路線特徵 隧道 OSM R0
路線特徵 無控人行橫道 OSM 7.2.1.3b R0
路線操作 進入行駛中的車輛 OSM(派生) 4.4.1.3a R0
路線操作 加塞 VLM R3
路線操作 車道變換 VLM 1.3.1.3a, 1.3.1.3b R3
路線操作 高速公路匯入/匯出 OSM 1.1.1.3a, 1.1.1.3b, 1.1.1.3c, 1.2.1.3a, 1.2.1.3b, 1.2.1.3c R0
路線操作 多車道左轉 OSM(派生) 4.3.1.3b, 4.3.1.3c, 4.3.1.3d R0
路線操作 多車道右轉 OSM(派生) 4.2.1.3b, 4.2.1.3c, 4.2.1.3d R0
路線操作 受保護左轉 OSM(派生) 4.3.1.3c, 4.3.1.3d R0
路線操作 右轉受腳踏車保護 OSM(派生) 4.2.1.3c, 4.2.1.3d R0
路線操作 右轉前左轉 OSM(派生) 4.1.1.3a, 4.2.1.3a, 4.3.1.3a R0
路線操作 紅燈右轉 OSM 4.2.1.3c R0
路線操作 環島 OSM 5.1.1.3a, 5.1.1.3b R0
路線操作 直行 OSM(派生) 8.1.1.3a R0
路線操作 超車 VLM 3.2.1.3a, 3.2.1.3b R4
路線操作 無保護左轉 OSM(派生) 4.3.1.3a, 4.3.1.3b R0
路線操作 無保護右轉(帶腳踏車) OSM 4.2.1.3a, 4.2.1.3b R0

OSM = Openstreetmap, VLM = 視覺語言模型, derived: 使用 OSM 資料手工編寫的規則

A.2 LLM 提示

提示模板和虛擬碼,用於配置 LLM(使用 groq)以將自然語言查詢解析為包含路線特徵、限制和操作的結構化預測,並使用 pydantic 模型。自然語言查詢的構建旨在緊密遵循大多數 GPS 導航裝置中可用的逐嚮導航。

prompt_template: "You are parsing natural language driving instructions into PyDantic Model's output=model_dump_json(exclude_none=True) as JSON. Here are a few example pairs of instructions and structured output: {examples}. Based on these examples parse the instructions. The JSON must use the schema: {schema}"
groq:
model: llama-3.3-70b-versatile
temperature: 0.0
seed: 1334
response_format: json_object
max_sequence_len: 60000

情境學習的示例對(顯示 3 / 30),用於引導 LLM 的結構化預測,其中 ParsedInstructionModel 是一個 pydantic 模型。

PROMPT_PAIRS = [
(
            "Its snowing. Go straight through the intersection, following the right before left rule at unmarked intersection",
        ParsedInstructionModel(
            	eventSequence=[
                    EventType(speed=FloatValue(value=10.0, operator="LT", unit="kph")),
                EventType(osmRouteManeuver="RIGHT_BEFORE_LEFT"),
                		EventType(speed=FloatValue(value=25.0, operator="LT", unit="kph")),
            	],
            turnSignal="OFF",
            weatherCondition="Snow",
        ),
        ),
(
            "stop at the stop sign, give way to the traffic and then turn right",
        ParsedInstructionModel(
            eventSequence=[
                	EventType(osmRouteRestriction="STOP"),
                EventType(turnSignal="RIGHT"),
                	EventType(speed=FloatValue(value=5.0, operator="LT", unit="kph")),
                EventType(osmRouteManeuver="RIGHT"),
            ],
            ),
    ),
    (
            "parking on a hill in the rain on a two lane road",
        ParsedInstructionModel(
            	osmLaneCount=[IntValue(value=2, operator="EQ")],
                osmRouteFeature=["PARKING", "HILL_DRIVE"],
            weatherCondition="Rain",
            ),
    ),
]

EXAMPLES = ""
for idx, (instructions, parsed) in enumerate(PROMPT_PAIRS):
    parsed_json = parsed.model_dump_json(exclude_none=True)
    update = f"instructions: {instructions.lower()} output: {parsed_json}"
    EXAMPLES += update

from groq import Groq
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))

chat_completion = client.chat.completions.create(
                messages=[
                    {
                        "role": "system",
                        "content": prompt_template.format(examples=EXAMPLES, schema=json.dumps(ParsedInstructionModel.model_json_schema(), indent=2))
                    },
                    {
                        "role": "user",
                        "content": f"instructions : its daytime. drive to the traffic lights and when it turns green make a left turn",
                    },
                ],
                model=config["groq"]["model"],
                temperature=config["groq"]['temperature'],
                stream=False,
                seed=config["groq"]['seed'],
                response_format={"type": config['groq']['response_format']},
            )

            parsed_obj = ParsedInstructionModel.model_validate_json(chat_completion.choices[0].message.content)
            parsed_obj = parsed_obj.model_dump(exclude_none=True)

A.2 資料採集硬體

車載計算:NVIDIA Jetson AGX Xavier

  • 8 核 @ 2/2.2 GHz,16/64 GB DDR5
  • 100 TOPS,8 通道 MIPI CSI-2 D-PHY 2.1 (高達 20Gbps)
  • 8 路 1080p30 影片編碼器 (H.265)
  • 電源:10-15V 直流輸入,~90W 功耗
  • 儲存:SSD M.2 (4 代 PCIe 1x4)
  • 影片輸入 8 個攝像頭
    • 2 個 Fakra MATE-AX 帶 4 個 GMSL2,支援同軸供電

車載計算:連線

  • 多頻段,釐米級精度 RTK 模組
  • 5G 連線:M.2 USB3 模組,最大下行速率 3.5Gbps,上行速率 900Mbps,雙 SIM 卡
元件 # 供應商 規格
RGB:相機 1 連線科技 技術規格
RGB:堅固型相機 5 連線科技 技術規格
全球導航衛星系統 1 太格思 技術規格
5G天線 2 2J 天線 資料表
NVIDIA Jetson Orin NX - 64 GB 1 英偉達 技術規格

表 6:資料採集所用硬體套件資訊

完整的硬體套件規格可在此處檢視

社群

洞察力很強!

優質的資料

註冊登入發表評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.