3D重建自从NeRfs出现之后又热闹了一次,3D GS技术一时间燃变了整个三维重建和Slam领域,几个月不见,沧海桑田。
NeRF貌似已成为过去式,三维重建进入了3DGS时代,且3DGS在各方面比NeRF落地更快。3D 高斯泼溅(Splatting)是用于实时辐射场渲染的 3D 高斯分布描述的一种光栅化技术,它允许实时渲染从小图像样本中学习到的逼真场景。
2023 SIG Graph BestPaper : 3D Gaussian Splatting for Real-Time Radiance Field Rendering。
SIGGRAPH 2023最佳论文公布!山大、港大获奖!北大、腾讯光子获提名-
从点云/多面体 到场景渲染,是一个异常 经验性的过程。2001年,Splatting 是一种将3D高斯分布投射到屏幕上的渲染方式,可以快速收敛和渲染,并与点云结合得到不错的重建质量。这个文章翻译的最详细:
一文带你入门 3D Gaussian Splatting -
部分摘抄:
总体的 pipeline
5.1 总体流程
论文中的总流程图:
系统首先对 SfM 点云进行了初始化,得到 3D 高斯球们,然后借助相机外参将点投影到图像平面上(即Splatting),接着用可微光栅化,渲染得到图像。得到渲染图像Image后,将其与Ground Truth图像比较求loss,并沿蓝色箭头反向传播。蓝色箭头向上,更新3D高斯中的参数,向下送入自适应密度控制中,更新点云。
5.2 SfM
SfM (Structure from Motion,运动恢复结构) 是一种从一组图像中估计出点云的方法。
SfM 初始化点云过程的主要步骤如下:
- 对每一张图像,使用 SIFT、SURF、ORB 等算法提取特征点,并计算特征描述子。
- 对相邻的图像,使用 KNN、FLANN 等算法进行特征匹配,筛选出满足一致性和稳定性的匹配对。
- 对匹配的特征点,使用 RANSAC、LMedS 等算法进行异常值剔除,提高匹配的准确性。
- 对匹配的特征点,使用多视图几何的约束,如基础矩阵、本质矩阵、单应矩阵等,进行相机位姿的估计,以及三维坐标点的三角化。
- 对估计的相机位姿和三维坐标点,使用 BA(Bundle Adjustment)等算法进行优化,以减少重投影误差和累积误差。
初始点的示例:
5.3 自适应密度控制
初始化:3DGS 建议从 SfM 产生的稀疏点云初始化或随机初始化高斯,可以直接调用 COLMAP 库来完成这一步,然后进行点的密集化和剪枝以控制3D高斯的密度。当由于某种原因无法获得点云时,可以使用随机初始化来代替,但可能会降低最终的重建质量。
点密集化:在点密集化阶段,3DGS自适应地增加高斯的密度,以更好地捕捉场景的细节。该过程特别关注缺失几何特征或高斯过于分散的区域。密集化在一定数量的迭代后执行,比如100个迭代,针对在视图空间中具有较大位置梯度(即超过特定阈值)的高斯。其包括在未充分重建的区域克隆小高斯或在过度重建的区域分裂大高斯。对于克隆,创建高斯的复制体并朝着位置梯度移动。对于分裂,用两个较小的高斯替换一个大高斯,按照特定因子减小它们的尺度。这一步旨在于 3D 空间中寻求高斯的最佳分布和表示,增强重建的整体质量。
点的剪枝:点的剪枝阶段移除冗余或影响较小的高斯,可以在某种程度上看作是一种正则化过程。一般消除几乎是透明的高斯(α低于指定阈值)和在世界空间或视图空间中过大的高斯。此外,为防止输入相机附近的高斯密度不合理地增加,这些高斯会在固定次数的迭代后,将
设置为接近0的值。该步骤在保证高斯的精度和有效性的情况下,能节约计算资源。
5.4 优化
这部分,原始论文的伪代码已经足够清晰,我把它翻译成中文,各位细品一下。
6. 限制
优点
- 高品质、逼真的场景
- 快速、实时的渲染
- 更快的训练速度
缺点
- 防止模型优化中的“破碎”的高斯:点太大、太长、冗余等
- 更高的显存使用率 (4GB 用于显示,12GB 用于训练)
- 更大的磁盘占用 (每场景 1GB+)
- 与现有渲染管线不兼容
KeyPoint:与现有渲染管线不兼容,这个才是水论文领域最的重要一点。
7. 应用
- 同时定位与地图构建(SLAM)
SLAM是机器人学和自动系统的核心计算问题。它涉及机器人或设备在未知环境中理解其位置的同时,映射环境布局的挑战。SLAM在各种应用中至关重要,包括自动驾驶车辆、增强现实和机器人导航。SLAM的核心是创建一个未知环境的地图,并实时确定设备在此地图上的位置。因此,SLAM为计算密集型场景表示技术提出了巨大挑战,同时也是3D GS的良好测试平台。
- 动态场景建模
动态场景建模指的是捕捉和表示随时间变化的三维结构和场景外观的过程。这涉及创建一个数字模型,准确反映场景中对象的几何形状、运动和视觉方面的变化。动态场景建模在虚拟现实、增强现实、3D动画和计算机视觉等多个应用领域至关重要。4D 高斯散射(4D GS)将3D GS的概念扩展到动态场景。它包含了时间维度,允许表示和渲染随时间变化的场景。
- 人工智能生成内容(AIGC)
AIGC 指的是由人工智能系统自主创造或显著改变的数字内容,特别是在计算机视觉、自然语言处理和机器学习领域。AIGC的特点是它能模拟、扩展或增强人类生成的内容,使其应用范围从逼真的图像合成到动态叙事创作。AIGC的重要性在于其跨越娱乐、教育和技术发展等各个行业的变革潜力。它是数字内容创造不断演变景观中的关键要素,提供了与传统方法相比更具可扩展性、可定制性和通常更高效的替代方案。
后续:
各个实验室赶紧跟进,在稠密SLAM领域确实又惹火了一波。比如这个:GS-SLAM: Dense Visual SLAM with 3D Gaussian Splatting