**作者**:Xinze Li **机构**:CST - 2023 **日期**:Mar 28, 2025 ## 内容 - Gaussian Pro 解读 - Mini - Splatting 解读 - Insights ## Gaussian Pro ### 问题描述及原因 - **问题描述**:传统3DGS在低纹理区域因SfM点云稀疏导致初始化不足,引发几何噪声和覆盖不全。 - **原因**: - 初始化敏感:SfM无法生成足够 Gaussian,导致难以覆盖场景 (尤其是低纹理区)。 - 忽略已有的重建几何先验知识:Densification生成的 Gaussian 缺乏几何约束,易产生噪声和冗余。 ### 方法 - 将3DGS投影到用以引导Gaussians Growth的2D depth/normal maps上,然后基于相邻像素propagate来的depth/normal更新每一个像素的depth/normal。对于新深度与初始深度显著不同的像素,将其作为三维点投影回三维空间,并初始化为新的Gaussians。 - **Planar Loss**:引入法线一致性损失(L1 + 角度损失)和尺度正则化,强制Gaussians贴合真实表面。 ### Hybrid Geometry Representation - **Depth value of Gaussian**:对于每个Gaussian $G_i$,其中心 $\mu_i \in \mathbb{R}^3$通过相机外参矩阵 $[W, t]$投影到相机坐标系下的坐标 $\mu'_i$,$\mu'_i = \begin{bmatrix} x_i \\ y_i \\ z_i \end{bmatrix} = W\mu_i + t$,其中 $z_i$ 是Gaussian Center在相机坐标系下的depth,直接作为该Gaussian的深度属性。 - **Normal value of Gaussian**:重要假设为在优化过程中,因为Gaussian会逐渐被压扁,所以最短轴方向近似表面法线方向。每个高斯的协方差矩阵 $\Sigma_i$分解为旋转矩阵 $R_i$和缩放矩阵 $S_i$,$\Sigma_i = R_i S_i S_i^T R_i^T$,选择缩放系数最小的轴 $r = \arg\min\{s_1, s_2, s_3\}$,对应的旋转矩阵行向量 $R_i[r,:]$作为法线方向,$n_i = R_i[r,:]$。 - **Rendering of depth/normal maps**:通过$\alpha$-blender对每个pixel的depth/normal进行加权融合,深度图 $d(p) = \sum_{i = 1}^N z_i \alpha_i \prod_{j = 1}^{i - 1} (1 - \alpha_j)$,法线图 $n(p) = \sum_{i = 1}^N n_i \alpha_i \prod_{j = 1}^{i - 1} (1 - \alpha_j)$,其中 $z_i$和 $n_i$分别为第 $i$个高斯的深度和法线,$\alpha_i$由投影后的2D高斯分布和学习的透明度计算得到,深度图是各高斯深度的加权平均,法线图是各高斯法线的加权平均,需normalize成单位向量以保持方向一致性。 ### Progressive Gaussian Propagation - **Plane Definition**:对每个pixel $p$的rendered depth $z$和normal $n$,定义一个local plane $(d, \mathbf{n})$,$d = z \cdot \mathbf{n}^T K^{-1} \tilde{p}$,其中 $\tilde{p} = (u, v, 1)^T$是像素 $p$的齐次坐标,$K \in \mathbb{R}^{3 \times 3}$是相机内参矩阵,$\mathbf{n} \in \mathbb{R}^3$是像素的法线方向(单位向量),$d \in \mathbb{R}$是平面到相机原点的距离。 - **Candidate Plane Selection**:通过Checkerboard Pattern选择像素 $p$的邻居像素集合 $\{ p_l \}_{l = 0}^4$,生成候选平面集合 $\mathcal{C}_p = \{ (d_{k_l}, \mathbf{n}_{k_l}) \}_{l = 0}^4$,作用是利用相邻像素的几何一致性生成候选平面,假设相邻像素在3D空间中可能共享同一平面。 - **Patch Matching**:对每个候选平面 $(d_{k_l}, \mathbf{n}_{k_l})$,计算其单应矩阵 $H_l$,将参考视图中的像素 $p$投影到相邻视图中的对应像素 $p'_l$,$\tilde{p}'_l \simeq H_l \tilde{p}, \quad H_l = K \left( W_{\text{rel}} - \frac{\mathbf{t}_{\text{rel}} \mathbf{n}_{k_l}^T}{d_{k_l}} \right) K^{-1}$,通过归一化互相关(NCC)衡量参考视图块 $\mathcal{P}(p)$和相邻视图块 $\mathcal{P}(p'_l)$的相似性,选择NCC得分最高的候选平面。 - **Geometric Filtering**:通过多视角几何一致性过滤不可靠的传播结果,包括反向投影验证和平面一致性约束,$\sum_{k = 1}^{K} \mathbb{I}\left( \| \pi_k(\mathbf{X}_p) - p_k \|_2 < \tau \right) \geq N_{\text{cons}}$,其中 $\pi_k$是第 $k$个视角的投影函数,$p_k$是 $\mathbf{X}_p$在第 $k$个视角的投影位置,$\mathbb{I}(\cdot)$是指示函数。 ### Loss 设计 - **Normal Loss**:$L_{\text{normal}} = \sum_{p \in Q} \left( \| \hat{N}(p) - \bar{N}(p) \|_1 + \left( 1 - \hat{N}(p)^\top \bar{N}(p) \right) \right)$,第一项约束预测法线与真值法线的一致性,第二项约束预测法线与真值法线的方向一致性。 - **Scale Loss**:对每个Gaussian的scaling factor $s = (s_1, s_2, s_3)^\top \in \mathbb{R}^3$,定义 $L_s = \| \min(s_1, s_2, s_3) \|_1$,将椭球压缩为近似平面,迫使中心 $p_i$贴近表面。 ## Mini - Splatting ### 问题描述 - 原版的3DGS并不均匀分布在surface上。 - 原始3DGS的分布存在“重叠”(overlapping)和“重建不足”(under - reconstruction)问题,导致冗余和渲染质量下降。 ### 方法 - **Densification: Blur split**:原始版本在平滑颜色过渡区域易产生大尺度Gaussian,导致模糊伪影。计算每个高斯在图像空间的最大贡献区域 $S_i$,若 $S_i$超过阈值 $T_{blur}$,则对高斯进行分割或克隆,$G_{blur} = \{ G_i | S_i > T_{blur} \land i \in [1, N] \}$,其中 $S_i = \sum_{\mathbf{x}}^{(H,W)} \delta(i(x) = i_{max}(x))$且 $T_{blur} = \theta_{blur} \cdot H \cdot W$。 - **Densification: Depth Re - initialization**:原始3DGS的$\alpha$-blender深度存在伪影,导致深度点云不准确。对每个Gaussian,计算光线与Gaussian的交点中点作为深度值,而非直接使用高斯中心。通过联立椭球方程和光线方程,利用韦达定理得到交点中点的表达式。也可通过将光线变换到局部坐标系,计算沿光线路径的密度投影,得到投影密度在变换后的高斯中心处最大,与交点中点相对应。 - **Simplification: Intersection Preserving**:仅保留对光线相交贡献最大的Gaussian,去除未参与最终渲染的Floater Gaussian,减少冗余。 - **Simplification: Importance - weighted Sampling**:重要性指标基于混合权重累计 $I_i = \sum w_{ij}$,按重要性概率 $P_i = I_i / \sum I_i$随机采样高斯,保留几何结构。室内场景使用 $I_{1i} = \sum_{j = 1}^{K} w_{ij}$,室外场景使用 $I_{2i}=\sum_{m = 1}^{M}I^{(m)}_i\cdot\delta(i\in I^{(m)}_{\max}), I^{(m)}_i=\sum_{j = 1}^{K}\frac{w^{(m)}_{i,j}}{S^{(m)}_i}$,其中 $S^{(m)}_i$是高斯分布 $G_i$在第 $m$幅图像上的投影面积。 ### Loss design 没说,先默认只有原版3DGS的Loss(衡量渲染图像和GT的差异)。 ### Experiment: Variants - **Mini - Splatting**:平衡质量与效率,30K次迭代(前15K启用densification,后15K启用simplification)。 - **Mini - Splatting - D**:禁用simplification,优先渲染质量。 - **Mini - Splatting - C**:存储压缩版,Gaussian center用float32,其他参数用transform coding + ZIP压缩。 ## 优化颜色 ### 问题描述 - **Mini - Splatting的颜色问题来源**:压缩球谐系数降低存储,但导致高频颜色信息丢失(如纹理细节、高光反射)。 - **GaussianPro的优势**:多视图光一致性优化几何 + 颜色一致性。 ### solution - **Color loss between patches**:$\mathcal{L}_{\text{color\_ncc}} = \text{NCC}(I_{\text{ref}}(p), I_{\text{src}}(p'))$,为SH系数提供多视图颜色监督。 - **Color loss**:类似Gaussian Pro的法线约束,加上对颜色的约束,$\mathcal{L}_{\text{patch}} = \sum_{p \in \mathcal{P}} \| \text{SH}(p) - \text{SH}_{\text{prop}}(p) \|_2$,高频保留$\mathcal{L}_{\text{hf}} = \sum_{k} \| \nabla \text{SH}_k \|_1 \cdot w_k$,梯度大的SH系数减弱regularization强度。 - **Color importance map**:根据Patch - Matching的色差图生成重要性权重图 $w(p) = \exp\left(-\alpha \cdot \mathcal{L}_{\text{color\_ncc}}(p)\right)$,对高权重区域使用低压缩率,低权重区域使用高压缩率。 Loading... **作者**:Xinze Li **机构**:CST - 2023 **日期**:Mar 28, 2025 ## 内容 - Gaussian Pro 解读 - Mini - Splatting 解读 - Insights ## Gaussian Pro ### 问题描述及原因 - **问题描述**:传统3DGS在低纹理区域因SfM点云稀疏导致初始化不足,引发几何噪声和覆盖不全。 - **原因**: - 初始化敏感:SfM无法生成足够 Gaussian,导致难以覆盖场景 (尤其是低纹理区)。 - 忽略已有的重建几何先验知识:Densification生成的 Gaussian 缺乏几何约束,易产生噪声和冗余。 ### 方法 - 将3DGS投影到用以引导Gaussians Growth的2D depth/normal maps上,然后基于相邻像素propagate来的depth/normal更新每一个像素的depth/normal。对于新深度与初始深度显著不同的像素,将其作为三维点投影回三维空间,并初始化为新的Gaussians。 - **Planar Loss**:引入法线一致性损失(L1 + 角度损失)和尺度正则化,强制Gaussians贴合真实表面。 ### Hybrid Geometry Representation - **Depth value of Gaussian**:对于每个Gaussian $G_i$,其中心 $\mu_i \in \mathbb{R}^3$通过相机外参矩阵 $[W, t]$投影到相机坐标系下的坐标 $\mu'_i$,$\mu'_i = \begin{bmatrix} x_i \\ y_i \\ z_i \end{bmatrix} = W\mu_i + t$,其中 $z_i$ 是Gaussian Center在相机坐标系下的depth,直接作为该Gaussian的深度属性。 - **Normal value of Gaussian**:重要假设为在优化过程中,因为Gaussian会逐渐被压扁,所以最短轴方向近似表面法线方向。每个高斯的协方差矩阵 $\Sigma_i$分解为旋转矩阵 $R_i$和缩放矩阵 $S_i$,$\Sigma_i = R_i S_i S_i^T R_i^T$,选择缩放系数最小的轴 $r = \arg\min\{s_1, s_2, s_3\}$,对应的旋转矩阵行向量 $R_i[r,:]$作为法线方向,$n_i = R_i[r,:]$。 - **Rendering of depth/normal maps**:通过$\alpha$-blender对每个pixel的depth/normal进行加权融合,深度图 $d(p) = \sum_{i = 1}^N z_i \alpha_i \prod_{j = 1}^{i - 1} (1 - \alpha_j)$,法线图 $n(p) = \sum_{i = 1}^N n_i \alpha_i \prod_{j = 1}^{i - 1} (1 - \alpha_j)$,其中 $z_i$和 $n_i$分别为第 $i$个高斯的深度和法线,$\alpha_i$由投影后的2D高斯分布和学习的透明度计算得到,深度图是各高斯深度的加权平均,法线图是各高斯法线的加权平均,需normalize成单位向量以保持方向一致性。 ### Progressive Gaussian Propagation - **Plane Definition**:对每个pixel $p$的rendered depth $z$和normal $n$,定义一个local plane $(d, \mathbf{n})$,$d = z \cdot \mathbf{n}^T K^{-1} \tilde{p}$,其中 $\tilde{p} = (u, v, 1)^T$是像素 $p$的齐次坐标,$K \in \mathbb{R}^{3 \times 3}$是相机内参矩阵,$\mathbf{n} \in \mathbb{R}^3$是像素的法线方向(单位向量),$d \in \mathbb{R}$是平面到相机原点的距离。 - **Candidate Plane Selection**:通过Checkerboard Pattern选择像素 $p$的邻居像素集合 $\{ p_l \}_{l = 0}^4$,生成候选平面集合 $\mathcal{C}_p = \{ (d_{k_l}, \mathbf{n}_{k_l}) \}_{l = 0}^4$,作用是利用相邻像素的几何一致性生成候选平面,假设相邻像素在3D空间中可能共享同一平面。 - **Patch Matching**:对每个候选平面 $(d_{k_l}, \mathbf{n}_{k_l})$,计算其单应矩阵 $H_l$,将参考视图中的像素 $p$投影到相邻视图中的对应像素 $p'_l$,$\tilde{p}'_l \simeq H_l \tilde{p}, \quad H_l = K \left( W_{\text{rel}} - \frac{\mathbf{t}_{\text{rel}} \mathbf{n}_{k_l}^T}{d_{k_l}} \right) K^{-1}$,通过归一化互相关(NCC)衡量参考视图块 $\mathcal{P}(p)$和相邻视图块 $\mathcal{P}(p'_l)$的相似性,选择NCC得分最高的候选平面。 - **Geometric Filtering**:通过多视角几何一致性过滤不可靠的传播结果,包括反向投影验证和平面一致性约束,$\sum_{k = 1}^{K} \mathbb{I}\left( \| \pi_k(\mathbf{X}_p) - p_k \|_2 < \tau \right) \geq N_{\text{cons}}$,其中 $\pi_k$是第 $k$个视角的投影函数,$p_k$是 $\mathbf{X}_p$在第 $k$个视角的投影位置,$\mathbb{I}(\cdot)$是指示函数。 ### Loss 设计 - **Normal Loss**:$L_{\text{normal}} = \sum_{p \in Q} \left( \| \hat{N}(p) - \bar{N}(p) \|_1 + \left( 1 - \hat{N}(p)^\top \bar{N}(p) \right) \right)$,第一项约束预测法线与真值法线的一致性,第二项约束预测法线与真值法线的方向一致性。 - **Scale Loss**:对每个Gaussian的scaling factor $s = (s_1, s_2, s_3)^\top \in \mathbb{R}^3$,定义 $L_s = \| \min(s_1, s_2, s_3) \|_1$,将椭球压缩为近似平面,迫使中心 $p_i$贴近表面。 ## Mini - Splatting ### 问题描述 - 原版的3DGS并不均匀分布在surface上。 - 原始3DGS的分布存在“重叠”(overlapping)和“重建不足”(under - reconstruction)问题,导致冗余和渲染质量下降。 ### 方法 - **Densification: Blur split**:原始版本在平滑颜色过渡区域易产生大尺度Gaussian,导致模糊伪影。计算每个高斯在图像空间的最大贡献区域 $S_i$,若 $S_i$超过阈值 $T_{blur}$,则对高斯进行分割或克隆,$G_{blur} = \{ G_i | S_i > T_{blur} \land i \in [1, N] \}$,其中 $S_i = \sum_{\mathbf{x}}^{(H,W)} \delta(i(x) = i_{max}(x))$且 $T_{blur} = \theta_{blur} \cdot H \cdot W$。 - **Densification: Depth Re - initialization**:原始3DGS的$\alpha$-blender深度存在伪影,导致深度点云不准确。对每个Gaussian,计算光线与Gaussian的交点中点作为深度值,而非直接使用高斯中心。通过联立椭球方程和光线方程,利用韦达定理得到交点中点的表达式。也可通过将光线变换到局部坐标系,计算沿光线路径的密度投影,得到投影密度在变换后的高斯中心处最大,与交点中点相对应。 - **Simplification: Intersection Preserving**:仅保留对光线相交贡献最大的Gaussian,去除未参与最终渲染的Floater Gaussian,减少冗余。 - **Simplification: Importance - weighted Sampling**:重要性指标基于混合权重累计 $I_i = \sum w_{ij}$,按重要性概率 $P_i = I_i / \sum I_i$随机采样高斯,保留几何结构。室内场景使用 $I_{1i} = \sum_{j = 1}^{K} w_{ij}$,室外场景使用 $I_{2i}=\sum_{m = 1}^{M}I^{(m)}_i\cdot\delta(i\in I^{(m)}_{\max}), I^{(m)}_i=\sum_{j = 1}^{K}\frac{w^{(m)}_{i,j}}{S^{(m)}_i}$,其中 $S^{(m)}_i$是高斯分布 $G_i$在第 $m$幅图像上的投影面积。 ### Loss design 没说,先默认只有原版3DGS的Loss(衡量渲染图像和GT的差异)。 ### Experiment: Variants - **Mini - Splatting**:平衡质量与效率,30K次迭代(前15K启用densification,后15K启用simplification)。 - **Mini - Splatting - D**:禁用simplification,优先渲染质量。 - **Mini - Splatting - C**:存储压缩版,Gaussian center用float32,其他参数用transform coding + ZIP压缩。 ## 优化颜色 ### 问题描述 - **Mini - Splatting的颜色问题来源**:压缩球谐系数降低存储,但导致高频颜色信息丢失(如纹理细节、高光反射)。 - **GaussianPro的优势**:多视图光一致性优化几何 + 颜色一致性。 ### solution - **Color loss between patches**:$\mathcal{L}_{\text{color\_ncc}} = \text{NCC}(I_{\text{ref}}(p), I_{\text{src}}(p'))$,为SH系数提供多视图颜色监督。 - **Color loss**:类似Gaussian Pro的法线约束,加上对颜色的约束,$\mathcal{L}_{\text{patch}} = \sum_{p \in \mathcal{P}} \| \text{SH}(p) - \text{SH}_{\text{prop}}(p) \|_2$,高频保留$\mathcal{L}_{\text{hf}} = \sum_{k} \| \nabla \text{SH}_k \|_1 \cdot w_k$,梯度大的SH系数减弱regularization强度。 - **Color importance map**:根据Patch - Matching的色差图生成重要性权重图 $w(p) = \exp\left(-\alpha \cdot \mathcal{L}_{\text{color\_ncc}}(p)\right)$,对高权重区域使用低压缩率,低权重区域使用高压缩率。 最后修改:2025 年 03 月 28 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏