快慢雙系統(tǒng)!清華&博世最新Chameleon:無需訓練即可解決復雜道路拓撲(ICRA'25)
在自動駕駛技術(shù)中,車道拓撲提取是實現(xiàn)無地圖導航的核心任務(wù)之一。它要求系統(tǒng)不僅能檢測出車道和交通元素(如交通燈、標志),還要理解它們之間的復雜關(guān)系。例如,判斷車輛是否可以左轉(zhuǎn)進入某條車道,就需要綜合考慮交通規(guī)則、車道布局和信號燈狀態(tài)等多種因素。然而,現(xiàn)有的解決方案存在明顯局限性。一方面,密集視覺提示方法雖然準確,但計算成本高昂,且在實時處理中效率低下,難以應(yīng)用于實際場景。另一方面,神經(jīng)符號推理方法雖然效率較高,但在處理復雜場景(如交叉路口)時,常常因為缺乏視覺信息而無法做出準確判斷。
為了解決這一難題,清華大學與博世中央研究院RIX聯(lián)合提出了一個創(chuàng)新的解決方案——Chameleon。它通過一種快慢系統(tǒng)交替的神經(jīng)符號方法,成功平衡了效率與性能,為自動駕駛領(lǐng)域帶來了新的突破。
論文鏈接:https://arxiv.org/pdf/2503.07485
開源地址:https://github.com/XR-Lee/neural-symbolic
引言
在線地圖感知是現(xiàn)代自動駕駛中的一個重要課題,它避免了對高成本高精地圖的依賴。當前的三維場景理解方法雖然能夠有效檢測車道和交通元素(如圖1所示),但這些實例之間的關(guān)系復雜,需要大量標注數(shù)據(jù)進行監(jiān)督訓練。為此,我們提出了一種基于視覺語言基礎(chǔ)模型(VLM)的少樣本(few-shot)方法,用于提取車道拓撲。
圖1:VLM無法直接解決復雜的三維場景理解任務(wù),例如車道拓撲提取。(a) 一種可能的方法是使用密集視覺提示(如RedCircle),雖然準確但效率低下。(b) 另一種方法是神經(jīng)符號推理(如NS3D),但這種方法在程序合成時未能有效利用視覺輸入,導致在處理復雜邊緣情況時效果不佳。(c) 我們提出的Chameleon方法采用快慢交替的設(shè)計,其中一個VLM用于合成程序,另一個用于處理邊緣情況。
具體而言,我們專注于OpenLane-V2定義的車道拓撲提取任務(wù),即檢測車道和交通元素(如交通信號燈和標志),并提取它們之間的關(guān)系。這一任務(wù)極具挑戰(zhàn)性,需要高水平的推理能力,例如判斷車輛在交叉路口是否可以駛?cè)肽硹l車道。然而,現(xiàn)有的VLM仍無法直接解決這種復雜的三維場景理解任務(wù)。
為解決這一問題,我們結(jié)合了兩類基于VLM的方法:密集視覺提示和神經(jīng)符號推理。密集視覺提示(如RedCircle)通過在圖像上放置紅色圓圈,將復雜推理任務(wù)轉(zhuǎn)化為問答(QA)任務(wù)。但這種方法會導致大量的QA查詢,計算成本高昂且不適合實時應(yīng)用(如圖1-a)。神經(jīng)符號推理(如NS3D)雖然效率更高,但在程序合成時未能整合視覺信息,無法有效處理復雜邊緣情況(如圖1-b)。
因此,我們提出了一種名為“Chameleon”的快慢系統(tǒng)交替的神經(jīng)符號車道拓撲提取器(如圖1-c)。它通過VLM合成程序,根據(jù)視覺輸入定制推理過程,并動態(tài)切換快慢系統(tǒng)以平衡效率和性能。此外,我們還提出了一個鏈式推理(COT)方法,用于識別和處理需要額外推理的邊緣情況。
圖二:Chameleon架構(gòu)概覽。輸入多視圖圖像后,視覺模型分別生成交通元素和車道線段的檢測結(jié)果。提出的快速系統(tǒng)利用一個大型視覺語言模型(VLM),以預(yù)定義的視覺-文本少樣本和文本提示為輸入,生成可執(zhí)行代碼以處理視覺模型的預(yù)測結(jié)果。提出的慢速系統(tǒng)包括一個視覺問答(VQA)API集和一個具有鏈式推理能力的視覺語言模型(VLM),其中VQA API集中的視覺提示和文本提示是VLM的輸入。隨后,拓撲推理結(jié)果是代碼執(zhí)行結(jié)果和VLM輸出的組合。
方法
A. 概述
在車道拓撲提取任務(wù)中,我們預(yù)測一個密集的鄰接矩陣,用于表示車道線段和交通元素之間的關(guān)系。具體來說,車道線段之間的關(guān)系由矩陣 A∈Rm×m 表示,車道線段與交通元素之間的關(guān)系由矩陣 A∈Rm×n 表示,其中 m 和 n 分別是車道線段和交通元素的數(shù)量。盡管密集視覺提示可以實現(xiàn)高性能,但其高昂的成本、環(huán)境影響和低效的推理速度使其不適用于實時應(yīng)用。因此,我們采用鏈式推理(Chain-of-Thought, COT)方法,僅對稀疏的邊緣情況進行密集視覺提示,從而提高推理效率。
為了高效處理任務(wù),我們設(shè)計了快慢系統(tǒng)架構(gòu)。快速系統(tǒng)使用符號表示處理基本推理任務(wù),適用于簡單場景(如直線車道);而慢速系統(tǒng)則針對復雜邊緣情況(如交叉路口的密集交通和多種交通元素)進行深度推理。這種架構(gòu)通過動態(tài)切換快慢系統(tǒng),平衡了效率和性能。
B. 提示
為了執(zhí)行符號推理,我們使用多種提示來生成符號代碼。這些提示包括帶有few-shot參考的視覺提示(正例或負例)、API描述和專家規(guī)則。
- API提示:API提示定義了生成代碼的輸入和輸出,以及API的輸入輸出描述,例如用于車道自定位和并行車道搜索的函數(shù)等。在我們的實現(xiàn)中,我們還將選定的VQA任務(wù)定義為程序合成期間的API。
- 專家規(guī)則提示:為了穩(wěn)定代碼生成過程并整合領(lǐng)域?qū)<业南闰炛R,我們將專家規(guī)則添加為程序合成的提示。例如,在TOP lsls任務(wù)中,強制執(zhí)行角度和距離約束。例如,父車道的終點不應(yīng)與子車道的起點相距過遠,以滿足駕駛幾何約束。在TOP lste任務(wù)中,規(guī)則規(guī)定不允許在交叉路口內(nèi)存在車道拓撲。
- few-shot提示:在few-shot場景中,我們選擇正例和負例,并將它們渲染為相機的透視圖。我們還將這些示例的坐標轉(zhuǎn)換為文本,分別作為視覺提示和文本提示。
- VQA提示:對于VQA任務(wù),文本提示由關(guān)于語義和空間上下文的簡單問題組成。我們還使用鏈式推理(COT)提示。視覺提示基于預(yù)測結(jié)果從透視圖和鳥瞰圖中渲染圖像。
圖三:Chameleon架構(gòu)示意圖。輸入多視圖圖像和文本提示后,Chameleon實現(xiàn)車道拓撲提取。每個API或密集視覺提示VQA任務(wù)表示為一個節(jié)點。具有鏈式推理(Chain-of-Thought, COT)能力的視覺語言模型(VLM)根據(jù)輸入動態(tài)選擇需要執(zhí)行的節(jié)點,以推斷拓撲結(jié)果。
C. 代碼執(zhí)行
對于生成的程序,TOP lsls和TOP lste任務(wù)的代碼執(zhí)行過程有所不同。對于TOP lsls任務(wù),使用簡單的成對預(yù)定義代碼框架,VLM根據(jù)API描述和給定的提示生成Python代碼。此代碼以字符串形式生成,然后使用Python的exec
函數(shù)執(zhí)行。相比之下,TOP lste任務(wù)涉及更多的API調(diào)用(如圖3所示),因此我們使用OpenAI的函數(shù)調(diào)用API來管理所需的函數(shù)執(zhí)行。首先,我們提示VLM生成一個鏈式推理,以解決拓撲提取問題,該問題包含六個步驟(如圖3執(zhí)行模塊所示)。這進一步用作文本提示,供VLM合成程序根據(jù)視覺輸入自適應(yīng)地跳過某些步驟。某些步驟涉及需要通過密集視覺提示VLM模型處理的邊緣情況,因此被送入慢系統(tǒng)。通過總結(jié)API結(jié)果,系統(tǒng)可以推斷出潛在的拓撲對。
D. 密集視覺提示VQA任務(wù)
密集視覺提示VQA任務(wù)是慢系統(tǒng)的核心API,特別是在開放場景拓撲推理的互操作過程中。為了測試VLM模型的能力,我們創(chuàng)建了幾個基本的VQA任務(wù)。如表II所示,我們關(guān)注四個不同的任務(wù)。在“左或右”任務(wù)中,以鳥瞰圖(BEV)的形式呈現(xiàn)兩條車道線段。模型需要執(zhí)行三類分類,選擇左側(cè)、右側(cè)或無關(guān)系。對于“是否在交叉路口”任務(wù),以馬賽克形式顯示單條車道,左側(cè)為鳥瞰圖(BEV),右側(cè)為前方透視圖(PV)。模型需要判斷該車道線段是否在交叉路口內(nèi)。在“鄰接性”任務(wù)中,給出兩條車道線段,模型需要判斷它們是否相鄰。最后,在“向量”任務(wù)中,模型需要評估兩條渲染的向量箭頭的方向是否匹配。
實驗
A. 實驗設(shè)置
我們在OpenLane-V2官方驗證數(shù)據(jù)集上評估了Chameleon方法,該數(shù)據(jù)集提供了車道線段和交通元素之間的拓撲注釋。此外,我們手動標注了500個樣本,涵蓋四個密集視覺提示VQA子任務(wù),用于評估性能指標。這些數(shù)據(jù)集不僅支持車道拓撲提取任務(wù),還適用于其他自動駕駛場景。
在評估指標方面,我們報告車道線段檢測和交通元素檢測的平均精度均值(mAP)。對于拓撲任務(wù),采用OpenLane-V2官方指標TOPlsls(車道線段間拓撲mAP)和TOPlste(車道線段與交通元素間拓撲mAP)。對于VQA分類問題,由于正負樣本在標注時保持平衡,我們使用準確率(Accuracy)作為評估指標。
B. 實現(xiàn)細節(jié)
我們將Chameleon方法應(yīng)用于自定義基線,并進行了實驗?;€方法結(jié)合了SMERF的SD編碼和融合模塊,使用LanesegNet框架檢測車道線段,并通過DETR實現(xiàn)2D交通元素檢測,同時并行訓練TopoMLP以預(yù)測拓撲關(guān)系。為了進一步提升性能,我們還設(shè)計了一個增強基線(“Powerful Baseline”),引入了StreamMapNet的時間信息,使用更大的Vovnet作為骨干網(wǎng)絡(luò),并采用YOLOv8進行交通元素檢測。在少樣本學習場景中,我們采用3-shot配置,包含三個幀及其注釋作為參考。
對于視覺語言模型(VLM),我們使用了GPT-4的官方API(包括GPT-4-vision-preview和GPT-4o)以及LLaVA-v1.5-13b-full ft-1e權(quán)重。此外,我們還進行了VQA基準測試,使用基于ResNet18的MLP分類模型,數(shù)據(jù)集按3:1比例分為訓練集和測試集,采用Adam優(yōu)化器和交叉熵損失函數(shù)進行20個周期的訓練。
C. 定量和定性結(jié)果
與最新方法的比較:在本節(jié)中,我們將提出的少樣本方法與OpenLane-V2驗證集上的最新監(jiān)督方法進行了比較。表I顯示了與LaneSegNet、TopoLogic和MapVision等方法的比較結(jié)果。
我們的方法使用了兩個不同的基線,每個基線使用不同的骨干網(wǎng)絡(luò)?;€基于LanesegNet和TopoMLP實現(xiàn),并結(jié)合了SMERF中的SD編碼和融合過程。如表所示,我們的方法在few-shot設(shè)置中實現(xiàn)了與監(jiān)督基線相當?shù)男阅?,甚至在TOPlste任務(wù)中略微超過了全監(jiān)督模型。總體而言,我們的方法在僅使用少樣本的情況下表現(xiàn)出顯著的競爭力。
圖四:TopoMLP和我們的方法(Chameleon)在OpenLane-V2驗證數(shù)據(jù)集上的定性結(jié)果對比。(a) 車輛剛剛通過交叉路口。(b) 前方有一個左轉(zhuǎn)交通燈。(c) 地面車道標有直行標志。(d) 車輛行駛在單向右轉(zhuǎn)車道上。所選場景均為邊緣情況,需要通過密集視覺提示進行進一步推理。每個子圖均包含鳥瞰圖(BEV)和前視圖(PV)。藍色線條表示車道線段檢測結(jié)果,綠色線條表示車道與交通元素之間的真正例(ls-te),粉色線條表示車道與交通元素之間的假正例(ls-te)。當車輛剛剛通過交叉路口時(圖4-a),車輛正上方的綠燈與交叉路口前方的車道沒有拓撲關(guān)系。我們的方法(Chameleon)理解了綠燈與車道之間的空間關(guān)系,從而做出了正確的判斷,而TopoMLP則相反。在圖4-b中,左轉(zhuǎn)交通燈僅與最左側(cè)車道存在拓撲連接。與TopoMLP不同,我們的方法正確地忽略了與右側(cè)車道的關(guān)系。地面車道標有直行標志(圖4-c),因此該標志僅與其自身車道和連接車道相關(guān),而不是其他平行車道。我們的方法做到了這一點,而TopoMLP沒有做到。車輛行駛在單向右轉(zhuǎn)車道上(圖4-d),控制直行交通的兩側(cè)綠燈不影響車輛。我們的解決方案正確地判斷了綠燈與車道之間不存在拓撲關(guān)系。
不同VLM方法的VQA比較:由于其通用性,VQA與各種VLM兼容。表II比較了不同VLM在四個任務(wù)上的性能。在這些任務(wù)中,我們發(fā)現(xiàn)GPT-4的性能與監(jiān)督分類器模型相當,而LLaVA在語義和空間理解任務(wù)中表現(xiàn)較差。
數(shù)據(jù)和推理效率比較:為了比較不同方法之間的推理成本,我們在RTX 4080 GPU上測試了LLaVA的平均VQA任務(wù)延遲。平均VQA延遲約為1447毫秒。在我們的實驗中,每幀平均執(zhí)行6次VQA,導致慢速系統(tǒng)的延遲為8.7秒/幀。TopoMLP的延遲根據(jù)不同的骨干網(wǎng)絡(luò)和圖像分辨率而變化,范圍從140毫秒到700毫秒。密集視覺提示的延遲是基于20×20矩陣的逐個VQA計算得出的,結(jié)果為每幀超過200秒。詳細信息總結(jié)在表IV中。
定性結(jié)果:為了更直觀地展示我們算法的性能,我們還提供了OpenLane-V2驗證數(shù)據(jù)集上預(yù)測的ls-ls關(guān)系和ls-te關(guān)系的定性可視化結(jié)果。所有比較的場景均為邊緣情況,每個子圖均包含鳥瞰圖和前視圖。藍色線條表示車道線段檢測結(jié)果,綠色線條表示ls-te真正例,粉色線條表示ls-te假正例。
當車輛剛剛通過交叉路口時(圖4-a),車輛正上方的綠燈與交叉路口前方的車道沒有拓撲關(guān)系。我們的方法(Chameleon)理解了綠燈與車道之間的空間關(guān)系,從而做出了正確的判斷,而TopoMLP則相反。在圖4-b中,左轉(zhuǎn)交通燈僅與最左側(cè)車道存在拓撲連接。與TopoMLP不同,我們的方法正確地忽略了與右側(cè)車道的關(guān)系。地面車道標有直行標志(圖4-c),因此該標志僅與其自身車道和連接車道相關(guān),而不是其他平行車道。我們的方法做到了這一點,而TopoMLP沒有做到。車輛行駛在單向右轉(zhuǎn)車道上(圖4-d),控制直行交通的兩側(cè)綠燈不影響車輛。我們的解決方案正確地判斷了綠燈與車道之間不存在拓撲關(guān)系。
D. 消融研究
我們在OpenLane-V2驗證集上對TOPlsls任務(wù)進行了消融研究,以評估我們框架中每個組件的有效性。結(jié)果如表V所示?!疤崾镜椒枴敝傅氖莾H提供API提示的基本神經(jīng)符號推理。由于生成代碼的不穩(wěn)定性,我們報告了三次符號推理結(jié)果的平均值作為最終性能?!皩<乙?guī)則”指的是將專家觀察結(jié)果納入提示。對于少樣本示例,我們引入了三個正例和三個負例以改進生成的程序。
結(jié)論
本文介紹了一種名為“Chameleon”的新方法,該方法結(jié)合了密集視覺提示和神經(jīng)符號推理,利用視覺語言基礎(chǔ)模型(VLM)以few-shot的方式提取車道拓撲。Chameleon通過整合視覺信息來合成程序,針對特定場景定制處理過程,并通過密集視覺提示高效地處理邊緣情況。通過平衡計算效率和高性能,Chameleon適用于實時機器人應(yīng)用,并展示了將視覺輸入整合到復雜三維場景任務(wù)程序合成中的潛力。未來的工作可以探索將這種方法擴展到其他自動駕駛領(lǐng)域。