基于深度学习的LiDAR SLAM框架(DeepPointMap)

人工智能

623人已加入

描述

1、导读

SLAM是机器人和自动驾驶领域中的一个基本问题,旨在在探索环境的同时重建地图并估计机器人在其中的位置。激光雷达的点云数据被广泛应用于捕捉环境的复杂三维结构。然而,现有的SLAM方法要么依赖于密集的点云数据以实现高精度定位,要么使用通用的描述符来减小地图的大小。这两个方面似乎存在冲突。因此,我们提出了一种统一的架构,DeepPointMap(DPM),在这两个方面都具有出色的优势。

2、研究内容

我们提出了一种名为DeepPointMap的深度学习框架,用于解决LiDAR SLAM中的定位和地图构建问题。传统的LiDAR SLAM方法要么依赖于密集的点云数据以实现高精度定位,要么使用通用的描述符来减小地图的大小。然而,这两个方面似乎存在冲突。为了解决这个问题,我们提出了一种统一的架构,即DeepPointMap,既能实现高效的内存使用的地图表示,又能实现准确的多尺度定位任务(如里程计和闭环检测)。

传感器

3、创新

本研究的创新性主要体现在以下几个方面:

统一的神经网络描述符:本研究提出了DeepPointMap(DPM)框架,其中包括DPM编码器和DPM解码器两个神经网络。DPM编码器能够从点云数据中提取高度代表性且稀疏的神经描述符,实现了对环境的高效编码。与传统的手工设计特征相比,这些神经描述符既能够减小地图的内存占用,又能够保持高精度的定位和重建能力。

多尺度匹配和注册:DPM解码器能够基于神经描述符进行多尺度的匹配和注册,包括里程计和闭环检测。与其他基于神经描述符的方法相比,DPM解码器能够在统一的框架下完成多个SLAM子任务,实现了定位精度、内存效率、地图保真度和实时处理的统一优化。

多智能体协作SLAM:本研究将DPM框架扩展到多智能体协作SLAM领域。每个智能体都维护自己的SLAM系统,并在本地进行里程计和闭环检测。通过将观测数据进行合并和优化,实现了全局一致性的轨迹估计和地图重建。这在通信带宽有限的多智能体系统中具有重要意义。

4、方法

该框架包括两个神经网络:DPM编码器和DPM解码器。DPM编码器从点云中提取高度代表性和稀疏的神经描述符,实现了内存高效的地图表示和准确的多尺度定位任务。DPM解码器基于这些神经描述符进行多尺度匹配和注册。与其他神经描述符方法不同的是,DPM描述符可以统一地用于SLAM任务的多个子任务,具有出色的定位精度、内存效率、地图保真度和实时处理能力。

传感器

4.1、DPM编码器

DPM编码器使用稀疏描述符来表示复杂的点云数据,这些描述符包含了压缩的语义信息。输入是一个点云,可以表示为一组3D点。DPM编码器实际上是一个PointNeXt的主干网络,主干网络从密集的点云P中采样稀疏的关键点,并提取它们的邻域几何特征,其中是特征向量的维度。主干网络的最终输出是统一的描述符云,用于表示密集的点云。我们可以通过并集操作将多个描述符云合并成一个,用于表示地图级别的描述符云,而无需重新提取特征。

4.2、DPM解码器

DPM解码器用于预测两个描述符云之间的变换关系,它包括四个部分:(1)描述符级变换块,用于融合两个输入描述符云之间的深度相关特征;(2)相似性头,用于计算两个描述符云之间的对应关系;(3)偏移头,用于预测描述符云之间的偏移量;(4)旋转头,用于预测描述符云之间的旋转矩阵。这些部分共同工作,实现了描述符云之间的匹配和配准,从而实现了定位和闭环检测等多尺度的定位任务。

4.3、训练

在训练DeepPointMap时,作者使用了几个不同的数据集。其中包括SemanticKITTI、KITTI-360和MulRan。作者还使用了KITTI-Carla数据集进行训练。训练集和测试集的划分是根据帧数的比例进行的,大约是6:4的比例。在训练过程中,作者使用了绝对姿态误差(APE)来评估预测轨迹的全局准确性。在定位准确性方面,DeepPointMap与其他6种最新的里程计和SLAM方法进行了比较,包括KISS-ICP、LeGO-LOAM、SC-LeGO-LOAM、MULLS、CT-ICP和GeoTransformer。作者还进行了转移实验,将DeepPointMap在KITTI-360和KITTI-Carla上训练,并直接在SemanticKITTI上评估其性能。在内存效率方面,DeepPointMap相对于原始点云、Voxel Hashmap和Mesh等方法能够节省大约50%至70%的内存。最后,作者还进行了多智能体合作SLAM实验,展示了DeepPointMap在多智能体场景下的优越性能。

4.4、损失函数

训练DeepPointMap模型时使用了以下损失函数和策略:

Pairing Loss(配对损失):使用InfoNCE损失函数作为配对损失函数,用于训练DPM Encoder和Decoder。配对损失函数用于衡量描述符之间的相似性,以促进正确的匹配。具体而言,对于每个描述符,根据其与描述符的距离来确定是正样本还是负样本。配对损失函数的目标是最大化正样本的相似性,同时最小化负样本的相似性。

传感器

Coarse Pairing Loss(粗配对损失):为了确保DPM Encoder提取的统一描述符云能够初步区分描述符的对应关系,采用了类似于配对损失的粗配对损失。粗配对损失函数的定义与配对损失函数类似,但是将负样本分为两类:一类是距离大于阈值的负样本,另一类是中性样本,不参与损失的计算。这样做的目的是为了更好地处理那些接近但不是最接近的描述符对,因为这些对在不同的时间可能会作为正样本和负样本,从而引起歧义。

传感器

Offset Loss(偏移损失):使用Offset Loss训练Offset Head。根据前面定义的三种配对类型,使用正样本和中性样本来训练Offset Head,以预测描述符对之间的偏移量。偏移损失函数的目标是最小化预测偏移量与真实偏移量之间的差异。

传感器

Overlap Loss(重叠损失):使用交叉熵损失函数训练Overlap Head。重叠损失函数用于预测输入的描述符对是否重叠,即它们之间的距离是否小于阈值。

Overall Loss(总损失):DeepPointMap的方向损失由总损失函数定义。总损失函数是配对损失、粗配对损失和偏移损失的加权和。通过调整权重参数、和,可以平衡不同损失函数的重要性。

传感器

此外,还使用了数据增强和课程学习策略来提高模型的性能。数据增强策略包括随机遮挡,用于模拟激光雷达扫描受到遮挡的情况。课程学习策略逐渐增加描述符云的规模,从简单到复杂的场景进行训练,以逐步学习大规模注册任务的能力。

5、实验结果

实验设置:使用了四个自动驾驶相关的数据集进行实验评估,分别是SemanticKITTI、KITTI-360、MulRan和KITTI-Carla。在训练过程中,使用AdamW优化器、初始学习率、权重衰减和余弦学习率调度器。网络在6个RTX 3090 GPU上进行训练,共训练12个epochs。

传感器

定位准确性:与六种最新的里程计和SLAM方法进行比较,包括KISS-ICP、LeGO-LOAM、SC-LeGO-LOAM、MULLS、CT-ICP和GeoTransformer。在SemanticKITTI、KITTI-360和MulRan数据集上比较了DeepPointMap与这些方法的定位准确性。结果显示,DeepPointMap在不同数据集上都能取得类似的定位准确性,并且在大规模地图上表现出更好的性能。

传感器

内存效率:评估了DeepPointMap的内存效率,并与其他常用方法进行比较,包括原始点云、Voxel Hashmap和Mesh。结果显示,DeepPointMap相比其他方法能够节省高达70%的内存空间。

多智能体合作SLAM实验:将DeepPointMap扩展到多智能体合作SLAM任务中,模拟了真实世界的多智能体合作SLAM场景。在SemanticKITTI数据集上选择了三个子序列,并将它们分配给三个独立的智能体进行重建。实验结果显示,DeepPointMap能够成功重建多智能体观测到的点云,并保持全局一致性。

传感器

通过这些实验验证了DeepPointMap在定位准确性、内存效率和多智能体合作SLAM方面的优越性能。

6、根据这项研究,后续可能的研究方向有哪些?

根据这项研究,可能的后续研究方向包括但不限于以下几个方面:

网络结构改进:可以进一步改进DeepPointMap的网络结构,以提高其性能和效率。例如,可以探索更复杂的神经网络架构或引入注意力机制来提取更具代表性的神经描述符。

多模态融合:可以将深度学习方法与其他传感器数据(如相机图像)进行融合,以提高SLAM系统的鲁棒性和准确性。通过融合多种传感器数据,可以更好地理解环境并实现更准确的定位和地图重建。

鲁棒性改进:可以研究如何提高DeepPointMap在复杂环境和动态场景下的鲁棒性。例如,可以探索如何处理遮挡、动态物体和不完整的点云数据,以提高系统的鲁棒性和适应性。

实时性优化:可以进一步优化DeepPointMap的计算效率,以实现实时的SLAM系统。可以通过模型压缩、硬件加速或并行计算等方法来减少计算复杂度,提高系统的实时性能。

多智能体合作SLAM:可以进一步研究如何在多智能体合作SLAM中应用DeepPointMap。可以探索如何实现智能体之间的信息共享和协作,以实现全局一致性的地图重建和定位。

这些是可能的后续研究方向,通过进一步的研究和实验,可以进一步提升DeepPointMap的性能和应用范围。

7、总结

我们提出了一种基于深度学习的LiDAR SLAM框架,称为DeepPointMap(DPM)。该框架包括两个神经网络:DPM编码器和DPM解码器。与其他神经描述符方法不同的是,DPM描述符可以统一地用于SLAM任务的多个子任务,具有出色的定位精度、内存效率、地图保真度和实时处理能力。DeepPointMap在定位精度、地图重建质量和内存消耗方面取得了新的最优结果。此外,该框架还在多智能体协作SLAM方面展示了其灵活性和潜力。因此,DeepPointMap为LiDAR SLAM领域的发展提供了一种有效的解决方案。

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分