筆者的一些個(gè)人思考
在自動(dòng)駕駛領(lǐng)域,隨著BEV-based子任務(wù)/端到端方案的發(fā)展,高質(zhì)量的多視圖訓(xùn)練數(shù)據(jù)和相應(yīng)的仿真場景構(gòu)建愈發(fā)重要。針對(duì)當(dāng)下任務(wù)的痛點(diǎn),“高質(zhì)量”可以解耦成三個(gè)方面:
不同維度上的長尾場景:如障礙物數(shù)據(jù)中近距離的車輛以及切車過程中精準(zhǔn)的朝向角,以及車道線數(shù)據(jù)中不同曲率的彎道或較難采集的匝道/匯入/合流等場景。這些往往靠大量的數(shù)據(jù)采集和復(fù)雜的數(shù)據(jù)挖掘策略,成本高昂。
3D真值-圖像的高度一致:當(dāng)下的BEV數(shù)據(jù)獲取往往受到傳感器安裝/標(biāo)定,高精地圖以及重建算法本身的誤差影響。這導(dǎo)致了我們很難保證數(shù)據(jù)中的每一組【3D真值-圖像-傳感器參數(shù)】 的精確一致。
滿足上述條件基礎(chǔ)上的時(shí)序數(shù)據(jù):連續(xù)幀的多視角圖像和相應(yīng)真值,這對(duì)于當(dāng)前的感知/預(yù)測(cè)/決策/端到端等任務(wù)都是必不可少的。
而對(duì)仿真來說,可以直接通過布局進(jìn)行滿足上述條件的視頻生成,無疑是最直接的multi-agent傳感器輸入的構(gòu)造方式。而DrivingDiffusion則從一個(gè)新的角度解決了上述問題。
什么是DrivingDiffusion?
DrivingDiffusion是一個(gè)用于自動(dòng)駕駛場景生成的擴(kuò)散模型框架,實(shí)現(xiàn)了布局控制的多視角圖像/視頻生成并分別實(shí)現(xiàn)了SOTA。
DrivingDiffusion-Future作為自動(dòng)駕駛世界模型有根據(jù)單幀圖像預(yù)測(cè)未來場景視頻并根據(jù)語言提示影響主車/他車運(yùn)動(dòng)規(guī)劃的能力。
DrivingDiffusion生成效果是怎么樣的?
(1)DrivingDiffusion
布局控制的多視角圖像生成
圖中展示了以布局投影作為輸入的multi-view圖像生成效果。
調(diào)整布局:精確控制生成結(jié)果
圖中上半部分展示了生成結(jié)果的多樣性以及下文中模塊設(shè)計(jì)的重要性。下半部分展示了對(duì)正后方的車輛進(jìn)行擾動(dòng)的結(jié)果,包含移動(dòng),轉(zhuǎn)向,碰撞甚至懸浮在空中的場景的生成效果。
布局控制的多視角視頻生成
上:DrivingDiffusion在nuScenes數(shù)據(jù)上訓(xùn)練后的視頻生成結(jié)果。下:DrivingDiffusion在大量私有真實(shí)數(shù)據(jù)上訓(xùn)練后的視頻生成結(jié)果。
(2)DrivingDiffusion-Future
根據(jù)輸入幀+文本描述生成后續(xù)幀
使用單幀圖像作為輸入,根據(jù)對(duì)主車/他車的文本描述構(gòu)建后續(xù)幀駕駛場景。圖中前三行和第四行分別展示了對(duì)主車和他車行為進(jìn)行文本描述控制后的生成效果。(綠框?yàn)檩斎耄{(lán)框?yàn)檩敵?
根據(jù)輸入幀直接生成后續(xù)幀
無需其他控制,僅使用單幀圖像作為輸入,預(yù)測(cè)后續(xù)幀駕駛場景。(綠框?yàn)檩斎?,藍(lán)框?yàn)檩敵?
DrivingDiffusion是如何解決上述問題的?
DrivingDiffusion首先人為地構(gòu)造場景中的所有3D真值(障礙物/道路結(jié)構(gòu)),在將真值投影為Layout圖像后,以此為模型輸入得到多相機(jī)視角下的真實(shí)圖像/視頻。之所以沒有直接使用3D真值(BEV視圖或按照編碼后的實(shí)例)作為模型輸入,而是使用參數(shù)進(jìn)行投影后輸入,是為了消除系統(tǒng)性的3D-2D一致性誤差。(在這樣的一組數(shù)據(jù)中,3D真值和車輛參數(shù)都是人為地按照實(shí)際需求構(gòu)造的,前者帶來了隨意構(gòu)造罕見場景數(shù)據(jù)能力,后者消除了傳統(tǒng)數(shù)據(jù)生產(chǎn)中幾何一致性的誤差。)
此時(shí)還剩下一個(gè)問題:生成的圖像/視頻質(zhì)量能否滿足使用需求?
提到構(gòu)造場景,大家往往會(huì)想到使用仿真引擎,然而其生成的數(shù)據(jù)和真實(shí)數(shù)據(jù)存在著較大的domain gap。GAN-based 方法的生成結(jié)果往往和實(shí)際真實(shí)數(shù)據(jù)的分布存在一定bias。而Diffusion Models基于馬爾可夫鏈通過學(xué)習(xí)噪聲來生成數(shù)據(jù)的特性,其生成結(jié)果的保真度較高,更適合替代真實(shí)數(shù)據(jù)使用。
DrivingDiffusion依照人為構(gòu)造的場景和車輛參數(shù),直接生成時(shí)序multi-view視圖,不僅可以作為下游自動(dòng)駕駛?cè)蝿?wù)的訓(xùn)練數(shù)據(jù),還可以構(gòu)建用于反饋?zhàn)詣?dòng)駕駛算法的仿真系統(tǒng)。
這里的“人為構(gòu)造的場景”僅包含障礙物和道路結(jié)構(gòu)信息,但DrivingDiffusion的框架可以輕松引入標(biāo)志牌,紅綠燈,施工區(qū)域等layout信息甚至low-level的occupancy grid/depth map等控制模式。
DrivingDiffusion方法概述
生成多視角視頻時(shí),有幾個(gè)難點(diǎn):
相較常見的圖像生成,多視角視頻生成新增了視角和時(shí)序兩個(gè)維度,如何設(shè)計(jì)一個(gè)可以進(jìn)行長視頻生成的框架?如何保持跨視角一致性和跨幀一致性?
從自動(dòng)駕駛?cè)蝿?wù)的角度,場景中的實(shí)例至關(guān)重要,如何保證生成實(shí)例的質(zhì)量?
DrivingDiffusion主要設(shè)計(jì)了一個(gè)通用的訓(xùn)練框架,將stable-diffusion-v1-4模型作為圖像的預(yù)訓(xùn)練模型,并使用3D偽卷積將原有圖像輸入膨脹,用于處理視角/時(shí)序新增的維度后輸入3D-Unet,在得到了處理新增維度的擴(kuò)散模型后,進(jìn)行了交替迭代式的視頻擴(kuò)展,通過關(guān)鍵幀控制和微調(diào)的操作保障了短時(shí)序和長時(shí)序的整體一致性。此外,DrivingDiffusion提出了Consistency Module和Local Prompt,分別解決了跨視角/跨幀一致性和實(shí)例質(zhì)量的問題。
DrivingDiffusion生成長視頻流程
單幀多視角模型:生成multi-view關(guān)鍵幀,
以關(guān)鍵幀作為額外控制,多視角共享的單視角時(shí)序模型:并行對(duì)各個(gè)view進(jìn)行時(shí)序擴(kuò)展,
以生成結(jié)果為額外控制的單幀多視角模型:時(shí)序并行地微調(diào)后續(xù)幀,
確定新關(guān)鍵幀并通過滑動(dòng)窗口延長視頻。
跨視角模型和時(shí)序模型的訓(xùn)練框架
對(duì)于multi-view模型和時(shí)序模型來說,3D-Unet的擴(kuò)展維度分別為視角和時(shí)間。二者都有相同的布局控制器。作者認(rèn)為后續(xù)幀可以從multi-view關(guān)鍵幀獲取場景中的信息,并隱式地學(xué)習(xí)不同目標(biāo)的關(guān)聯(lián)信息。二者分別使用了不同的一致性注意力模塊和相同的Local Prompt模塊。
布局編碼:障礙物類別/實(shí)例信息和道路結(jié)構(gòu)分割布局,分別以不同的固定編碼值編碼為RGB圖像,經(jīng)過encode后輸出布局token。
關(guān)鍵幀控制:所有的時(shí)序擴(kuò)展過程,都采用了某一關(guān)鍵幀的multi-view圖像,這是基于在短時(shí)序內(nèi)的后續(xù)幀可以從關(guān)鍵幀獲取信息的假設(shè)。所有的微調(diào)過程都以關(guān)鍵幀和其生成的后續(xù)某幀的multi-view圖像作為額外控制,輸出優(yōu)化該幀跨視角一致性后multi-view圖像。
基于特定視角的光流先驗(yàn):對(duì)于時(shí)序模型,訓(xùn)練時(shí)只進(jìn)行某個(gè)視角下數(shù)據(jù)的采樣。額外使用提前統(tǒng)計(jì)的該視角圖像下每個(gè)像素位置的光流先驗(yàn)值,編碼后作為相機(jī)ID token,進(jìn)行類似擴(kuò)散過程中的time embedding對(duì)hidden層的交互控制。
Consistency Module & Local Prompt
Consistency Module分為兩部分:一致性注意力機(jī)制和一致性關(guān)聯(lián)損失。
一致性注意力機(jī)制關(guān)注了相鄰視角和時(shí)序相關(guān)幀的交互,具體來說對(duì)于跨幀一致性僅僅關(guān)注存在overlap的左右相鄰視角的信息交互,對(duì)于時(shí)序模型,每一幀只關(guān)注關(guān)鍵幀以及前一幀。這避免了全局交互帶來的巨大計(jì)算量。
一致性關(guān)聯(lián)損失通過像素級(jí)關(guān)聯(lián)并回歸位姿來添加幾何約束,其梯度由一個(gè)預(yù)先訓(xùn)練的位姿回歸器提供。該回歸器基于LoFTR添加位姿回歸head,并在相應(yīng)數(shù)據(jù)集的真實(shí)數(shù)據(jù)上使用位姿真值進(jìn)行訓(xùn)練。對(duì)于多視角模型和時(shí)序模型該模塊分別監(jiān)督相機(jī)相對(duì)位姿和主車運(yùn)動(dòng)位姿。
Local Prompt和Global Prompt配合,復(fù)用了CLIP和stable-diffusion-v1-4的參數(shù)語義,對(duì)特定類別實(shí)例區(qū)域進(jìn)行局部增強(qiáng)。如圖所示,在圖像token和全局的文字描述提示的交叉注意力機(jī)制基礎(chǔ)上,作者對(duì)某類別進(jìn)行l(wèi)ocal prompt設(shè)計(jì)并使用該類別mask區(qū)域的圖像token對(duì)local prompt進(jìn)行查詢。該過程最大程度地利用了原模型參數(shù)中在open domain的文本引導(dǎo)圖像生成的概念。
DrivingDiffusion-Future方法概述
對(duì)于未來場景構(gòu)建任務(wù)來說,DrivingDiffusion-Future使用了兩種方式:一種是直接通過第一幀圖像預(yù)測(cè)后續(xù)幀圖像(視覺分支),并使用幀間光流作為輔助損失。這種方式較簡單,但根據(jù)文本描述對(duì)后續(xù)生成幀進(jìn)行生成的效果一般。另一種方式是在前者基礎(chǔ)上新增了概念分支,該分支通過第一幀BEV視圖預(yù)測(cè)后續(xù)幀BEV視圖,這是因?yàn)閷?duì)BEV視圖的預(yù)測(cè)有助于模型捕捉駕駛場景的核心信息和建立概念。此時(shí)文本描述同時(shí)作用于兩個(gè)分支,并通過BEV2PV的視角轉(zhuǎn)換模塊將概念分支的特征作用于視覺分支,其中視角轉(zhuǎn)換模塊的部分參數(shù)是通過使用真值圖像替代噪聲輸入預(yù)先訓(xùn)練的(并在后續(xù)訓(xùn)練中凍結(jié))。值得注意的是,主車控制文本描述控制器和他車控制/環(huán)境文本描述控制器是解耦的。
實(shí)驗(yàn)分析
為了評(píng)估模型的性能,DrivingDiffusion采用幀級(jí)Fréchet Inception Distance (FID)來評(píng)估生成圖像的質(zhì)量,相應(yīng)地使用FVD來評(píng)估生成視頻質(zhì)量。所有指標(biāo)都是在nuScenes驗(yàn)證集上計(jì)算的。如表1所示,和自動(dòng)駕駛場景中的圖像生成任務(wù)BEVGen 和視頻生成任務(wù)DriveDreamer相比,DrivingDiffusion在不同設(shè)定下的性能指標(biāo)都有較大優(yōu)勢(shì)。
盡管FID等方法通常用于衡量圖像合成的質(zhì)量,但它們并沒有完全反饋任務(wù)的設(shè)計(jì)目標(biāo),也沒有反映不同語義類別的合成質(zhì)量。由于任務(wù)致力于生成與3D布局一致的多視圖圖像,DrivingDiffuison提出使用BEV感知模型指標(biāo)來衡量一致性方面的性能:利用CVT和BEVFusion的官方模型作為評(píng)測(cè)器,采用與nuScenes驗(yàn)證集相同的以真實(shí)3D布局為條件的生成圖像,對(duì)每組生成的圖像進(jìn)行CVT和BevFusion推理,然后將預(yù)測(cè)的結(jié)果與真實(shí)結(jié)果進(jìn)行比較,對(duì)其中可駕駛區(qū)域的平均交叉路口(mIoU)分?jǐn)?shù)和所有對(duì)象類的NDS進(jìn)行了統(tǒng)計(jì),如表2所示。實(shí)驗(yàn)結(jié)果表明,對(duì)合成數(shù)據(jù)評(píng)測(cè)集的感知指標(biāo)和真實(shí)評(píng)測(cè)集的指標(biāo)十分接近,這體現(xiàn)了生成結(jié)果和3D真值的高度一致性和圖像質(zhì)量的高保真度。
除了上述實(shí)驗(yàn)外,DrivingDiffusion針對(duì)其主要解決的問題——提升自動(dòng)駕駛下游任務(wù)表現(xiàn),進(jìn)行了加入合成數(shù)據(jù)訓(xùn)練的實(shí)驗(yàn)。表3展示了合成數(shù)據(jù)增強(qiáng)在BEV感知任務(wù)中實(shí)現(xiàn)的性能改進(jìn)。在原始訓(xùn)練數(shù)據(jù)中,存在長尾分布的問題,特別是小目標(biāo)、近距車輛和車輛定向角度。DrivingDiffusion專注于為這些樣本有限的類別生成額外的數(shù)據(jù)來解決這個(gè)問題。在增加了專注于改善障礙物朝向角度的分布的2000幀數(shù)據(jù)后,NDS略有改善,而mAOE從0.5613顯著下降到0.5295。在使用6000幀更全面,更專注于罕見場景的合成數(shù)據(jù)來輔助訓(xùn)練后,可以觀察到nuScenes驗(yàn)證集有顯著的增強(qiáng):NDS由0.412上升至0.434, mAOE由0.5613下降至0.5130。這證明了合成數(shù)據(jù)的數(shù)據(jù)增強(qiáng)給感知任務(wù)帶來的顯著的提升。使用者可以根據(jù)實(shí)際需求,對(duì)數(shù)據(jù)中各個(gè)維度的分布進(jìn)行統(tǒng)計(jì),再針對(duì)性地使用合成數(shù)據(jù)進(jìn)行補(bǔ)充。
DrivingDiffusion的意義和未來工作
DrivingDiffuison同時(shí)實(shí)現(xiàn)了多視角的自動(dòng)駕駛場景視頻生成和未來預(yù)測(cè)的能力,對(duì)自動(dòng)駕駛?cè)蝿?wù)有著重大意義。其中布局和參數(shù)全部人為構(gòu)造且3D-2D之間的轉(zhuǎn)換通過投影而非依賴可學(xué)習(xí)的模型參數(shù),這消除了在以往獲取數(shù)據(jù)過程中的幾何誤差,有較強(qiáng)的實(shí)用價(jià)值。同時(shí)DrivingDiffuison的可擴(kuò)展性極強(qiáng),支持新增場景內(nèi)容layout以及額外的controller,同時(shí)也可以通過超分辨率和視頻插幀技術(shù)無損地提升生成質(zhì)量。
在自動(dòng)駕駛仿真中,關(guān)于Nerf的嘗試越來越多。然而在街景生成這一任務(wù)上,對(duì)動(dòng)靜態(tài)內(nèi)容的分離,大范圍街區(qū)重建,解耦天氣等維度的表觀控制等等,帶來了巨大工程量,此外Nerf往往需要再特定范圍場景內(nèi)進(jìn)行訓(xùn)練后才可支持后續(xù)的仿真中的新視角合成任務(wù)。而DrivingDiffusion天然包含了一定的通識(shí)先驗(yàn),包括視覺-文字的聯(lián)系,對(duì)視覺內(nèi)容的概念理解等,可以僅通過構(gòu)造布局快速地根據(jù)需求建立一段場景。但正如上文所述,整個(gè)流程較為復(fù)雜,且對(duì)于長視頻的生成需要后處理的模型微調(diào)和擴(kuò)展。DrivingDiffusion將繼續(xù)探索視角維度和時(shí)間維度的壓縮,以及結(jié)合Nerf進(jìn)行新視角生成和轉(zhuǎn)換,持續(xù)提升生成質(zhì)量以及可擴(kuò)展性。