1.概述
VIO(Visual-Inertial Odometry视觉惯性里程计)即结合相机与惯性测量单元IMU实现局部状态如位置、姿态、速度、路标点的最优状态估计。完整的SLAM系统还包括闭环检测(位置识别和相对状态求解)、全局地图构建(位姿图或者全局BA)等,理论上说这些模块可以在不同的VIO算法中进行复用。VIO为整个SLAM系统提供持续的局部状态,是整个SLAM系统能够保持实时、稳定运行的基础。
2.算法分类
把是否将数据放在一起进行联合优化可将VIO算法分类成松耦合和紧耦合,业界已证明紧耦合VIO从精度和鲁棒性上要好于松耦合,本文只对紧耦合VIO算法进行相关分析。
3.开源SOTA算法介绍
3.1 OpenVINS [1]
(1)介绍
基于特征点+EKF。通过多状态约束卡尔曼滤波(MSCKF),利用特征点在多个相机状态之 间构建几何约束,构建观测模型对状态进行更新。
(2)特点
FEJ实现、零空间投影Nullspace Projection、观测压缩Measurement Compression、多种路标点的表示形式等。
(3)开源地址
https://github.com/rpng/open_vins
3.2 ORBSLAM3 [2]
(1)介绍
基于特征点法+最小二乘(G2O库)。通过提取 ORB 特征,维护特征地图,构建局部 BA 和全局 BA,利用最小二乘进行最优估计。
(2)特点
共视图、多地图数据关联、最大后验估计包含初始化阶段等。
(3)开源地址
GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
3.3 Basalt [3][4]
(1)介绍
基于特征点法+最小二乘(L-M法,未使用第三方优化库)。设计了一种两级 SLAM 系统, vi-odometry 环节和 vi-mapping 环 节,并且在 vi-odometry 环节以边缘化的形式保存帧间运动信息, 在 vi-mapping 环节恢复这些信息并且应用到基于特征点的全局 BA 中。
(2)特点
FEJ实现、基于QR的边缘化方法并行计算、不依赖第三方优化库等。
(3)开源地址
Vladyslav Usenko / basalt · GitLab
3.4 Kimera [5]
(1)介绍
基于特征点法+贝叶斯网络(GTSAM库)。实现了基于关键帧的的最大后验视觉惯性估计器。
(2)特点
后端优化基于贝叶斯网络实现、框架完整,实现了包含语义SLAM等应用。
(3)开源地址
GitHub - MIT-SPARK/Kimera-VIO: Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
3.5 DM-VIO [6]
(1)介绍
基于稀疏直接法+最小二乘(GTSAM库)。利用延迟边缘化和位姿图BA实现单目视觉惯性里程计。
(2)特点
稀疏直接法、延迟边缘化策略、利用位姿图BA的IMU初始化
(3)开源地址
GitHub - lukasvst/dm-vio: Source code for the paper DM-VIO: Delayed Marginalization Visual-Inertial Odometry
4.比较
4.1分析
参考相关论文中的实验以及自测数据,从精度和效率上进行比较(仅比较VIO)。
注:来自OpenVINS论文,VIO的结果(EuRoC dataset)
注:来自ORB-SLAM3论文,SLAM即带Loop的结果(EuRoC dataset)
注:来自DM-VIO论文,VIO的结果(EuRoC dataset)
注:来自DM-VIO论文,VIO的结果(4Seasons dataset)
4.2结论
从精度来看,ORBSLAM3和DM-VIO在大部分数据集上最优,其次是Basalt和OpenVINS;从效率来看,OpenVINS大部分情况最优,其次是Basalt,再之DM-VIO和ORBSLAM3(只考虑VIO情况)。
注:效率为作者自测结果,ORBSLAM3测试效率仅为VIO的结果。
4.3说明
(1) OpenVINS非最新版本,测试的版本为静态初始化,在一些数据集上会失败,其精度的评估不够充分,但由于采用滤波的方法,效率确实可以达到最优。
(2)Basalt的效率明显高于其他非滤波的方法,原因是采用了基于QR分解的边缘化策略,利用该方法可以实现比较好的并行计算。其精度稍低的一个原因是初始化采用了静态初始化的方法,如果采用动态初始化的方法,理论上精度可以更高。
(3)DM-VIO精度和效率都不错,该方法为稀疏直接法,对光照比较敏感,从测试的数据集上来看,整体效果不错。
(4)ORBSLAM3由于带有闭环和全局BA模块,整体精度最优,且其VIO模块精度次优,但由于有ORB特征提取和Altas地图维护,整体效率偏低。
注:高斯噪声下的最小均方误差MMSE(卡尔曼滤波)与最大后验估计MAP(最小二乘与贝叶斯网络)可认为等价,不同的是卡尔曼滤波无法像最小二乘等可多次线性化(观测一阶线性化),故两者可达到的精度理论相近,卡尔曼滤波会差一些。
参考文献:
[1] Geneva P, Eckenhoff K, Lee W, et al. Openvins: A research platform for visual-inertial estimation[C]//2020 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2020: 4666-4672.
[2] Campos C, Elvira R, Rodríguez J J G, et al. Orb-slam3: An accurate open-source library for visual, visual–inertial, and multimap slam[J]. IEEE Transactions on Robotics, 2021, 37(6): 1874-1890.
[3] Usenko V, Demmel N, Schubert D, et al. Visual-inertial mapping with non-linear factor recovery[J]. IEEE Robotics and Automation Letters, 2019, 5(2): 422-429.
[4] Demmel N, Sommer C, Cremers D, et al. Square root bundle adjustment for large-scale reconstruction[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 11723-11732.
[5] Rosinol A, Abate M, Chang Y, et al. Kimera: an open-source library for real-time metric-semantic localization and mapping[C]//2020 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2020: 1689-1696.文章来源:https://www.toymoban.com/news/detail-469487.html
[6] von Stumberg L, Cremers D. DM-VIO: Delayed Marginalization Visual-Inertial Odometry[J]. IEEE Robotics and Automation Letters, 2022, 7(2): 1408-1415.文章来源地址https://www.toymoban.com/news/detail-469487.html
到了这里,关于VIO主流SOTA算法介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!