三維視覺與幾何

三維高斯潑濺

三維高斯潑濺(3D Gaussian splatting)把場景表示成的不是一個網路或網格,而是一大群模糊的三維團塊——數百萬個微小、半透明、有顏色的橢球漂浮在空間中,每個都是一個三維高斯。點雲中的點無限小,而這些團塊有大小、形狀、朝向、透明度與視角相依的顏色,所以擠在一起就形成連續的表面與柔和的體積。由 Kerbl 等人於 2023 年提出,它在達到 NeRF 的照片級擬真之餘,能即時渲染、訓練也快得多,並迅速成為新視角合成的主流表示法。

每個高斯由幾個全部都是學習而來的參數描述:一個三維中心(團塊所在之處)、一個被分解為尺度與旋轉的共變異數矩陣(橢球的大小與朝向,因此能被壓扁貼合在表面上)、一個不透明度(它有多透),以及一個隨觀看角度而變的顏色,以球諧函數係數儲存,使它能捕捉光澤與反射。場景不過是所有這些基元的總和——一個顯式、可編輯、可檢視的表示法,與 NeRF 那不透明的 MLP 權重恰成對比。

名字的由來在於渲染。它不像 NeRF 那昂貴的做法——行進一條射線並在許多取樣點查詢網路——而是把每個三維高斯投影(潑濺,splat)到影像平面上,在那裡成為一個二維高斯足跡。所有與某像素重疊的潑濺依深度排序,並由前到後做 alpha 混合,正是體積渲染那條可微分的體積合成規則,但改以快速的 GPU 光柵化求值,而非射線行進。正是這種光柵化的潑濺,才在高解析度下帶來即時的影格率(常遠超過每秒 100 影格)。

訓練呼應了 NeRF 的構想,但作用在顯式的基元上。從運動回復結構已產生的稀疏點雲出發,系統渲染當前的高斯、與真實照片比較,並把影像誤差反向傳播以更新每個高斯的參數。一個巧妙的自適應密度控制步驟,會定期在缺乏細節之處複製並分裂高斯,並修剪掉太透明或冗餘的高斯,使數量在場景需要之處增長。相對於 NeRF 的取捨是:更快的訓練、即時渲染與容易編輯,代價是較大的儲存(數百萬個基元),以及在基礎方法中,極端視角或光照變化下的一些瑕疵——這些正被抗鋸齒、正規化與動態場景的變體積極處理中。

三維高斯潑濺與 NeRF 都仍仰賴運動回復結構提供的準確相機位姿,而基礎版 3DGS 對拍攝到的視角過度擬合——把相機推到訓練軌跡之外很遠,高斯就可能糊成可見的瑕疵。它是出色的視角合成表示法,但並不自動等於乾淨的度量網格;要萃取表面需要專門的變體(如 SuGaR、二維高斯潑濺)。

又称
3DGSGaussian splatting3D 高斯潑濺