- 07/14
- 2025
-
QQ扫一扫
-
Vision小助手
(CMVU)
ORB-SLAM3虽是当前最先进的SLAM之一,但由于使用传统的ORB(定向FAST和旋转BRIEF)特征,在尺度、旋转和光照发生显著变化时可能会表现出局限性。为此,我们将基于深度学习的兴趣点检测和描述符SuperPoint集成到ORB-SLAM3框架中,以取代传统的ORB特征。同时,我们采用自适应非极大值抑制(ANMS)来确保关键点在空间上的均匀分布。最后实验结果表明,在KITTI数据集上,定位精度有了显著提高,六自由度姿态估计中的平均平移误差从4.15%降低到0.34%,平均旋转误差从0.0027度/米降低到0.001度/米。与原始的ORB-SLAM3相比,在更具挑战性的EuRoC数据集上,我们的系统在所有序列中都取得了显著的改进,平移误差从1.2%-1.6%降低到0.5%-0.9%,旋转误差从0.0035-0.0045度/米降低到0.0018-0.0028度/米。
一、本文核心内容
深度学习的不断发展催生了更鲁棒的特征检测器和描述符。SuperPoint是一种自监督卷积神经网络,它能同时学习兴趣点检测和描述。它在重复性和匹配精度方面表现出了卓越的性能,尤其是在存在显著几何和光度变换的场景中。此外,在SLAM系统中关键点的空间分布至关重要。均匀分布可以增强特征跟踪和姿态估计的稳定性。自适应非极大值抑制(ANMS)是一种通过根据局部特征强度自适应调整抑制半径来强制关键点选择具有空间均匀性的有效方法。
在本工作中,我们提出将SuperPoint特征集成到ORB-SLAM3中,取代传统的ORB特征,并引入ANMS来改善关键点的空间分布。我们在KITTI数据集上评估了修改后的系统,该数据集提供了具有真实姿态的具有挑战性的户外序列。实验表明,所提出的修改显著提高了定位精度和鲁棒性,验证了将基于深度学习的特征和空间关键点分布策略整合到SLAM流程中的实效性。
二、方法
在本节中,我们将详细介绍对ORB-SLAM3框架所做的修改,以集成SuperPoint特征和自适应非极大值抑制(ANMS)。我们将讨论算法上的变更、数据处理方面的结构调整以及遇到的实现挑战。我们的目标是通过利用SuperPoint出色的特征检测和描述能力来增强SLAM系统的稳健性和准确性,同时通过ANMS确保关键点的均匀空间分布。系统架构的详细实现情况可见图1。
A.ORB-SLAM3概述
ORB-SLAM3是一种基于特征的实时视觉SLAM系统,通过利用ORB(定向FAST和旋转BRIEF)特征进行关键点检测和描述来运行。该系统由三个主要线程构成:
• 跟踪线程:处理输入帧,通过将当前特征与局部地图进行匹配来估计相机位姿。
• 局部建图线程:管理局部地图的创建和优化,包括关键帧插入和局部光束平差。
• 回环检测线程:使用词袋(BoW)地方识别系统检测回环,并执行位姿图优化以纠正累积漂移。
尽管ORB特征计算效率高,但在具有挑战性的视觉条件下,由于其对尺度、旋转和光照变化的敏感性,可能会限制性能。
B.超点特征的集成
为增强特征的鲁棒性,我们用SuperPoint替换了ORB特征提取和描述模块,这是一种基于深度学习的方法,能提供更具判别力和不变性的关键点和描述符。
1)SuperPoint网络集成:
• 模型选择:我们使用了作者提供的预训练SuperPoint网络,该网络在PyTorch中实现,以利用GPU加速和熟悉度。
• 输入处理:输入图像根据SuperPoint网络的要求进行调整和归一化。图像被转换为灰度,因为SuperPoint处理单通道输入。
• 特征提取:SuperPoint网络输出一组关键点位置及其对应的256维描述符。关键点通过检测网络生成的概率热图中的峰值来提取。
• 非极大值抑制:SuperPoint包含一个内部非极大值抑制机制,用于优化关键点检测。
2)对ORB-SLAM3的修改:
• 跟踪模块调整:跟踪线程的特征提取组件被修改为使用SuperPoint。关键点和描述符的数据结构进行了调整以适应SuperPoint的输出。更新以处理浮点描述符,而非二进制ORB描述符。
• 描述符匹配:由于SuperPoint描述符是高维浮点向量,我们将用于ORB描述符的汉明距离替换为欧几里得距离(L2范数)来进行匹配。
• 数据结构:特征存储和地图点表示形式进行了更新,以适应更大的描述符大小。这包括更改序列化和内存管理例程,以处理增加的数据量。
C.自适应非极大值抑制(ANMS)的实现
为了确保关键点在空间上分布均匀,我们在SuperPoint初始关键点检测之后实现了ANMS。
1)算法描述:
ANMS通过选择不仅响应强度高而且空间分布良好的关键点来工作。对于每个关键点,根据其相对于相邻关键点的响应强度来计算抑制半径。
设S={ki}为检测到的关键点集,其中每个关键点ki具有位置(xi,yi)和响应强度si。
• 抑制半径计算:对于每个关键点ki,计算最小半径ri,使得在半径为ri的圆内不存在其他响应强度sj>si的关键点kj。数学表达式为:
• 关键点选择:按照抑制半径ri的降序对关键点进行排序。选择前N个关键点以兼顾强度和空间分布。
• 非极大值抑制的修改:我们调整了SuperPoint内部的非极大值抑制,使其输出一个更大的初始关键点集,以便ANMS进行最终选择。
• 参数调整:关键点数量N是基于经验评估来设定的,以平衡特征丰富度和计算负载。我们发现对于KITTI数据集,N=1000是有效的。
• 实现细节:ANMS通过使用kd树等数据结构高效实现,用于最近邻搜索以计算抑制半径。
D.描述符匹配与数据关联
1)描述符匹配算法:
• 匹配策略:我们采用了基于L2距离的暴力匹配器,并通过GPU加速进行了优化。
• 比率检验:应用了Lowe的比率检验来过滤模糊匹配。如果最近邻与次近邻的距离之比低于阈值(通常为0.7),则接受该匹配。
• 交叉验证:为了提高鲁棒性,通过确保帧之间的相互最佳匹配来进行交叉验证。
2)对系统组件的影响:
• 跟踪线程:姿态估计依赖于当前帧特征与地图点之间的准确匹配。改进的描述符提高了匹配精度,从而获得了更好的姿态估计。
• 局部建图线程:创建新的地图点和关键帧时,对特征数量的增加及其分布进行了调整。
E.兼容性问题处理
1)描述符维度:
• 描述符大小增加:SuperPoint描述符为256维,而ORB描述符为32字节。这增加了内存使用量,并需要对数据存储和传输进行调整。
• 序列化:更新了地图序列化例程以处理浮点描述符,确保地图数据能够正确保存和加载。
2)回环模块:
• 与BoW词汇表不兼容:ORB-SLAM3中的BoW地点识别系统是为二进制描述符设计的,无法直接使用SuperPoint描述符。
• 临时解决方案:在初始测试中禁用了回环功能。这使我们能够专注于评估SuperPoint特征对跟踪和建图的影响。
• 未来工作:我们计划集成基于学习的地点识别系统,例如NetVLAD,它可以处理高维描述符。
3)深度过滤:
• 实现细节:丢弃了对应于估计深度大于20米的地图点的特征,以减少不可靠远距离特征的影响。
• 原因:由于立体相机的基线有限,远处的特征往往深度估计不够准确,对精确姿态估计的用处不大。
• 对地图构建的影响:这种过滤通过专注于具有更好几何约束的较近特征,提高了系统的鲁棒性。
F.计算方面的考虑
1)性能优化:
• GPU加速:SuperPoint推理在GPU上执行,与CPU执行相比显著减少了计算时间。
• 批量处理:我们通过在可能的情况下处理图像批次来优化数据处理,减少了每帧的开销。
• 并行化:匹配和ANMS计算使用多线程进行并行化,以利用多核CPU架构。
2)实时操作:
• 性能分析:我们对系统进行了性能分析以识别瓶颈。特征提取和匹配阶段是计算最密集的。
• 优化技术:我们采用了高效的算法和数据结构,例如近似最近邻搜索,以减少计算时间。
• 权衡:在计算负载和系统性能之间取得了平衡,调整了诸如关键点数量和匹配阈值等参数。
G.实现挑战
1)内存管理:
• 内存使用增加:更大的描述符增加了地图的内存占用。我们优化了内存分配和释放,以防止内存泄漏并减少开销。
• 垃圾回收:更积极地修剪未使用的地图点和关键帧,以管理内存消耗。
2)算法稳定性:
• 收敛问题:初步实验表明,由于SuperPoint特征的不同特性,优化例程存在不稳定性。我们在束调整中调整了收敛标准和异常值拒绝阈值。
3)系统集成:
• 代码库复杂性:ORB-SLAM3是一个具有相互依赖模块的复杂系统。确保一个组件的更改不会对其他组件产生不利影响需要仔细的测试和验证。
• 文档和可维护性:我们详细记录了代码修改,以方便未来的开发和调试。
实验
实验设置
1)数据集准备:
• KITTI里程计数据集:我们使用了00到10序列,这些序列包含用于评估的真实位姿。
• EuRoC微型飞行器数据集:我们在所有序列(从MH01easy到V203difficult)上进行了评估,涵盖了包括快速运动和光照不良在内的各种具有挑战性的场景。
• 数据转换:图像对被转换为所需的格式,确保同步和正确的校准参数。
2)评估指标:
• 绝对轨迹误差(ATE):衡量估计轨迹与真实轨迹之间的差异。
• 相对位姿误差(RPE):评估短段轨迹的局部精度。
• 误差计算:使用KITTI基准套件和EuRoC评估工具计算指标。
实验流程:
• 基线比较:我们在两个数据集上运行原始的ORB-SLAM3以建立基线性能指标。
• 改进系统测试:在相同条件下测试带和不带ANMS的SuperPointSLAM。
• 重复实验:每个实验均重复多次,以确保结果的一致性并考虑随机变化。
定量结果
视觉轨迹对比
我们绘制了所有序列(00至10)的二维投影(XZ平面)和六维姿态轨迹。这些图表展示了估计的轨迹与KITTI数据集提供的真实轨迹的重叠情况。
观察结果
1)ORB-SLAM3:
• 在没有回环的序列中表现出明显的漂移。
• 随着时间的推移,漂移逐渐累积,导致与真实轨迹出现显著偏差。
2)SuperPointSLAM:
• 与ORB-SLAM3相比,漂移有所减少。
• 由于更稳健的SuperPoint描述符,特征匹配效果更好。
3)SuperPointSLAM+ANMS:
• 进一步减少了漂移,提高了轨迹估计的准确性。
• 关键点的均匀分布增强了姿态估计的稳定性。
D.有趣观察及问题
1)无回环序列中的漂移:
• ORB-SLAM3在没有回环机会的序列中存在明显的漂移。
• 使用ANMS的SuperPointSLAM表现更佳,与真实轨迹的对齐度更高。
2)垂直轴和俯仰角抖动:
• 当车辆经过不平整路面时,沿Y轴(垂直方向)和俯仰角会出现明显的抖动。地形因素,例如减速带。
• 这种影响在ORB-SLAM3中更为明显,而在SuperPointSLAM中使用ANMS则有所缓解。
3)错误的回环闭合尝试:
• 在使用ANMS的SuperPointSLAM中,我们观察到系统会尝试在距离初始位置约350米的地方闭合回环,即使在没有实际回环闭合的序列中也是如此。
• 这个问题的出现是因为BoW回环闭合检测机制与SuperPoint描述符不兼容,导致出现误报。
• 回环闭合模块需要进行调整或替换,以与SuperPoint特征有效配合。
总结
通过整合Super-Point特征和ANMS,已显示出在定位精度和鲁棒性方面的显著提升。初步结果表明,基于深度学习的特征能够增强传统的SLAM系统。
(文章来源于https://arxiv.org/pdf/2506.13089,如有侵权,请联系删文)