点击下方卡片,关注“3D视觉之心”公众号
第一时间获取3D视觉干货
>>点击进入→3D视觉之心技术交流群
推动稠密单目SLAM最新发展!
单目3D重建的基本挑战在于缺乏显式的场景几何测量能力。传统的视觉SLAM方法已经发展了数十年,但通常仅提供稀疏或半稠密的地图表示,这不足以支持详细的场景理解和完整的重建。尽管稠密SLAM方法试图通过逐像素的深度估计来解决这一局限性,但仍容易受到深度噪声的影响,难以实现完整和精确的重建。
近年来,深度学习的进步彻底改变了3D重建的许多关键组件,包括光流、深度估计和法线估计。这些改进通过单目深度网络、多视图立体技术和端到端的神经方法集成到了SLAM系统中。然而,即便有这些进步,当前系统往往因深度估计噪声、泛化能力有限或过高的计算需求而导致重建结果带有伪影。特别是,基于神经隐式场和3D高斯分布的神经SLAM方法显示出了很大的潜力。然而,这些方法通常在渲染质量和几何精度之间进行权衡,导致了不理想的结果。

HI-SLAM2[1]旨在推动稠密单目SLAM在3D场景重建领域的最新进展。,这是一种基于几何感知的高斯分布SLAM系统,仅依靠RGB输入即可实现精确且快速的单目场景重建。我们方法的关键在于结合单目几何先验与基于学习的稠密SLAM以增强几何估计能力,同时利用3D高斯分布(3DGS)作为紧凑的地图表示,进行高效且精确的场景建模。如图2所示,与基于地图的SLAM方法不同,我们采用了一种混合方法,使用基于学习的稠密SLAM生成深度图作为中间表示,既用于初始化场景几何,又用于指导地图优化。这种混合设计将地图训练与跟踪解耦,并在联合优化过程中无缝地重新耦合位姿和地图,从而保证了效率和精度。

对于深度估计,引入了一种基于网格的尺度对齐策略,有效解决了单目深度先验中的尺度失真问题,显著提升了深度估计的准确性。在表面深度渲染中,我们采用了在光线与高斯交点处的无偏深度计算方法,能够更精确地拟合表面。为增强表面重建的效果,尤其是在低纹理区域,我们在3DGS训练中加入了单目法线先验,确保重建表面的连贯性。通过利用关键帧位姿更新对3D高斯单元进行变形,我们实现了高效的在线地图更新,从而提升了映射的速度和灵活性。此外,与需要预定义场景边界的哈希网格方法不同,我们的方法允许地图随着新区域的探索而逐步扩展,无需事先了解场景的大小。
我们通过对包括Replica、ScanNet和ScanNet++在内的合成和真实数据集的大量实验验证了我们的方法。结果表明,与现有的神经SLAM方法相比,我们的方法在重建和渲染质量上均有显著提升,甚至在精度上超越了基于RGB-D的方法。我们的方法特别适合需要快速且可靠的场景重建的实时应用场景,例如深度传感器不适用的情况。
主页链接:https://hi-slam2.github.io/
主要贡献:
提出了一种基于几何感知的高斯SLAM框架,通过高效的在线映射和相机位姿与高斯地图的联合优化,实现了高保真的RGB-only重建。
提出了一个改进的深度估计方法,利用几何先验和优化的尺度对齐来补偿单目先验的失真,从而实现了精确的表面重建。
构建了一个平衡的系统,在合成和真实数据集上均实现了几何与外观重建的卓越性能。
具体方法
系统旨在通过单目RGB输入实现快速而精确的相机跟踪和场景重建。如图3所示,该系统由四个关键组件组成:在线跟踪模块、在线回环闭合模块、连续映射模块和离线优化阶段。在线相机跟踪模块采用基于学习的稠密SLAM前端来估计相机位姿和深度图。通过在线回环闭合模块结合回环检测与高效的位姿图束调整(PGBA),实现全局一致性和实时性能。对于场景表示,我们采用3D高斯分布(3DGS),实现高效的在线地图构建、更新和高质量渲染。离线优化阶段通过完整的优化进一步提升重建质量,包括对高斯地图和相机位姿的联合优化,最终通过TSDF融合渲染深度图生成最终的网格。

在线跟踪
在线跟踪模块建立在基于学习的稠密视觉SLAM方法之上,用于估计关键帧的相机位姿和深度图。通过递归光流网络,该系统能够在低纹理环境和快速运动场景中稳健地进行相机跟踪。
关键帧图构建
通过构建一个关键帧图 来表示关键帧间的协作关系:
**节点 ()**:表示关键帧,每个关键帧包含其位姿 和估计的深度图 。
**边 ()**:表示关键帧间的可视性关系,由光流对应确定。
关键帧图的边表示具有足够重叠区域的关键帧对。每条边对应的光流关系通过位姿变换维护一致性,并用于后续优化。
关键帧选择
系统基于输入帧与当前关键帧的光流距离,动态评估是否需要选择新的关键帧:
计算输入帧与当前关键帧的平均光流距离。
如果光流距离超过预设阈值 ,则选择当前帧作为新关键帧。
对选定关键帧,通过预训练网络提取单目深度和法线先验,为后续优化提供初始估计。
系统初始化
系统收集 个关键帧后,执行初始化步骤:
在关键帧图上进行全局束调整(Bundle Adjustment, BA)。
由于单目系统缺乏绝对尺度信息,将所有关键帧深度的平均值归一化为1。
在后续优化中固定第一个和第二个关键帧的位姿,用以稳定系统尺度。
局部束调整
每次新增关键帧后,执行局部束调整(Local BA)以优化当前关键帧及其邻域的位姿和深度图:
在关键帧图中为新关键帧添加边,与所有具有足够重叠的邻域关键帧连接。
最小化重投影误差以优化关键帧位姿和深度估计,重投影误差定义为:其中:
:光流预测的目标点。
:从关键帧 到关键帧 的位姿变换。
:关键帧 的深度图。
:光流预测的置信矩阵,用于权重化误差。
深度先验的引入
为了克服低纹理或遮挡区域的深度估计困难,将单目深度先验引入到优化流程中:
通过预训练网络生成单目深度先验。
使用基于网格的尺度对齐策略校正单目深度的尺度失真:
在深度图上定义一个二维尺度网格 ,并通过双线性插值为每个像素计算局部尺度。
结合尺度网格后,校正后的深度先验定义为:其中 为尺度插值函数。
将校正后的深度先验纳入优化目标,通过以下公式联合优化深度图和尺度网格:
优化方法
优化问题通过阻尼Gauss-Newton方法求解,为了提高效率,使用Schur补将深度变量与尺度变量分离。最终优化流程分两步完成:
先解尺度变量。
再解深度变量。
通过这种方式,系统能够更稳定地校正单目深度先验的尺度失真,从而提供更准确的深度估计初值。

通过结合基于学习的视觉SLAM和深度先验的尺度对齐,我们的在线跟踪模块不仅提升了位姿和深度估计的精度,还为后续地图优化提供了高质量的初始估计。
在线回环闭合
尽管在线跟踪模块能够稳健地估计相机位姿,但随着时间和距离的增加,测量噪声的累积可能导致位姿漂移。此外,由于单目系统固有的尺度不可观性,可能会引入尺度漂移。为了解决这些问题并提升3D地图的全局一致性,我们设计了在线回环闭合模块,该模块通过结合回环检测与基于Sim(3)的位姿图束调整(Pose Graph Bundle Adjustment, PGBA),纠正位姿和尺度漂移。
回环检测
回环检测与在线跟踪模块并行运行,用于识别潜在的回环闭合:
光流距离:对于每个新关键帧,计算其与所有先前关键帧之间的光流距离 。如果 小于预定义阈值 ,则认为两帧具有足够的重叠。
方向差异:通过当前估计的位姿,计算两帧间的方向差异,要求其小于阈值 。
时间间隔:两帧的时间索引差异必须大于当前局部束调整窗口的最小阈值 。
满足以上条件的关键帧对将被标记为回环候选对,并在关键帧图中添加正向和反向重投影边。
基于Sim(3)的位姿图束调整
一旦识别出回环候选,系统将执行基于Sim(3)的位姿图束调整(PGBA),以实现全局优化。与传统的SE(3)优化相比,Sim(3)优化引入了尺度校正能力,可以有效解决尺度漂移问题。
位姿初始化:在每次优化之前,将最新的位姿估计从SE(3)转换为Sim(3),并初始化所有关键帧的尺度为1。
相对位姿边:构建位姿图时,通过密集的重投影边计算相对位姿,这些边在局部束调整窗口中已被多次优化,提供了可靠的初始值。
优化目标:PGBA的优化目标函数如下:
其中:
:回环闭合边。
:相对位姿边集。
:相对位姿的方差矩阵,用于衡量每条边的不确定性。
优化过程:优化通过阻尼Gauss-Newton算法求解。为了平衡效率与收敛性,Hessian矩阵采用正则化形式:
其中:
:阻尼因子,用于避免局部最小值。
:正则化因子,改善数值稳定性。
优化后的更新:在PGBA优化完成后,将优化的位姿从Sim(3)还原至SE(3)。深度图根据对应的Sim(3)变换进行尺度调整。同时,利用关键帧位姿更新对3D高斯单元进行变形,保持地图的一致性。
通过结合回环检测和基于Sim(3)的位姿图束调整,在线回环闭合模块能够有效纠正累积的位姿和尺度漂移。该模块的设计兼顾了计算效率与全局一致性,确保了系统在大规模场景中的稳健性能,为后续的场景重建提供了准确的全局位姿和一致的地图表示。
3D 场景表示
采用了3D高斯分布(3DGS)作为我们的场景表示方法,用于建模场景的外观和几何。与NeRF等隐式神经表示不同,3DGS提供了显式表示,使得能够高效地进行在线地图更新和高质量渲染。场景由一组三维各向异性高斯分布 表示,其中每个3D高斯单元定义为:
,
其中, 表示高斯均值, 表示在世界坐标系下的协方差矩阵。协方差矩阵 被分解为旋转矩阵 和尺度矩阵 ,满足 。每个高斯还具有不透明度 和颜色 等属性。与原始的3DGS [51] 不同,我们通过直接使用RGB值而非球谐函数来简化颜色表示,降低了优化的复杂度。为了处理视角相关的颜色变化,我们在离线优化阶段(第III-D节)采用曝光补偿。
渲染过程
渲染过程中,通过透视变换将这些3D高斯投影到图像平面上:
,,
其中, 表示投影函数, 是关键帧的位姿, 是透视变换的雅可比矩阵, 是关键帧位姿 的旋转矩阵。在对投影后的二维高斯按照深度进行排序后,沿每条从近到远的光线,通过-混合计算像素颜色和深度:
,,
其中, 表示与光线相交的高斯集合, 是第 个高斯的颜色, 是在交点处评估的第 个高斯的不透明度,用于计算像素的透明度。
无偏深度
通过沿光线方向确定实际的光线-高斯交点来计算无偏深度。该深度通过求解光线和平面(由高斯表面定义)的交点方程来计算。由于从同一视点出发,与给定高斯相交的所有光线都共面,因此每个高斯的交点方程只需求解一次。该方法在保持基于splat的光栅化计算效率的同时,显著提高了深度精度。我们在第IV-G节的消融实验中展示了这种无偏深度计算的优势。
地图更新
地图更新过程根据关键帧位姿的更新来调整3D高斯单元,以确保3D地图的全局一致性。此更新既发生在在线的基于Sim(3)的PGBA过程中,也发生在离线的全局束调整(BA)过程中。为了实现对3D场景表示的快速和灵活更新,我们对每个高斯单元的均值、方向和尺度进行变形。具体来说,均值和方向根据前后关键帧之间的相对SE(3)位姿变化进行变换,而尺度则根据Sim(3)位姿表示中的尺度因子进行调整。
每个高斯单元的更新方程为:
,,,
其中,、 和 分别表示第 个高斯更新后的均值、方向和尺度。此变换确保了高斯之间的几何关系在适应精化后的关键帧位姿的同时得以保持,维持了3D重建的精度和完整性。
曝光补偿
由于光照变化和视角相关的反射,真实世界的捕获会在不同视图中表现出不同的曝光。这些变化会引入颜色不一致性,显著影响重建质量。遵循 [32], [61],我们通过优化每个关键帧的曝光参数(使用一个 的仿射变换矩阵)来解决这一问题。对于渲染的图像 ,曝光校正公式为:
,
其中, 是 的颜色变换矩阵, 是 的偏置向量。在离线优化阶段,我们将这些曝光参数与相机位姿和场景几何一起进行联合优化,详见第III-D节。
地图管理
为了确保新观察到的区域被良好地表示,我们通过将估计的深度图反投影到3D空间,为每个新关键帧添加高斯单元。为了保持地图的紧凑性并防止冗余,我们在初始化新高斯之前,对下采样后的3D位置应用随机下采样,因子为 。为了控制地图的增长,我们实施了修剪策略,移除具有低不透明度的高斯。我们每500次迭代重置不透明度值,并每150次迭代交替进行密集化和修剪,以平衡地图的大小和质量。第IV-H节中提供了关于地图大小演变的详细分析。
优化损失
3DGS表示通过结合光度、几何和正则化损失进行优化。光度损失 衡量曝光补偿后的渲染图像 与观测图像 之间的 L1 差异。深度损失 计算渲染深度 与通过交替的BA和JDSA优化得到的估计深度 之间的 L1 差异:
,,
其中, 表示在线映射期间的局部窗口中的关键帧,或离线优化期间的所有关键帧。为了增强几何监督,我们在优化中引入了法线先验。估计的法线从渲染深度图中计算,使用沿图像平面轴的深度梯度的叉乘。法线损失 定义为余弦嵌入损失:
,
为了防止过度细长的高斯导致的伪影,我们对3D高斯的尺度应用正则化项:
,
其中, 表示第 个高斯的平均尺度,惩罚椭球形的拉伸。最终的损失函数将这些项以适当的权重组合如下:
,
其中,、、 和 是相应的权重。我们使用Adam优化器来优化高斯参数,对于每个新关键帧执行10次迭代。
离线优化
在在线处理完成后,我们通过三个连续的离线优化阶段进一步提升全局一致性和地图质量:后期关键帧插入、全局束调整(Full BA)以及相机位姿与地图的联合优化。
1. 后期关键帧插入
在在线阶段,由于关键帧选择是基于相邻帧之间的平均光流,而无法全面评估视图覆盖范围,可能导致某些区域的观察不足,尤其是视锥边界附近的区域。离线阶段,通过分析视图覆盖情况,我们在这些区域中插入额外关键帧,以完善场景重建。

覆盖不足的检测:我们将每个关键帧的像素投影到其相邻关键帧,并计算落在相邻关键帧视野外的像素百分比。当该百分比超过预设阈值时,我们将该区域标记为观察不足区域。
额外关键帧插入:在标记的区域插入新的关键帧,以增强视图覆盖并保留场景边界的细节。
如图5所示,在后退旋转或视角快速切换的场景中,后期插入的关键帧(蓝色标记)显著改善了观察不足的区域。
2. 全局束调整(Full BA)
虽然在线回环闭合模块通过基于Sim(3)的位姿图束调整(PGBA)实现了全局一致性,但PGBA在优化密集对应关系时会引入一定的近似误差。通过全局束调整(Full BA),我们进一步提高系统的精度:
PGBA的局限:PGBA仅针对回环闭合边计算重投影因子,而忽略了邻近关键帧之间的重投影关系。
Full BA的改进:Full BA重新计算所有重叠关键帧对的重投影因子,包括邻近帧和回环闭合帧,优化目标为:其中, 包括所有具有足够重叠的关键帧对。
Full BA在全局一致性上提供了更细致的优化,使相机位姿和场景几何更加精确。
3. 联合优化
最终阶段,我们对高斯地图和相机位姿进行联合优化,同时优化关键帧的曝光参数,以提升全局一致性和颜色一致性。
联合优化目标:该阶段结合全局束调整的结果,对以下参数进行优化:
相机位姿
3D高斯单元的几何属性(均值、方向、尺度)
曝光补偿参数 和
曝光补偿:我们在优化过程中考虑曝光校正,以减小颜色不一致性。渲染图像 的曝光校正公式为:
其中, 是 的颜色变换矩阵, 是 的偏置向量。
优化过程:与Full BA使用的Gauss-Newton算法不同,联合优化阶段使用Adam优化器[62],以第一阶梯度下降法优化所有关键帧的高斯地图参数和曝光参数。
优化总结
通过三个离线优化阶段,我们的系统能够:
完善场景覆盖:通过后期关键帧插入,修复在线阶段可能出现的观察不足区域。
提高全局一致性:通过Full BA优化所有关键帧对的重投影关系,细化相机位姿和场景几何。
增强重建质量:通过联合优化,进一步提升场景几何的精度、地图的全局一致性和颜色一致性。
该离线优化阶段补充了在线模块的实时能力,使系统能够在保持高效的同时,显著提升最终重建质量。
实验效果







总结一下
HI-SLAM2是一种新颖的单目SLAM系统,通过四个互补模块实现了快速且精确的稠密3D场景重建。在线跟踪模块通过结合深度先验与基于网格的尺度对齐,提升了深度和位姿估计能力;在线回环闭合模块中的并行PGBA纠正了位姿和尺度漂移。我们的映射方法利用3D高斯分布实现了紧凑的场景表示,并在SLAM跟踪期间持续优化。在离线优化中,通过引入曝光补偿和对相机位姿、3DGS地图及曝光参数的联合优化,实现了高保真重建。在具有挑战性的数据集上的大量实验表明,HI-SLAM2在精度和完整性方面超越了现有的最先进方法,同时保持了卓越的运行时性能。本系统在几何和外观重建的权衡方面突破了现有方法的限制,实现了高质量的重建。未来工作将探索该方法在更具挑战性的室外大规模和动态环境中的应用。
参考
[1] HI-SLAM2: Geometry-Aware Gaussian SLAM for Fast Monocular Scene Reconstruction
本文仅做学术分享,论文汇总于『3D视觉之心知识星球』,欢迎加入交流!
【3D视觉之心】技术交流群
3D视觉之心是面向3D视觉感知方向相关的交流社区,由业内顶尖的3D视觉团队创办!聚焦三维重建、Nerf、点云处理、视觉SLAM、激光SLAM、多传感器标定、多传感器融合、深度估计、摄影几何、求职交流等方向。扫码添加小助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
扫码添加小助理进群
【3D视觉之心】知识星球
3D视觉之心知识星球主打3D感知全技术栈学习,星球内部形成了视觉/激光/多传感器融合SLAM、传感器标定、点云处理与重建、视觉三维重建、NeRF与Gaussian Splatting、结构光、工业视觉、高精地图等近15个全栈学习路线,每天分享干货、代码与论文,星球内嘉宾日常答疑解惑,交流工作与职场问题。