無懼大平移!MMLab最新FreeSim:漸進迭代拿下3m平移新視角
寫在前面 & 筆者的個人理解
最新重建方面的工作是真多啊,基本上大家都在卷仿真重建。今天分享MMLab最新的工作,提出了FreeSim。一種用于自動駕駛的相機仿真方法。FreeSim強調從記錄的自車軌跡之外的視角進行高質量渲染。由于這些視角的訓練數據不可用,以前的方法具有不可接受的退化。為了解決這種數據稀缺問題,我們首先提出了一種具有匹配數據構建策略的生成增強模型。所得到的模型可以在略微偏離記錄軌跡的視角中生成高質量的圖像,前提是該視角的渲染質量下降。然后,我們提出了一種漸進式重建策略,該策略從略微偏離軌跡的視角開始,逐漸將未記錄視圖的生成圖像添加到重建過程中,并逐漸遠離。通過這種漸進式生成重建管道,FreeSim支持在超過3米的大偏差下進行高質量的非軌跡視圖合成。
總結來說,本文的主要貢獻如下:
- 為了解決自由視角相機仿真中的數據稀缺問題,我們將具有挑戰性的姿勢條件視圖生成任務重新表述為生成圖像增強任務,并提出了一個匹配的數據構建管道用于模型訓練。
- 提出了一種漸進式重建策略,將生成和重建部分無縫結合,避免了在大視角變化下嚴重的圖像退化。
- FreeSim在自由視角渲染中比現有的基于重建的方法具有顯著的優勢,更接近現實和實用的仿真器。
相關工作回顧
駕駛場景中基于重建的相機仿真。神經輻射場(NeRF)和3D高斯散斑(3DGS)是最流行的重建方法。3DGS利用3D高斯的顯式表示和基于光柵化的渲染方法,實現了更快的渲染和訓練。這兩種方法都可以在給定從不同相機視角拍攝的一些3D場景的少量圖像的情況下實現高質量、逼真的新穎視圖合成(NVS)。后來的NeRF工作和3DGS工作將這兩種方法擴展到了駕駛場景。然而,在駕駛場景中,所有圖像都是沿著記錄的軌跡拍攝的。由于對這些偏離軌跡的視角缺乏監督,這些方法無法從記錄軌跡之外的視角渲染高保真圖像。
駕駛場景中的非軌跡視圖合成。基于擴散的生成方法在2D圖像和視頻生成方面取得了顯著成功。受這些技術的啟發,一些街道場景重建方法采用擴散模型來合成偏離軌跡的視圖,解決了未記錄軌跡中缺失視圖的挑戰。例如,SGD使用基于參考圖像和目標視圖的深度圖的擴散過程生成新視圖。然而,它主要局限于僅通過旋轉變化來合成相機視圖,并且可能難以進行大的空間平移。FreeVS使用目標視圖的偽圖像作為擴散模型的先驗。然而,這張偽圖像來自激光雷達點云,這限制了模型生成激光雷達無法到達的區域的能力。除了擴散模型外,UniSim還采用了基于GAN的監督來增強非軌跡視圖中的照片真實感。然而,與最先進的擴散模型相比,GAN在很大程度上偏離了視角的情況下限制了照片真實感。AutoPlat利用3D車輛形狀模板的對稱先驗作為約束,以提高視角偏差后的質量。
方法
FreeSim是一種生成重建混合方法,如圖2所示。在這里,我們分別從生成和重建兩個方面簡要介紹了概述。
生成部分。將位姿條件視圖生成任務轉化為生成圖像增強任務。該公式避免了直接使用多視圖外參變換作為條件,這在單程駕駛軌跡中是不可用的。為了訓練生成模型,我們首先提出了一種數據構建策略來創建訓練數據。
重建部分。可以預期,如果渲染因大的視角變化而嚴重退化,生成模型可能難以生成高質量的結果。因此,我們提出了一種漸進式重建策略,該策略將生成的視角逐步添加到訓練圖像集中進行重建,從最接近記錄軌跡的視角開始,逐漸遠離記錄軌跡。
raining Data Construction for Generation
我們任務中的數據稀缺。最近,在利用擴散模型生成多視圖圖像方面取得了令人印象深刻的進展。然而,他們的范式和我們的任務之間存在本質區別。這些多視圖生成模型使用NVS數據集中的多視圖樣本進行訓練,如Objaverse、RealEstate10k、CO3D、DL3DV和MVImgNet。相比之下,我們的任務中記錄的軌跡之外的地面實況圖像是不可用的,因為車輛不能同時沿著多個軌跡行駛。這種數據稀缺是我們的核心挑戰,也是我們提出的方法的基本動機。
我們需要什么樣的訓練數據?為了應對數據稀缺的挑戰,我們沒有訓練模型直接從姿態轉換中生成偏離軌道的視圖。相反,我們將視圖生成任務表述為圖像增強任務。具體來說,給定從記錄的視圖重建的輻射場,我們可以在略微偏離的視角(例如,橫向偏移半米)中獲得降級的渲染。盡管劣化圖像的質量可能較低,但它們在生成高質量圖像之前起著很強的作用。這種公式使我們能夠根據記錄的視圖創建訓練對(低質量和高質量的對),避開了偏離軌道GT的無法實現的要求。我們將在下面介紹創建此類訓練對的方法。
Preparing Degraded Renderings
我們需要解決兩個問題來獲得適當的降級渲染。(1) 如何高效地重建眾多場景以獲得足夠的數據。(2) 如何縮小記錄的視角(用于訓練)和未記錄的視角的退化模式(用于推理)之間的差距。對于第一個問題,我們提出了分段高斯重建。對于第二個問題,我們采用外推渲染和高斯擾動技術。
分段高斯重建。我們重建Waymo開放數據集(WOD)以獲得退化的渲染圖像。然而,作為駕駛場景中最大的數據集之一,它包含1150個塊級場景。重建完整的數據集非常昂貴。為了提高效率,我們將每個完整軌跡分解為幾個小子段,并為每個子段重建一個小尺度分段高斯場,如圖3所示。由于其小規模,分段高斯場需要更少的高斯基元并快速收斂。我們提出了幾種技術來匹配小尺度的分段高斯場,并使重建更便宜。(1) 我們將原始圖像大小調整到一半。(2) 我們采用1k迭代計劃,學習率更高。(3) 高斯基元的最大數量設置為1M。由于我們的目標是獲得降級的渲染,因此我們不需要高質量的重建,并且可以安全地采用這些技術。由于其簡單性,我們使用開創性的驅動重建方法PVG作為重建工具。由于基于高斯的PVG和我們的技術的效率,我們可以在不到2分鐘的時間內重建一個子片段。使用8個GPU,整個WOD重建大約需要40個小時,比全段重建實現了大約6倍的加速。
除了效率之外,分段高斯重建還可以更好地仿真退化模式,如下所示。
外推渲染的退化模式。傳統的NVS方法以插值方式對測試視圖進行采樣。與它們不同,對于每個子片段,我們將片段中的最后幾幀作為測試視圖,這是一種推斷的方式。我們采用這種設計是因為我們的目標視圖,即偏離軌道的視圖,本質上也是外推視圖。如果我們以側視攝像頭為例,我們的設計有一個更直觀的解釋。就運動模式而言,側視攝像頭沿向前移動軌跡的移動幾乎相當于前置攝像頭的橫向偏移。
為了增加數據多樣性,我們通過向分段高斯場中的高斯基元添加噪聲來進一步創建降級渲染。視角偏差后一個非常典型的退化模式是圖4所示的“物體重影”。這種模式是由那些深度不準確的高斯基元引起的,這些基元在視角偏差后被光柵化到錯誤的圖像位置。為了仿真重影,我們在場景中隨機采樣一小部分高斯基元,并將它們沿水平方向(即圖像空間中的寬度方向)移動相同的隨機距離。因此,受擾動的高斯基元在光柵化后會產生重影。此外,在視角偏差之后,圖元相對于相機的相對旋轉也會發生變化。因此,我們進一步在高斯基元在其規范坐標系中的旋轉中添加了輕微的噪聲,以更好地仿真退化的渲染
Structure of Generative Model
采用Stable Diffusion (SD) v1.5作為生成模型。
重建
在完成生成模型的訓練后,我們繼續進行重建部分。
高斯場初始化。由于生成模型基于退化渲染,我們使用PVG中的標準程序進行預重建,以提供相對較好的初始狀態。之后,偏離軌跡的視角按如下方式加入游戲。
漸進式視角擴展。雖然生成模型可以增強退化的渲染,但可以預料,如果渲染在很大程度上偏離的視角中完全破壞,生成的質量可能會不足。為了避免這個問題,我們建議從小的視角偏差到大的視角偏差,逐步納入偏離軌道的視角。有各種順序可以逐步合并偏離軌跡的視角,這里我們采用橫向軌跡偏移,如圖2所示。這種類似車道變換的橫向換檔是最常見但也是最具挑戰性的仿真要求。具體來說,對于第一次更新,我們以預定義的步長橫向移動軌跡中的所有視角,并在移動的視角中生成新的圖像。然后將生成的圖像添加到訓練集中。每次更新訓練集后,我們凍結訓練集并優化高斯場,直到它幾乎收斂。之后,我們再次移動上次更新的軌跡,并重復生成重建過程。這種漸進的方式確保了新添加的視角的渲染總是略有下降,生成模型可以很容易地恢復它們。
后增強以減輕滾動快門失真和生成隨機性。在重建過程中,有兩個問題降低了最終的重建質量:眾所周知的滾動快門失真和生成隨機性。駕駛場景中的相機在錄制過程中通常以不可忽略的速度移動,導致捕獲圖像中的滾動快門失真。因此,3DGS和NeRF中的標準針孔相機模型也會使底層3D結構失真。在我們的例子中,這個問題變得更糟,因為我們納入了比單軌跡重建更多的視角。在這種情況下,適合每個(扭曲的)視圖的底層3D結構甚至可能不存在。此外,生成模型不可避免地引入了隨機性,例如稍微改變細節紋理,導致多個視角之間的不一致。
實驗結果
結論
本文所提出的FreeSim是一種生成-重建混合方法,能夠合成與記錄的駕駛軌跡有很大偏差的高質量視圖。然而,我們的方法仍然有幾個局限性。
FreeSim無法完美處理滾動快門失真和生成部分的隨機性,導致草等細節豐富的區域模糊。雖然我們可以通過后增強來提高質量,但由于多步去噪,它會降低效率。
訓練數據僅由PVG創建,PVG是一種基于高斯的方法。因此,我們的生成模型不能很好地推廣到基于NeRF的方法。盡管在數據構建中進一步采用NeRF可以彌補這一局限性,但由于NeRF的效率相對較低,它可能會減緩數據構建的進程。
我們未來的工作包括采用視頻生成模型,使場景可編輯,并改進原生3DGS rasterizer來處理滾動快門問題。