柚子快報邀請碼778899分享:3D高斯Splatting
1、簡介
2、算法流程
2.1、sfm初始化稀疏點云
優(yōu)化從稀疏SfM點云開始,創(chuàng)建一組三維高斯分布。 這里通過colmap先創(chuàng)建出一個初始化點云。通過一組照片就能進行估算。保持連續(xù)體積輻射場的理想特性,用于場景優(yōu)化,同時避免了空白空間中不必要的計算
2.2、3D高斯橢球集的創(chuàng)建——位置與形狀
位置信息:點云位置信息優(yōu)化(x,y,z),即高斯橢球的中心點(即均值,類比于一維高斯分布(正態(tài)分布)中的均值μ) 形狀信息:高斯橢球的協(xié)方差矩陣
Σ
\Sigma
Σ—-包含高斯橢球的旋轉(zhuǎn)矩陣R和在各個軸縮放矩陣S。 其中
Σ
=
R
S
S
T
R
T
\Sigma=RSS^TR^T
Σ=RSSTRT,保證半正定的性質(zhì),幾何意義是先將橢球旋轉(zhuǎn)到與橢球世界平齊,然后沿著軸縮放,再旋轉(zhuǎn)還原回去。這樣處理的好處是:由于
Σ
\Sigma
Σ不能進行隨機初始化,能保證
Σ
\Sigma
Σ仍保持半正定的性質(zhì),并且在一定程度也減少運算量。
2.3、3D高斯橢球集的創(chuàng)建——顏色與不透明度
顏色信息:點云顏色(r,g,b)—-使用球諧函數(shù)來表示,使得點云在不同角度呈現(xiàn)不同顏色,并有利于提高迭代效率(代碼中采用4階)。 不透明度信息:點云不透明度,密度優(yōu)化
α
\alpha
α。
3、球諧函數(shù)
4、偽代碼分析
M
M
M是通過SFM得到的初始化稀疏點云,也就是位置(x,y,z)。
S
S
S是協(xié)方差,決定形狀;
C
C
C是顏色;
A
A
A是不透明度。 當(dāng)沒有收斂時進入迭代循環(huán): 從數(shù)據(jù)集中抽取相機位姿
V
V
V和圖片
I
^
\hat{I}
I^,
I
^
\hat{I}
I^是ground true。 通過光柵化的操作,輸入
M
、
S
、
C
、
A
、
V
M、S、C、A、V
M、S、C、A、V得到預(yù)測的圖片
I
I
I。 將預(yù)測的圖片與原始圖片計算loss值
L
L
L。 使用Adam優(yōu)化
M
、
S
、
C
、
A
M、S、C、A
M、S、C、A。 IsRefinementIteration(?)判斷是否要對點的位置進行優(yōu)化,避免點的數(shù)量過多,顯存吃不下。 如果某個高斯的不透明度? < ?,小于某個閾值,則通過pruning將這個高斯去掉。 如果梯度大于某個閾值,則對協(xié)方差進行判斷,如果大于某個閾值則進行分割高斯,小于則克隆高斯,即Densification操作。 進入下一次迭代。
5、一些補充特征
(1)nerf是隱式模型,3D高斯Splatting則是顯示模型,可以實時建模。
柚子快報邀請碼778899分享:3D高斯Splatting
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。