直接干上車!DriveVLM:首個Orin部署的快慢雙系統智駕大模型
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
寫在前面&筆者的個人理解
在目前自動駕駛領域,傳統的感知(perception)-預測(prediction)-規劃(planning)的常規端到端自動駕駛在處理常規場景時表現尚可,但在面對復雜場景或者長尾場景時會遇到較大的挑戰。論文作者認為主要是因為目前常規模塊的設計缺乏“場景理解”能力所導致的,比如感知模塊常常只是檢測識別常見物體,忽略了長尾物體和物體特性的識別。鑒于近期大視覺語言模型(LVLMs)在視覺理解和推理展現出的強大能力,作者將VLM應用在自動駕駛領域,并設計了一套特殊的CoT推理過程,同時提出了一種與傳統自動駕駛系統相結合的方法,提高了精度的同時又能確保實時性的部署。
論文鏈接:https://arxiv.org/abs/2402.12289
DriveVLM的主要貢獻
提出了一種將大視覺語言模型用于自動駕駛場景的方法DriveVLM,設計了場景描述、場景分析和層級規劃地遞進式思維鏈(CoT),分別對應于傳統自動駕駛流程中的感知、規劃和控制三個模塊,期望借助大視覺語言模型的強大泛化和認知能力,實現比傳統模塊更優越的性能。
提出了一種大模型與傳統自動駕駛模塊相結合的方法DriveVLM-Dual,通過有選擇性地與傳統感知和規劃模塊進行交互,一方面將匹配的物體感知3D信息引入VLM一側實現更好地特征分析,另一方面VLM輸出的軌跡點可選擇地送入傳統規劃模塊,實現實時且更精細地軌跡規劃。
提出了一套挖掘復雜和長尾駕駛場景的數據挖掘流程,并以此構建了多樣化地SUP-AD數據集。該數據挖掘流程依次包括長尾/挑戰性場景挖掘,人工篩選過濾,視頻關鍵幀選取,場景標注,人工檢驗。
DriveVLM可視化結果
作者提供了幾個DriveVLM的可視化場景展示。在圖1中,DriveVLM在夜晚識別出前方慢速行駛的車輛,并提供了變道超車的駕駛決策。
在圖2中,DriveVLM識別了一個倒塌的樹木,并給出了稍微向右偏移的駕駛決策。
在圖3中,DriveVLM準確的捕捉出交警示意繼續前行的手勢,展示了其對于物體行為理解的能力。
詳解DriveVLM
圖中是DriveVLM的模型pipeline,主要包括場景描述、場景分析、層級規劃三個主要模塊設計,下面將分別介紹。
一.場景描述
場景描述模塊的功能主要分為兩部分——環境描述和關鍵物體識別。其中環境描述主要是對共性的駕駛環境的描述,比如天氣和道路狀況等;關鍵物體識別則是為了找出對于當前駕駛決策產生較大影響的關鍵物體。
環境描述.
環境描述共包括以下四個部分:天氣、時間、道路類型、車道線狀況。
天氣(E_weather):描述了當前駕駛場景的天氣狀況,比如晴天或者下雪等。像雨雪或者霧天這種天氣狀況自然會需要更加謹慎地駕駛策略。
時間(E_time):描述當前的時間段,比如白天還是夜間場景。像夜間場景由于能見度低也需要采取謹慎地駕駛策略。
道路類型(E_road):描述當前駕駛所處路段的類型,比如城市、高速、鄉村等。不同路段可能存在不同類型的挑戰,即需要不同地駕駛風格。
車道線狀況(E_lane):提供了車道線狀況的描述,包括自車所處車道和潛在的車道線選擇。這些信息對于我們車道的選擇和安全變道至關重要。
關鍵物體識別
區別于傳統自動駕駛感知模塊將所有待檢測物體都檢出,DriveVLM借鑒了人類在駕駛時的思考過程,專注于識別當前駕駛場景中最有可能影響自車駕駛決策的物體,稱之為關鍵物體。得益于海量數據的預訓練,VLM相比于傳統3D目標檢測器能夠更好的識別出長尾的關鍵物體,比如路面雜物或者非常見動物等。對于每個關鍵物體,DriveVLM會分別輸出其語義類別c和對應的2D目標框b。
二.場景分析
在傳統端到端自動駕駛流水線中,預測(prediction)模塊一般只輸出物體的未來軌跡,來輔助后續規劃模塊進行決策。但這種單一的軌跡預測不能全面體現物體對自車駕駛決策的影響,很多物體對自車產生的影響不單單限于其未來潛在軌跡這么簡單。得益于大視覺模型的發展,DriveVLM對當前駕駛場景進行更加全面的場景分析。
關鍵物體分析。在之前得到駕駛場景中的關鍵物體后,DriveVLM對關鍵物體特征和其對自車潛在的駕駛影響進行分析。在這里,作者將物體特征分為3個方面——靜態屬性(Cs)、運動狀態(Cm)和特殊行為(Cp)。靜態屬性描述了物體固有的屬性,比如道路標志中的標號或者標語,超出卡車車身長度的貨物等,這些屬性有助于自車確定一些潛在駕駛風險或對應的。
運動狀態(Cm),包括位置、方向和動作等,描述物體在一段時間內的運動狀態,與傳統軌跡預測模塊類似。特殊行為(Cp)則是指某些專屬于該物體做出的可能影響自車駕駛的特定行為或者手勢等,比如交警指揮交通的手勢,面前的人在使勁揮手示意等。在實際應用中,作者并沒有強制DriveVLM對于所有關鍵物體都輸出這三方面的信息,而是使模型學會應該自適應地輸出某個物體在這三方面中可能包含的方面。
場景總結
在分析完所有關鍵物體后,DriveVLM會對當前駕駛場景進行一個總結,除去匯集之前的分析信息之外,還有一些場景級別的額外的場景級別的分析會在這里完成。之后,所有信息會作為上下文進行后續的分層級規劃。
層級規劃
DriveVLM提出了一種逐漸遞進地層級式規劃,依次推理對應自車未來駕駛決策的元動作、決策描述、軌跡點三種規劃目標。
元動作:每個“元動作”對應駕駛決策的一個基本粒度的動作,一系列元動作的序列可以一定程度上描述未來短時間內的駕駛決策。作者將元動作的類型歸為了17種,比如加速、等待、向左\右變道等??梢园凑掌涮攸c歸為速度控制類、轉向類、車道線控制類這三大類別。
決策描述:相對于簡單動作粒度級別的“元動作”,“決策描述”包含了對于駕駛決策更加詳細多維地描述。一個完整的“決策描述“一般包含三個基本元素:動作A,主體S,以及持續時間D。動作類似之前的元動作,比如“加速”,”轉彎”,“等待”等。主體指的是自車動作所施加的物體,例如行人、交通信號或特定的車道等。持續時間表示動作的執行時間,比如動作應該持續多久或何時開始等。
文中提供了一個對應“決策描述”示例的分析:等待(A)行人(S)通過街道,然后(D)開始加速(A),并且匯入右側車道(S)。這種結構化的決策描述有助于VLM輸出規范且易于的駕駛指令。
軌跡點: 輸出較為詳細的軌跡描述后,DriveVLM接下來輸出相應的軌跡點預測,記為W = {w1, w2, ..., wn}, wi = (xi , yi),代表未來固定時間間隔t時刻的位置。通過這種分層級設計,引導DriveVLM一步步地輸出由易到難地決策規劃,最后對應的軌跡點可以送入專門的規控模塊進行進一步的改善和細化。
DriveVLM-Dual
盡管現有的大視覺語言模型在識別長尾物體和理解復雜場景方面表現優越,但根據現有研究和作者的初步實驗表明,VLM有時在涉及到推理物體的細微運動狀態改變時表現不佳。另外,由于大語言模型巨大的參數量,導致模型的推理時間相比傳統自動駕駛系統往往具有較高的延遲,阻礙了其對環境的快速實時反應。為此,作者提出了DriveVLM-Dual,一種VLM與傳統自動駕駛系統互相協作的解決方案。該方法包含兩個關鍵性設計,一是在3D感知信息融合,二是高頻軌跡細化操作。
3D感知信息融合
對于傳統自動駕駛系統3D檢測器檢測到的目標物體,記為,其中表示第i個物體的3D目標框,表示其對應的語義類別。隨后將這些3D目標框根據相機內外參反投影回2D圖像坐標系,得到相應的2D目標框表示。將其與VLM這一分支識別到的關鍵物體Cj對應的目標框之間進行一種近似的目標框IoU匹配,將IoU得分超過一定閾值并且屬于同一大的語義類別的關鍵物體記為匹配的關鍵物體(matched critical object),對于那些不符合條件的,則歸為非匹配的關鍵物體。該過程可以用如下公式表示:
對于匹配的關鍵物體,將其在感知模塊中預測得到的歷史軌跡、朝向、中心點坐標等作為語言prompt送入VLM中的關鍵物體分析模塊,用來輔助物體特征的推理。對于沒有匹配的關鍵物體,比如一些傳統3D感知模塊難以識別的長尾物體,也依舊進行關鍵物體分析,只不過不使用的3D感知信息作為輔助。通過這種設計,能使得DriveVLM更加準確的理解關鍵物體的空間位置和細粒度的運動狀態變化等。
高頻軌跡優化
與傳統規劃器相比,由于DriveVLM具有視覺語言模型(VLMs)固有的巨大參數量,在生成軌跡時速度顯著較慢。為了實現快速實時的推理能力,作者將它與傳統的planner相結合形成了一個快-慢雙系統設計。
在DriveVLM輸出一個規劃軌跡Wslow之后,將其作為一個參考軌跡送入經典的規劃模塊進行一個二階段的軌跡優化。具體來說,對于基于優化的planner,Wslow作為優化求解器的初始解;對于基于神經網絡的planner,Wslow作為輸入query的形式,與原本planner的輸入特征f相結合,經過網絡生成新的軌跡Wfast。在實際應用時,該雙系統是異步運行的,VLM分支主要負責task-level的規劃,傳統分支中的planner主要負責motion-level的規劃,只在固定重疊時間接受來自VLM分支的軌跡輸入。
任務與數據集
SUP任務
為了更好地衡量大語言模型在處理復雜和長尾駕駛場景中的能力,作者定義了名為SUP(scene understanding for planning)的任務和相應的評估指標。
輸入數據包括來自周圍攝像頭的多視角視頻集V,以及可選的來自感知模塊的3D感知結果P,輸出包括場景描述E,場景分析S,元動作A,決策描述D,軌跡點W。對于軌跡點W可以采用位移誤差(DE)和碰撞率(CR)作為指標來評估生成的好壞,但對于文本內容的場景描述和分析,以及元動作序列的好壞并沒有已有的評估方法,于是作者分別提出了使用LLM和動態規劃的評估方法,詳細可參見附錄。
數據集構建
針對之前定義的SUP任務,作者提出了一種數據挖掘和標注的方法。并以此為基礎構建了一個超過40個場景類別的自動駕駛數據集SUP-AD。該方法流程圖如下所示,首先從海量自動駕駛數據中進行長尾目標挖掘和挑戰性場景挖掘來收集樣本數據,之后對于每個場景選擇一個關鍵幀,并進行相應的場景信息標注。
長尾目標挖掘。 作者首先預定義了一系列長尾目標類別,比如異形車輛、道路雜物和橫穿馬路的動物等。接下來,作者使用基于CLIP的搜索引擎從海量自動駕駛數據中挖掘這些長尾場景,該搜索引擎能夠使用語言 query 從大量的自動駕駛視頻數據中挖掘與類別相關的駕駛數據。在此之后進行人工檢查,以篩選出與指定類別不一致的場景。
挑戰性場景挖掘。 除了長尾物體外,作者同樣對具有挑戰性的駕駛場景進行了挖掘。在這些場景的數據中,需要根據不斷變化的駕駛條件調整自車(ego vehicle)的駕駛策略。這些場景一般是根據記錄的駕駛操作變化得到的,例如急剎車等。在得到相應數據后,同樣會進行人工篩選來過濾出不滿足要求的數據。
關鍵幀選擇。 每個挖掘出來的駕駛場景都是一個十幾秒視頻片段,在這么長的時間跨度中,選取“關鍵幀”至關重要。在大多數具有挑戰性的場景中,關鍵幀是在需要顯著改變速度或方向之前的時刻。根據綜合測試,作者選擇在實際操作前0.5秒到1秒作為關鍵幀,以確保改變駕駛決策的最佳反應時間。對于不涉及駕駛行為變化的場景,作者選擇與當前駕駛情景相關的幀作為關鍵幀。
場景標注。 對于選取好關鍵幀后的數據,由一組標注員進行場景標注,包括任務提到的場景描述、場景分析和規劃等內容信息。同時為了便于場景標注,作者開發了一個視頻標注工具,能夠比較方便的針對特定標注內容進行對應的標注和檢查。最終某個場景關鍵幀的標注結果如下圖所示
實驗部分
Main Results
作者在提出的SUP-AD和nuScenes數據集上進行了相應的實驗來驗證DriveVLM的有效性。其中SUP-AD按照 7.5:1:1.5的比例來劃分訓練、驗證和測試集,按照上文提出的兩種評價指標進行了評測。 在nuScenes數據集上,作者遵循之前的工作,采用位移誤差(DE)和碰撞率(CR)作為指標來評估模型在驗證集上生成軌跡的性能。
其中在SUP-AD數據集上,作者展示了DriveVLM與幾種大型視覺-語言模型在之前的性能比較,并與GPT-4V進行了對比,如表1所示。
DriveVLM采用Qwen-VL作為其基座模型,由于其本身強大的模型性能,相較于其他開源VLMs,如Lynx和CogVLM取得了最佳性能。盡管GPT-4V在視覺和語言處理方面表現出強大的能力,但無法對其進行微調,只能以in-context learning的方式來進行測試。作者提到這樣通常會導致在場景描述任務中生成無關信息,按照所提的評估方法,這些額外信息經常被分類為幻覺信息,導致得分不高。
在nuScenes數據集上,作者將DriveVLM和DriveVLM-Dual與之前的經典方法進行了對比,如表2所示。當與VAD進行協同時,DriveVLM-Dual在規劃任務的L2和CR指標下都取得了最先進的性能。雖然DriveVLM是為了理解復雜場景所設計的,但在nuScenes這種普通場景上也同樣表現出色。
Ablation Study
模型設計。 為了驗證每部分模塊設計的必要性,作者在nuScenes數據集上對不同模塊組合進行了消融實驗,如表3所示。其中“Base”表示只進行層級規劃,而不采用所提出的特殊的CoT推理設置;“CO”表示引入關鍵物體分析;“3D”表示引入匹配的3D感知結果作為額外的語言prompt。
可以看出,包含關鍵物體分析這一設計使得DriveVLM提高了決策的準確性,從而實現更安全的導航。而引入3D感知結果后,DrvieVLM生成的軌跡在L2和CR上都會有比較明顯的下降,表明引入3D感知結果對于捕捉運動動態并改善軌跡預測至關重要。
推理速度。另外,作者還在NVIDIA Orin平臺上測試了DriveVLM和DrvieVLM-Dual的推理速度,如下表所示。
由于 LLM 的參數量巨大,DriveVLM 的推理速度比類似于 VAD 的傳統自動駕駛方法慢一個數量級,使得其很難在對實時性要求較高的車載環境中進行部署。然而,在與傳統自動駕駛 Pipeline 以異步的快-慢速協作模式配合后,整體延遲取決于快速分支的速度,使得 DriveVLM-Dual 成為了現實世界部署的理想解決方案。
原文鏈接:https://mp.weixin.qq.com/s/g32V4b5VGsgsMwg-5hMkRQ