针对训练和渲染慢的问题,提出 3DGS,同时保持了 NeRF 等方法的质量。通过利用 3D 高斯函数作为表示形式,利用显示 ( x , y , z , θ , ϕ ) (x,y,z,\theta,\phi) (x,y,z,θ,ϕ) 存储空间信息,基于神经网络的优化,进行高质量渲染,有更快的训练和实时性能。(静态场景)且各向异性能够拟合任意方向几何结构,相比球状 NeRF 优势。
3DGS系数,均值控制位置,旋转控制朝向(各向异性),协方差(尺度)控制三个主轴的大小,透明度作用域多高斯混合,也就是 3DGS 稀疏控制了场景的几何信息。而球谐系数表达的是颜色随视角的变化,是光照,材质效果。故而二者协同优化。
Method
目标是优化一种场景表示法,从无法向的 稀疏(SfM)点集开始,进行高质量新视图合成。
将几何建模为一组无需发现的三维高斯,以点(平均值)
μ
\mu
μ 为中心,和协方差矩阵
∑
\sum
∑ 定义:
G
(
x
)
=
e
1
2
(
x
)
T
∑
−
1
(
x
)
G(x)=e^{\frac{1}{2}(x)^T\sum^{-1}(x)}
G(x)=e21(x)T∑−1(x) 。
在给定视图变换矩阵 W 后,相机坐标系下的协方差矩阵为:
∑
′
=
J
W
∑
W
T
J
T
\sum^{'}=JW\sum W^TJ^T
∑′=JW∑WTJT 其中,
J
J
J 是投影近似变换的雅可比矩阵。此时,如果直接优化协方差矩阵
∑
\sum
∑ ,以获得其代表辐射场的三维高斯是直接的,但协方差矩阵只有在半正定的时候才有物理意义(椭球体某些方向上尺度为负以及从概率密度函数而言要大于等于 0),梯度下降法很容易产生无效的协方差矩阵。
故而选择,给定缩放矩阵(三维向量)和旋转矩阵(四元数)后,可以找到相应的
∑
\sum
∑:(
∑
\sum
∑ 的特征向量定义了 Gaussian 的主轴方向——R,
∑
\sum
∑ 的特征向量定义了 Gaussian 在各个主轴方向上的尺度——S)
∑
=
R
S
S
T
R
T
\sum=RSS^TR^T
∑=RSSTRT
损失函数为:
L
=
(
1
−
λ
)
L
1
+
λ
L
D
−
S
S
I
M
\mathcal{L}=(1-\lambda)\mathcal{L}_1+\lambda \mathcal{L}_{D-SSIM}
L=(1−λ)L1+λLD−SSIM
自适应高斯控制
在基于 3D Gaussians 的场景表示中,动态调整高斯分布是关键:对于未完全重建的区域,通过复制高斯并沿梯度方向移动来增加覆盖;对于高方差区域,将大高斯分割为多个小高斯以提高精度;同时,定期修剪不透明度低的高斯并移除过大高斯,以控制高斯数量并避免冗余。这种动态调整策略在优化过程中平衡了高斯的数量和质量,实现了对场景几何和辐射场的高效、精确表示,从而支持高质量的新视角合成。
分块
为了减少对每个像素高斯运算的成本,采用了将整个图像划分为多个不重叠小块(16个像素),识别出哪些砖块与特定高斯投影相交。一个高斯投影可能覆盖多个砖块,选择复制高斯投影,并且为他分配一个唯一的标识符——与之相交的 Tile 的 ID。
给定像素位置 x,通过视图变换 W,计算与所有重叠高斯体的距离——即这些高高斯体的深度,形成高斯体的排序表 N,然后混合 alpha 合成来计算整体图像的最终颜色。
$$
\begin{aligned}
C=\sum_{i\in N}c_i\alpha_i{'}\prod_{j=1}{i-1}(1-\alpha^{‘}_j)
\\alpha_i{'}=\alpha_i×e{\frac{1}{2}(x{'}-\mu{’})T\sum_i{‘-1}(x{'}-\mu{’}_i)}
\end{aligned}
$$