继之前《一文了解NeRF在速度效果、动态、少视角泛化、无界和大场景等方向上的改进思路》后,本文记录下笔者最近关于3DGS
在渲染效果、动态场景、场景重建、大场景如自动驾驶等方向上的算法阅读笔记。如有错误,欢迎评论指正。
注:为方便读者朋友学习,可在公众号后台回复3dgs
,可获得前面NeRF
及本次3DGS
所有论文的合集下载链接。
一.算法解读
静态场景重建
Scaffold-GS[1]
问题
- 过度扩展三维高斯以适应所有视角,而忽视了场景结构,存在冗余从而限制了在复杂的大场景上的泛化性。
- 视角变化有关的效果被编码到单独的三维高斯参数内,导致插值能力弱,对于突然的视角变化和光照变化不鲁棒
解决思路
- 将由
sfm
获取的稀疏点云体素化,取体素中心作为anchor
点,为场景提供一个粗略的几何框架。 - 对每个
anchor
,构造了相应的多尺度特征,并结合距离、视角等信息直接用mlp
学习多个神经三维高斯。当然对于anchor
本身也需要进行增删等优化操作。
局限
- 初始的点云对重建质量有很大影响。
- 在弱纹理区域、点云稀疏区域存在问题。
Mip-Spaltting[2]
问题
在改变焦距和相机位置时,本质是采样率发生改变时,会产生伪影,具体来说是变焦拉远或相机远离时的膨胀效应和变焦拉近或相机靠近时的腐蚀效应&高频伪影。
解决思路
- 造成上述问题的原因在于原论文算法为避免高斯太细出现无法覆盖一个像素时导致的优化稳定性问题,代码里在投影后采用了
2d dilation
滤波器操作,此操作会导致优化的高斯偏小,即信号频率偏高,因此作者在降低信号频率上进行了改进。 - 具体来说,首先由训练图像的距离和焦距确定最大采样率,由此确定了
3d
平滑滤波器的核大小,直接作用在3d高斯上;其次还替换了投影后的原始2d dilation
滤波器为2d mip
滤波器,区别主要是多了一个归一化因子,用于近似物理2d box
滤波器(注:一个像素对应了其覆盖区域内的所有光线,因此一个像素相当于一个2d box
滤波器)。
局限
2d mip
滤波器近似2d box
滤波器引入误差。- 训练时间略增加。
pixelSplat[3]
问题
- 训练图片所需数多。
- 尺度不确定。
- 容易陷入局部最小值。