高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

时间:2021-01-08 00:58:11

0. 笔者个人体会

众所周知,ORB-SLAM3具有单目、双目、RGB-D以及相应的惯性模式,其内部的数据关联极大的提高了定位建图精度。但在自动驾驶环境中,ORB-SLAM3却出现了不同程度的问题。对于单目模式来说,由于尺度模糊性,ORB-SLAM3很难建立真实尺度大小。如果想要利用RGB-D相机来采集深度图的话,由于室外环境的深度值都很大,导致采集的精度非常差。对双目模式来说,由于所估计的深度值远大于基线长度,因此深度值估计的也非常不准。

但是用雷达点云来恢复真实尺度却是一个不错的思路!而且雷达相较于相机来说,对于恶劣天气和光线变化情况非常鲁棒。

因此,慕尼黑工业大学就针对ORB-SLAM3提出了RGB-L模式,即利用激光雷达点云生成稠密深度图,辅助ORB-SLAM3完成初始化并恢复绝对尺度。本文将带领读者一起探讨“RGB-L: Enhancing Indirect Visual SLAM using LiDAR-based Dense Depth Maps”这篇文章,这篇文章目前还只是一个初稿,各种数学推导和算法细节都没有,网络怎么训练的也没说,评估也只是在KITTI上进行,但是整体的思想是很巧妙的!而且重要的是,算法已经开源!

1. 论文信息

标题:RGB-L: Enhancing Indirect Visual SLAM using LiDAR-based Dense Depth Maps

作者:Florian Sauerbeck, Benjamin Obermeier, Martin Rudolph, Johannes Betz

机构:慕尼黑工业大学

原文链接:https://arxiv.org/abs/2212.02085

代码链接:https://github.com/TUMFTM/ORB_SLAM3_RGBL

2. 摘要

在本文中,我们提出了一种基于RGB-D模式在现有ORB-SLAM3中集成光栅3D激光雷达深度测量的新方法。我们提出并比较了两种深度图生成方法:传统的计算机视觉方法,即逆膨胀操作,以及基于监督深度学习的方法。我们通过增加一个直接读取激光雷达点云的所谓的RGB-L (LiDAR)模式,将前者直接集成到ORB-SLAM3框架中。在KITTI里程计数据集上对所提出的方法进行了评估,并将其相互之间以及与标准的ORB-SLAM3双目方法进行了比较。我们证明,根据环境的不同,可以实现轨迹精度和鲁棒性方面的优势。此外,我们证明了与双目模式相比,ORB-SLAM3算法的运行时间可以减少40%以上。

3. 算法解读

这项工作的总体方法如图1所示,整体的框架原理还是非常简单的。ORB SLAM3的RGB-D模式没有动,直接原样拿过来了,主要的工作量在于基于激光雷达进行深度图生成。具体来说作者设计了两种模式,首先是基于深度学习方法离线的提取深度图(作者使用的是ENet网络),然后将生成和保存的深度图直接传送到ORB SLAM3的RGB-D接口,如图1a所示。第二就是作者主要的创新点了,即RGB-L模式。具体思路是,利用传统的CV逆膨胀操作对LiDAR数据进行在线上采样,并将结果反馈给SLAM模块,如图1b所示。

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

图1 在标准RGB-D模式和新的RGB-L模式下使用基于激光雷达的稠密深度图的ORB-SLAM3

具体来说,RGB-L SLAM这项工作的创新点在于:

(1) 提出了一种将激光雷达深度测量整合到现有ORB-SLAM3算法中的方法。

(2) 提出并比较了两种从激光雷达点云生成稠密深度图的方法。

(3) 提出了一个自主车辆定位的各种实验,证明了我们的方法的准确性和鲁棒性的提高。

(4) 比较了运行时间,发现与双目模式相比,运行时间减少了40 %以上。(这个比较重要

整篇论文的重点在于深度图生成

与相机相比,激光雷达输出稀疏的数据。因此,很难获得将视觉特征转换到3D空间所需的像素级深度信息。图2展示了具体的对比结果,提取的激光雷达点云仅占图像中的一小部分。

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

图2 稀疏激光雷达点云投影到相机图像中

作者提出了两种不同的深度图生成方法,一种是常规的CV方法(逆膨胀)和基于深度学习的方法。作者在实践中发现,使用5x5菱形核的逆膨胀在传统的CV方法中表现出最好的结果。其实图像膨胀主要是用来增加前景物体厚度的大小,这里作者利用它来增加转换到图像帧的LiDAR点云的密度。

来自KITTI Odometry数据集的未处理深度图在投影到相机帧后平均稀疏度约为96%。通过反向膨胀,可以将稀疏度降低到65%左右。生成的深度图的MAE为1.03m,RMSE为4.41m。注意,由于单个深度测量之间的深度误差增加,输出更稠密的方法往往有更差的跟踪结果。

而借助深度学习方法,可以实现100%的密度,也就是说每个像素都有对应的深度值。但对于没有雷达数据的区域,深度值应该如何获取呢。对于基于深度学习的LiDAR深度补全,作者使用了基于ENet的CNN。

想必小伙伴们一定很关心网络的实时性。

在作者的配置中,网络的平均运行时间为16.32 ms,其中9.66 ms为GPU上的实际计算时间。每个像素的MAE为0.39m,RMSE为1.17m。典型的神经网络高分辨率深度图和对应的相机图像如图3所示。

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

图3 由基于ENet的神经网络生成的典型相机图像和相应的深度图

4. 实验结果

整体实验是在KITTI Odometry数据集上进行的,和ORB-SLAM3双目模式来比较,重点是对比准确性和运行时间方面。

4.1 误差比较

表1和表2所示是十个KITTI里程计序列中提到的SLAM模式的平移和旋转误差。结果显示,双目声和RGB-L表现出相当的性能,双目模式略占优势。可以直观地看出,无论是平移误差还是旋转误差,深度学习方法的精度都明显较差,这可能是因为很难一般地定义深度区域。为了尽量减少这种负面影响,作者忽略了深度图的上30%。神经网络的另一个缺点是KITTI地面真值仅使用高达80m的值。因此,即使距离明显较远的区域也会出现80m左右的深度值。RGB-L模式只使用与激光雷达实际深度测量值接近的深度值,泛化性更好。

表1 平均平移误差百分比。最佳结果以绿色突出显示,次佳结果以蓝色突出显示

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

表2 每100米的平均旋转误差。最佳结果以绿色突出显示,次佳结果以蓝色突出显示

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

通过对不同序列的算法准确性的进一步研究,很明显,RGB-L模式在低纹理环境中表现得特别好,如图4所示。

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

图4 低纹理环境的典型图像。RGB-L此时胜过ORB3双目模式精度。


4.2 运行时间评估

由于SLAM是一个高度实时的系统,尤其是对于自动驾驶应用。因此作者重点分析了运行时间的对比,这也是文章的主要效果。

图5比较了三种模式的总运行时间,结果显示使用来自激光雷达的深度图的两种模式都显示出明显较小的差异。RGB-L运行时间的平均值为22.8毫秒,比双目模式的平均值41.2毫秒少40%以上。

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

图5 不同方法的运行时间对比

运行时的各阶段耗时如表3所示。需要注意的是,对于表1中的标准RGB-D模式,离线和在线计算的部分计算时间是加在一起。传统的CV算法计算时间非常低,因此相对于双目模式可以显著加速ORB-SLAM3算法。

由于较小的平均计算时间和较小的方差可以使所提出的方法特别适用于硬件资源有限的嵌入式应用,因此整个算法可以在CPU上运行,不需要大规模GPU。

表3 双目模式和RGB-L模式的响应时间。

高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!

5. 笔者结论

近期,慕尼黑工业大学提出并开源了论文“RGB-L: Enhancing Indirect Visual SLAM using LiDAR-based Dense Depth Maps”。在这篇文章中,作者提出了一种将激光雷达深度测量融合到ORB-SLAM3的方法。作者比较了两种生成逐像素深度图的方法。具体来说,为了对激光雷达点云进行上采样,使用了具有5×5像素大小的菱形核的逆膨胀和基于ENet的监督深度学习方法。注意,基于深度学习的深度图必须在运行SLAM之前离线创建,但膨胀作为RGB-L模式可以直接包含在ORB SLAM3中。结果显示,使用RGB-L模式能够减少运行时间,与双目模式相比减少了40%以上,同时运行时间差异显著降低,这种方法更加适合低功耗和低延迟应用。同时,由于RGB-L模式在低纹理环境中表现出很高的准确性,因此可以应用于恶劣天气场景或被污染的相机图像中。

但需要注意的是,这篇文章只是一个初稿,应该是上传到arXiv来占坑的。笔者认为它们未来会在其他自动驾驶数据集上进行进一步的评估。同时,现有方法对于雷达数据利用率太低了,加入这么一个昂贵的传感器就为了获得深度图显然不划算,如果能进一步的耦合雷达数据应该会取得更好的效果。

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

公众号后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

公众号后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf