3D高斯潑濺(3D Gaussian splatting)自2023年提出以后,相關研究paper井噴式增長,盡管出現了許多改進版本,但依舊面臨著諸多挑戰,例如實現照片級真實感、應對高存儲需求,而 “懸浮的高斯核” 問題就是其中之一。浮動高斯核通常由輸入圖像中的曝光或顏色不一致引發,也可能源于運動恢復結構(SfM)過程中產生的離群值。此外,嚴格意義上的高斯潑濺更偏向于 3D 重建而非新視圖合成,它僅能為輸入圖像序列覆蓋良好的場景部分生成新視角。
本文將聚焦于 3D 高斯潑濺的一個實際應用 ——高斯潑濺中的物體插入,并詳細解讀論文《3D Gaussian Splatting as Monte Carlo Markov Chain》,詳見 3dgs-mcmc/,進一步展示MCMC與3dgs結合在gsplat第三方工具中的應用。
0. 3DGS MCMC 簡介
3DGS 作為 MCMC 論文的前提如下:
- ADC 的概率概念:盡管自適應密度控制 (ADC) 是一種有效的致密化和修剪策略,但它缺乏堅實的數學基礎。MCMC 引入了一個概率框架來解決這一缺陷。
- 收斂與探索: MCMC 論文并不單純依賴基于優化的方法,而是將優化與探索相結合,從而能夠找到問題的多個最優解決方案。
- 將死高斯變為活高斯: ADC 啟發式方法被通過重新定位死高斯來實現的狀態轉換所取代。
- 引入正則化:論文還向損失函數引入了兩種正則化:尺度正則化和不透明度正則化。
圖 1:3DGS 與 3DGS + MCMC 的比較
本文從回顧 MCMC 開始,逐步引入到3DGS中。
1. MCMC概念回顧
MCMC 抽樣是一種眾所周知的近似算法,在機器學習中,廣泛應用于概率建模。MCMC 的全稱是蒙特卡洛馬爾可夫鏈。蒙特卡洛和馬爾可夫鏈是兩種不同的算法。
有時,由于諸如空間復雜性、高維性等原因,一些積分和很難直接計算。在這些情況下,我們會對其進行近似——要么采用采樣方法,比如MCMC,要么使用參數化分布,就像在變分推斷中所做的那樣。
例如,在貝葉斯統計中,計算后驗分布需要對模型參數的所有可能值進行積分,并由先驗和觀測數據的似然性加權。隨著參數數量的增加或似然函數變得復雜,這種積分很快就會變得難以處理。
圖 2:先驗、似然和后驗
從上圖可以看出,先驗、后驗和似然在數學上的含義。
2. 3DGS中先驗/似然與后驗的引入
在3D 高斯潑濺 (3DGS) 的貝葉斯視圖中,可以將模型參數(所有高斯潑濺的位置、大小、顏色、不透明度等)解釋為隨機變量。
圖 3:3DGS 中的先驗、似然和后驗
- 這些參數的先驗分布p(θ)編碼了在看到實際圖像數據之前的任何假設或偏好。例如,可能希望高斯函數的大小不受限制,或者它們的顏色位于合理范圍內,或者總的 splats 數量不會激增,等等。
- 可能性p(Data|θ) 衡量了特定的splats 配置參數θ對實際觀察到的圖像(訓練視圖)的解釋程度。
- 后驗分布為:
換句話說,后驗分布就是基于數據的初始假設,然后如何通過觀察到的圖像數據進行更新。
3. 單純融合 VS 融合+探索參數空間
自適應密度控制 (ADC) 是一種解決問題的啟發式方法,但并未完全優化,并且缺乏堅實的數學基礎。MCMC 通過為致密化和修剪策略提供更強大的數學基礎來解決相同的核心問題。
具體來說,它通過將這些策略概念化為采樣過程,為這些策略引入了一個概率框架。
“采樣是一種通過研究大群體的一小部分來估計其整體特征的方法。”
例如,假設需要找到一條曲線下的面積(如下圖所示)。通過積分計算它可能需要處理一個復雜的公式。相反,使用蒙特卡羅方法,則可以在曲線邊界的矩形內隨機散布紅點。那么使用的點越多,估計就越準確。通過計算曲線下的點與矩形中總點數的比例,就可以確定曲線下的面積,因為這個比例對應于矩形面積的比例。”

圖 4:蒙特卡洛估計曲線下面積
3DGS 的一般方法是:
- 尋找單一最佳解決方案: 3DGS 遵循一種簡單的優化方法。它初始化高斯函數,然后通過計算渲染圖像和真實圖像之間的 L1 損失來優化其配置。此損失用于更新高斯函數。然而,這種方法往往會產生單一最佳解決方案,并且可能會陷入局部最小值的問題。
MCMC 提出了一種不同的視角,它不是專注于尋找單一的最佳解決方案,而是旨在通過從后驗分??布中抽樣來確定一系列能夠同樣好地解釋數據的配置。
4. 用于概率 3DGS 建模的 MCMC
MCMC 引入了一個后驗分布 G(θ),它表示在給定訓練數據的情況下,高斯參數配置 g (位置、顏色、形狀等)正確的概率。換句話說:
這里,和
對應相同的配置。
這種分布G(θ) 的設計使得能夠很好表示場景的配置將具有較高的值 G(θ),而不能很好表示場景的配置將具有較低的G(θ)值。
通過將問題轉化為從分布中進行抽樣,可以使用馬爾可夫鏈蒙特卡羅 (MCMC) 方法(如隨