pdf | proj | code
- 本文提出一種新的3D數(shù)據(jù)表達(dá)形式3D Gaussians。每個(gè)Gaussian由以下參數(shù)組成:中心點(diǎn)位置、協(xié)方差矩陣、可見性、顏色。通過世界坐標(biāo)系到相機(jī)坐標(biāo)系,再到圖像坐標(biāo)系的仿射關(guān)系,可將3D Gaussian映射到相機(jī)坐標(biāo)系,通過對(duì)z軸積分,可得到對(duì)應(yīng)Splatting 2D分布。
- 針對(duì)3D Gaussians,提出對(duì)應(yīng)的優(yōu)化方法。去除可見性太低的高斯,對(duì)回傳梯度較大的高斯,通過復(fù)制,克隆等操作,增強(qiáng)表達(dá)能力。
- 針對(duì)3D Gaussians,提出對(duì)應(yīng)的光柵化方法。將圖像切分為16 x 16的塊,每個(gè)塊內(nèi)對(duì)高斯根據(jù)深度進(jìn)行排序。光柵時(shí),從前向后遍歷,當(dāng)可見性累加到某個(gè)閾值即停止。梯度回傳時(shí)從停止塊開始,有后向前遍歷。
目錄
摘要
引言
近期工作
Traditional Scene Reconstruction and Rendering
Neural Rendering and Radiance Fields
Point-Based Rendering and Radiance Fields
Overview
Differentiable 3D Gaussian Splatting
Optimization with Adaptive Density Control of 3D Gaussians
Fast Differentiable Rasterizer for Gaussians
Implementation, Results and Evaluation
Implementation
Results and Evaluation
Real-World Scenes
Synthetic Bounded Scenes
Ablations
Initialization from SfM
Densification
Unlimited depth complexity of splats with gradients
Anisotropic Covariance?
Limitations
摘要
- NeRF效果好,但是訓(xùn)練和渲染很花時(shí)間;特別是對(duì)1080p分辨率渲染的場(chǎng)景,現(xiàn)有方法無(wú)法實(shí)現(xiàn)實(shí)時(shí)渲染。
- 本文引入三個(gè)關(guān)鍵部分,實(shí)現(xiàn)sota視覺質(zhì)量、較短訓(xùn)練時(shí)間和1080p分辨率下新視角實(shí)時(shí)渲染。
- 3D Gaussians。通過camera calibration中產(chǎn)生的稀疏點(diǎn)進(jìn)行初始化。這種新的3D表達(dá)形式在保存NeRF優(yōu)點(diǎn)的同時(shí),避免了空白空間不必要的計(jì)算開銷;
- Optimization。實(shí)現(xiàn)3D Gaussian的交替優(yōu)化和密度控制,優(yōu)化各向異性協(xié)方差矩陣實(shí)現(xiàn)對(duì)場(chǎng)景的準(zhǔn)確表達(dá);
- Rendering。實(shí)現(xiàn)快速可見感知渲染算法(fast visibility-aware rendering algorithm),支持各向異性飛濺(anisotropic splatting),同時(shí)加速訓(xùn)練和渲染。
- 本文在多個(gè)數(shù)據(jù)集上,實(shí)現(xiàn)sota視覺質(zhì)量和實(shí)時(shí)渲染。
引言
- Mesh和點(diǎn)云是最常用的3D場(chǎng)景表達(dá),這種顯式表達(dá)非常適合快速GPU/CUDA-based rasterization。另一方面,NeRF可建立連續(xù)的場(chǎng)景表達(dá),用volumetric ray-marching優(yōu)化MLP,實(shí)現(xiàn)新視角生成?;贜eRF的高效算法,通常會(huì)引入一些新的表達(dá)形式,用插值的方式實(shí)現(xiàn)連續(xù)表達(dá),例如:體素(voxel),hash grids,或點(diǎn)云。這些方法效果不錯(cuò),但是渲染中要求的隨機(jī)采樣計(jì)算開銷大、并且會(huì)導(dǎo)致噪聲。本文提出的方法:3D Gaussian可以實(shí)現(xiàn)sota的視覺質(zhì)量和具有競(jìng)爭(zhēng)力的訓(xùn)練時(shí)間;tile-based splatting solution可以實(shí)現(xiàn)1080p的實(shí)時(shí)渲染。
- 本文所提方法由三個(gè)主要部分組成。
- 3D Gaussians:通過Structure-from-Motion (SfM) 相機(jī)標(biāo)定得到的稀疏點(diǎn)云初始化,對(duì)于NeRF-synthetic dataset,本文方法在隨機(jī)初始化情況下,也可取得較好的結(jié)果。3D Gaussian的優(yōu)點(diǎn)在于(a)可導(dǎo)的體表示;(b)通過映射至2D,實(shí)現(xiàn)高效柵格化;(c)可以實(shí)施標(biāo)準(zhǔn)的alpha-blending;
- 優(yōu)化:提出一種優(yōu)化3D Gaussians參數(shù)的方法,參數(shù)包括:3D position,opacity alpha,anisotropic covariance和球諧系數(shù)(spherical harmonic coefficients)。優(yōu)化方法:交替執(zhí)行密度控制步,在優(yōu)化過程中增加或去除3D Gaussians。
- 渲染:提出一種快速GPU排序算法,受tile-based rasterization方法啟發(fā)。實(shí)現(xiàn)各向異性紋理飛濺(anisotropic splatting),一種可見性排序(visibility ordering)。受益于排序和alpha-blending,可以實(shí)現(xiàn)快速和準(zhǔn)確的反向傳播。
近期工作
Traditional Scene Reconstruction and Rendering
- light fields (1996) -> Structure-from-Motion (SfM,2006) -> multi-view stereo (MVS,2007)
- MVS-based方法會(huì)重投影(re-project)并融合(blend)輸入圖片到新相機(jī)視角,使用幾何引導(dǎo)重投影。?
Neural Rendering and Radiance Fields
- Soft3D (2017,首次提出Volumetric representations) -> 將深度學(xué)習(xí)技術(shù)應(yīng)用到volumetric ray-marching(2019)-> NeRF (2020,提出importance sampling和postional encoding,但是較大MLP影響了速度) -> MipNeRF360(2022,sota視覺效果,但訓(xùn)練和渲染時(shí)間太長(zhǎng))
- 為了加速訓(xùn)練或渲染,現(xiàn)有的探索集中在三個(gè)方向:稀疏數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)特征,不同的編碼器和MLP容量。其中,值得一提的方法是InstantNGP(2022),該方法使用hash grid和occupancy grid來(lái)加速計(jì)算,用一個(gè)較小的MLP表示密度和外觀。Plenoxels(2022),使用稀疏體素網(wǎng)格,插值表示連續(xù)密度場(chǎng),并且能夠不使用MLP。
- 盡管上述方法產(chǎn)生了很好的結(jié)果,這些方法仍然不能高效表示空白區(qū)域。
Point-Based Rendering and Radiance Fields
-blending和體渲染(volumetric rendering)本質(zhì)上是相同的成像模型。對(duì)于體渲染方法:
其中是密度,是透光率,是顏色,是相鄰采樣點(diǎn)的間隙。密度越大,越接近1,該點(diǎn)越重要;之前點(diǎn)的密度和越大,越大,該點(diǎn)越不重要。上式可以被重新組織為:
alpha-blending可以表示為:
其中,所有點(diǎn)根據(jù)前后關(guān)系排序,是該點(diǎn)顏色,是該點(diǎn)所在2D高斯的概率密度乘以該點(diǎn)的不透明性(opacity)。
相較于之前的-blending柵格化方法,本文提出可見性(visibility)排序。另外,本文反向傳播梯度到像素點(diǎn)中的所有splats,柵格化所有各向異性splats。
Overview
- Initialization:給定靜態(tài)場(chǎng)景的一組圖片,和對(duì)應(yīng)經(jīng)過SfM校準(zhǔn)的相機(jī)參數(shù),以及SfM在校準(zhǔn)過程中產(chǎn)生的稀疏點(diǎn)云;
- 3D Gaussians:給定稀疏點(diǎn)云,初始化3D Gaussians,每個(gè)3D Gaussian由位置mean,協(xié)方差矩陣和不透明性決定;輻射場(chǎng)中指向性外觀部分(顏色),通過spherical harmonics (SH) 表征;
- Optimization:逐步優(yōu)化3D Gaussians的參數(shù):位置、協(xié)方差矩陣、和SH系數(shù);
- Rendering:tile-based rasterizer,支持根據(jù)可見性順序的各向異性splats的-blending
Differentiable 3D Gaussian Splatting
在世界坐標(biāo)系下,3D Gaussians由三個(gè)系數(shù)定義:均值,3D協(xié)方差矩陣和:
將世界坐標(biāo)系下的3D Gaussians轉(zhuǎn)換到相機(jī)坐標(biāo)下:
其中,是世界坐標(biāo)系坐標(biāo)到相機(jī)坐標(biāo)系坐標(biāo)的轉(zhuǎn)換矩陣,是透視變換的Jacobian矩陣。
參考:EWA Volume Splatting
- View transformation:將世界坐標(biāo)系下坐標(biāo)轉(zhuǎn)換到相機(jī)坐標(biāo)系。假設(shè)是世界坐標(biāo)系下坐標(biāo),是相機(jī)坐標(biāo)系下坐標(biāo),則有仿射變換
,可得。
- Projective Transformation(透視變換):將相機(jī)坐標(biāo)系下坐標(biāo)轉(zhuǎn)換到圖像空間,該轉(zhuǎn)換不是仿射變換。假設(shè)是圖像空間下坐標(biāo),則有。由于該變換不是放射變換,因此考慮:
,得到局部放射近似,其中。最終可得。
協(xié)方差矩陣具有物理含義,需要滿足半正定條件??紤]協(xié)方差矩陣描述了一個(gè)標(biāo)準(zhǔn)球體向橢球體的變化過程,對(duì)標(biāo)準(zhǔn)球體先放縮,再旋轉(zhuǎn):
因此,縮放可以用三維向量描述,也即協(xié)方差矩陣的三個(gè)特征值。旋轉(zhuǎn)其實(shí)是三個(gè)特征向量,它們兩兩正交且模為1,通過分析可由四維向量描述。
綜上,一個(gè)3D Gaussian可由三個(gè)縮放系數(shù)、四個(gè)旋轉(zhuǎn)系數(shù)、中心點(diǎn)位置和不透明率表示。除了上述提到的參數(shù)外,本文還用SH系數(shù)表示顏色。
Optimization with Adaptive Density Control of 3D Gaussians
- 不透明率通過sigmoid激活函數(shù)映射至0到1之間。
- 損失函數(shù)如下:
Gaussian的優(yōu)化過程中,本文考慮以下兩種情況:
- 異常:移除小于閾值的高斯。
-
梯度異常:梯度超過閾值時(shí),本文認(rèn)為梯度異常,考慮存在under-reconstruction或over-reconstruction:
- under-reconstruction:Gaussians太小了,不能覆蓋必要幾何。本文考慮復(fù)制相同大小的Gaussian,新Gaussian放至位置梯度所指方向;
- over-reconstruction:對(duì)于方差太大的Gaussians,本文將其拆分為兩個(gè)Gaussians,兩個(gè)都縮放,新Gaussian的位置通過在舊Gaussian中采樣決定。
- 特殊情況:
- 漂浮物(floaters)會(huì)導(dǎo)致Gaussian密度的異常增加。本文提出,每?iter,將所有設(shè)置為近似為0的值。在優(yōu)化后,對(duì)于沒有增大的Gaussian,則根據(jù)前述規(guī)則去除掉。
- 對(duì)于具有非常大worldspace和相機(jī)坐標(biāo)中具有較大footprint的Gaussian也會(huì)去除掉。
Fast Differentiable Rasterizer for Gaussians
提出一種tile-based rasterizer
- 光柵化:
- 將屏幕劃分為16 x 16塊,一次性預(yù)排序所有primitives,避免針對(duì)每個(gè)像素排序的開銷
- 僅保留有99%置信度的Gaussians
- 用保護(hù)帶(guard band)拒絕極端位置的高斯,例如:距離平面太近,或在視錐體之外太遠(yuǎn)的高斯;
- 實(shí)例化高斯,并賦予每個(gè)高斯一個(gè)鍵值,包括視覺空間深度和塊ID
- 根據(jù)鍵值排序高斯。對(duì)于每個(gè)塊,得到一個(gè)根據(jù)深度由近到深排序的列表
- 在光柵化過程中,每個(gè)塊使用一個(gè)線程去處理,每個(gè)線程首先將Gaussians加載到shared memory。對(duì)于給定像素點(diǎn),從前往后遍歷列表,根據(jù)加權(quán)求和顏色。當(dāng)達(dá)到目標(biāo)飽和值時(shí),該進(jìn)程停止,得到該像素點(diǎn)的顏色。
- 梯度回傳:從最后一個(gè)點(diǎn),從后往前遍歷列表,選擇對(duì)應(yīng)的Gaussian反傳梯度。
Implementation, Results and Evaluation
Implementation
Pytorch + 用于光柵化的custom CUDA kernels
Results and Evaluation
Real-World Scenes
Synthetic Bounded Scenes
- 30K迭代后,每個(gè)場(chǎng)景由200-500K Gaussians組成
Ablations
Initialization from SfM
Densification
Unlimited depth complexity of splats with gradients
Anisotropic Covariance?
Limitations
- 對(duì)于缺乏訓(xùn)練數(shù)據(jù)的場(chǎng)景,存在失真,Mip-NeRF360也存在:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-766258.html
- 存在拉長(zhǎng)失真(elongated artifacts),比較臟的高斯(splotchy Gaussians),Mip-NeRF360也有
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-766258.html
- 相較于NeRF-based方法,內(nèi)存開銷大,需要20GB GPU memory
到了這里,關(guān)于[SIGGRAPH-23] 3D Gaussian Splatting for Real-Time Radiance Field Rendering的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!