【SchurVINS】一种基于滤波的轻量视觉惯性导航系统

code:
paper:

准确度和计算效率往往是用来评估视觉惯性导航系统的两大指标,目前现有的大部分VINS系统要么精度高,计算量却很大;要么计算量低,但是精度也很低。因此很难在资源受限的系统上提供准确的定位,为了解决这个问题,本文提出了SchurVINS,一种基于滤波的视觉惯性系统,综合考量了视觉残差,同时通过Schur操作降低计算复杂度,使得精度和效率的得到了良好的平衡,并在Euroc和TUM-VI数据集上做了充分的实验,和最先进的算法进行了比较,表现十分优异。
本文的主要三个贡献如下:
●提出了一种处理超高维观测的等效残差模型,该模型由梯度、Hessian 和相应的观测协方差组成。该方法在EKF系统中具有很强的通用性。
●提出了一种基于EKF的轻量级landmark求解器,可以高效地估计landmark。
●开发了一种新颖的基于EKF的VINS框架,在高精度的同时保证了高效率,并开放了实现到社区中去。
SchurVINS在各方面的性能比较如图1所示。
在这里插入图片描述

系统框架:

本文中提出的 SchurVINS 系统是基于 SVO2.0,更换了其原本的后端优化模块,使用 EKF-based,同时 EKF-basedLandmark solver 替换了原本的 landmark optimizer。整体框架如图2所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
■2.5 前端

本文的代码实现利用了SVO 2.0作为SchurVINS的前端。SchurVINS包括原始SVO2.0中的特征对齐和深度滤波器。同时,稀疏图像配准模块被所提出的EKF方案所取代,以保证为特征配准模块提供精确的姿态。与帧到帧的特征跟踪相比,特征对齐的策略是通过将本地地图上的共视landmark投影并匹配到帧来实现的,由于短时间内丢失的landmark能够被再次跟踪,因此实现了出色的长期跟踪性能。深度过滤器用于执行landmark位置初始化。一旦landmark被充分初始化,它就会被转移到所提出的基于EKF 的landmark求解器中,通过滑动窗口进行联合估计。基于先进先出(FIFO)策略,局部地图只保留最近的十个关键帧,以支持landmark跟踪。由于精度已经足够高,不再需要传统的LBA,SchurVINS 放弃了这一策略。

■2.6 关键帧选择
关键帧选择策略在VINS系统中非常重要。Schur VINS有三种选择关键帧的策略。如果候选帧与上一关键帧之间的平均视差达到阈值,或者跟踪的地标数量低于特定阈值,则相应帧被定义为关键帧。选定关键帧后,通过深度滤波器模块提取FAST角,生成新的地标。此外,当候选帧与本地地图中保留的共视关键帧在方向和位置上的差距超出一定范围时,也被确定为关键帧,跟踪模块可通过此方法克服候选帧与本地地图之间的偏差。

2 实验

通过两个实验评估了SchurVINS算法的准确性和效率。另外还进行了消融实验,以证明所提出的基于EKF的地标求解器的有效性。本文基于SVO2.0 (svo_pro_open)开发了SchurVINS,其中大部分系统参数无需修改。为了提高效率,edgelet features、回环(LC)、位姿图优化(PGO)、LBA 和全局BA(GBA)都被舍弃或停用。在下面的实验中,本文将本地关键帧数量的阈值设置为最多10个。该局部地图主要维护共同可见的关键帧和地标,以实现特征对齐。在SchurVINS的后端,有一个由两个旧关键帧和两个最新帧组成的滑动窗口。关键帧策略与原始的SVO类似。

■3.1 准确度

在两个著名的数据集EuRoC和TUM-VI上,使用均方根误差 (RMSE) 评估了 SchurVINS的总体精度。图3显示了SchurVINS在TUM-VI和EuRoC数据集上的相应实验轨迹和点云。为了防止算法的波动造成不合理的评估结果,运行算法7轮,去掉最大值和最小值,然后计算剩余结果的平均值作为评估结果。
在这里插入图片描述

通过表1可以看出,在基于滤波的方法中,SchurVINS误差最低,并且优于大多数基于优化的方法。此外,与著名的基于优化的方法BASALT获得了相似的准确率,而准确率略低于最近的竞争对手DMVIO。
在这里插入图片描述
通过表2可以看出,虽然与这两种基于优化的方法相比,SchurVINS在精度上略有下降,但计算复杂度却明显低于这两种方法,详情见下一小节。
在这里插入图片描述
■3.2 效率

实验所使用硬件配置为配有英特尔i7-9700(3.00GHZ)处理器的台式机。所有算法都禁用了全局BA(GBA)、位姿图优化和回环。此外,只有原始SVO2.0启用了LBA。效率实验分为分析处理器使用情况和时间开销这两部分。

在这里插入图片描述
可见与上述所有VINS算法相比,SchurVINS的处理器使用率几乎是最低的。特别是SVO2.0-wo,它所需的CPU占用率与SchurVINS相近,但由于它几乎是纯粹的视觉VO,因此存在明显的不准确性。

为了深入研究SchurVINS效率优势的根本原因,在表4中详细分析了SchurVINS的开销时间,包括与SVO2.0和OpenVINS的比较。在表4中,SchurVINS中的optimizeStructure模块比SchurVINS-GN快近3倍。这是因为本文的方法利用了舒尔补的中间结果,大大节省了计算量。相比之下,SchurVINS-GN需要重建问题来优化地标。与SVO2.0-wo相比,SchurVINS的速度更快,因为它将高计算量的SparseImageAlign模块替换为Propagation模块。相比之下,SVO2.0-wo的optimizeStructure明显快于SchurVINS-GN。原因是后者在进行优化时使用的测量值几乎是前者的4倍。与SVO2.0 相比,导致算法运行时间明显增加的根本原因是LBA的计算复杂度较高。值得注意的是,无论是默认配置还是最大滑动窗口尺寸为4的配置,OpenVINS 的效率都没有超过SchurVINS。分析结果表明,与SchurVINS基于EKF 的地标估算相比,OpenVINS的点更新需要更多的计算资源。如图3所示,与混合MSCKF和基于优化的方法相比,SchurVINS能充分利用问题的稀疏性。

■3.3 消融实验

上述实验有力地证明SchurVINS的整体优越性。因此,现在有必要研究算法中不同部分的影响。在SchurVINS的基础上,替换或放弃了基于EKF的地标求解器,以分析其有效性。
在这里插入图片描述
如表5所示,如果没有基于GN或EKF的地标求解器,SchurVINS就无法充分限制全局漂移。此外,在某些挑战场景中,SchurVINS无法同时估计地标可能会导致系统出现偏差。表5对SchurVINS和SchurVINS-GN进行了比较。表5中SchurVINS与SchurVINS-GN的对比表明,基于EKF的地标求解器和基于GN的地标求解器都能有效、可靠地保证高精度。此外,表4和表5中两者的比较也表明,基于EKF的地标求解器和基于GN的地标求解器都能有效、可靠地保证高精度,虽然基于EKF的地标求解器导致精度略有下降,但它可以实现明显较低的计算复杂度。

展望
本文开发了一种基于EKF的VINS算法,包括新颖的基于EKF的地标求解器,以实现高效率和高精度的6-DoF估算。具体而言,本文利用由Hessian、Gradient和相应的观测协方差组成的等效残差模型来联合估计位姿和地标,以保证高精度定位。为实现高效率,等效残差模型通过舒尔补分解为姿态残差模型和地标残差模型,分别进行EKF更新。得益于概率独立性,所得到的地标残差模型被拆分成一堆独立的小残差模型,用于每个地标的EKF更新,从而大大降低了计算复杂度。据我们所知,本文是第一个在基于EKF的VINS算法中利用舒尔互补因式分解残差模型进行加速的公司。基于EuRoC和TUM-VI数据集的实验表明,本文的方法在精度和效率上都明显优于基于EKF的方法和大多数基于优化的方法。此外,与基于优化的SOTA方法相比,在精度相当的情况下,本文的方法所需的计算资源几乎少于50%。同时,消融研究清楚地表明,本文提出的基于EKF的地标求解器不仅效率高,而且能够确保高精度。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐