4 可微分的3D高斯 splatting
核心目標與表示選擇
我們的目標是從無法線的稀疏SfM點出發,優化出一種能夠實現高質量新視角合成的場景表示。為此,我們選擇3D高斯作為基本圖元,它兼具可微分的體表示特性和非結構化的顯式表示優勢,既能支持優化過程,又能實現快速渲染。
高斯參數與投影模型
- 3D高斯定義
高斯由世界空間中的均值(位置) μ \mu μ和協方差矩陣 ∑ \sum ∑定義,其概率密度函數為:
G ( x ) = e ? 1 2 ( x ? μ ) T ∑ ? 1 ( x ? μ ) G(x) = e^{-\frac{1}{2}(x-\mu)^T \sum^{-1}(x-\mu)} G(x)=e?21?(x?μ)T∑?1(x?μ)
其中,協方差矩陣 ∑ \sum ∑描述了高斯的形狀和方向,通過縮放矩陣 S S S和旋轉矩陣 R R R分解為:
∑ = R S S T R T \sum = R S S^T R^T ∑=RSSTRT
這種分解方式將協方差的優化轉化為對縮放向量 s s s(3個自由度)和旋轉四元數 q q q(4個自由度,歸一化后3個自由度)的優化,避免了直接優化協方差矩陣時的正半定性約束問題。
- 投影到2D圖像空間
通過相機變換 V V V和投影雅可比矩陣 J J J,將3D高斯投影為圖像空間中的2D橢圓。投影后的協方差矩陣 ∑ ′ \sum' ∑′為:
∑ ′ = J V ∑ V T J T \sum' = J V \sum V^T J^T ∑′?=JV∑VTJT
取其左上角2x2子矩陣,即可得到與傳統基于點的方法(如使用法線的平面點)等價的2D方差矩陣,用于渲染時的 α \alpha α混合。
優化與梯度計算
- 參數優化
優化參數包括高斯的位置、縮放、旋轉、不透明度 α \alpha α和球面調和函數(SH)系數(用于表示顏色的視圖相關性)。通過隨機梯度下降(SGD)最小化 L 1 L_1 L1?損失和D-SSIM損失的加權和:
L = ( 1 ? λ ) L L 1 + λ L D - S S I M ( λ = 0.2 ) \mathcal{L} = (1-\lambda)\mathcal{L}_{L1} + \lambda\mathcal{L}_{D\text{-}SSIM} \quad (\lambda=0.2) L=(1?λ)LL1?+λLD-SSIM?(λ=0.2)
采用指數衰減學習率調度,并通過 sigmoid 和指數激活函數約束參數范圍。
- 顯式梯度推導
為避免自動微分的開銷,手動推導了縮放 s s s和旋轉 q q q的梯度。通過鏈式法則,將協方差矩陣的梯度分解為對旋轉矩陣和縮放矩陣的導數,利用四元數與旋轉矩陣的轉換關系,推導出各參數的梯度表達式。
優勢與應用
- 靈活性與緊湊性:3D高斯的各向異性特性使其能自適應復雜幾何結構(如薄結構、曲面),通過優化協方差矩陣,僅需1-5百萬個高斯即可精確表示場景,遠少于傳統點云方法。
- 可微分渲染:投影和渲染過程完全可微分,支持端到端優化,結合后續的自適應密度控制和快速光柵化,實現了高質量、實時的新視角合成。
與其他方法的對比
相較于基于神經網絡的NeRF方法(如Mip-NeRF360),3D高斯 splatting無需密集采樣和體積渲染,通過顯式幾何表示和GPU加速的光柵化,顯著提升了訓練和渲染速度;相較于傳統點云方法,其可微分特性和各向異性建模能力顯著提高了重建質量。
5 3D高斯的自適應密度控制優化
一、核心目標與優化框架
目標:通過優化3D高斯的參數(位置、協方差、不透明度、顏色)和動態調整高斯密度,生成精確的場景表示,實現高質量新視角合成。
輸入:SfM(結構從運動)生成的稀疏點云、多視圖圖像。
框架:
- 初始化:從SfM點云創建初始3D高斯集合,每個高斯由位置、各向同性協方差、初始不透明度和顏色(球面調和函數系數)定義。
- 迭代優化:通過可微分渲染將高斯投影為圖像,與真實圖像對比計算損失(L1 + D-SSIM),使用隨機梯度下降(SGD)更新參數。
- 自適應密度控制:在優化過程中動態添加或刪除高斯,平衡模型復雜度與重建精度。
二、優化參數與損失函數
- 優化參數:
- 幾何參數:3D位置 (\mathbf{p})、各向異性協方差(縮放 (\mathbf{s})、旋轉 (\mathbf{q}))、不透明度 (\alpha),
- 外觀參數:球面調和函數(SH)系數,用于表示視角相關的顏色(如漫反射、高光)。
- 損失函數:
[
\mathcal{L} = (1-\lambda)\mathcal{L}{\text{L1}} + \lambda\mathcal{L}{\text{D-SSIM}} \quad (\lambda=0.2)
]- (\mathcal{L}_{\text{L1}}) 衡量渲染圖像與真實圖像的像素級差異,
- (\mathcal{L}_{\text{D-SSIM}}) 衡量結構相似性,提升感知質量。
- 激活函數與約束:
- 用 sigmoid 約束 (\alpha \in [0, 1)),
- 用 指數函數 約束協方差縮放因子為正,
- 四元數 (\mathbf{q}) 歸一化為單位四元數,確保旋轉矩陣有效。
三、自適應密度控制:克隆與分裂策略
為解決場景中欠重建(幾何缺失)和過重建(幾何冗余)問題,通過梯度分析動態調整高斯密度:
- 欠重建區域(小高斯,高梯度):
- 檢測:若高斯在視圖空間的位置梯度均值超過閾值 (\tau_{\text{pos}}=0.0002),且協方差規模較小(低于閾值 (\tau_S)),視為欠重建。
- 操作:克隆高斯,復制當前高斯并沿梯度方向移動,填補幾何缺口(圖4上排)。
- 過重建區域(大高斯,高方差):
- 檢測:若高斯協方差規模較大(高于 (\tau_S)),且覆蓋區域細節復雜,視為過重建。
- 操作:分裂高斯,將一個大高斯拆分為兩個小高斯,縮放因子除以 (\phi=1.6),并在原高斯的概率密度函數(PDF)上采樣初始化新位置(圖4下排)。
- 剪枝操作:
- 刪除不透明度 (\alpha < \epsilon_{\alpha})(如 (\epsilon_{\alpha}=1e-4))的透明高斯,
- 刪除世界空間中尺寸過大或視圖空間中投影面積過大的高斯,避免“飛點”和冗余計算。
四、優化流程與關鍵技術
- 分辨率熱身(Warm-up):
從低分辨率(原圖1/4)開始優化,每250-500次迭代逐步提升至全分辨率,避免高分辨率下的優化震蕩。 - 球面調和函數分步優化:
初始僅優化SH零階系數(漫反射顏色),每1000次迭代添加高一階系數,避免因視角覆蓋不足導致的顏色失真。 - 快速可微分渲染:
- 基于瓦片(Tile-based)的光柵化器,將屏幕劃分為16×16像素塊,對每個瓦片內的高斯按深度排序,
- 支持各向異性高斯的 (\alpha) 混合,通過Radix排序和共享內存加速,確保優化階段的渲染速度(135 FPS,文檔表1)。
五、效果與優勢
- 緊湊表示:通過自適應密度控制,僅需1-5百萬個高斯即可精確表示復雜場景,遠少于傳統點云方法(如Point-NeRF需數千萬點)。
- 幾何適應性:各向異性高斯可擬合薄結構(如葉片)、曲面和遠距離細節,如圖3所示,優化后的高斯通過協方差調整呈現橢球形狀,貼合真實幾何。
- 訓練效率:在Mip-NeRF360數據集上,30K次迭代僅需約51分鐘,遠快于Mip-NeRF360的48小時,且PSNR達25.2,超越InstantNGP和Plenoxels(文檔圖1、表1)。
六、局限性與改進方向
- 當前局限:
- 極端視角或低重疊區域可能產生“飛高斯”或模糊(圖12),
- 大規模場景(如城市)需調整位置學習率,避免優化發散。
- 未來優化:
- 引入正則化約束高斯形狀,減少“斑點狀” artifacts,
- 結合壓縮技術(如點云編碼)降低內存消耗,
- 支持動態場景的在線優化。
總結
自適應密度控制優化是3D高斯 splatting 的核心創新之一,通過“優化-密度控制-渲染”的閉環,實現了幾何細節的自適應建模與計算資源的高效分配。該方法在保持高重建質量的同時,將訓練時間和渲染延遲壓縮至實時水平,為大規模場景的實時神經渲染提供了新范式(文檔結論部分)。
6 高斯的快速可微分光柵化器
一、核心目標與設計原則
目標:實現3D高斯的實時渲染和可微分優化,支持高分辨率(如1080p)下的高質量新視角合成。
設計原則:
- 利用GPU并行計算:通過瓦片劃分(Tile-based)和快速排序,充分利用GPU的并行處理能力,
- 精確性與效率平衡:在保證渲染質量的前提下,避免傳統體積渲染的高采樣成本,
- 全流程可微分:確保投影、排序、混合過程的梯度可反向傳播,支持端到端優化。
二、關鍵技術組件
1. 瓦片劃分與視錐體剔除
- 屏幕劃分:將圖像分為16×16像素的瓦片(Tile),每個瓦片獨立處理,減少內存訪問沖突,
- 視錐體剔除:對每個高斯進行視錐體檢測,僅保留與視圖 frustum 相交(99%置信區間)的高斯,剔除遠距離或視角外的無效圖元,
- 保護帶(Guard Band):拒絕近平面附近且嚴重偏離視圖 frustum 的高斯,避免投影時的數值不穩定。
2. 基于深度的快速排序
- 鍵值生成:為每個高斯生成排序鍵,包含視圖空間深度和瓦片ID,其中深度值用于確定前后順序,瓦片ID用于分組,
- 基數排序(Radix Sort):利用GPU的并行基數排序算法,對所有高斯進行全局排序,確保同瓦片內的高斯按深度有序(近→遠),
- 瓦片范圍標識:排序后,為每個瓦片標記高斯列表的起始和結束索引,便于后續分塊渲染(如圖6中的算法2)。
3. 各向異性高斯渲染與α混合
- 投影到2D橢圓:根據3D協方差矩陣,將高斯投影為2D圖像空間中的各向異性橢圓,橢圓的形狀由協方差矩陣的特征值和特征向量決定,
- α混合公式:按深度順序對橢圓進行從前到后(front-to-back)的混合,累積顏色和不透明度:
[
C = \sum_i T_i \alpha_i c_i, \quad T_i = \prod_{j=1}^{i-1} (1 - \alpha_j)
]
其中,(\alpha_i) 為當前高斯的不透明度,(T_i) 為累積透明度,確保遠高斯被近高斯遮擋, - 提前終止:當像素的累積不透明度 (T_i < 1 - \epsilon)(如 (\epsilon=1e-4))時,停止混合,加速渲染。
4. 可微分反向傳播
- 前向記錄:在正向渲染過程中,記錄每個像素的累積不透明度和混合順序,
- 反向遍歷:反向傳播時,從后到前(back-to-front)遍歷高斯,利用前向記錄的累積值計算梯度,
- 無限制梯度傳播:支持任意數量高斯的梯度計算,無需限制每個像素的最大混合次數(如Pulsar的N=10限制),避免因截斷導致的優化不穩定(文檔圖9)。
三、性能優化細節
1. 共享內存與數據重用
- 瓦片級數據加載:每個線程塊處理一個瓦片,協作將高斯數據加載到共享內存,減少全局內存訪問次數,
- 向量化操作:利用CUDA的向量化指令(如warp-level操作),并行處理同一瓦片內的多個像素,提升計算效率。
2. 數值穩定性保障
- 不透明度鉗制:將 (\alpha) 限制在 ([0, 0.9999]) 范圍內,避免除以零或數值溢出,
- 梯度修正:在反向傳播中,通過累積不透明度的除法操作((T_i / \alpha_i))恢復中間透明度,確保梯度計算的穩定性。
3. 與優化階段的協同
- 訓練時的高效反饋:光柵化器的快速渲染能力(如135 FPS)使優化迭代周期縮短,結合自適應密度控制,實現51分鐘內達到SOTA質量(文檔圖1),
- 多分辨率支持:在低分辨率下熱身訓練,逐步提升至全分辨率,避免高分辨率下的過擬合和計算過載。
四、與其他方法的對比
特性 | 本文光柵化器 | 傳統體積渲染(如NeRF) | 點云光柵化(如Pulsar) |
---|---|---|---|
渲染速度 | 實時(≥30 FPS,1080p) | 慢(0.07 FPS,Mip-NeRF360) | 較快(~10 FPS) |
幾何表示 | 3D各向異性高斯 | 隱式密度場 | 2D點+法線 |
可微分性 | 全流程可微分,支持任意深度 | 可微分,但依賴隨機采樣 | 部分可微分,需限制混合次數 |
內存消耗 | 數百MB(高斯參數) | 低(神經網絡權重) | 取決于點云數量(通常更高) |
** artifacts** | 少(深度排序+α混合) | 噪聲(需大量采樣) | 孔洞或閃爍(點分布不均) |
五、局限性與未來方向
- 當前局限:
- 深度排序為近似排序(基于瓦片而非像素級),可能導致極個別像素的遮擋順序錯誤,
- 復雜場景中高斯數量過大時(如>500萬),排序和存儲開銷增加。
- 改進方向:
- 引入硬件加速的光線追蹤,提升復雜遮擋場景的準確性,
- 開發高斯壓縮算法(如聚類或稀疏表示),降低內存占用,
- 支持動態分辨率調整,適應實時交互中的性能需求變化。
總結
快速可微分光柵化器是3D高斯 splatting 實現“實時渲染”的核心引擎,通過瓦片劃分-排序-混合的流水線設計,結合GPU并行計算和可微分技術,在保證高渲染質量的同時,將訓練和推理速度提升至傳統NeRF方法的數十倍。該技術不僅為實時神經渲染提供了新工具,也為顯式幾何表示與可微分渲染的結合開辟了新路徑(文檔結論部分)。