CVPR 2025 | GaussianCity: 60倍加速,讓3D城市瞬間生成
想象一下,一座生機(jī)勃勃的 3D 城市在你眼前瞬間成型 —— 沒有漫長的計算,沒有龐大的存儲需求,只有極速的生成和驚人的細(xì)節(jié)。
然而,現(xiàn)實卻遠(yuǎn)非如此?,F(xiàn)有的 3D 城市生成方法,如基于 NeRF 的 CityDreamer [1],雖然能夠生成逼真的城市場景,但渲染速度較慢,難以滿足游戲、虛擬現(xiàn)實和自動駕駛模擬對實時性的需求。而自動駕駛的 World Models [2],本應(yīng)在虛擬城市中訓(xùn)練 AI 駕駛員,卻因無法保持多視角一致性而步履維艱。
現(xiàn)在,新加坡南洋理工大學(xué) S-Lab 的研究者們提出了 GaussianCity,該工作重新定義了無界 3D 城市生成,讓它變得 60 倍更快。過去,你需要數(shù)小時才能渲染一片城區(qū),現(xiàn)在,僅需一次前向傳播,一座完整的 3D 城市便躍然眼前。無論是游戲開發(fā)者、電影制作者,還是自動駕駛研究者,GaussianCity 都能讓他們以秒級的速度構(gòu)建世界。
城市不該等待生成,未來應(yīng)該即刻抵達(dá)。
??觀看Demo,發(fā)現(xiàn)GaussianCity與其他方法的顯著差異!
閱讀論文,深入了解GaussianCity的技術(shù)細(xì)節(jié)。
- Paper:https://arxiv.org/abs/2406.06526
- Code:https://github.com/hzxie/GaussianCity
- Project Page:https://haozhexie.com/project/gaussian-city
- Live Demo: https://huggingface.co/spaces/hzxie/gaussian-city
引言
3D 城市生成的探索正面臨著一個關(guān)鍵挑戰(zhàn):如何在無限擴(kuò)展的城市場景中實現(xiàn)高效渲染與逼真細(xì)節(jié)的兼得?現(xiàn)有基于 NeRF 的方法雖能生成細(xì)膩的城市景觀,但其計算成本極高,難以滿足大規(guī)模、實時生成的需求。近年來,3D Gaussian Splatting(3D-GS)[3] 憑借其極高的渲染速度和優(yōu)異的細(xì)節(jié)表現(xiàn),成為對象級 3D 生成的新寵。然而,當(dāng)嘗試將 3D-GS 擴(kuò)展至無界 3D 城市時,面臨了存儲瓶頸和內(nèi)存爆炸的問題:數(shù)十億個高斯點的計算需求輕易耗盡上百 GB 的顯存,使得城市級別的 3D-GS 生成幾乎無法實現(xiàn)。
為了解決這一難題,GaussianCity 應(yīng)運(yùn)而生,首個用于無邊界 3D 城市生成的生成式 3D Gaussian Splatting 框架。它的貢獻(xiàn)可以被歸納為:
- 通過創(chuàng)新性的 BEV-Point 表示,它將 3D 城市的復(fù)雜信息高度壓縮,使得顯存占用不再隨場景規(guī)模增長,從而避免了 3D-GS 中的內(nèi)存瓶頸。
- 借助空間感知 BEV-Point 解碼器,它能夠精準(zhǔn)推測 3D 高斯屬性,高效生成復(fù)雜城市結(jié)構(gòu)。
- 實驗表明,GaussianCity 不僅在街景視角和無人機(jī)視角下實現(xiàn)了更高質(zhì)量的 3D 城市生成,還在推理速度上比 CityDreamer 快 60 倍,大幅提高了生成效率。
具體來說,得益于 BEV-Point 的緊湊表示,GaussianCity 可以在生成無界 3D 城市時保持顯存占用的恒定,而傳統(tǒng) 3D-GS 方法在點數(shù)增加時顯存使用大幅上升(如下圖(b)所示)。同時,BEV-Point 在文件存儲增長上也遠(yuǎn)遠(yuǎn)低于傳統(tǒng)方法(如下圖(c)所示)。不僅如此,GaussianCity 在生成質(zhì)量和效率上都優(yōu)于現(xiàn)有的 3D 城市生成方法,展現(xiàn)了其在大規(guī)模 3D 城市合成中的巨大潛力(如下圖(d)所示)。
方法
如上圖所示,GaussianCity 將 3D 城市生成過程分為三個主要階段:BEV-Point的初始化、特征生成和解碼。
BEV-Point 初始化
在 3D-GS 中,所有 3D 高斯點在優(yōu)化過程中都會使用一組預(yù)定義的參數(shù)進(jìn)行初始化。然而,隨著場景規(guī)模的增加,顯存需求急劇上升,導(dǎo)致生成大規(guī)模場景變得不可行。為此,GaussianCity 采用 BEV-Point 進(jìn)行優(yōu)化,以緩解這一問題。
BEV 圖 是生成 BEV-Point 的基礎(chǔ),包含三個核心圖像:高度圖(Height Map)、語義圖(Semantic Map)和 密度圖(Density Map)。從 BEV 圖 中,BEV-Point 被生成:
- 高度圖 決定每個點在空間中的 3D 坐標(biāo)。
- 語義圖 提供每個點的語義標(biāo)簽,如建筑、道路等。
- 密度圖 調(diào)整采樣密度,根據(jù)不同區(qū)域的特征決定是否增加或減少采樣點。
BEV-Point 通過只保留可見點大幅減少計算量。由于相機(jī)視角固定,場景中不可見的點不影響渲染結(jié)果,因而不占用顯存。這樣,隨著場景擴(kuò)展,顯存使用量保持恒定。
為了優(yōu)化計算,二值密度圖根據(jù)語義類別調(diào)整采樣密度。對于簡單紋理(如道路、水域)減少密度,復(fù)雜紋理(如建筑物)則增加密度。
通過射線交點(Ray Intersection)方法篩選出可見的 BEV-Point,確保僅這些點參與后續(xù)渲染和優(yōu)化,進(jìn)一步提升計算效率。
BEV-Point 特征生成
在 BEV-Point 表示中,特征可分為三大類:實例屬性、BEV-Point 屬性和樣式查找表。
1.實例屬性
實例屬性包括每個實例的基本信息,如實例標(biāo)簽、大小和中心坐標(biāo)等。語義圖提供了每個 BEV 點的語義標(biāo)簽。為了處理城市環(huán)境中建筑物和車輛的多樣性,引入了實例圖來區(qū)分不同的實例。通過檢測連接組件(Connected Components)的方式,將語義圖進(jìn)行實例化,從而得到每個實例的標(biāo)簽、大小和邊界框的中心坐標(biāo)。
2.BEV-Point 屬性
在 BEV-Point 初始化時,生成了每個點的絕對坐標(biāo),并設(shè)定其原點在世界坐標(biāo)系的中心。為了更精確地描述每個實例的相對位置,相對坐標(biāo)系被引入。其原點設(shè)置在每個實例的中心,并通過標(biāo)準(zhǔn)化的方式來計算相對坐標(biāo)。
為了融入更多的上下文信息,場景特征從 BEV 圖中提取,并通過點的絕對坐標(biāo)進(jìn)行索引,進(jìn)一步為每個 BEV 點提供更豐富的上下文信息。
3.樣式查找表(Style Look-up Table)
在 3D-GS 中,每個 3D 高斯點的外觀都由其自身的屬性決定,導(dǎo)致存儲開銷隨著高斯點數(shù)量的增加而顯著增長,使得大規(guī)模場景的生成變得不可行。為了解決這一問題,BEV-Point 采用隱向量(Latent Vector)來編碼實例的外觀,使得相同的實例共享同一個隱向量,并通過樣式查找表為不同實例分配樣式,從而減少計算與存儲開銷。
BEV-Point 解碼
BEV-Point 解碼器用于從 BEV-Point 特征生成高斯點屬性,主要包括五個模塊:位置編碼器、點序列化器、Point Transformer、Modulated MLPs、以及高斯光柵化器。
1.位置編碼器(Positional Encoder)
為了更好地表達(dá)空間信息,BEV-Point 坐標(biāo)和特征不會直接輸入網(wǎng)絡(luò),而是經(jīng)過位置編碼轉(zhuǎn)換為高維嵌入,從而提供更豐富的表征能力。
2.點序列化器(Point Serializer)
BEV-Point 是無序點云,直接用 MLP 可能無法充分利用其結(jié)構(gòu)信息。因此,我們引入點序列化方法,將點坐標(biāo)轉(zhuǎn)換為整數(shù)索引,使相鄰點在數(shù)據(jù)結(jié)構(gòu)中更具空間連續(xù)性,優(yōu)化信息組織方式。
3.Point Transformer
序列化后的點特征經(jīng)過 Point Transformer V3 [10] 進(jìn)一步提取上下文信息,增強(qiáng) BEV-Point 的全局和局部關(guān)系建模能力。
4.Modulated MLPs
在生成 3D 高斯點屬性時,MLP 結(jié)合 BEV-Point 特征、Point Transformer 提取的特征、實例的樣式編碼及標(biāo)簽,以確保生成的高斯點具有一致的外觀和風(fēng)格。
5.高斯光柵化器(Gaussian Rasterizer)
最終,結(jié)合相機(jī)參數(shù),BEV-Point 生成的 3D 高斯點屬性通過高斯光柵化器進(jìn)行渲染。對于未生成的某些屬性,如尺度、旋轉(zhuǎn)、透明度,則使用默認(rèn)值填充。
實驗
下圖展示了 GaussianCity 和其他 SOTA 方法的對比,這些方法包括 PersistentNature [4]、SceneDreamer [5] 、InfiniCity [6] 和 CityDreamer [1]。實驗結(jié)果表明,GaussianCity 的效果明顯優(yōu)于其他方法,相比于 CityDreamer 更是取得了 60 倍的加速。
在街景圖生成上,GaussianCity 在 KITTI-360 [7] 數(shù)據(jù)集上進(jìn)行訓(xùn)練,其生成效果超越了 GSN [8] 和 UrbanGIRAFFE [9] 等多種方法。
總結(jié)
本研究提出了 GaussianCity,首個針對無邊界 3D 城市生成的生成式 3D Gaussian Splatting 框架。通過引入創(chuàng)新性的 BEV-Point 表示,GaussianCity 在保證高效生成的同時,克服了傳統(tǒng) 3D-GS 方法在大規(guī)模場景生成中面臨的顯存瓶頸和存儲挑戰(zhàn)。該方法不僅實現(xiàn)了在街景和無人機(jī)視角下的高質(zhì)量城市生成,還在推理速度上相比 CityDreamer 提升了 60 倍,顯著提高了生成效率。實驗結(jié)果表明,GaussianCity 能夠在確保細(xì)節(jié)還原的同時,高效處理無邊界 3D 城市生成,為大規(guī)模虛擬城市的實時合成開辟了新路徑。