3D-HGS: 3D Half-Gaussian Splatting¶
会议: CVPR 2025
arXiv: 2406.02720
代码: https://lihaolin88.github.io/CVPR-2025-3DHGS
领域: 3D视觉 / 新视角合成 / 3D Gaussian Splatting
关键词: Half-Gaussian, Reconstruction Kernel, Plug-and-Play, Discontinuity, Novel View Synthesis
一句话总结¶
提出3D Half-Gaussian (3D-HGS)核函数——用一个分割平面将3D高斯分成两半,每半有独立不透明度,作为即插即用的重建核替换标准高斯核,在不牺牲渲染速度的前提下显著提升形状和颜色不连续处的渲染质量,在Mip-NeRF360/T&T/Deep Blending上全面超越所有SOTA方法。
背景与动机¶
3D-GS用3D高斯核函数作为场景重建基元。高斯函数是光滑的低通滤波器,在建模不连续函数(物体边界、纹理边缘)时天生不足——拟合阶跃函数时出现Gibbs振荡(过冲和欠冲)且边缘模糊。这在场景的物体边界和丰富纹理区域表现为伪影。从频域看,标准高斯的带宽有限,高频分量少,难以精确捕捉尖锐变化。
核心问题¶
3D-GS因使用对称高斯核而无法高效建模场景中普遍存在的形状/颜色不连续性。如何设计一个更强的重建核来捕获这些不连续,同时保持3D-GS的简洁性和渲染速度,并能即插即用地增强现有所有3D-GS变体?
方法详解¶
整体框架¶
核心思想极简:将3D高斯用一个过中心的平面分成两半,每半有独立不透明度参数\(\alpha_1, \alpha_2\)。新增参数仅为平面法向量\(\mathbf{n}\)(3个参数,利用3D-GS中未使用的normal字段)+ 1个额外不透明度值。总共仅多1个参数。
关键设计¶
-
3D Half-Gaussian核定义: $\(HG_\Sigma(\mathbf{x}-\mu) = \begin{cases} e^{-\frac{1}{2}(\mathbf{x}-\mu)^T\Sigma^{-1}(\mathbf{x}-\mu)} & \mathbf{n}^T(\mathbf{x}-\mu) \geq 0 \\ 0 & \mathbf{n}^T(\mathbf{x}-\mu) < 0 \end{cases}\)$ 一对互补半高斯共享均值、旋转、缩放和颜色,但各自有独立不透明度。当\(\alpha_1=\alpha_2\)时退化为标准高斯。关键性质:半高斯在频域比全高斯有更高带宽,能更好捕获高频分量。
-
闭式积分投影:沿\(z\)轴积分3D半高斯有闭式解:\(\int HG \, dz = \frac{1}{2} I(x,y) \hat{G}_{\hat\Sigma}(\hat{\mathbf{x}}-\hat\mu)\),其中\(I(x,y)\)是由erfc函数给出的与法向量相关的缩放因子。这保证了微分可渲染和高效计算。
-
高效半高斯光栅化器:约75%的半高斯核有一半完全透明(\(\alpha\)差异>0.5)。如果天真地两半一起处理会浪费计算。因此设计了独立计算每半有效区域的光栅化方案——通过投影分割平面确定内边界,结合高斯外边界确定最小包围矩形,仅对有效区域做splat。这使得FPS反而略优于标准3D-GS。
-
即插即用:仅需修改光栅化器的前向/反向传播,无需改变训练流程、损失函数或致密化策略。已验证在4种方法上即插即用:3D-GS、Scaffold-GS、Mip-Splatting、GS-MCMC。
损失函数 / 训练策略¶
- 与原始3D-GS相同的损失函数(L1 + SSIM)
- 法向量学习率0.003(Deep Blending为0.3)
- 不透明度和法向量学习率每5000步衰减1.4倍
- 不透明度阈值提升到0.01以消除噪声
实验关键数据¶
Mip-NeRF 360数据集¶
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ |
|---|---|---|---|
| 3D-GS | 28.04 | 0.844 | 0.214 |
| 3D-HGS | 28.82 (+0.78) | 0.860 | 0.197 |
| Scaffold-GS | 28.88 | 0.866 | 0.186 |
| Scaffold-HGS | 29.18 (+0.30) | 0.873 | 0.175 |
| Mip-Splatting | 28.34 | 0.852 | 0.199 |
| Mip-HGS | 28.83 (+0.49) | 0.863 | 0.185 |
| GS-MCMC | 28.98 | 0.868 | 0.180 |
| HGS-MCMC | 29.22 (+0.24) | 0.874 | 0.170 |
Tanks & Temples¶
| 方法 | PSNR↑ |
|---|---|
| 3D-GS | 23.60 |
| 3D-HGS | 24.45 (+0.85) |
| HGS-MCMC | 25.21 (SOTA) |
渲染速度与内存(Mip-NeRF 360)¶
| 方法 | FPS↑ | 内存(MB)↓ |
|---|---|---|
| 3D-GS | 115 | 762 |
| 3D-HGS | 125 | 694 |
因为高效光栅化器+更少的核数,FPS反而提升约8%,内存减少9%。
核函数对比(同训练设定,基于3D-GS)¶
| 核函数 | 平均PSNR |
|---|---|
| 3D Gaussian | 28.04 |
| 2D Gaussian (2D-GS) | 28.06 |
| GES | 27.62 |
| Half-Gaussian | 28.82 |
Half-Gaussian是唯一在所有11个场景上都优于标准高斯的核函数。
消融实验要点¶
- 高效光栅化器:无优化时FPS仅76,有优化后FPS 125,但PSNR几乎不受影响
- 分割平面可视化:法向量自然对齐场景表面法线,确认半高斯在建模物体表面边界
- 不透明度分布:75%以上的核有>0.5的归一化不透明度差异,说明大多数核确实利用了两半不同特性
亮点¶
- 优雅的数学直觉:从Gibbs现象和频域带宽角度解释为什么半高斯比全高斯更适合建模不连续——半高斯频域带宽更高
- 极简的参数增加:每个核仅多1个参数(额外不透明度),3个法向量参数利用了3D-GS中已有但未使用的normal字段
- 真正的即插即用:在4种不同的3D-GS方法上一致性提升0.13-0.85 PSNR,无需改变训练策略
- 更快更小:由于高效光栅化和更少的核数,FPS和内存反而优于原始3D-GS
局限性 / 可改进方向¶
- 分割平面假设过中心且为平面——弯曲表面上可能需要非平面分割
- 两半只有不透明度不同,如果颜色也允许不同可能进一步提升
- 未探索与基于学习的densification策略的交互效果
- 目前仅验证在静态场景上,动态场景的效果未知
与相关工作的对比¶
- 2D-GS:用2D高斯做表面渲染,在某些场景提升但某些场景下降。3D-HGS在所有场景一致提升
- GES:用广义指数核但不修改光栅化器,复杂场景表现不佳。3D-HGS修改了光栅化器有闭式解
- FreGS / Mip-Splatting / Scaffold-GS:这些方法关注抗锯齿或结构化表示,与3D-HGS互补——可直接将3D-HGS核插入这些方法获得额外提升
启发与关联¶
- "改核函数"是3D-GS改进的一条新路线——不改网络、不改训练、不改损失,只改重建基元
- 半高斯的思路可推广到其他基于核的方法(如核密度估计、SPH流体模拟)
- 分割平面法向量自然对齐表面法线,可用于法线估计或表面重建
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 思路极其优雅——用半高斯解决不连续建模,数学推导完备,高斯分割这个idea非常自然却无人做过
- 实验充分度: ⭐⭐⭐⭐ 11场景+4种基线+核函数对比+速度分析+可视化,主要缺少其他数据集
- 写作质量: ⭐⭐⭐⭐⭐ 动机解释清晰(Gibbs/频域),数学推导严谨,图示直观
- 价值: ⭐⭐⭐⭐⭐ 即插即用提升所有3D-GS方法,实用价值极高