高斯點渲染(3D 高斯展開) 是什麼?

Gaussian Splatting:高斯點渲染(3D 高斯展開) 的完整解釋

一種用數百萬個可學習的 3D 高斯橢球體表示場景幾何與外觀的技術,可從多角度照片重建出能即時渲染的高品質 3D 場景。

3D 高斯點渲染的背景

從多張照片重建 3D 場景並進行高品質渲染,是電腦視覺和電腦圖學的長期核心問題。傳統方法如 SfM(Structure from Motion)和 MVS(Multi-View Stereo)能重建 3D 點雲或網格,但渲染品質和速度有所取捨。2020 年 NeRF(Neural Radiance Field)透過隱式神經網路表示場景,在新視角合成上取得突破性的品質,但訓練和渲染速度極慢(渲染一張圖可能需要數十秒到數分鐘)。

2023 年,Kerbl 等人提出的「3D Gaussian Splatting for Real-Time Novel View Synthesis」在保留 NeRF 品質優勢的同時,實現了即時渲染速度,成為 3D 場景表示的里程碑式方法。

核心表示:3D 高斯橢球體

場景由 N 個 3D 高斯橢球體(3D Gaussian Primitives)組成,每個高斯有以下可學習屬性:

  • 位置(Position)μ:3D 空間中的中心座標(x, y, z)
  • 共變異數矩陣(Covariance Matrix)Σ:定義橢球體的形狀和方向,實際上分解為縮放矩陣 S 和旋轉矩陣 R 以確保正半定性
  • 不透明度(Opacity)α:控制高斯的透明程度
  • 球面調和係數(Spherical Harmonics,SH):多個係數共同表示視角相關的顏色(捕捉高光、反射等效果)

每個 3D 高斯對空間中某點 x 的影響值定義為: G(x) = exp(-½ (x - μ)ᵀ Σ⁻¹ (x - μ))

可微分點渲染(Differentiable Splatting)管線

渲染流程的核心步驟:

  1. 投影:將每個 3D 高斯投影(Splat)到 2D 影像平面上,形成 2D 高斯橢圓
  2. 排序:根據高斯中心到相機的深度(從前到後)進行排序
  3. Alpha 合成:從前到後按深度順序,使用 Alpha Compositing 將高斯疊加,每個像素的顏色為各高斯貢獻的加權和

由於整個管線是可微分的,可以直接對訓練照片計算渲染損失,再用梯度下降法更新所有高斯的屬性,實現端到端的優化。

訓練流程

  1. 初始化:通常以 SfM 的稀疏點雲作為初始高斯位置(也可隨機初始化)
  2. 自適應密度控制:訓練過程中動態增加(Densification)或刪除(Pruning)高斯數量:
    • 梯度大但高斯過大 → 分裂(Split)成兩個更小的高斯
    • 梯度大但高斯過小 → 複製(Clone)並微調
    • 不透明度接近 0 的高斯 → 定期刪除
  3. 損失函數:通常結合 L1 損失與 SSIM(結構相似性)損失

與 NeRF 的比較

面向 3D Gaussian Splatting NeRF
場景表示 顯式(數百萬高斯基元) 隱式(神經網路)
訓練速度 分鐘至數十分鐘 數小時(原始)/ 分鐘(Instant NGP)
渲染速度 即時(30+ FPS) 慢(數秒/張,除非加速版)
渲染品質 高,與最優 NeRF 相當 非常高,尤其是細節和反射
可編輯性 高(可直接操作高斯基元) 較低(隱式表示難以編輯)
記憶體使用 較高(數百萬高斯的儲存) 較低(神經網路參數)

應用場景

  1. 虛擬製作與影視特效:快速從真實場景照片重建可即時渲染的 3D 背景
  2. VR/AR 內容創建:為頭戴裝置提供沉浸式 3D 環境,即時渲染是關鍵需求
  3. 數位孿生(Digital Twin):快速重建真實空間的 3D 模型
  4. 自動駕駛場景生成:從現有行車記錄生成可供訓練的 3D 場景資料
  5. 3D 資產生成:配合文字或圖像生成條件,生成可用的 3D 場景或物件

衍生研究方向

  • Dynamic 3DGS:擴展到動態場景,支援物體運動的建模
  • 2D Gaussian Splatting:將 3D 高斯替換為 2D 高斯盤,更準確地捕捉表面幾何
  • Gaussian-based Scene Editing:直接操作、刪除、移動場景中的高斯基元進行場景編輯
  • Language-embedded 3DGS:在每個高斯上嵌入語義特徵,實現語言引導的場景理解

局限性

  • 場景細節(如鏡面反射、透明物體、精細薄結構)仍有挑戰
  • 記憶體需求較高,一個場景可能需要數百萬個高斯(數 GB 儲存)
  • 對訓練照片的數量和角度覆蓋有要求,輸入視角不足時品質下降明顯
  • 目前對無界大場景(如城市級別)的建模能力仍受限制

常見問題