前言
文章目录
- 前言
- 1.背景介绍
- 2.关键内容
- 2.1 建图
- 2.2跟踪
- 2.3总体流程
- 3.文章贡献
- 4.个人思考
1.背景介绍
- 3D高斯飞溅(3DGS)的出现最近引发了密集视觉SLAM研究的新浪潮。然而当前的方法面临着诸如对伪影和噪声的敏感性、训练视点的次优选择以及缺乏全局优化等挑战。
- 目前迫切的问题仍然需要解决,例如Bundle Adjustment (BA)问题和对工件的敏感性,这会导致跟踪精度的降低。此外,缺乏多视图约束和强各向异性导致高斯函数对当前视点过拟合。
- 虽然Photo-SLAM和TAMBRIDGE都利用了ORB特征点,但它们并没有充分利用特征点的潜在性能优势。通过对3DGS的分析,我们发现特征点可以在多个方面显著增强3DGS- SLAM。
2.关键内容
2.1 建图
初始化:在SLAM中,大规模高斯原语可能会占用空间区域,影响未重构中新初始化高斯的添加。为了解决这个问题,建议将高斯尺度初始化为单个像素的大小。对于𝑖-th 高斯初始化,由相机坐标系中的三维点 𝑋 i 𝑐 𝑋^𝑐_i Xic、外部矩阵 𝑊 𝑤 𝑐 𝑊_{𝑤𝑐} Wwc(表示摄像机到世界的变换)确定位置 𝑋 i 𝑤 𝑋^𝑤_i Xiw。从RGB图像中提取颜色 c i c_i ci,将透明度初始化为1,将 𝑅 i 𝑅_i Ri旋转矩阵初始化为单位四元数𝑞∈𝑆E(3)。将尺度初始化为三维向量 s i s_i si∈R3,如下所示:
( ) z ()_z ()z对应取第三维,它对应深度。𝑓为相机焦距。
自适应致密化:为了提高可微高斯的收敛速度并获得高保真的结果,对于生成新的高斯来模拟新观测区域的几何形状和外观是非常重要的。我们设计了一个基于重新渲染图像灰度值生成的外观掩模𝑀𝑐,以及一个重构的几何掩模𝑀𝑑=(𝐷−𝐷≈< 0.05)(𝐷> 0)。
由于渲染的几何精度受到可微高斯函数收敛性的影响,我们设计了一个自适应深度误差阈值(φ𝑑)来防止冗余添加:
u{}为均值运算,𝜂{·}为中位数运算。生成新的高斯需要满足以下要求:
(1)根据累积透过率:T(x, y)< 0.8。
通过重新初始化,这有助于改善由于缺乏监督而导致梯度下降缓慢的区域。在SLAM中,为训练设置足够的迭代次数是不可行的。另一个原因是为了保证跟踪精度,如果累计透射率没有达到全透射率的80%,则需要衍生一个新的高斯函数。
(2)基于几何:(𝑀𝑐< 50)(𝐸𝑑<𝜎𝑑)(˜𝑇(𝑥𝑦)< 0.99)。
(𝑀𝑐< 50)(𝐸𝑑<𝜎𝑑)是利用几何误差和外观误差来识别重建不足的区域。而( ˜𝑇 (𝑥, 𝑦) < 0.99)是为了防止由于边缘的几何误差而连续添加高斯函数。累积透射率对边缘误差具有较强的鲁棒性。
新的高斯将被生成到至少满足上述条件之一的区域:
关键帧的生成。基于特征的SLAM只关注特征点的个数,不考虑特征点的分布,如图2所示。因此,设计了一种基于重叠程度生成关键帧的重叠图方法:
渲染帧选择策略:RF从关键帧中选择,一个好的选择策略可以大大提高渲染质量。TAMBRIDGE通过基于共可见性图选择关键帧,获得了很好的重建效果。然而,我们发现,仅仅依赖于从共可见性图中选择的渲染帧集可能会导致训练视角的局限性,可能只覆盖主要对象的一小部分。这些因素会导致重建质量下降。为了解决这个问题,我们提出了一种新的基于混合图的渲染帧选择策略。
首先,我们选择邻接帧 𝑛 𝑎 𝑛_𝑎 na和优化的 𝑛 𝑏 𝑛_𝑏 nb帧添加到 RF 集 R 中。邻接帧增加了当前视点被选择的概率,因为当前视点需要更多的优化来跟踪。此外,由于后端姿态优化线程的存在,包含了优化的帧。
其次,用当前帧𝑓1初始化窗口 𝑊 。为了提高选择的效率和质量,从共可见性图中优先考虑候选帧 F c F_c Fc的优先级。如果𝑂𝐺( 𝑓 𝑡 𝑜 𝑝 ( 𝑊 ) 𝑓 𝑗 𝑓_{𝑡𝑜𝑝(𝑊)}𝑓_𝑗 ftop(W)fj)< 𝛽1,然后𝑓𝑗(𝑗∈𝐹𝑐)将被添加到窗口和R,直到 𝐹 𝑐 𝐹_𝑐 Fc已经完全遍历。𝑡𝑜𝑝(·)是新添加帧的索引。窗口𝑊可以防止重复添加共同可见性图中近似相同的视点,因为弱跟踪会不断生成新的关键帧。此外,由于一些关键帧不存在于共视图中,候选帧 F k F_k Fk将基于关键帧的时间戳进行排序选择。然后根据重叠图𝑂𝐺(𝑓1,𝑓𝑗)𝑗∈Fk>𝛽2,将这些 F k F_k Fk添加到R中。值得注意的是,这部分添加的帧数不超过 n 𝑠 n_𝑠 ns。
最后,随机选择 n r n_r nr帧并添加到R中。这样做是为了防止由于持续学习而对全球地图造成灾难性的遗忘。
地图的优化:在帧到模型的跟踪模式中,地图优化是至关重要的。在连续SLAM中,我们设计了一个各向同性正则化损失来克服各向异性影响(条形高斯基元):
标量正则化:
为了使介质高斯拟合曲面更好,我们设计了一个表面深度损失:
同时,表面深度需要几何深度进行维护,所以我们增加了几何监督:
对于颜色监督,我们将L1和SSIM损失结合起来:
最终的地图优化损失:
2.2跟踪
Frame-to-model跟踪:我们共同优化了基于3DGS重渲染和ground truth的光度误差,以及基于feature points的重投影误差,以获得准确的姿态。重投影损失:
式中,M为局部关键帧集合,P表示匹配的特征, p i p_i pi为图像中的像素观测值, 𝑊 𝑐 𝑗 𝑊_{𝑐𝑗} Wcj为𝑗-th摄像机相对于当前摄像机的姿态, P i j P^j_i Pij为𝑗-th摄像机的𝑖-th三维点,其中,变量𝜑表达式为信息矩阵。
在优化过程中,为了防止不正确的特征点匹配影响总损失的减少,我们会提前去除异常值,让重新渲染的损失项成为主要成分。
由于重新渲染的深度依赖于通过高斯分布的光线的积累,它可能会表现出不稳定性。当光线通过具有特殊不透明度的高斯时,如上图所示,这一贡献也将被添加到最终的渲染结果中。因此,我们提出用表面深度代替重新渲染深度来增强跟踪的鲁棒性。此外,我们只采用接近全透过率的高斯曲面作为几何特征。进一步,利用Adam优化器对综合损失进行优化:
BA优化:在后端线程中,我们使用图优化,基于稀疏特征点联合优化地图点和相机姿态,类似于。后端作为一个独立的线程运行,不受训练影响。因此,一旦对相机姿态进行优化,就可以及时提供更准确的相机姿态进行重建,提高重建质量。
2.3总体流程
3.文章贡献
- 为了实现高保真和紧凑的场景表示,设计了一种基于混合图的自适应扩展可微高斯方法和渲染帧选择策略。
- 在跟踪方面,我们提出了一种基于表面高斯和稀疏特征点的联合优化方法,以确保准确和鲁棒的帧到模型跟踪。
4.个人思考
- 本文令我惊讶的地方在于,他是一个紧耦合系统,因为之前深受Photo-SLAM之类解耦的方法影响,很难把ORB特征与高斯建图紧耦合联系到一起。但是这样的话实时性不知还能否保证。
- 总的来说本文做了很多系统性的工作,包括致密化策略,以及渲染帧的选择,还有损失函数的设计。其中有很多值得参考的部分,是一篇不错的工作。