摘要
輻射場(chǎng)方法改變了多張照片或視頻主導(dǎo)的場(chǎng)景新視角合成。Gaussian Splatting引入了三個(gè)關(guān)鍵元素,在保持有競(jìng)爭(zhēng)力的訓(xùn)練時(shí)間的同時(shí)實(shí)現(xiàn)最先進(jìn)的視覺(jué)質(zhì)量,重要的是允許在1080p分辨率下實(shí)現(xiàn)高質(zhì)量的實(shí)時(shí)(≥30 fps)的新視圖合成。
1.首先,從攝像機(jī)校準(zhǔn)過(guò)程中產(chǎn)生的稀疏點(diǎn)開(kāi)始,我們用三維高斯來(lái)表示場(chǎng)景,保持連續(xù)體積輻射場(chǎng)的理想特性,同時(shí)避免空白空間不必要的計(jì)算;
2.其次,對(duì)三維高斯進(jìn)行交叉優(yōu)化/密度控制,特別是優(yōu)化各向異性協(xié)方差以實(shí)現(xiàn)場(chǎng)景的精確表示;
3.我們開(kāi)發(fā)了一種快速的可見(jiàn)性感知渲染算法,支持各向異性 splatting,既加速訓(xùn)練,又允許實(shí)時(shí)渲染。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、前言
mesh 和點(diǎn)是最常見(jiàn)的3D場(chǎng)景表示,因?yàn)樗鼈兪秋@式的,非常適合于快速的基于GPU/CUDA的柵格化。相比之下,最近的神經(jīng)輻射場(chǎng)(NeRF)方法建立在連續(xù)場(chǎng)景表示的基礎(chǔ)上,通常使用體射線行進(jìn)來(lái)優(yōu)化多層感知器(MLP),以實(shí)現(xiàn)捕獲場(chǎng)景的新視圖合成。類(lèi)似地,迄今為止最有效的輻射場(chǎng)解決方案建立在連續(xù)表示的基礎(chǔ)上,通過(guò)插值存儲(chǔ)的值,例如,體素或哈希[網(wǎng)格或點(diǎn)。雖然這些方法的連續(xù)性有助于優(yōu)化,但渲染所需的隨機(jī)抽樣是昂貴的,并可能導(dǎo)致噪聲。我們引入了一種新方法,結(jié)合了最好的兩個(gè)世界:我們的三維高斯表示允許優(yōu)化與最先進(jìn)的(SOTA)視覺(jué)質(zhì)量和競(jìng)爭(zhēng)訓(xùn)練時(shí)間,而我們的拼接解決方案確保實(shí)時(shí)渲染SOTA質(zhì)量1080p分辨率在幾個(gè)之前發(fā)布的數(shù)據(jù)集(見(jiàn)下圖1)。
Mip-NeRF360 需要長(zhǎng)達(dá)48小時(shí)的訓(xùn)練時(shí)間;快速但質(zhì)量較低的輻射場(chǎng)方法可以根據(jù)場(chǎng)景實(shí)現(xiàn)交互式渲染時(shí)間(每秒10-15幀),但不能在高分辨率下實(shí)現(xiàn)實(shí)時(shí)渲染。
我們的解決方案有三個(gè)主要組件:首先引入三維高斯分布作為場(chǎng)景表示。與 nerf 方法相同的輸入開(kāi)始,即使用運(yùn)動(dòng)結(jié)構(gòu)(SfM)校準(zhǔn)的相機(jī),并使用SfM過(guò)程中免費(fèi)產(chǎn)生的稀疏點(diǎn)云初始化三維高斯數(shù)集。與大多數(shù)需要多視圖立體聲(MVS)數(shù)據(jù)的基于點(diǎn)的解決方案相比,僅以SfM點(diǎn)作為輸入就獲得了高質(zhì)量的結(jié)果。注意,對(duì)于nerf合成數(shù)據(jù)集,我們的方法即使在隨機(jī)初始化下也能獲得高質(zhì)量。我們證明了三維高斯優(yōu)點(diǎn):是可微的體積表示,但它們也可以通過(guò)投影到二維,并使用標(biāo)準(zhǔn)??混合,使用等效的圖像形成模型作為NeRF。第二個(gè)組成部分是優(yōu)化三維高斯分布的性質(zhì)-三維位置,不透明度??,各向異性協(xié)方差,和球諧(SH)系數(shù)-與自適應(yīng)密度控制步驟交錯(cuò),我們?cè)?strong>優(yōu)化過(guò)程中添加和偶爾刪除三維高斯分布。優(yōu)化過(guò)程產(chǎn)生了一個(gè)合理的緊湊、非結(jié)構(gòu)化和精確的場(chǎng)景表示(所有測(cè)試場(chǎng)景的100-500萬(wàn)高斯值)。第三個(gè)元素是我們的實(shí)時(shí)渲染解決方案,它使用快速的GPU排序算法,并受到 tile-based 的柵格化的啟發(fā),遵循工作 [Pulsar: Efficient Sphere-Based Neural Rendering CVPR2021]。
二、相關(guān)工作
首先簡(jiǎn)要概述了傳統(tǒng)的重建,然后討論了基于點(diǎn)的渲染和輻射場(chǎng)工作,討論了它們的相似性;輻射場(chǎng)是一個(gè)廣闊的領(lǐng)域,所以我們只關(guān)注直接相關(guān)的工作。
1.傳統(tǒng)的場(chǎng)景重建與渲染
第一種新視圖合成方法基于光場(chǎng),首先密集采樣,然后允許非結(jié)構(gòu)化捕獲。運(yùn)動(dòng)結(jié)構(gòu)(SfM)的出現(xiàn)使一個(gè)全新的領(lǐng)域成為可能,其中一組照片可以用來(lái)合成新的觀點(diǎn)。SfM在相機(jī)校準(zhǔn)過(guò)程中估計(jì)了一個(gè)稀疏點(diǎn)云,最初用于三維空間的簡(jiǎn)單可視化。隨后的多視圖立體聲(MVS)多年來(lái)產(chǎn)生了令人印象深刻的完整三維重建算法,使幾種視圖合成算法得以發(fā)展。所有這些方法都將輸入的圖像重新投影并混合到新的視圖相機(jī)中,并使用幾何圖形來(lái)指導(dǎo)這種重新投影。這些方法在許多情況下產(chǎn)生了極好的結(jié)果,但當(dāng)MVS產(chǎn)生不存在的幾何形狀時(shí),通常不能從未重建的區(qū)域或“過(guò)度重建”中完全恢復(fù)。最近的神經(jīng)渲染算法極大地減少了這種偽影,并避免了在GPU上存儲(chǔ)所有輸入圖像的巨大成本,在大多數(shù)方面都優(yōu)于這些方法。
2.神經(jīng)渲染和輻射場(chǎng)
早期采用深度學(xué)習(xí)技術(shù)進(jìn)行新視圖合成[Flynn等人2016;Zhou等人2016];使用CNNs估計(jì)混合權(quán)重[Hedman等人2018],或使用紋理空間解決方案[里格勒和科爾頓2020;Thies等人2019]。使用基于mvs的幾何圖形是大多數(shù)這些方法的一個(gè)主要缺點(diǎn);此外,使用cnn進(jìn)行最終渲染經(jīng)常會(huì)導(dǎo)致時(shí)間閃爍
新視圖合成的體積表示由 Soft3D 發(fā)起;隨后提出了深度學(xué)習(xí)技術(shù)與體積射線行進(jìn)的結(jié)合基于連續(xù)可微密度場(chǎng)來(lái)表示幾何。由于查詢體積需要大量的樣本,因此使用體積射線行進(jìn)進(jìn)行渲染需要大量的成本。神經(jīng)輻射場(chǎng)(NeRFs)引入了重要采樣和位置編碼來(lái)提高質(zhì)量,但使用了一個(gè)大的多層感知器,對(duì)速度產(chǎn)生負(fù)面影響。NeRF的成功導(dǎo)致了解決質(zhì)量和速度的后續(xù)方法的爆炸,通常是通過(guò)引入正則化策略;目前用于新視圖合成的最先進(jìn)的圖像質(zhì)量是Mip-NeRF360。雖然渲染質(zhì)量很優(yōu)秀,但訓(xùn)練和渲染時(shí)間仍然非常高。
加速訓(xùn)練和/或渲染,三種設(shè)計(jì)選擇:使用空間數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)(神經(jīng))特征,隨后在體積射線行進(jìn)過(guò)程中進(jìn)行插值,不同的編碼和MLP容量。這些方法包括空間離散化的不同變量、codebook 和編碼,允許完全使用較小的MLP或前面的神經(jīng)網(wǎng)絡(luò)。典型的 InstantNGP 使用哈希網(wǎng)格和占用網(wǎng)格來(lái)加速計(jì)算,使用更小的MLP來(lái)表示密度和外觀;Plenoxels 使用稀疏體素網(wǎng)格來(lái)插值連續(xù)密度場(chǎng),并且能夠完全放棄神經(jīng)網(wǎng)絡(luò)。兩者都依賴(lài)于球面諧波:前者直接表示方向性效應(yīng),后者直接編碼其輸入到顏色網(wǎng)絡(luò)。雖然兩者都提供了出色的結(jié)果,但這些方法仍然難以有效地表示空空間,這部分取決于場(chǎng)景/捕獲類(lèi)型。此外,圖像質(zhì)量在很大程度上受到用于加速的結(jié)構(gòu)化網(wǎng)格的選擇的限制,由于需要為給定的光線行進(jìn)步驟查詢?cè)S多樣本,阻礙了渲染速度。我們使用的非結(jié)構(gòu)化、顯式gpu友好的三維高斯算法在沒(méi)有神經(jīng)組件的情況下實(shí)現(xiàn)更快的渲染速度和更好的質(zhì)量。
3.基于點(diǎn)的渲染和輻射場(chǎng)
基于點(diǎn)的方法(即點(diǎn)云)有效地渲染了斷開(kāi)的和非結(jié)構(gòu)化的幾何樣本。點(diǎn)采樣渲染柵格化具有固定大小的非結(jié)構(gòu)化點(diǎn)集,它可以利用本地支持的點(diǎn)類(lèi)型的圖形api或并行軟件柵格化。雖然對(duì)于底層數(shù)據(jù),點(diǎn)樣本呈現(xiàn)存在漏洞,導(dǎo)致混疊,并且是嚴(yán)格不連續(xù)的。在高質(zhì)量的基于點(diǎn)的渲染方面的開(kāi)創(chuàng)性工作通過(guò)“spliting”范圍大于像素的點(diǎn)來(lái)解決這些問(wèn)題,例如,圓或橢圓盤(pán)、橢球體或表面。
最近人們對(duì)可微點(diǎn)渲染技術(shù)感興趣。點(diǎn)已被神經(jīng)特征增強(qiáng),并使用CNN渲染導(dǎo)致快速甚至實(shí)時(shí)視圖合成;然而,它們?nèi)匀灰蕾?lài)于MVS的初始幾何,因此繼承其偽影,特別是在困難的情況下過(guò)度或欠重建,如無(wú)特征/閃亮的區(qū)域或薄結(jié)構(gòu)。
基于點(diǎn)的??混合和nerf風(fēng)格的體積渲染本質(zhì)上共享相同的圖像形成模型。具體來(lái)說(shuō),顏色??是通過(guò)沿著光線的體積渲染來(lái)給出的:
其中密度??、透射率??和顏色c的樣品沿射線間隔????。這可以被重寫(xiě)為
一種典型的基于神經(jīng)點(diǎn)的方法,通過(guò)混合重疊于像素上的N個(gè)有序點(diǎn)來(lái)計(jì)算一個(gè)像素的顏色??(其中c?? 是每個(gè)點(diǎn)的顏色,????是通過(guò)計(jì)算協(xié)方差Σ的二維高斯分布,乘以學(xué)習(xí)的每點(diǎn)不透明度給出的):
從等式2和3可以看到,splitting和nerf的圖像形成模型是相同的。然而,渲染算法是非常不同的。nerf是一種隱式表示空/占用空間的連續(xù)表示;需要昂貴的隨機(jī)抽樣來(lái)找到等式中的樣本2,從而產(chǎn)生噪聲和計(jì)算消耗。相比之下,點(diǎn)是一種非結(jié)構(gòu)化的、離散的表示方式,它足夠靈活,可以允許幾何的創(chuàng)造、破壞和位移(類(lèi)似于nerf)。這是通過(guò)優(yōu)化不透明度和位置來(lái)實(shí)現(xiàn)的,如之前的工作所示[ Point-Based Neural Rendering with Per-View Optimization],避免了一個(gè)完整的體積表示的缺點(diǎn)。
Pulsar 實(shí)現(xiàn)了快速的球體柵格化,這啟發(fā)了我們 基于tile 和排序的渲染。然而,考慮到上面的分析,我們希望在已排序的 splats(翻譯為飛濺) 上保持(近似的)傳統(tǒng)的??混合,以具有體積表示的優(yōu)勢(shì):我們的柵格化尊重可見(jiàn)性順序,而不是它們的順序無(wú)關(guān)的方法。此外,我們?cè)谝粋€(gè)像素的所有splats 上反傳梯度,并柵格化各向異性splats 。這些元素都有助于我們的研究結(jié)果的高視覺(jué)質(zhì)量。上述方法也使用cnn進(jìn)行渲染,這導(dǎo)致了時(shí)間不穩(wěn)定性。盡管如此,Pulsar 的渲染速度成為了我們開(kāi)發(fā)快速渲染解決方案的動(dòng)力。
Gaussian Splatting 使用三維高斯算法來(lái)進(jìn)行更靈活的場(chǎng)景表示,避免了MVS幾何的需要,并實(shí)現(xiàn)了實(shí)時(shí)渲染,歸功于我們的 tile-based 渲染的投影高斯算法。
最近的一種方法[Xu et al. 2022]基于徑向基函數(shù)方法,使用點(diǎn)來(lái)表示輻射場(chǎng)。他們?cè)趦?yōu)化過(guò)程中使用點(diǎn)修剪和致密化技術(shù),但使用體積射線行進(jìn),不能實(shí)現(xiàn)實(shí)時(shí)顯示率。
3D高斯分布可以被用來(lái)表示被捕捉的人體;最近也被用于表示體射線。它們關(guān)注的是重建和渲染單個(gè)孤立物體(人體或人臉)的具體情況,從而導(dǎo)致深度復(fù)雜性較小的場(chǎng)景。相比之下,我們對(duì)各向異性協(xié)方差的優(yōu)化,我們的交叉優(yōu)化/密度控制,以及高效的渲染深度排序,使我們能夠處理完整的、復(fù)雜的場(chǎng)景,包括背景,包括室內(nèi)和室外,并具有較大的深度復(fù)雜性。
4.*什么是 Tile-based rasterizer (快速光柵化)
tile-based rasterizer:將三維場(chǎng)景中的mesh面片,分割成小的片段,并將這些片段映射到屏幕上的 tile瓦片(區(qū)域而非像素),然后進(jìn)行光柵化、深度測(cè)試和像素著色等操作,最終將三維場(chǎng)景轉(zhuǎn)化為二維圖像。這個(gè)過(guò)程是圖形引擎或渲染器中的核心步驟,步驟為:
1.分割三角形:首先,三維場(chǎng)景中的三角形會(huì)被分割成小的三角形片段。這個(gè)過(guò)程通常是由圖形引擎或渲染器完成的。分割的目的是為了更好地適應(yīng)不同的瓦片大小或屏幕分辨率。
2.映射到瓦片:每個(gè)小的三角形片段會(huì)被映射到屏幕上的相應(yīng)瓦片中。瓦片是屏幕上的一個(gè)小區(qū)域,可以是一個(gè)像素或者多個(gè)像素的集合。這個(gè)映射過(guò)程會(huì)計(jì)算片段在屏幕上的位置、深度值等信息。
3.光柵化:映射到瓦片后,tile-based rasterizer會(huì)將每個(gè)小的三角形片段轉(zhuǎn)化為屏幕上的像素。這個(gè)過(guò)程被稱(chēng)為光柵化。在光柵化過(guò)程中,對(duì)于每個(gè)片段,會(huì)計(jì)算其在屏幕上的位置、深度值等信息。
4.深度測(cè)試:在光柵化過(guò)程中,進(jìn)行深度測(cè)試是非常重要的。深度測(cè)試用于確定哪些像素應(yīng)該被繪制。通過(guò)比較片段的深度值與屏幕上對(duì)應(yīng)像素的深度值,可以確定是否繪制該像素。這樣可以確保在繪制過(guò)程中正確處理遮擋關(guān)系,以產(chǎn)生正確的渲染結(jié)果。
5.像素著色:光柵化的最后一步是像素著色。在像素著色過(guò)程中,根據(jù)片段的屬性(如顏色、紋理等),為每個(gè)像素計(jì)算最終的顏色值。這樣,三維場(chǎng)景就被轉(zhuǎn)化為了屏幕上的二維圖像。
Tile-based rasterizer 能夠?qū)崿F(xiàn)加速,是因?yàn)?strong>它通過(guò)減少內(nèi)存帶寬和光柵化的工作量來(lái)提高渲染性能。具體原因:
1.局部性:Tile-based rasterizer利用了渲染過(guò)程中的空間局部性。通過(guò)將整個(gè)屏幕劃分為小的瓦片,每次只處理一個(gè)瓦片的數(shù)據(jù),可以將渲染操作限制在較小的數(shù)據(jù)集上。這樣可以減少內(nèi)存訪問(wèn)和帶寬消耗,提高渲染效率。
2.帶寬優(yōu)化:傳統(tǒng)的片段渲染器在每個(gè)像素上都會(huì)執(zhí)行光柵化、深度測(cè)試和像素著色等操作。而在tile-based rasterizer中,只有在需要繪制的瓦片上才會(huì)執(zhí)行這些操作。這樣可以減少對(duì)內(nèi)存帶寬的需求,從而提高渲染性能。
3.提前深度測(cè)試:在tile-based rasterizer中,深度測(cè)試是在光柵化之前進(jìn)行的。通過(guò)在光柵化之前進(jìn)行深度測(cè)試,可以減少不必要的片段處理和像素著色操作,從而節(jié)省了處理時(shí)間和資源。
4.數(shù)據(jù)重用:tile-based rasterizer會(huì)將每個(gè)瓦片的像素?cái)?shù)據(jù)存儲(chǔ)在高速緩存中,并在多個(gè)片段之間共享。這樣可以避免對(duì)相同像素的重復(fù)計(jì)算,提高渲染效率。
三、OVERVIEW
Gaussian Splatting的輸入是一組靜態(tài)場(chǎng)景的圖像,以及由SfM校準(zhǔn)的相應(yīng)攝像機(jī),它產(chǎn)生一個(gè)稀疏點(diǎn)云作為衍生物。從稀疏點(diǎn)上,我們創(chuàng)建了一組三維高斯分布,由位置(均值)、協(xié)方差矩陣和不透明度??定義,允許一個(gè)非常靈活的優(yōu)化機(jī)制。這導(dǎo)致了對(duì)三維場(chǎng)景的一個(gè)合理緊湊的表示。高度各向異性的體素 splat 可以用來(lái)緊湊地表示精細(xì)結(jié)構(gòu)。輻射場(chǎng)的方向外觀分量(顏色)通過(guò)球諧波(SH)表示。該算法通過(guò)一系列三維高斯參數(shù)的優(yōu)化,即位置、協(xié)方差、??和SH系數(shù)與高斯密度的自適應(yīng)控制操作交織,來(lái)創(chuàng)建輻射場(chǎng)表示。效率的關(guān)鍵是 tile-based 的柵格化器允許??混合各向異性斑點(diǎn),由于快速排序,尊重可見(jiàn)性順序。輸出快速光柵化器還包括一個(gè)快速反向傳遞,通過(guò)累積的??值跟蹤,沒(méi)有限制可以接收梯度的高斯數(shù)的數(shù)量。整體概述如圖2所示
四、可微的三維高斯 Splatting
質(zhì)量的新視圖合成,從一個(gè)稀疏的(SfM)點(diǎn)集開(kāi)始。為了做到這一點(diǎn),我們需要一個(gè)能夠繼承可微體積表示屬性的原型,同時(shí)是非結(jié)構(gòu)化和顯式的,以允許非??焖俚某尸F(xiàn)。我們選擇了三維高斯分布,這是可微的,可以很容易地投影到二維 Splatting,允許快速的??混合渲染。
我們的表示類(lèi)似于之前二維點(diǎn)的表示方法[Kopanas等人2021:假設(shè)每個(gè)點(diǎn)都是一個(gè)帶有法線的小平面圓]。由于SfM點(diǎn)的極強(qiáng)稀疏性,很難估計(jì)法線。從這樣的估計(jì)中優(yōu)化帶噪聲法線將很難。相反,我們將幾何模型建模為一組不需要法線的三維高斯函數(shù)。我們的高斯分布是由世界空間中定義的全三維協(xié)方差矩陣Σ定義的,其中心為點(diǎn)(均值)??:
這個(gè)高斯分布在混合過(guò)程中乘以??。
然而,我們需要將我們的三維高斯投影到二維進(jìn)行渲染。對(duì)圖像空間進(jìn)行投影:給定一個(gè)變換矩陣??,攝像機(jī)坐標(biāo)下的協(xié)方差矩陣Σ’ 計(jì)算如下:
其中??是投影變換的仿射變換的 Jacobian 矩陣。Zwicker等人[2001a]表明,如果我們跳過(guò)Σ’ 的第三行和列,我們得到一個(gè)具有相同結(jié)構(gòu)和性質(zhì)的2×2方差矩陣。
一個(gè)明顯的方法是直接優(yōu)化協(xié)方差矩陣Σ,以獲得代表輻射方差場(chǎng)的三維高斯分布。然而,協(xié)方差矩陣只有在它們是正的半定的時(shí)才具有物理意義。為了優(yōu)化我們所有的參數(shù),我們使用梯度下降,不能輕易地約束產(chǎn)生這樣的有效的矩陣,并且更新步驟和梯度可以很容易地創(chuàng)建無(wú)效的協(xié)方差矩陣。因此,我們選擇了一種更直觀、更能表達(dá)的表示來(lái)進(jìn)行優(yōu)化。三維高斯分布的協(xié)方差矩陣Σ類(lèi)似于描述橢球體的構(gòu)型。給定一個(gè)縮放矩陣??和旋轉(zhuǎn)矩陣??,我們可以找到相應(yīng)的Σ:
為了允許對(duì)這兩個(gè)因素進(jìn)行獨(dú)立的優(yōu)化,我們分別存儲(chǔ)它們:一個(gè)用于縮放的三維向量??和一個(gè)表示旋轉(zhuǎn)的四元數(shù)??,來(lái)進(jìn)行組合,以確保規(guī)范化??得到一個(gè)有效的單位四元數(shù)。
五、三維高斯 自適應(yīng)密度控制的優(yōu)化
Gaussian Splatting的核心是優(yōu)化步驟。它創(chuàng)建了一個(gè)密集的三維高斯函數(shù)集合,精確地表示自由視圖合成的場(chǎng)景。優(yōu)化參數(shù)有:位置??、??和協(xié)方差Σ外,我們還優(yōu)化了代表每個(gè)高斯分布的顏色??的SH系數(shù),以正確地捕捉場(chǎng)景中與視圖相關(guān)的外觀。
1.優(yōu)化
優(yōu)化基于連續(xù)的渲染迭代:將生成的圖像與訓(xùn)練視圖進(jìn)行比較。
由于三維到二維投影的歧義,幾何圖形可能會(huì)被錯(cuò)誤地放置。因此,我們的優(yōu)化需要能夠創(chuàng)建幾何,也破壞或移動(dòng)幾何(如果定位錯(cuò)誤)。
使用隨機(jī)梯度下降進(jìn)行優(yōu)化,利用gpu加速框架。快速柵格對(duì)我們的優(yōu)化效率至關(guān)重要,因?yàn)樗莾?yōu)化的主要計(jì)算瓶頸
使用sigmoid 函數(shù) 將 ?? 約束在[0?1)范圍內(nèi),得到平滑的梯度。由于類(lèi)似的原因,對(duì)協(xié)方差尺度的使用指數(shù)激活函數(shù)。
協(xié)方差矩陣初始化為一個(gè)各向同性高斯矩陣,其軸等于到最近的三個(gè)點(diǎn)的距離的平均值。我們使用一種類(lèi)似于 Plenoxels 的標(biāo)準(zhǔn)指數(shù)衰減調(diào)度技術(shù),但只針對(duì)位置。損失函數(shù)是L1和D-SSIM項(xiàng)相結(jié)合(λ=0.2):
2.高斯的自適應(yīng)控制
從SfM估計(jì)的初始稀疏點(diǎn)開(kāi)始,然后自適應(yīng)控制高斯分布的數(shù)量及其密度(單位體積),允許我們從初始稀疏的高斯集密集,更好地代表場(chǎng)景。warm-up之后,每100次迭代一次,刪除透明的高斯分布(α小于閾值 εα) 。
我們對(duì)高斯分布的自適應(yīng)控制需要填充空白區(qū)域。它關(guān)注缺失幾何特征的區(qū)域(“欠重建”),但也關(guān)注高斯分布覆蓋場(chǎng)景中大面積區(qū)域的區(qū)域(通常對(duì)應(yīng)于“過(guò)度重建”)。我們觀察到兩者都有很大的視空間位置梯度。直觀地說(shuō),這可能是因?yàn)樗鼈儗?duì)應(yīng)的是尚未很好地重建的區(qū)域,而優(yōu)化試圖移動(dòng)高斯分布來(lái)糾正這一點(diǎn)。
克隆與分裂:
由于這兩種情況都是致密化的好候選者,我們用高于閾值┏pos 的視圖空間位置梯度的平均大小來(lái)描述高斯(測(cè)試選擇0.0002),過(guò)程如圖4所示。對(duì)于重建不足的區(qū)域中的小高斯,通過(guò)簡(jiǎn)單地創(chuàng)建一個(gè)相同大小的副本,并將其沿位置梯度的方向移動(dòng)來(lái)克隆高斯。另一方面,高變異區(qū)域中的大高斯需要分裂成更小的高斯,用兩個(gè)新的高斯代替了這些高斯,并用我們實(shí)驗(yàn)確定的o=1.6因子除以它們的尺度。
在第一種情況下,我們檢測(cè)并處理需要同時(shí)增加系統(tǒng)的總體積和高斯的數(shù)量,而在第二種情況下,我們保留總體積,但增加高斯的數(shù)量。與其他體積表示類(lèi)似,我們的優(yōu)化可能會(huì)被靠近輸入攝像機(jī)的漂浮物卡?。辉谖覀兊睦又?,這可能會(huì)導(dǎo)致高斯密度的不合理的增加。調(diào)節(jié)高斯數(shù)增加的一種有效方法是:每N= 3000次迭代,將α 設(shè)置為接近于零。
優(yōu)化增加了高斯分布的α,同時(shí)允許我們的剔除方法去除 α小于閾值 εα的高斯分布。高斯分布可能會(huì)縮小或增長(zhǎng),并與其他分布有相當(dāng)大的重疊,但我們會(huì)周期性地去除在非常大的高斯分布和那些在視圖空間中有很大足跡的高斯分布。這種策略可以很好地控制高斯分布的總數(shù)。我們模型中的高斯函數(shù)在歐幾里得空間中始終保持原型;與其他方法不同,我們對(duì)遙遠(yuǎn)或大的高斯分布不需要空間壓縮、扭曲或投影策略。
六、高斯分布的快速可微光柵化器(拓展)
我們的目標(biāo)是擁有快速的整體渲染和快速的排序,以允許近似的 α 混合——包括各向異性的Splatting——并避免對(duì)以前工作中存在的可以接收梯度的Splatting 數(shù)量的嚴(yán)格限制。
為了實(shí)現(xiàn)這些目標(biāo),我們為整個(gè)圖像設(shè)計(jì)一個(gè) tile-based 光柵器的高斯 Splatting,避免每像素的排序費(fèi)用阻礙之前 α-mobice解決方案。我們的快速光柵化器允許在任意數(shù)量的混合高斯分布上有效地反向傳播,而額外的內(nèi)存消耗較低,每個(gè)像素只需要一個(gè)恒定的開(kāi)銷(xiāo)。我們的柵格化管道是完全可微的,來(lái)投影到2D。
我們的方法首先將屏幕分割成16×16個(gè) tile,然后對(duì)視圖框和每個(gè)tile 選擇3D高斯分布。具體來(lái)說(shuō),我們只保留與視錐相交的置信區(qū)間為99%的高斯。此外,我們使用 a guard band來(lái)去除極端位置的高斯(即,那些均值接近 near plane 且遠(yuǎn)離視錐體的高斯),因?yàn)槠渫队暗?D協(xié)方差是不穩(wěn)定的。然后,我們根據(jù)它們重疊的 tile 數(shù)量實(shí)例化每個(gè)高斯值,并為每個(gè)實(shí)例分配一個(gè)結(jié)合視圖空間深度和tile ID的鍵。然后,我們根據(jù)這些鍵快速排序(基于快速 GPU Radix )。而沒(méi)有額外像素點(diǎn)排序,混合是基于這個(gè)初始排序執(zhí)行的。
因此,我們的 α-混合在某些構(gòu)型中可以是近似的。然而,當(dāng)spliting 接近單個(gè)像素的大小時(shí),這些近似可以忽略不計(jì)。我們發(fā)現(xiàn),這種選擇大大提高了訓(xùn)練和渲染性能,而不會(huì)在融合場(chǎng)景中產(chǎn)生可見(jiàn)的偽影。
在對(duì)高斯排序之后,我們通過(guò)識(shí)別 splitting 到 tile 的第一個(gè)和最后一個(gè)深度排序的條目,為每個(gè)tile 生成一個(gè)列表。對(duì)于柵格化,我們為每個(gè) tile 啟動(dòng)一個(gè)線程塊。每個(gè)塊首先協(xié)作地將高斯數(shù)據(jù)包加載到共享內(nèi)存中,然后,對(duì)于給定的像素,通過(guò)從前到后遍歷列表來(lái)累積顏色和α 值,從而最大限度地提高數(shù)據(jù)加載/共享和處理的并行性增益。
柵格化過(guò)程中,α 的飽和度是唯一的停止標(biāo)準(zhǔn)。與其他工作相比,我們不限制接收梯度更新的混合原型的數(shù)量,以允許我們的方法處理具有任意、不同深度復(fù)雜度的場(chǎng)景,并準(zhǔn)確地學(xué)習(xí)它們,而不必訴諸于特定于場(chǎng)景的超參數(shù)調(diào)優(yōu)。因此,反向傳播必須恢復(fù)前向過(guò)程中每像素混合點(diǎn)的完整序列。一種解決方案是在全局內(nèi)存中存儲(chǔ)任意長(zhǎng)的每像素混合點(diǎn)列表。為了避免隱含的動(dòng)態(tài)內(nèi)存管理開(kāi)銷(xiāo),我們選擇再次遍歷永久列表;我們可以重用從向前傳遞的高斯和 tile 范圍的排序數(shù)組。
遍歷從影響 tile 中任何像素的最后一個(gè)點(diǎn)開(kāi)始,并再次協(xié)作地將點(diǎn)加載到共享內(nèi)存中。此外,只有當(dāng)每個(gè)像素的深度低于或等于在前向過(guò)程中導(dǎo)致其顏色的最后一個(gè)點(diǎn)的深度時(shí),每個(gè)像素才會(huì)開(kāi)始重疊測(cè)試和處理點(diǎn)(代價(jià)比較昂貴)。第4節(jié)中梯度的計(jì)算,要求在原始混合過(guò)程中每一步累積的不透明度值。我們可以通過(guò)只存儲(chǔ)向前傳遞結(jié)束時(shí)的總累積不透明來(lái)恢復(fù)這些中間不透明,而不是橫向傳遞反向傳遞中逐步縮小的不透明的顯式列表。具體來(lái)說(shuō),每個(gè)點(diǎn)在正向過(guò)程中存儲(chǔ)最終累積的不透明度 α;我們?cè)谇昂蟊闅v中除以每個(gè)點(diǎn)的 α,得到梯度計(jì)算所需的系數(shù)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-715414.html
效果:
圖5。我們的方法與以前的方法和相應(yīng)的GT圖像從保留的測(cè)試視圖。場(chǎng)景從上而下:來(lái)自Mip-NeRF360數(shù)據(jù)集的自行車(chē)、花園、樹(shù)樁、柜臺(tái)和房間;游戲室,來(lái)自深度混合數(shù)據(jù)集的DrJohnson,以及來(lái)自坦克和寺廟的卡車(chē)和火車(chē)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-715414.html
總結(jié)
到了這里,關(guān)于【三維重建】3D Gaussian Splatting:實(shí)時(shí)的神經(jīng)場(chǎng)渲染的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!