1. 引言
视觉同步定位与建图技术作为机器人自主导航和增强现实应用的核心技术,近年来取得了显著进展。在众多SLAM [1]应用场景中,单目相机因其硬件配置简单、成本低廉成为室内环境的主流传感器。目前主流的单目SLAM系统主要遵循特征点法和直接法这两大技术路线。ORB-SLAM [2]系列作为特征点法的代表,通过高效的ORB特征提取与匹配机制,结合基于词袋模型的回环检测,在纹理丰富的场景中可实现高精度的实时定位。直接法SLAM [3]作为另一主流技术路线,通过直接利用图像像素的光度信息构建最小化光度误差的优化问题,避免了对特征提取与匹配的依赖性,从而适用于更广泛的场景。根据使用像素数量的不同,直接法可进一步分为稀疏法[4]、半稠密法[5]和稠密法[6]三类。然而,室内环境普遍存在的弱纹理区域,如墙面、地面等,给现有方法带来了严峻挑战。对于特征点法而言,点的重投影误差约束是局部位姿优化的核心,当弱纹理区域有效特征点数量不足时,约束信息的匮乏将直接导致位姿估计精度下降,进而引发跟踪漂移甚至跟踪失败,严重影响了系统的精度和鲁棒性。直接法则受限于光度一致性假设,在光照突变或存在反射表面的场景中仍难以避免较大漂移。上述技术路线因在复杂场景下适应性不足,急需新的技术手段突破瓶颈。
近年来,深度学习技术[7]凭借强大的特征学习与推理能力,为突破传统单目SLAM的技术瓶颈提供了新路径。在单目场景中,深度学习模型可有效弥补三维信息缺失的缺陷:单目深度估计模型[8]通过学习图像外观与深度值的映射关系,能为SLAM系统提供额外深度约束;而表面法向量作为描述物体表面朝向的核心几何属性,不仅能反映局部结构的空间姿态,更可通过正交性、平行性等约束关系提供全局结构线索,且对尺度变化具有更强鲁棒性。现有表面法向量估计模型[9]已实现从单张RGB图像直接输出逐像素法向量,为构建新型几何约束奠定了基础。
针对传统单目SLAM中特征点法在弱纹理场景下因有效特征点不足,导致局部位姿优化阶段约束信息匮乏的核心问题,本文提出一种融合深度学习表面法向量约束的鲁棒单目SLAM系统。通过引入深度学习模型提取稠密表面法向量并构建几何约束,补充局部位姿优化过程中的约束信息,旨在提升系统在弱纹理场景下的位姿估计精度与运行鲁棒性。
2. 系统框架
本研究旨在构建一个适用于弱纹理场景的单目SLAM系统。系统框架如图1所示。本研究以ORB-SLAM2为基础,引入了深度学习模型DSINE [10]提取输入图像帧的稠密表面法向量,通过聚类算法提炼出图像中具有代表性的主要方向,称为主导方向,作为全局结构特征的简化表达。系统完成初始化后,借助ORB-SLAM2原有跟踪线程生成的初始位姿估计值,建立相邻帧主导方向之间的匹配关系,进而推导出两种新的几何约束作为图优化因子,融入到后续的局部位姿图优化过程中。有效弥补了局部位姿优化过程中仅依赖点重投影误差约束的不足,显著提升了系统的鲁棒性和精度。
Figure 1. System framework
图1. 系统框架
2.1. 法向量处理线程
2.1.1. 图像帧预处理
当输入图像帧传入跟踪线程和法向量处理线程后,并行进行处理。其中稠密表面法向量提取利用的是深度学习模型DSINE。DSINE通过融入像素级光线方向约束与相邻像素法线的相对旋转建模这两种几何归纳偏差,并结合光线方向激活函数,实现了高精度表面法向量提取,既能精准捕捉局部细节,又能保证物理连续性与边缘清晰度。该方法展现出强大的泛化能力,即便面对任意分辨率、宽高比的复杂图像,仍能生成细节丰富的预测结果。并且尽管DSINE训练数据集规模仅为同类方法的十分之一,但在定量与定性指标上均超越了近期基于视觉Transformer的最先进模型[11]。
因SLAM系统需要兼顾实时性,无法直接处理单帧图像中数十万级像素的稠密法向量,一张640 × 480分辨率图像含307,200个法向量。因此,本研究引入MeanShift聚类算法[12],通过聚类算法提炼出图像中具有代表性的主要方向,称为主导方向,为后续位姿估计构建简洁约束。具体流程如下:任意一个法向量都可以被视为单位球面上的一个点,而传统的欧氏距离无法准确描述其在球面几何空间中的分布特性。为此,通过利用点积结果等于夹角余弦值的特性,度量两个法向量在球面上的朝向差异。公式如下:
(1)
其中,
表示两向量的点积,
为区间截断算子。当
时取a,
时取b,否则保留x。
通过截断算子确保结果落在余弦函数的定义域内,该公式直接输出两法向量在单位球面上的夹角θ,精准度量方向差异,为后续聚类中邻域筛选、核加权平均等操作提供符合球面几何特性的核心度量标准。对于单个法向量P,需在全体法向量集合中执行迭代漂移,挖掘局部区域内占主导地位的方向,具体步骤以球面夹角公式为核心依据展开。首先是邻域筛选,计算法向量P与所有其他法向量的球面夹角:
(2)
其中,
表示图像帧其余法向量,筛选出满足
这个局部邻域范围的法向量集合,
是控制局部范围的超参数,它决定了聚类时会把哪些方向的法向量视为相近,进而影响聚类结果的紧密程度和鲁棒性。
这一步让聚类聚焦于与p方向相近的法向量,提取场景局部几何特征。其次是核加权平均,对邻域法向量,通过高斯核函数赋予权重,公式为:
(3)
距离p越近,
越小的法向量,权重越高,在聚类中心更新中占据主导地位。基于这些权重对邻域法向量加权求和后,再经归一化得到新的聚类中心:
(4)
这一步通过强化密集分布区域的法向量影响,推动聚类中心向法向量最集中的方向移动,自然聚焦于场景中局部占优的几何趋势,为后续位姿估计提炼出最具代表性的方向线索。最后计算新聚类中心Nc与原中心p的球面夹角
,若
,则停止迭代,反之,以
作为新的中心,继续执行迭代操作,直至满足收敛条件。
是判定聚类中心是否收敛的阈值,用于表示聚类中心的最小可接受变化量。通过上述步骤,最终可以得到稳定可靠的聚类中心,能够精准反映局部区域内法向量的主导方向。
2.1.2. 主导方向匹配
通过上述步骤得到主导方向后,因传统ORB-SLAM2系统中的跟踪线程会提供当前帧初始位姿估计值,故可以基于这个初始位姿建立相邻帧主导方向之间的匹配关系。世界坐标系到上一帧相机坐标系的位姿变化记为
,世界坐标系到当前帧相机坐标系的位姿变换记为
。则上一帧到当前帧的相对位姿变化为:
(5)
其旋转分量
描述两帧间的相对旋转关系。对于上一帧主导方向集合
,通过
转换至当前帧坐标系,转换关系如下:
(6)
对于当前帧主导方向集合
,计算转换后的主导方向和当前帧主导方向的球面夹角:
(7)
若
,
为匹配阈值,则判定
与
为匹配对。
2.2. 多约合优化框架
在ORB-SLAM2系统中,Motion-only BA是跟踪线程中的核心步骤,用于经跟踪线程得到的当前帧位姿估计值的优化,保证系统跟踪的连续性。但是在弱纹理场景下,ORB特征稀缺,点重投影误差边数量不足,位姿优化约束薄弱,从而导致初始位姿估计不准确引发的跟踪漂移甚至丢失。为增强SLAM系统中位姿优化的鲁棒性与精度,利用提取的主导方向信息,构建出新的平滑性约束与一致性约束,作为传统点特征重投影误差约束的补充。平滑性约束与一致性约束在约束维度、度量逻辑上存在明显差异,却又在保障位姿优化鲁棒性的层面形成深度互补。平滑性约束以刚体运动连续性为理论基础,通过欧氏距离平方量化相邻帧间同一几何结构主导方向经旋转后的空间向量差异,聚焦于相邻帧位姿在时间序列上的平滑过渡,弥补弱纹理下ORB特征稀缺导致的相邻帧局部约束不足,避免跟踪线程位姿优化出现帧间跳跃;一致性约束则基于跨视角几何方向一致性推导,借助单位向量点积与余弦夹角的关系,以余弦相似度平方差度量全局坐标系下相邻视角主导方向的角度偏差,致力于多视角下全局几何结构的稳定锚定,解决弱纹理场景中全局约束薄弱引发的长期跟踪漂移。二者从局部到全局、时间到空间维度形成有机互补,既保障了相邻帧位姿优化的连续性,又强化了全局位姿估计的稳定性,有效提升了弱纹理环境下SLAM系统位姿优化的鲁棒性与精度。以下是基于刚体运动连续性与跨视角几何方向一致性推导约束的理论依据与误差函数形式。
2.2.1. 约束构建
首先是平滑性约束,根据刚体运动连续性假设:短时间间隔内,相邻帧观测到的同一几何结构,如墙面、地面,其主导方向经帧间旋转后应保持一致。设匹配主导方向对为
,
为当前帧主导方向,
为上一帧主导方向,平滑性约束误差构建函数如下:
(8)
其中,
为欧氏距离平方,表示度量旋转后方向与当前帧方向的差异,
为鲁棒核函数,用于抑制异常值,如误匹配主导方向对优化的干扰。
该式通过最小化上一帧主导方向经旋转后,与当前帧主导方向的欧氏距离,强制相邻帧局部几何结构平滑变化,符合刚体运动连续特性。其次是相邻视角方向一致性推导出的一致性约束。对于相邻视角的同一几何结构,其主导方向在全局坐标系下保持方向一致性。因主导方向是由图像帧稠密表面法向量聚类而来,而法向量在本研究中都归一化为单位向量,所以主导方向都是单位向量,采用余弦相似度度量方向差异,误差函数如下:
(9)
因单位向量的点积满足:
(10)
因此
直接反映相邻帧主导方向匹配对的方向差异,通过最小化该值的平方,使得相邻视角主导方向匹配对保持一致性,从而保障全局几何结构的稳定性。
2.2.2. Motion-only BA阶段因子图重构
ORB-SLAM2 中,Motion-only BA的因子图结构单一,仅依赖ORB点特征的重投影误差边,利用相机模型最小化3D地图点
经当前帧位姿
投影后的像素坐标
与实际观测特征点
的差异约束位姿:
(11)
其中
为相机投影函数。本研究通过因子图重构,新增上述两类几何约束边,通过多源约束协同强化位姿优化,解决对单一特征的依赖。点重投影误差边、平滑性约束边和一致性约束边三者通过加权融合形成多约束联合优化目标:
(12)
其中
、
、
为权重参数。根据不同约束的物理意义与场景适配性,自适应分配不同的权重。在纹理丰富场景,点特征匹配稳定,
会占据主导,
、
则相应减小,同理在弱纹理场景下,
、
的值则会提升。该设计在Motion-only BA位姿优化环节,将点特征的精确性与主导方向的几何一致性协同,填补弱纹理场景的约束空白,实现从单一特征依赖到多源约束协同的升级,直接增强位姿估计鲁棒性,为后续跟踪与建图提供更可靠基础。
3. 实验与分析
3.1. 实验条件
本节将在TUM RGB-D数据集[13]与ICL NUIM[14]数据集上验证所提出系统的性能,并与主流单目SLAM算法进行比较分析,包括ORB-SLAM2、CNN-SLAM、LSD-SLAM、GeoNet、Structure-SLAM。本文实验硬件配置CPU为AMD R9-7945HX,16核心32线程,GPU为GeForce RTX 4060,内存为16 g,系统为ubuntu 20.04。
3.2. TUM RGB-D数据集实验
Table 1. Translation root mean square error (RMSE) results of the monocular SLAM algorithm on the TUM RGB-D dataset (unit: m)
表1. 单目SLAM算法在TUM RGB-D数据集上的平移均方根误差(RMSE)结果(单位:m)
单目SLAM算法 |
fr1-desk |
fr1-desk2 |
fr1-xyz |
s-t-far |
s-t-near |
LSD-SLAM |
0.158 |
0.096 |
0.164 |
0.214 |
- |
CNN-SLAM |
0.056 |
0.058 |
0.062 |
0.037 |
- |
GeoNet |
0.048 |
0.068 |
0.068 |
0.024 |
0.107 |
Structure-SLAM |
- |
0.124 |
- |
0.026 |
0.015 |
ORB-SLAM2 |
0.046 |
0.056 |
0.056 |
0.024 |
0.032 |
Ours |
0.029 |
0.037 |
0.052 |
0.020 |
0.020 |
TUM RGB-D数据集是由德国慕尼黑工业大学发布的大型数据集,被广泛用于测试SLAM算法在不同场景下的鲁棒性与精度。fr1-desk和fr1-desk2这两个序列属于手持SLAM场景,以办公室环境中的办公桌为核心观测对象,用于测试算法在有结构有纹理场景下的表现。fr1-xyz序列常用于初始调试和基础位姿估计验证。s-t-far和s-t-near这两个序列属于TUM RGB-D中Structure vs. Texture的核心测试集,专门用于评估算法在结构–纹理差异场景下的性能。这些序列通过结构和纹理相组合以及不同观测距离的设计,为SLAM算法提供了多层次的测试场景,可系统性验证SLAM系统在不同场景下的表现。测试结果如表1所示。
表1以平移均方根误差为评价指标,对单目SLAM算法的平移跟踪精度开展测试。由于单目SLAM存在真实尺度未知的问题,因此为确保RMSE结果能真实反映算法位姿预测精度,实验中对ORB-SLAM2、LSD-SLAM等对比算法以及本文算法的估计轨迹,均采用相似变换的方法[2],与数据集提供的地面真值轨迹进行对齐,通过同步实现轨迹的尺度缩放、旋转与平移调整,消除尺度不确定性带来的系统性误差。结果显示,在TUM RGB-D数据集的fr1-desk、fr1-desk2、fr1-xyz、s-t-far及s-t-near序列中,本文算法性能均显著更优;-表示无法获得有效的实验数据。其中在具有结构纹理的场景下,fr1-desk序列中本文算法RMSE较LSD-SLAM降低81.6%、较ORB-SLAM2降低36.9%,同类型场景的fr1-desk2序列中其RMSE较LSD-SLAM降低61.5%、ORB-SLAM2降低33.9%;在基础位姿测试场景的fr1-xyz序列中,本文算法RMSE较ORB-SLAM2降低7.1%,而在结构纹理存在差异的场景下,s-t-far序列中本文算法RMSE较ORB-SLAM2降低16.7%,s-t-near序列中其RMSE较ORB-SLAM2降低37.5%。尽管Structure-SLAM在s-t-near序列的RMSE稍低于本文算法,但本文算法在全部测试序列中始终保持精度的稳定性与优越性,充分彰显其在多场景下的强适应性与鲁棒性。
3.3. ICL NUIM数据集实验
ICL NUIM数据集广泛用于测试SLAM算法在动态干扰、光照变化及结构纹理差异场景下的鲁棒性与精度。其中,lr-kt1、lr-kt2、lr-kt3三个序列同属客厅场景测试集,均以客厅为核心观测对象,涵盖常规有结构有纹理环境、基础结构稳定且含局部动态干扰与光照变化的场景,以及有结构但低纹理且伴随相机快速运动的场景,共同用于验证算法在不同客厅场景条件下的位姿估计、建图精度与特征跟踪能力。of-kt1、of-kt2两个序列则为办公室场景测试集,以复杂办公室环境为核心观测对象,用于评估算法在这类复杂办公环境中的适应性与抗干扰性能。这些序列通过结构纹理的密度调整、动态干扰梯度设计及不同观测距离的搭配,为SLAM算法提供了丰富的测试场景。本研究算法及近年经典单目SLAM系统算法在ICL NUIM数据集的测试结果如表2所示:
Table 2. Translation root mean square error (RMSE) results of the monocular SLAM algorithm on the ICL NUIM dataset (unit: m)
表2. 单目SLAM算法在ICL NUIM数据集上的平移均方根误差(RMSE)结果(单位:m)
单目SLAM算法 |
lr-kt1 |
lr-kt2 |
lr-kt3 |
of-kt1 |
of-kt2 |
LSD-SLAM |
0.059 |
0.323 |
- |
0.157 |
0.213 |
CNN-SLAM |
0.540 |
0.211 |
- |
0.790 |
0.172 |
GeoNet |
0.040 |
0.036 |
0.100 |
0.050 |
0.040 |
Structure-SLAM |
0.026 |
0.045 |
0.035 |
0.045 |
0.030 |
ORB-SLAM2 |
0.024 |
0.061 |
0.046 |
0.569 |
0.031 |
Ours |
0.019 |
0.032 |
0.033 |
0.128 |
0.026 |
表2展示了各单目SLAM算法在ICL NUIM数据集不同序列下的平移均方根误差。整体来看,本文算法的精度在多数序列中优于其他对比算法:在lr-kt1序列中,其RMSE较Structure-SLAM降低了26.9%,较ORB-SLAM2降低了20.8%;lr-kt2序列下,较Structure-SLAM降低了28.9%,较ORB-SLAM2降低了47.5%;lr-kt3序列中,较Structure-SLAM降低了5.7%,较ORB-SLAM2降低约28.3%;of-kt1序列下,较LSD-SLAM降低了18.5%;of-kt2序列下,较Structure-SLAM降低13.3%,较ORB-SLAM2降低了16.1%。综上,本文算法在ICL NUIM数据集的各测试序列中,平移跟踪精度普遍优于LSD-SLAM、CNN-SLAM、GeoNet等算法,对Structure-SLAM、ORB-SLAM2也展现出不同程度的精度优势。
4. 结论
本研究提出了一种结合深度学习模型的鲁棒的单目SLAM系统框架,通过深度学习模型提取图像帧的稠密表面法向量,经聚类得到帧内代表方向;进一步基于相邻帧代表方向的匹配关系推导新型几何约束,并将其作为额外优化因子融入局部位姿图优化过程,有效弥补了仅依赖点重投影误差的约束缺陷。在TUM RGB-D数据集与ICL NUIM数据集上的测试结果表明,所提系统显著提升了弱纹理场景下位姿估计的精度与运行鲁棒性,为解决单目SLAM在弱纹理环境中的性能瓶颈提供了有效途径。未来可进一步探索该框架与多传感器的融合方案,或针对动态场景开展适应性改进,以拓展其应用范围。
NOTES
*通讯作者。