社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

深蓝AI • 2 月前 • 230 次点击  

论文标题:

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

论文作者:

Zhang Xiao, Shuaixin Li

项目地址:

https://github.com/zzzzxxxx111/SLslam

笔者:唐僧洗头用飘柔

审核:Los


导读:

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



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


本文的主要贡献如下:


● 开发了首个基于深度特征提取和匹配的多功能SLAM系统。该框架支持各种环境下的单目、双目、单目-惯性、双目-惯性传感器配置。


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


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



图1|系统框架©️【深蓝AI】编译


该系统主要有四种传感器配置:单目、单目-惯性、双目和双目-惯性。该系统以 ORB-SLAM3 为基准,由三个主要模块组成:跟踪、局部建图和闭环检测。为了将深度学习模型集成到系统中,该系统使用了 ONNX Runtime 深度学习部署框架,其中集成了superpoint和lightglue 模型。


对于输入的每幅图像,系统首先将其输入Superpoint网络,以获得特征点的概率张量和描述符张量。接着系统使用两帧图像进行初始化,并在随后的每一帧图像上执行粗跟踪。它通过跟踪局部地图进一步完善姿态估计。如果跟踪失败,系统会使用参考帧进行跟踪,或执行重新定位以再次获得姿态。请注意,在跟踪、初始化、参考帧跟踪和重新定位过程中,lightglue 用于特征匹配。这确保了匹配关系的准确性和稳健性,从而提高了跟踪的有效性。


局部建图线程的主要作用是实时动态构建局部地图,其中包括地图点和关键帧。局部建图线程利用跟踪线程输出的关键帧,采用基于 LightGlue 的三角测量和自适应Local (BA) 优化,重建精确的地图点,继而区分并删除冗余地图点和关键帧。


闭环校正线程利用关键帧数据库和经过Superpoint描述符子训练的词袋来检索相似的关键帧。对Superpoint描述符进行二值化处理可提高检索效率。选定的关键帧使用lightglue进行特征匹配,以进行几何验证,从而降低误匹配的可能性。最后,执行闭环融合和全局 BA,以优化全局位姿。



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

图2|Superpoint基本架构©️【深蓝AI】编译


特征提取基本使用的是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)©️【深蓝AI】编译


图4|SL-SLAM和ORB-SLAM3特征点提取和匹配效果对比©️【深蓝AI】编译



实验平台的配置为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方法的对比结果©️【深蓝AI】编译


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


图5|SL-SLAM和ORB-SLAM3在Euroc序列轨迹对比©️【深蓝AI】编译


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


表2|单目模式下SL-SLAM和其他方法的对比©️【深蓝AI】编译


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


表3|SL-SLAM在单目+IMU模式下和其他方法的对比©️【深蓝AI】编译


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


表4|TUM-VI数据集对比©️【深蓝AI】编译


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


图6|真实场景跟踪对比©️【深蓝AI】编译


图7|采集数据上的轨迹误差©️【深蓝AI】编译



在本文中,作者使用了Superpoint和Lightglue替代了OBR-SLAM3中的特征点提取和跟踪模块,设计了一套精度更高、鲁棒性更强的SLAM系统,通过大量的数据集实验和真实场景中的实验验证提出方法的有效性。


整体上来说,本项工作侧重的是工程实现和实验部分,可以为研究者提供良好的工程实现参考。同时,具体的跟踪效果作者只和ORB做了对比,ORB描述子的匹配跟踪鲁棒性略差,如果和基于光流的或者直接法的SLAM系统在一些纹理缺失或者快速运动场景也进行一下对比可能会更有说服力。

为什么RANSAC被称为CV界的“多边形战士”?

2024-05-17

CVPR2024佳作:4D毫米波雷达的目标检测-跟踪的新范式RaTrack

2024-05-16


【邀请函】


【深蓝AI】开放授权分享通道,向广大【AI+自动驾驶+机器人】领域的实验室及个人征稿授权,期冀提供一个更方便读者与原作进行沟通交流的平台,也希望能促成更多有意义有价值的合作。

如果你有意通过【深蓝AI】,向更多的人分享自己的最新工作,请点击如下推文了解详情👇


【深蓝AI】的原创内容均由作者团队倾注个人心血制作而成,希望各位遵守原创规则珍惜作者们的劳动成果,转载请私信后台进行授权,发文时务必注明出自【深蓝AI】微信公众号,否则侵权必究。

*点击在看收藏并推荐本文*

点击阅读原文直通论文


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