ReSimAD:如何在沒有真實數據的情況下,提升感知模型的泛化性能
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
寫在前面&筆者的個人理解
自動駕駛車輛傳感器層面的域變化是很普遍的現象,例如在不同場景和位置的自動駕駛車輛,處在不同光照、天氣條件下的自動駕駛車輛,搭載了不同傳感器設備的自動駕駛車輛,上述這些都可以被考慮為是經典的自動駕駛域差異。這種域差異對于自動駕駛帶來了挑戰,主要因為依賴于舊域知識的自動駕駛模型很難在沒有額外成本的情況下直接部署到一個從未見過的新域。因此在本文,我們提出了一種重建-仿真-感知(ReSimAD)方案,來提供了一種進行域遷移的新視角和方法。具體來說,我們利用隱式重建技術來獲取駕駛場景中的舊域知識,重建過程的目的是為了研究如何將舊域中領域相關的知識轉換為域不變的表示(Domain-invariant Representations),如,我們認為3D場景級網格表示(3D Mesh Representations)就是一種域不變的表示。基于重建后的結果,我們進一步利用仿真器來產生更加逼真的類目標域的仿真點云,這一步依賴于重建得到的背景信息和目標域的傳感器方案,從而降低了后續感知過程中收集和標注新域數據的成本。
對于實驗驗證部分,我們考慮了不同的跨域情況,如Waymo-to-KITTI,Waymo-to-nuScenes,Waymo-to-ONCE等跨域設置。以上所有跨域設置都采用zero-shot的實驗設置,即不接觸到任何目標域的點云數據信息,而僅僅依賴于源域重建的背景mesh和仿真傳感器來進行目標域樣本仿真,提升模型對于目標域的泛化能力。結果表明,ReSimAD可以極大地提升感知模型對于目標域場景的泛化能力,甚至比一些無監督領域適配(UDA)的方法還要好。
論文信息
- 論文題目:ReSimAD: Zero-Shot 3D Domain Transfer for Autonomous Driving with Source Reconstruction and Target Simulation
- ICLR-2024接收
- 論文發表單位:上海人工智能實驗室,上海交通大學,復旦大學,北京航空航天大學
- 論文地址:https://arxiv.org/abs/2309.05527
- 代碼地址:仿真數據集和感知部分,https://github.com/PJLab-ADG/3DTrans#resimad;源域重建部分,https://github.com/pjlab-ADG/neuralsim;目標域仿真部分,https://github.com/PJLab-ADG/PCSim
研究動機
挑戰:雖然3D模型可以幫助自動駕駛汽車識別周圍環境,但現有的基準模型很難推廣到新的域(如不同的傳感器設置或未見過的城市)。自動駕駛領域的長期愿景是可以以較低的代價讓模型可以實現域遷移,即:將一個在源域上充分訓練的模型成功地適配到目標域場景,其中源域和目標域分別是存在明顯數據分布差異的兩個域,如源域是晴天,目標域是雨天;源域是64-beam傳感器,目標域是32-beam傳感器。
常用的解決思路:面臨上述域差異情況,最常見的解決方案是對目標域場景進行數據獲取和數據標注,這種方式可以從一定程度上避免域差異帶來的模型性能退化的問題,但是存在極大的1)數據采集代價和2)數據標注代價。因此,如下圖所示(請看(a)和(b)兩基線方法),為了緩解對于一個新域的數據采集和數據標注代價,可以利用仿真引擎來渲染一些仿真點云樣本,這是常見的sim-to-real研究工作的解決思路。另一種思路是無監督領域適配(UDA for 3D),這一類工作的目的是研究如何在僅僅接觸到無標注的目標域數據(注意是真實數據)的條件下,實現近似全監督微調的性能,如果可以做到這一點,確實省去了為目標域進行標注的代價,但是UDA方法仍然需要采集海量的真實目標域數據來刻畫目標域的數據分布。
圖1:不同訓練范式的對比
我們的思路:不同于上述兩個類別的研究思路,如下圖所示(請看(c)基線流程),我們致力于虛實結合的數據仿真-感知一體化路線,其中虛實結合中的真實是指:基于海量有標簽的源域數據,來構建一個域不變(domain-invariant)的表示,這種假設對于很多場景具有實際意義,因為經過長期歷史數據積累,我們總可以認為這種有標注的源域數據是存在的;另一方面,虛實結合中的仿真是指:當我們基于源域數據構建了一種域不變(domain-invariant)的表示后,這種表示可以被導入到現有的渲染pipeline中來執行目標域數據仿真。相比于目前sim-to-real這一類研究工作,我們的方法有真實場景級數據作為支撐,包括道路結構、上下坡等真實信息,這些信息是僅僅依賴于仿真引擎本身難以獲得的。當獲得了類目標域的數據之后,我們將這些數據融入到目前最好的感知模型中,如PV-RCNN,進行訓練,然后驗證模型在目標域下的精度。整體的詳細工作流程請見下圖:
圖2 ReSimAD流程圖
ReSimAD的流程圖如圖2所示,主要包括a) Point-to-Mesh隱式重建過程, b) Mesh-to-point仿真引擎渲染過程, c) 零樣本感知過程。
ReSimAD: 仿真重建感知范式
a) Point-to-mesh隱式重建過程:受到StreetSurf的啟發,我們僅使用激光雷達重建來重建真實而多樣的街道場景背景、動態交通流信息。我們首先設計了一個純點云SDF重建模塊(LiDAR-only Implicit Neural Reconstruction,LINR),其優勢是可以不受到一些由camera傳感所導致的域差異的影響,例如:光照變化、天氣條件變化等。純點云SDF重建模塊將LiDAR rays作為輸入,然后預測深度信息,最終構建場景3D meshes表示。
具體地,對于從原點,方向為
發射的光線
,我們對激光雷達應用體渲染來訓練Signed Distance Field (SDF)網絡,渲染深度D可以公式化為:
其中是第個樣本點的采樣深度,是累積透射率(the accumulated transmittance),是通過使用NeuS中的近距離模型獲得的。
從StreetSurf中獲得靈感,本文提出的重建過程的模型輸入來自于激光雷達射線,輸出是預測的深度。在每個采樣的激光雷達光束上,我們在
上應用對數L1損失,即組合近景和遠景模型的渲染深度:
然而,LINR方法仍然面臨一些挑戰。由于激光雷達獲取到的數據的固有稀疏性,單個激光雷達點云幀僅能捕獲標準RGB圖像中包含的信息中的一部分信息。這種差異突顯了深度渲染在為有效訓練提供必要的幾何細節方面的潛在不足。因此,這可能導致在所得到的重建網格內產生大量的偽影。為了應對這一挑戰,我們提出拼接一個Waymo序列中的所有幀,以此來提升點云的密度。
由于Waymo數據集中頂部激光雷達(Top LiDAR)的垂直視場的限制,僅獲得-17.6°至2.4°之間的點云對周圍高層建筑的重建存在明顯的限制。為了應對這一挑戰,我們引入了一種將側面激光雷達(Side LiDAR)的點云納入采樣序列來進行重建的解決方案。四個補盲雷達分別安裝在在自動駕駛車輛的前部、后部和兩個側面,垂直視野達到[-90°, 30°],這有效地補償了頂部激光雷達的視野范圍不足的缺點。由于側面激光雷達和頂部激光雷達之間的點云密度存在差異,我們選擇為側面激光雷達分配更高的采樣權重,以提高高層建筑場景的重建質量。
重建質量評價: 由于動態物體造成的遮擋和激光雷達噪聲的影響,隱式表示進行重建可能存在于一定的噪聲。因此,我們對重建精度進行了評估。因為我們可以獲取到來自于舊領域的海量帶標注的點云數據,因此我們可以通過在舊域上進行重新渲染來獲取到舊域的仿真點云數據,以此來評價重建mesh的準確性。我們對仿真后的點云和原始真實點云進行度量,使用均方根誤差(RMSE)和倒角距離(CD):
其中對于每個序列的重建得分和一些詳細過程的描述請參考原文附錄。
b) Mesh-to-point仿真引擎渲染過程: 在通過上述LINR方法獲得到靜態背景mesh后,我們使用Blender Python API將網格數據從.ply格式轉換為.fbx格式的3D模型文件,并最終將背景mesh作為資產庫加載到用于開源模擬器CARLA中。
我們首先獲得Waymo的標注文件,來獲取每一個交通參與者的邊界框類別和三維物體大小,并根據這些信息,我們在CARLA的數字資產庫中搜索同一類別的交通參與者中大小最接近的數字資產,并將這個數字資產導入并作為交通參與者模型。根據CARLA模擬器中可用的場景真實性信息,我們為交通場景中的每個可檢測的目標開發了一個檢測框提取工具。詳細信息請參考,PCSim開發工具。
圖3 不同數據集交通參與者物體大小的分布(長、寬、高)。從圖3中可以看出,利用這種方法所仿真的物體大小的分布多樣性很廣,超過了目前已經公開的數據集像KITTI, nuScenes,Waymo, ONCE等。
ReSimAD重建-仿真數據集
我們將Waymo作為源域數據,并且在Waymo上進行重建從而獲得較真實的3D mesh。于此同時,我們將KITTI, nuScenes,ONCE作為目標域場景,并且在這些目標域場景下驗證我們方法所實現的zero-shot性能。
我們根據上述章節的介紹基于Waymo數據集產生3D場景級的meshes數據,并且利用上述評價準則來在Waymo domain下判斷哪些3D meshes是高質量的,并且根據打分選擇最高的146個meshes來進行后續的目標域仿真過程。
評估結果
關于ResimAD數據集中的一些可視化例子如下圖所示:
評估結果
實驗章節
實驗設置
- 基線選擇:我們將所提出的ReSimAD與三種典型的跨域基線進行比較:a)直接使用仿真引擎進行數據仿真的基線;b)通過改變仿真引擎中的傳感器參數設置,來進行數據仿真的基線;c)域自適應(UDA)基線.
- 度量標準:我們對齊目前進行3D cross-domain object detection的評價標準,分別采用基于BEV的和基于3D的AP作為評價度量標準。
- 參數設置:詳情參考論文.
實驗結果
這里只展示了主要實驗結果,更多結果請參考我們的論文。
三種跨域設置下,PV-RCNN/PV-RCNN++兩種模型的適配性能
從上述表格中我們可以觀察到:利用無監督域自適應(UDA)技術UDA和ReSimAD之間的主要區別在于,前者使用目標域真實場景的樣本進行模型領域遷移,而ReSimAD的實驗設置是要求其不能夠訪問到目標域的任何真實點云數據。從上表中可以看出,我們的ReSimAD所獲得的跨域結果與UDA方法所獲得的結果是可比較的。這一結果表明,當激光雷達傳感器出于商業目的需要升級時,我們的方法可以大大降低數據采集成本,并進一步縮短模型由于領域差異所導致的再訓練、再開發周期。
ReSimAD數據作為目標域的冷啟動數據,在目標域上可以達到的效果
使用ReSimAD生成的數據的另一個好處是,可以在不訪問任何目標域真實數據分布的情況下就能獲得高性能的目標域精度。這個過程其實類似于自動駕駛模型在新場景下的“冷啟動”過程。
上表報告了在全監督目標域下的實驗結果。Oracle代表了模型是在全量帶標注目標域數據上訓練的結果,而SFT表示基線模型的網絡初始化參數是由ReSimAD仿真數據訓練的權重提供的。上述實驗表格表明,使用我們的ReSimAD方法所仿真的點云可以獲得較高的初始化權值參數,其性能超過了Oracle實驗設置。
ReSimAD數據作為通用數據集,利用AD-PT預訓練方式在不同下游任務上的性能
為了驗證ReSimAD是否可以生成更多的點云數據來幫助3D預訓練,我們設計了以下實驗:使用AD-PT(近期提出的一個關于自動駕駛場景下預訓練骨干網絡的方法)在仿真的點云上來預訓練3D backbone,然后使用下游的真實場景數據進行全參數微調。
- 我們利用ReSimAD生成具有更廣泛分布的點云的數據。為了與AD-PT中的預訓練結果進行公平的比較,ReSimAD生成的仿真點云數據的目標量約為。在上述表格中,我們的基線檢測器分別在真實預訓練數據(ONCE數據集)和仿真預訓練數據(由ReSimAD提供)進行3D預訓練,使用AD-PT方法,并在KITTI和Waymo數據集上進行下游微調。上表的結果表明,使用不同規模的仿真預訓練數據,可以不斷提高模型在下游的性能。此外,可以看到由ReSimAD獲取的預訓練數據的數據獲取成本是很低的,相比于采用ONCE進行模型預訓練,并且ReSimAD所獲得的預訓練性能和ONCE數據集上的預訓練性能是可比較的。
采用ReSimAD重建仿真 v.s. 采用CARLA默認仿真的可視化對比
我們基于Waymo數據集重建的mesh v.s. 使用VDBFusion重建的可視化對比
總結
在這項工作中,我們致力于研究如何實驗零樣本目標域模型遷移任務,該任務要求模型不接觸到任何來自于目標域的樣本數據信息,就可以將源域預訓練的模型成功地遷移到目標域場景。不同與之前的工作,我們首次探索了基于源域隱式重建和目標域多樣性仿真的3D數據生成技術,并且驗證了該技術可以在不接觸到目標域數據分布的情況下實現較好的模型遷移性能,甚至比一些無監督領域適配(UDA)的方法還要好。
原文鏈接:https://mp.weixin.qq.com/s/pmHFDvS7nXy-6AQBhvVzSw