专栏规控SLAM误差降至25%!TRANSFORMER助力SLAM完成精度飞跃

SLAM误差降至25%!TRANSFORMER助力SLAM完成精度飞跃

浪里个浪2024-05-28
87
0

误匹配难题

相对相机姿态估计(RCPE)是计算机视觉和机器人技术中一个长期存在的问题(误差图片如图1所示),它是指计算具有重叠区域的两帧之间的平移和旋转。RCPE对于视觉同步定位和绘图(vSLAM)也是必不可少的。值得注意的是,vSLAM的跟踪过程是一系列rcpe。在实践中,RCPE场景根据重叠区域和两幅图像的姿态差异分为宽基线和窄基线两种情况。然而,现有的RCPE方法主要集中在宽基线病例上,很少涵盖窄基线病例。此外,它们的鲁棒性和局域性在复杂的场景下,包括重大的视角变化、运动模糊、纹理重复、无纹理区域等,精度会大大降低。

传统方法通过从一对输入图像中提取像素级兴趣点,然后建立关键点之间的2D-2D对应关系,最后使用8点或更少点算法恢复基本矩阵来完成该任务。RANSAC通常用于消除错误匹配。然而,这些方法在处理低纹理、重复纹理、曝光变化等复杂环境时效果有限。

SiTPose

SiTPose结构如图2所示,通过SiTPose直接回归帧对的旋转和平移。采用siamese网络(孪生神经网络)交叉注意特征提取器,可以有效地保持不同尺度下的图像交互。此外,在siamese网络(孪生神经网络)的基础上增加了改进的基于注意力的特征编码器,以更好地利用图像对特征之间的交叉信息。最后,作者引入度量学习来指导提取器学习输入图像对的不同特征。文章主要贡献如下:

1)提出了一个siamese框架SiTPose,它具有用于RCPE的交叉注意特征提取器和紧凑的变压器编码器,它对宽基线和窄基线情况都具有高度鲁棒性和准确性。

2)利用SiTPose对极端情况出色的预测能力,将SiTPose扩展到基于几何的单目SLAM,提出了SiT-SLAM,解决了传统vSLAM容易出现跟踪丢失和尺度模糊的问题


SiTPose详细介绍

模型由三个模块组成:交叉注意特征提取器、紧凑的特征编码器和姿态回归器。

交叉注意特征提取器

采用连体网络工作结构,利用ResNet34的前七层作为主干,以保留足够的特征信息。为了在特征提取过程中更好地提取两幅图像之间的相关性,我们设计了一个Cross Transformer Block (CTB)。与ViT[20]类似,它由Layernorm、MLP块和一个注意层组成。主要区别在于我们提出了一个跨多头注意(cross multi-head attention, CMHA)层来取代传统的多头注意(multi-head attention, MHA)层。我们在不同的卷积层插入CTB作为残差,以更好地与siamese网络的两个分支交互。与MHA相比,CMHA需要接受来自两个特征的两个查询Q、两个key K和两个值V作为输入(见图4),并为连体主干输出两个精炼特征。可表述如下:

特征编码器

在紧凑的特征编码器设计方面,其次是CCT,作者使用标准可学习的1D位置嵌入和14层变压器编码器(由多头自关注层、MLP层和每个块前的LayerNorm组成)。变压器编码器的输出序列包含跨输入片的不同部分的相关信息,并且保留该信息可以提高性能。我们提出了基于CCT的双seqpool。它充分保留了原始序列和编码序列的相关信息。该模块可以看作是一种可学习的权重分配方法,它将变压器编码器的输出从Rb×n×d转换为Rb×1×d:

姿态回归器

通过两个完全连接的层预测旋转(四元数形式)和平移(实单位)


跟踪失败难题

对于跟踪失败,ORBSLAM3采用如下策略:第一步是重新定位。在重新定位失败之前,新的子映射将被创建为活动映射,而前一个映射将被保留为非活动映射,以等待后续的环关闭检测来合并相关的子映射。然而,在车辆的情况下,这种策略通常会失败,导致在重定位过程中浪费帧信息。针对上述问题,我们将SiTPose集成到ORBSLAM3中来解决跟踪失败问题。

本文的处理流程如图5所示。起始点是跟踪开始的地方,断点是跟踪丢失的地方。在我们的策略下,当发生跟踪丢失时,我们的模型会在重新定位时通过2D-2D匹配快速创建第二个子地图。当第二个子图中的关键帧数达到3时,我们将前一个子图的最后一个关键帧(KF1)和当前子图的第一个关键帧(KF2)传递给SiTPose线程,用于估计旋转和平移。当当前子图稳定(关键帧数达到14)时,我们设置KF2的位姿:tkf2 = T1T2, T1, T2∈SE(3)(6),其中T1为KF1的位姿,T2为SiTPose预测的结果。随后,我们将此修改传播到第二个子地图的其余13帧,并使用SiTPose预测的姿势合并两个子地图。

实验效果

规控
+1
评论0
0/1000