自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實時輻射場渲染利器——三維高斯?jié)姙R算法

譯文 精選
開發(fā)
本文將帶您了解三維表示領(lǐng)域的最新技術(shù)進展,特別是實時輻射場渲染領(lǐng)域的3D高斯?jié)姙R算法。

譯者 | 朱先忠

審校 | 重樓

高斯?jié)姙R(Gaussian Splatting)是“實時輻射場渲染的3D高斯?jié)姙R論文引文1中介紹的一種表示3D場景和渲染新穎視圖的方法。它被認為是NeRF引文2模型的替代品,就像當年的NeRF模型本身一樣,高斯?jié)姙R引發(fā)一系列新的研究工作,這些工作選擇將其用作各種場景中3D世界的底層表示。

那么,高斯?jié)姙R算法究竟有什么特別之處,為什么它比NeRF更好呢?或者說,可以下這樣的結(jié)論嗎?本文中,我們將全面地回答這幾個問題。

引言

首先,從本文標題中可以看出,高斯?jié)姙R算法的主要成名點是高渲染速度。這歸功于下將介紹的此算法實現(xiàn)本身以及由于使用自定義CUDA內(nèi)核定制的渲染算法的實現(xiàn)。

圖1:在渲染速度(fps)、訓練時間(min)和視覺質(zhì)量(峰值信噪比,越高越好)方面,之前的高質(zhì)量表示和高斯?jié)姙R(標記為“Ours”)的并排比較源于引文1

此外,高斯?jié)姙R根本不涉及任何中性網(wǎng)絡(luò)。甚至沒有使用哪怕是一個小的MLP,沒有引入任何神經(jīng)網(wǎng)絡(luò),場景本質(zhì)上只是空間中的一組點。這本身就已經(jīng)引起了人們的注意??吹竭@樣一種方法在我們癡迷于人工智能的世界里越來越受歡迎,也發(fā)現(xiàn)有些研究公司競相研發(fā)由越來越多乃至數(shù)十億個參數(shù)組成的模型,真是令人耳目一新。

高斯?jié)姙R的想法源于“表面飛濺”(引文3),因此它樹立了一個很酷的例子——經(jīng)典的計算機視覺方法仍然可以啟發(fā)相關(guān)的解決方案。它簡單而明確的表示使高斯?jié)姙R特別容易解釋,這是在某些應(yīng)用中選擇它而不是NeRF算法的一個很好的理由。

表示三維世界

如前所述,在高斯潑濺算法中,3D世界由一組3D點表示。事實上,存在數(shù)百萬個3D點,大約在50萬到500萬之間。每個點都是具有其自己獨特參數(shù)的3D高斯,這些參數(shù)針對每個場景進行擬合,使得該場景的渲染與已知的數(shù)據(jù)集圖像緊密匹配。優(yōu)化和渲染過程將在稍后討論;讓我們暫時先來介紹幾個的高斯參數(shù)。

圖2:高斯中心(平均值(源自引文4中“動態(tài)三維高斯”)圖2:高斯中心(平均值(源自引文4中“動態(tài)三維高斯”)

每個3D高斯算法通過以下方式進行參數(shù)化:

  • 平均μ可解釋為位置x、y、z;
  • 協(xié)方差∑;
  • 不透明度σ(??),是一個sigmoid函數(shù),于把參數(shù)映射到[0,1]區(qū)間;
  • 顏色參數(shù),可能是(R、G、B)3值形式,也可能是球面諧波(SH)系數(shù)方式指定。

這里需要進一步討論兩組參數(shù)協(xié)方差矩陣和SH。接下來還有一個單獨的節(jié)專門討論后者。對于協(xié)方差,設(shè)計之初指定它是各向異性的;也就是說,不是各向同性的。這意味著3D點可以是沿空間中任何方向旋轉(zhuǎn)和拉伸的橢球體。此參數(shù)可能需要9個參數(shù);然而,不能直接優(yōu)化它們,因為協(xié)方差矩陣只有當它是正半定矩陣時才有物理意義。使用梯度下降進行優(yōu)化使得很難直接在矩陣上提出這樣的約束,這就是為什么它分解為如下形式

這種因子分解被稱為協(xié)方差矩陣的征分解,可以被理解為橢球體的配置,其中:

  • S是具有3個縮放參數(shù)的對角縮放矩陣;
  • R是用4個四元數(shù)解析表示的3x3旋轉(zhuǎn)矩陣。

使用高斯的美妙之處在于每一點的雙重影響。一方面,根據(jù)其協(xié)方差,每個點有效地表示了空間中接近其均值的有限區(qū)域。另一方面,它在理論上具有無窮大的范圍,這意味著每個高斯都是在整個三維空間上定義的,并且可以對任何點進行評估。這很好,因為在優(yōu)化過程中,它允許梯度沿長距離流動引文4。
3D高斯i對3D中任意3D點p的影響定義如下:

圖3:三維高斯i對三維點p的影響(作者本人提供的圖片)圖3:三維高斯i對三維點p的影響(作者本人提供的圖片)

這個方程看起來幾乎像多元正態(tài)分布的概率密度函數(shù),只是忽略了具有協(xié)方差行列式的歸一化項,而是用不透明度來加權(quán)

圖像形成模型和渲染

圖像形成模型

給定一組3D點,可能最有趣的部分是看它如何用于渲染。以前你可能熟悉一個NeRF中使用的ɑ-混合。結(jié)果表明,NeRF系列算法高斯?jié)姙R共享相同的圖像形成模型。要了解這一點,不妨讓我們繞道而行——重新訪問NeRF引文2及其許多后續(xù)作品中給出的體積渲染公式(1)。我們還將使用簡單的轉(zhuǎn)換來重寫它(2):

σ和δ的定義可以參考NeRF論文,但從概念上講,這可以理解為:圖像像素p中的顏色是通過沿穿過該像素的光線對樣本進行積分來近似的。最終顏色是沿該光線采樣的3D點的顏色的加權(quán)和,按透射率向下加權(quán)。考慮到這一點,讓我們最后來看高斯?jié)姙R的圖像形成模型:

事實上,公式(2)和(3)幾乎相同。唯一的區(qū)別是如何在兩者之間計算。然而,這種微小的差異在實踐中變得極其顯著,并導致截然不同的渲染速度。事實上,它是高斯?jié)姙R實時性能的基礎(chǔ)。

為了理解為什么會出現(xiàn)這種情況,我們需要理解f^{2D}的含義以及它提出的計算要求。這個函數(shù)只是我們在上一節(jié)中看到的f(p)到2D的投影,即投影到正在渲染的相機的圖像平面上。3D點及其投影都是多變量高斯,因此投影的2D高斯對像素的影響可以使用與3D高斯對3D中其他點的影響相同的公式來計算(見圖3)。唯一的區(qū)別是平均μ和協(xié)方差∑必須投影到2D中,這是使用EWA潑濺的導數(shù)來完成的引文5)。

2D中的平均值可以通過使用內(nèi)在相機矩陣K和外在相機矩陣W=[R|t]將齊次坐標(具有額外的1個坐標)中的向量μ投影到圖像平面中而簡單地獲得:

這也可以寫在一行中,如下所示:

這里的“z”下標代表z歸一化。2D中的協(xié)方差是使用(4)的雅可比定義的,J的定義如下

整個過程仍然是可微分的,這對優(yōu)化至關(guān)重要。

渲染

公式(3)告訴我們?nèi)绾卧趩蝹€像素中獲得顏色。要渲染整個圖像,仍然需要遍歷所有HxW射線,就像在NeRF中一樣。然而,該過程要簡單得多,因為:

  • 對于給定的相機,在對像素進行迭代之前,每個3D點的f(p)可以預先投影到2D中。這樣,當高斯混合到附近的幾個像素時,我們不需要一遍又一遍地重新投影它。
  • 對于單個圖像,沒有MLP可以被推斷為H·W·P倍,2D高斯直接混合到圖像上。
  • 沿著射線評估哪個3D點沒有歧義,無需選擇射線采樣策略。與每個像素的光線重疊的一組3D點(參見(3)中的N)在優(yōu)化后是離散的和固定的。
  • 預處理排序階段在GPU上每幀完成一次,使用可微分CUDA內(nèi)核的自定義實現(xiàn)。概念上的差異如圖4所示:

圖4:NeRF和GS之間的概念差異,左:沿射線查詢連續(xù)MLP,右:混合與給定射線相關(guān)的離散高斯集作者本人提供

上面提到的排序算法是本文的貢獻之一。其目的是準備使用公式(3)進行顏色渲染:按深度(接近圖像平面)對3D點進行排序,并按圖塊對其進行分組。第一種方法需要計算透射率,而后者允許將每個像素的加權(quán)和限制為僅相關(guān)3D點的α-混合(或者更具體地說,它們的2D投影)。該分組是使用簡單的16x16像素圖塊來實現(xiàn)的,并且如果高斯與多于單個視錐重疊,則它可以落在幾個圖塊中。得益于排序,每個像素的渲染可以簡化為像素所屬圖塊的預編序點的α-混合。

圖5:視圖截頭體,每個截頭體對應(yīng)一個16x16圖像片段。顏色沒有特別的意義。排序算法的結(jié)果是按深度排序的每個圖塊內(nèi)的3D點的子集

優(yōu)化

一個天真的問題可能會浮現(xiàn)在腦海中:怎么可能從太空中的一群斑點中獲得一張看起來不錯的照片?如果沒有對高斯算法進行適當優(yōu)化的話,你會在渲染中遭遇到各種各樣的頭疼任務(wù)。在圖6中,您可以觀察到這樣一個任務(wù)的例子,它們看起來非常像橢球體。獲得良好渲染的關(guān)鍵是三個部分:良好的初始化、可微分優(yōu)化和自適應(yīng)致密化。

圖6:未優(yōu)化場景的渲染示例(作者本人圖片)圖6:未優(yōu)化場景的渲染示例(作者本人圖片)

初始化是指在訓練開始時設(shè)置的3D點的參數(shù)。對于點位置(平均值),作者建議使用SfM(運動結(jié)構(gòu))產(chǎn)生的點云見圖7。邏輯依據(jù)是,對于任何3D重建,無論是GS、NeRF還是更經(jīng)典的東西,你都必須知道相機矩陣,所以你可能無論如何都會運行SfM來獲得這些矩陣。既然SfM會產(chǎn)生一個稀疏點云作為副產(chǎn)品,為什么不使用它進行初始化呢?這就是論文的建議。當點云由于某些原因不可用時,可以使用隨機初始化,以避免最終重建質(zhì)量的潛在損失。

圖7SfM產(chǎn)生的稀疏3D點云,初始化工作來源:https://speciale.ar/publication/privacypreservingsfm/

協(xié)方差被初始化為各向同性;換句話說,3D點以球體開始。半徑是根據(jù)到相鄰點的平均距離設(shè)置的,這樣3D世界就可以很好地覆蓋,并且沒有“洞”。

初始化之后,使用一個簡單的隨機梯度下降來正確地擬合所有內(nèi)容。場景針對損失函數(shù)進行優(yōu)化,該損失函數(shù)是地面實況視圖和當前渲染之間的L1和D-SSIM(結(jié)構(gòu)不相似性指數(shù)度量)的組合。

然而,事實并非如此,另一個關(guān)鍵部分仍然存在,那就是自適應(yīng)致密化。它在訓練期間偶爾出現(xiàn)一次,比如說,每100個SGD步驟目的是解決重建不足和過度的問題中發(fā)生一次。需要強調(diào)的是,SGD本身只能調(diào)整現(xiàn)有的點。但在完全缺乏積分或積分過多的領(lǐng)域,它將很難找到好的參數(shù)。這就是自適應(yīng)致密化的作用所在,用大梯度分割點(圖8),并去除收斂到非常低的α值的點(如果一個點那么透明,為什么要保留它?)。

圖8:自適應(yīng)致密化一個玩具示例,用于擬合我們想要用幾個點渲染的豆形狀圖源自引文1

基于SH函數(shù)的視圖依賴顏色

球面諧波,簡稱SH,在計算機圖形學中發(fā)揮著重要作用,并首次被提出作為學習Plenoxel輻射場中離散三維像素的視圖相關(guān)顏色的一種方法引文6)。視圖依賴性是一個很好的特性,可以提高渲染質(zhì)量,因為它允許模型表示非朗伯效應(yīng),例如金屬表面的鏡面反射。然而,這當然不是必的,因為可以進行簡化,選擇用3個RGB值表示顏色,并且仍然像引文4中那樣使用高斯?jié)姙R。這就是為什么我們在制定整個方法后單獨審查這個表示細節(jié)的原因。

SH是在球面上定義的特殊函數(shù)。換句話說,您可以為球體上的任何點計算這樣的函數(shù),并獲得一個值。所有這些函數(shù)都是通過為??? ≤ m≤?,每個SH使用一個(?, m)成對:

雖然一開始有點嚇人,但對于?的小值,這個公式大大簡化了。事實上,對于? = 1,Y=~0.822,只是整個球體上的一個常數(shù)。相反,?的值越高生成更復雜的曲面。該理論告訴我們,球面諧波形成了一個正交基,因此定義在球面上的每個函數(shù)都可以通過SH表示。

這就解釋了為什么依賴于視圖的顏色的想法可以這樣表達:讓我們把自己限制在一定程度的自由?_max,并設(shè)定每種顏色(紅色、綠色和藍色)都是第一?_max SH函數(shù)線性組合。對于每一個3D高斯,我們都想學習正確的系數(shù),這樣當我們從某個方向看這個3D點時,它會傳達出最接近地面實況的顏色。獲取視圖相關(guān)顏色的整個過程如圖9所示

圖9:獲取點的視圖相關(guān)顏色(紅色分量)的過程學習系數(shù)?_max=2和9。此處,sigmoid函數(shù)將值映射到[0,1]區(qū)間。通常情況下,使用剪輯代替作者本人圖片

高斯?jié)姙R算法的局限性

高斯?jié)姙R算法盡管總體效果很好,渲染速度也令人印象深刻,但表示的簡單性也是有代價的。最重要的考慮因素是在優(yōu)化過程中引入的各種正則化啟發(fā)式方法,以保護模型免于發(fā)生“破壞”高斯:太大、太長、冗余等。這一部分至關(guān)重要,上述問題可以在新視圖渲染之外的任務(wù)中進一步放大。

選擇放棄連續(xù)表示而選擇離散表示意味著MLP的歸納偏差消失了。在NeRF中,MLP執(zhí)行隱式插值,并平滑給定視圖之間可能的不一致,而3D高斯對此敏感,導致了上述問題。

此外,高斯?jié)姙R也并非沒有NeRF中存在的一些眾所周知的問題,它們都繼承自共享的圖像形成模型:在看不太清或看不見的區(qū)域中質(zhì)量較低,靠近圖像平面處存在漂浮物等。

檢查點的文件大小是另一個需要考慮的屬性,盡管新型視圖渲染遠未部署到邊緣設(shè)備??紤]到3D點的大致數(shù)量和流行的NeRF的MLP架構(gòu),兩者占用的磁盤空間數(shù)量級相同,高斯?jié)姙R多出幾倍。

總結(jié)

沒有一篇博客文章能公正地評價一種方法,只需運行相應(yīng)實例并親自觀察一下結(jié)果便知。以下是您可以進一步研究本文相關(guān)內(nèi)容可參考資料

  • 高斯?jié)姙R——使用自定義CUDA內(nèi)核的官方實現(xiàn);
  • nerfstudio框架——它提供了高斯?jié)姙R算法支持。這是一個最初專門用于NeRF類似模型的框架,但自2023年12月以來,它也支持高斯?jié)姙R;
  • threestudio-3dgs——另一個跨模型框架threestudio的擴展。如果你對基于提示生成3D模型感興趣,而不是學習現(xiàn)有的圖像集,那么你應(yīng)該使用一下這個擴展
  • UnityGussianSplatting——如果你喜歡Unity,你可以將一個經(jīng)過訓練的模型移植到這個插件中進行可視化;
  • gsplat——一個CUDA加速高斯光柵化的庫,從nerfstudio分支出來。它可以用于獨立的基于Torch框架的項目,作為濺的可微分模塊。

鳴謝

這篇博客文章是基于Tali Dekel博士在實驗室的一次小組會議。特別感謝Michal Geyer參與論文的討論,還感謝引文4的作者對高斯?jié)姙R系統(tǒng)總結(jié)

參考文獻

  1. Kerbl, B., Kopanas, G., Leimkühler, T., & Drettakis, G. (2023)。3D Gaussian Splatting for Real-Time Radiance Field Rendering(https://arxiv.org/abs/2308.04079),SIGGRAPH 2023。
  2. Mildenhall, B., Srinivasan, P. P., Tancik, M., Barron, J. T., Ramamoorthi, R., & Ng, R. (2020)。NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis(https://arxiv.org/abs/2003.08934)。ECCV 2020。
  3. Zwicker, M., Pfister, H., van Baar, J., & Gross, M. (2001)Surface Splatting(https://www.cs.umd.edu/~zwicker/publications/SurfaceSplatting-SIG01.pdf。 SIGGRAPH 2001。
  4. Luiten, J., Kopanas, G., Leibe, B., & Ramanan, D. (2023)Dynamic 3D Gaussians: Tracking by Persistent Dynamic View Synthesis(https://arxiv.org/abs/2308.09713)。International Conference on 3D Vision
  5. Zwicker, M., Pfister, H., van Baar, J., & Gross, M. (2001)。EWA Volume Splatting(https://www.cs.umd.edu/~zwicker/publications/EWAVolumeSplatting-VIS01.pdf)。IEEE Visualization 2001。
  6. Yu, A., Fridovich-Keil, S., Tancik, M., Chen, Q., Recht, B., & Kanazawa, A. (2023)Plenoxels: Radiance Fields without Neural Networks(https://arxiv.org/abs/2112.05131)。CVPR 2022。

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:A Comprehensive Overview of Gaussian Splatting,作者:Kate Yurkova



責任編輯:華軒 來源: 51CTO
相關(guān)推薦

2024-06-24 08:15:00

2025-04-03 10:12:30

2024-06-28 13:47:17

2012-02-14 11:07:53

惠普筆記本

2023-12-13 10:14:00

機器視覺技術(shù)

2022-11-09 14:06:11

數(shù)字方法

2025-04-23 08:50:00

3D算法AI

2022-02-25 23:46:16

神經(jīng)網(wǎng)絡(luò)機器學習AI

2010-09-03 09:28:30

2023-12-11 09:00:00

人工智能3D模型

2009-11-10 12:55:26

VB.NET三維模型

2009-11-10 12:48:17

VB.NET三維模型

2025-04-09 13:25:34

2024-05-15 17:35:52

AI算法

2013-04-17 16:22:53

2023-09-12 11:30:44

自動駕駛技術(shù)

2021-12-16 06:14:14

三維工具 Blender M1 Mac

2023-08-05 13:53:34

2021-03-16 09:53:35

人工智能機器學習技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號