Py学习  »  机器学习算法

SL-SLAM:超越ORB-SLAM3,深度学习进行特征点检测的鲁棒系统

自动驾驶Daily • 1 年前 • 199 次点击  

作者 | 唐僧洗头用飘柔  编辑 | 深蓝AI


点击下方卡片,关注“自动驾驶Daily”公众号

戳我-> 领取近15个自动驾驶方向路线

>>点击进入→自动驾驶Daily技术交流群

本文只做学术分享,如有侵权,联系删文

论文标题:

SL-SLAM: A robust visual-inertial SLAM based deep feature extraction and matching

论文作者:

Zhang Xiao, Shuaixin Li

项目地址:

https://github.com/zzzzxxxx111/SLslam

导读:

哈尔滨工程大学和中国国防科技创新研究院提出了SL-SLAM系统,该系统利用Superpoint特征点和LightGlue匹配器进行视觉SLAM的前段跟踪和特征匹配,改进现有的SLAM框架,通过大量的实验对比分析,证明能够显著提高slam系统的精度和鲁棒性。©️【深蓝AI】编译



该文章尝试利用深度学习技术,通过深度特征提取和匹配方法,提高基于视觉的 SLAM 系统的性能(尤其是在具有挑战性的环境中)。本文提出了一种多功能混合视觉 SLAM 框架,旨在提高在恶劣条件下的适应性,如弱光环境、动态光照条件、纹理较弱的区域以及相机明显抖动等。在近年来基于学习的优秀算法的基础上,本文从零开始设计了一个新颖的系统,在所有 SLAM 任务中使用相同的特征提取和匹配方法。本文的系统支持多种模式,包括单目、双目、单目惯性和双目惯性配置,可灵活应对现实世界中的各种场景。通过在公开数据集和自收集数据上进行的综合实验,本文证明了 SL-SLAM 系统与 SOTA 方法相比的卓越性能。本文还对视觉 SLAM 与深度学习方法进行了深入的定量分析,以便为未来的研究工作提供见解,实验结果展示了该系统在实现更高的定位精度和稳健跟踪性能方面的能力。
本文的主要贡献如下:
● 开发了首个基于深度特征提取和匹配的多功能SLAM系统。该框架支持各种环境下的单目、双目、单目-惯性、双目-惯性传感器配置。


● 为了更好地适应具有挑战性的环境,本文将深度特征提取和匹配应用于 SLAM 系统的整个过程,包括跟踪、局部建图和闭环;并设计了自适应特征筛选以及适应 SLAM 系统的深度特征词袋。


● 本文进行了大量实验来证明系统的有效性和鲁棒性,在公共数据集和自收集数据集上的结果表明,本文的系统优于其他最先进的 SLAM 系统。该系统完全由 C++ 和 ONNX 实现,可实时运行。



图1|系统框架


该系统主要有四种传感器配置:单目、单目-惯性、双目和双目-惯性。该系统以 ORB-SLAM3 为基准,由三个主要模块组成:跟踪、局部建图和闭环检测。为了将深度学习模型集成到系统中,该系统使用了 ONNX Runtime 深度学习部署框架,其中集成了superpoint和lightglue 模型。
对于输入的每幅图像,系统首先将其输入Superpoint网络,以获得特征点的概率张量和描述符张量。接着系统使用两帧图像进行初始化,并在随后的每一帧图像上执行粗跟踪。它通过跟踪局部地图进一步完善姿态估计。如果跟踪失败,系统会使用参考帧进行跟踪,或执行重新定位以再次获得姿态。请注意,在跟踪、初始化、参考帧跟踪和重新定位过程中,lightglue 用于特征匹配。这确保了匹配关系的准确性和稳健性,从而提高了跟踪的有效性。
局部建图线程的主要作用是实时动态构建局部地图,其中包括地图点和关键帧。局部建图线程利用跟踪线程输出的关键帧,采用基于 LightGlue 的三角测量和自适应Local (BA) 优化,重建精确的地图点,继而区分并删除冗余地图点和关键帧。
闭环校正线程利用关键帧数据库和经过Superpoint描述符子训练的词袋来检索相似的关键帧。对Superpoint描述符进行二值化处理可提高检索效率。选定的关键帧使用lightglue进行特征匹配,以进行几何验证,从而降低误匹配的可能性。最后,执行闭环融合和全局 BA,以优化全局位姿。



使用Superopint进行特征提取,基本框架如图2所示。

图2|Superpoint基本架构

特征提取基本使用的是Superpoint框架,该文章使用了一种自适应的特征点得分阈值设定方式,针对normal场景和challenging场景,会自适应的去调整阈值参数,自适应阈值机制考虑了两个因素:intra-feature relationship 和 inter-frame feature relationship。简单来说就是根据当前帧的特征点分布情况和匹配情况来调整提取点的阈值。


在特征匹配上,该文章使用的是lightglue,具体的匹配效果如图3-4所示,LightGlue相对能够得到更多的匹配。

图3|SL-SLAM和ORB-SLAM3特征点提取和匹配效果对比(a为ORB-SLAM3,b为SL-SLAM)

图4|SL-SLAM和ORB-SLAM3特征点提取和匹配效果对比



实验平台的配置为n Intel Core i7-11700 CPU, 32GB of RAM, and an NVIDIA RTX 3080 GPU。在Euroc和TUM-VI数据集上进行了实验对比。表一展示了在Euroc数据集上SL-SLAM和其他SOTA方法的对比结果。

表1|SL-SLAM和其他VINS方法的对比结果

从表1中可以看出,SL-SLAM的精度整体上表现优异,但是具体来看,其实精度上升也不会特别大,在某几个序列上相对于OBR-SLAM3是有所下降的,不过这两个序列是MH-01和MH-02,是两个简单的序列,基于学习的方法在这上面应该是和传统的基于几何的方法差不多的,并不能体现学习方法的鲁棒性。和ORB-SLAM3的一个更直观对比如图4所示。

图5|SL-SLAM和ORB-SLAM3在Euroc序列轨迹对比

在表2中,作者选取了几个单目的方法和SL-SLAM的单目模式进行了对比分析,如表2所示,可以看到综合性能也是略胜其他方法。

表2|单目模式下SL-SLAM和其他方法的对比

表3则是在单目+IMU模式下和其他SOTA方法的对比,SL-SLAM整体较为优秀。

表3|SL-SLAM在单目+IMU模式下和其他方法的对比

同时作者还在TUM-VI数据集上做了实验对比,表4展示了SL-SLAM和其他方法在TUM-VI数据集上的对比。

表4|TUM-VI数据集对比

同时,该文还使用自己的设备采集了数据进行了相关实验,来验证算法的鲁棒性,使用的设备为一个单目相机(HIKVISION)分辨率为1440×1080, 一个 IMU (Xsense) 频率为 100Hz,和一个RTK,轨迹真值通过动捕系统获得。在作者的实验中,在部分场景,ORB-SLAM3跟踪失败,但是SL-SLAM跟踪成功,如图6所示。


图6|真实场景跟踪对比

图7|采集数据上的轨迹误差



在本文中,作者使用了Superpoint和Lightglue替代了OBR-SLAM3中的特征点提取和跟踪模块,设计了一套精度更高、鲁棒性更强的SLAM系统,通过大量的数据集实验和真实场景中的实验验证提出方法的有效性。
整体上来说,本项工作侧重的是工程实现和实验部分,可以为研究者提供良好的工程实现参考。同时,具体的跟踪效果作者只和ORB做了对比,ORB描述子的匹配跟踪鲁棒性略差,如果和基于光流的或者直接法的SLAM系统在一些纹理缺失或者快速运动场景也进行一下对比可能会更有说服力。

投稿作者为自动驾驶之心知识星球特邀嘉宾,欢迎加入交流!


① 全网独家视频课程

BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测车道线检测轨迹预测 在线高精地图世界模型点云3D目标检测目标跟踪Occupancycuda与TensorRT模型部署大模型与自动驾驶Nerf语义分割自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2700人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

③【自动驾驶Daily】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、在线地图、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加自动驾驶之心小助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

④【自动驾驶之心】全平台矩阵



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/170343
 
199 次点击