在自動駕駛領域,隨著BEV-based子任務/端到端方案的發展,高品質的多視圖訓練數據和對應的模擬場景建構愈發重要。針對當下任務的痛點,「高品質」可以解耦成三個面向:
而對模擬來說,可以直接透過佈局進行滿足上述條件的視訊生成,無疑是最直接的multi-agent感測器輸入的建構方式。而DrivingDiffusion則從一個新的角度解決了上述問題。
有需要的同學可以先看看專案首頁:https://drivingdiffusion.github.io
#佈局控制的多視角影像產生
圖中展示了以佈局投影作為輸入的multi-view影像產生效果。
調整佈局:精確控制產生結果
#圖中上半部展示了生成結果的多樣性以及下文中模組設計的重要性。下半部展示了對正後方的車輛進行擾動的結果,包含移動,轉向,碰撞甚至懸浮在空中的場景的生成效果。
佈局控制的多重視角影片產生
#上:DrivingDiffusion在nuScenes資料上訓練後的影片產生結果。下:DrivingDiffusion在大量私有真實資料上訓練後的影片產生結果。
(2)DrivingDiffusion-Future#根據輸入幀文字描述產生後續影格 ##################################################################################################################### ###使用單幀影像作為輸入,根據主車/他車的文字描述建立後續幀駕駛場景。圖中前三行和第四行分別展示了主車和他車行為進行文字描述控制後的生成效果。 (綠框為輸入,藍框為輸出)#########根據輸入幀直接產生後續幀##################無需其他控制,僅使用單幀影像作為輸入,預測後續幀駕駛場景。 (綠框為輸入,藍框為輸出)###
DrivingDiffusion首先人為地建構場景中的所有3D真值(障礙物/道路結構),在將真值投影為Layout影像後,以此為模型輸入得到多相機視角下的真實影像/影片。之所以沒有直接使用3D真值(BEV視圖或依照編碼後的實例)作為模型輸入,而是使用參數進行投影後輸入,是為了消除系統性的3D-2D一致性誤差。 (在這樣的一組資料中,3D真值和車輛參數都是人為地依照實際需求建構的,前者帶來了隨意建構罕見場景資料能力,後者消除了傳統資料生產中幾何一致性的誤差。)
此時還剩下一個問題:產生的影像/視訊品質能否滿足使用需求?
提到建構場景,大家往往會想到使用仿真引擎,然而其產生的資料和真實資料存在著較大的domain gap。 GAN-based 方法的產生結果往往和實際真實資料的分佈存在一定bias。而Diffusion Models則是基於馬可夫鏈透過學習噪音來產生資料的特性,其產生結果的保真度較高,更適合取代真實資料使用。
DrivingDiffusion依照人為構造的場景和車輛參數,直接產生時序multi-view視圖,不僅可以作為下游自動駕駛任務的訓練數據,還可以建構用於回饋自動駕駛演算法的模擬系統。
這裡的「人為構造的場景」僅包含障礙物和道路結構信息,但DrivingDiffusion的框架可以輕鬆引入標誌牌,紅綠燈,施工區域等layout信息甚至low-level的occupancy grid/depth map等控制模式。
產生多重視角影片時,有幾個困難:
DrivingDiffusion主要設計了一個通用的訓練框架,將stable-diffusion-v1-4模型作為影像的預訓練模型,並使用3D偽卷積將原有影像輸入膨脹,用於處理視角/時序新增的維度後輸入3D-Unet,在得到了處理新增維度的擴散模型後,進行了交替迭代式的視頻擴展,透過關鍵幀控制和微調的操作保障了短時序和長時序的整體一致性。此外,DrivingDiffusion提出了Consistency Module和Local Prompt,分別解決了跨視角/跨幀一致性和實例品質的問題。
#Consistency Module分為兩部分:一致性注意力機制和一致性關聯損失。
一致性注意力機制關注了相鄰視角和時序相關幀的交互,具體來說對於跨幀一致性僅關注存在overlap的左右相鄰視角的信息交互,對於時序模型,每一幀只關注關鍵影格以及前一格。這避免了全局互動帶來的巨大計算量。
一致性關聯損失透過像素級關聯並回歸位姿來添加幾何約束,其梯度由一個預先訓練的位姿回歸器提供。此回歸器基於LoFTR添加位姿回歸head,並在對應資料集的真實資料上使用位姿真值進行訓練。對於多視角模型和時序模型此模組分別監督相機相對位姿和主車運動位姿。
Local Prompt和Global Prompt配合,復用了CLIP和stable-diffusion-v1-4的參數語義,對特定類別實例區域進行局部增強。如圖所示,在圖像token和全域的文字描述提示的交叉注意力機制基礎上,作者對某類別進行local prompt設計並使用該類別mask區域的圖像token對local prompt進行查詢。這個過程最大程度地利用了原始模型參數中在open domain的文字引導圖像生成的概念。
#對於未來場景建立任務來說,DrivingDiffusion-Future使用了兩種方式:一種是直接透過第一幀影像預測後續幀影像(視覺分支),並使用幀間光流作為輔助損失。這種方式較簡單,但根據文字描述對後續生成影格進行產生的效果一般。另一種方式是在前者基礎上新增了概念分支,該分支透過第一幀BEV視圖預測後續幀BEV視圖,這是因為對BEV視圖的預測有助於模型捕捉駕駛場景的核心資訊和建立概念。此時文字描述同時作用於兩個分支,並透過BEV2PV的視角轉換模組將概念分支的特徵作用於視覺分支,其中視角轉換模組的部分參數是透過使用真值影像替代雜訊輸入預先訓練的(並在後續訓練中凍結)。值得注意的是,主車控製文字描述控制器和他車控制/環境文字描述控制器是解耦的。
為了評估模型的性能,DrivingDiffusion採用幀級Fréchet Inception Distance (FID)來評估生成影像的質量,相應地使用FVD來評估生成視訊品質。所有指標都是在nuScenes驗證集上計算的。如表1所示,和自動駕駛場景中的影像產生任務BEVGen 和影片產生任務DriveDreamer相比,DrivingDiffusion在不同設定下的效能指標都有較大優勢。
儘管FID等方法通常用於衡量影像合成的質量,但它們並沒有完全回饋任務的設計目標,也沒有反映不同語意類別的合成品質。由於任務致力於產生與3D佈局一致的多視圖影像,DrivingDiffuison提出使用BEV感知模型指標來衡量一致性方面的性能:利用CVT和BEVFusion的官方模型作為評測器,採用與nuScenes驗證集相同的以真實3D佈局為條件的生成影像,對每組產生的影像進行CVT和BevFusion推理,然後將預測的結果與真實結果進行比較,對其中可駕駛區域的平均交叉路口(mIoU)分數和所有物件類別的NDS進行了統計,如表2所示。實驗結果表明,對合成資料評測集的感知指標和真實評測集的指標十分接近,這反映了生成結果和3D真值的高度一致性和影像品質的高保真度。
除了上述實驗外,DrivingDiffusion針對其主要解決的問題-提升自動駕駛下游任務表現,進行了加入合成資料訓練的實驗。表3展示了合成資料增強在BEV感知任務中所實現的效能改進。在原始訓練資料中,存在長尾分佈的問題,特別是小目標、近距車輛和車輛定向角度。 DrivingDiffusion專注於為這些樣本有限的類別產生額外的數據來解決這個問題。在增加了專注於改善障礙物朝向角度的分佈的2000幀數據後,NDS略有改善,而mAOE從0.5613顯著下降到0.5295。在使用6000幀更全面,更專注於罕見場景的合成資料來輔助訓練後,可以觀察到nuScenes驗證集有顯著的增強:NDS由0.412上升至0.434, mAOE由0.5613下降至0.5130。這證明了合成資料的資料增強對感知任務帶來的顯著的提升。使用者可以根據實際需求,對資料中各個維度的分佈進行統計,再針對性地使用合成資料進行補充。
DrivingDiffuison同時實現了多視角的自動駕駛場景視訊生成和未來預測的能力,對自動駕駛任務有著重大意義。其中佈局和參數全部人為構造且3D-2D之間的轉換透過投影而非依賴可學習的模型參數,這消除了在以往獲取資料過程中的幾何誤差,有較強的實用價值。同時DrivingDiffuison的可擴展性極強,支援新增場景內容layout以及額外的controller,同時也可以透過超解析度和視訊插幀技術無損地提升生成品質。
在自動駕駛模擬中,關於Nerf的嘗試越來越多。然而在街景生成這一任務上,對動靜態內容的分離,大範圍街區重建,解耦天氣等維度的表觀控制等等,帶來了巨大工程量,此外Nerf往往需要再特定範圍場景內進行訓練後才可支援後續的模擬中的新視角合成任務。而DrivingDiffusion天然包含了一定的通識先驗,包括視覺-文字的聯繫,對視覺內容的概念理解等,可以僅透過構造佈局快速地根據需求建立一段場景。但如上文所述,整個流程較為複雜,且對於長影片的生成需要後處理的模型微調和擴展。 DrivingDiffusion將持續探索視角維度和時間維度的壓縮,以及結合Nerf進行新視角生成和轉換,持續提升生成品質以及可擴展性。
以上是首個多視角自動駕駛場景影片產生世界模型 | DrivingDiffusion: BEV資料與模擬新思路的詳細內容。更多資訊請關注PHP中文網其他相關文章!