一鍵生成山川、河流,風格多樣,從2D圖像中學習生成無限3D場景
- 項目主頁:https://scene-dreamer.github.io/
- 代碼:https://github.com/FrozenBurning/SceneDreamer
- 論文:https://arxiv.org/abs/2302.01330
- 在線 Demo:https://huggingface.co/spaces/FrozenBurning/SceneDreamer
為滿足元宇宙中對 3D 創意工具不斷增長的需求,三維場景生成最近受到了相當多的關注。3D 內容創作的核心是逆向圖形學,旨在從 2D 觀測中恢復 3D 表征??紤]到創建 3D 資產所需的成本和勞動力,3D 內容創作的最終目標將是從海量的互聯網二維圖像中學習三維生成模型。最近關于三維感知生成模型的工作在一定程度上解決了這個問題,多數工作利用 2D 圖像數據生成以物體為中心的內容(例如人臉、人體或物體)。然而,這類生成任務的觀測空間處于有限域中,生成的目標占據了三維空間的有限區域。這就產生了一個問題,我們是否能從海量互聯網 2D 圖像中學習到無界場景的 3D 生成模型?比如能夠覆蓋任意大區域,且無限拓展的生動自然景觀(如下所示)。
本文,來自南洋理工大學 S-Lab 的研究者提出了一個新的框架 SceneDreamer,專注于從海量無標注自然圖片中學習無界三維場景的生成模型。通過采樣場景噪聲和風格噪聲,SceneDreamer 能夠渲染多樣風格的自然場景,同時保持極高的三維一致性,支持相機自由地在場景中漫游。
想要達成這樣的目標,我們面臨著如下三個挑戰:
1)無界場景缺乏高效三維表征:無邊界場景常常占據了一個任意大的歐氏空間,這凸顯了高效且具備表現力的底層三維表征的重要性。
2)缺乏內容對齊:已有三維生成工作使用具備對齊性質的數據集(如人臉、人體、常用物體等),這些有界場景中的目標物體通常具備類似的語義、相近的尺度位置和方向。然而,在海量的無標注二維圖像中,不同物體或場景常常具備迥異的語義,且擁有多變的尺度、位置和方向。這樣缺乏對齊的性質會帶來生成模型訓練的不穩定性。
3)缺乏相機位姿先驗:三維生成模型依賴于準確相機位姿或相機位姿分布的先驗來實現圖像到三維表征的逆向渲染過程。但互聯網自然圖像來源于不同的場景和像源,讓我們無法獲取其相機位姿準確信息或先驗。
為此我們提出了一個原則性的對抗學習框架 SceneDreamer,從海量的無標注自然圖像中學習生成無界三維場景。該框架包含三個主要模塊:1)高效且高表現力的鳥瞰(BEV)三維場景表征;2)學習場景通用表征的生成式神經哈希網格;3)由風格驅動的體積渲染器,并經過對抗學習的方式直接從二維圖像中進行訓練。
上圖展示了 SceneDreamer 的主要結構。在推理過程中,我們可以隨機采樣一個代表場景結構的單純形噪聲和代表場景風格的高斯噪聲
作為輸入,我們的模型能夠渲染大尺度三維場景,同時支持相機自由移動。首先我們從場景噪聲
中獲得由高度圖和語義圖組成的 BEV 場景表征。然后,利用 BEV 表征顯式地構建局部三維場景窗口來執行相機采樣,同時將 BEV 表征編碼為場景特征
。我們使用采樣點的坐標
和場景特征
來查詢由生成式的神經哈希網格編碼的高維空間,以獲得空間差異和場景差異的隱變量
。最后我們通過由風格噪聲調制的體積渲染器將相機光線上的隱變量進行整合,最終得到渲染的二維圖像。
為了學習無邊界三維場景生成,我們希望場景應當被高效高質量進行表達。我們提出使用由語義圖和高度圖組成的 BEV 表征來表達一個大尺度三維場景。具體而言,我們通過無參建圖的方法從場景噪聲中獲得俯瞰視角下高度圖和語義圖。高度圖記錄了場景表面點的高度信息,而語義圖則記錄了對應點的語義標簽。而我們使用的由語義圖和高度圖組成的 BEV 表征能夠:1)在 n^2 復雜度上表示三維場景;2)能夠得到三維點對應的語義,從而解決內容對齊的問題。3)支持使用滑動窗口的方式來合成無限大場景,避免了訓練時固定場景分辨率導致泛化性的問題。
為了編碼能夠泛化于場景之間的三維表征,我們需要將空間三維場景表征編碼至隱空間中以便于對抗學習的訓練。值得注意的是,對于一個大尺度的無界場景,通常只有其表面可見點對于渲染時是有意義的,這意味著其參數化形式應當是緊湊且稀疏的。已有方法如 tri-plane 或三維卷積等將空間建模為一個整體,模型能力會大量的浪費在建模不可見表面點上。受到神經哈希網格在三維重建任務上成功的啟發,我們將其空間緊湊和高效的性質推廣到生成任務上,提出使用生成式神經哈希網格來建??鐖鼍暗娜S空間特征。具體而言是使用哈希函數 F_theta 來將場景特征 f_s 和空間點坐標 x 映射到多尺度混合的可學習參數上:
為了保證渲染的三維一致性,我們使用基于體積渲染的渲染網絡來完成三維空間特征到二維圖像的映射。對于相機光線上的一點,我們經過查詢生成式哈希網格得到其對應的特征 f_x,使用經風格噪聲調制的多層 MLP 來得到其對應點的顏色和體密度,最終通過體渲染來將一條相機光線上的所有點積分為對應像素的顏色。
整個框架是通過對抗學習來直接端到端地在二維圖像上進行訓練的。生成器即上述體渲染器,而判別器我們使用基于語義感知的判別網絡來根據由 BEV 表征中投影到相機上的語義圖來分辨真實圖像和渲染圖像。更多細節歡迎參考我們的論文。
訓練完成后,我們通過隨機采樣場景噪聲和風格噪聲,便可以生成多樣的三維場景,同時擁有良好的深度信息和三維一致性,并支持自由相機軌跡的渲染:
通過滑動窗口的推理模式,我們可以生成遠超越訓練空間分辨率的超大無邊界三維場景。下圖展示了 10 倍于訓練空間分辨率的場景,且同時在場景和風格維度上進行平滑插值
像類似的插值平滑過渡的結果,我們的框架支持解耦的模式,即分別固定場景或風格來進行插值,體現了隱空間的語義豐富性:
為了驗證我們方法的三維一致性,我們還使用圓形的相機軌跡來渲染任一場景,重新利用 COLMAP 進行了三維重建,能夠得到較好的場景點云和匹配的相機位姿,表明了該方法能夠在保障三維一致性的前提下,來生成多樣的三維場景:
本工作提出了 SceneDreamer,一個從海量二維圖像中生成無界三維場景的模型。我們能夠從噪聲中合成多樣的大范圍三維場景,并保持三維一致性,支持自由的相機軌跡。我們希望本工作能夠為游戲工業、虛擬現實和元宇宙生態提供了一種全新的探索方向和可能。更多細節請參考我們的項目主頁。