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