ORB-SLAM系列算法相关介绍(综合版)

一、参考资料

ORB-SLAM2详解(一)简介
(公开课)视觉SLAM原理与ORB-SLAM3系列算法

二、相关介绍

1. ORB简介

ORB指的是一种旋转不变性特征。

2. ORB-SLAM系列算法的演进

ORB-SLAM系列算法相关介绍(综合版)_第1张图片

三、ORB-SLAM

论文:ORB-SLAM: A Versatile and Accurate Monocular SLAM System
github代码仓库:ORB-SLAM
ORB-SLAM官网:ORB-SLAM

1. ORB_SLAM简介

2015年,Raul Mur-Artal等人提出了一个基于特征点的稀疏建图系统ORB_SLAM,整个系统是基于ORB特征实现的。ORB-SLAM也是实时的单目SLAM系统,在大规模的、小规模的、室内室外的环境都可以运行。该系统对剧烈运动也很鲁棒,支持宽基线的闭环检测和重定位,包括全自动初始化。

最新的ORB_SLAM的进展是基于ORB_SLAM的关键帧做了半稠密场景重建,新的研究成果可持续关注 ORB-SLAM 项目主页。
ORB-SLAM系列算法相关介绍(综合版)_第2张图片

2. ORB-SLAM系统架构

从ORB-SLAM系统架构中可以看出,ORB-SLAM主要分为三个线程进行,分别是TrackingLocalMappingLoopClosing。ORB-SLAM2的工程非常清晰漂亮,三个线程分别存放在对应的三个文件中,分别是 Tracking.cppLocalMapping.cppLoopClosing.cpp 文件。
ORB-SLAM系列算法相关介绍(综合版)_第3张图片

3. ORB-SLAM三个线程

3.1 跟踪(Tracking)

这部分主要工作是,从图像中提取ORB特征,根据上一帧进行姿态估计,或者进行通过全局重定位初始化位姿,然后跟踪已经重建的局部地图,优化位姿,再根据一些规则确定新的关键帧。

3.2 建图(LocalMapping)

这部分主要完成局部地图构建。包括对关键帧的插入,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对插入的关键帧进行筛选,去除多余的关键帧。

3.3 回环检测(LoopClosing)

这部分主要分为两个过程,分别是回环检测和回环矫正。回环检测先使用WOB进行探测,然后通过 Sim3算法 计算相似变换;回环矫正,主要是回环融合和 Essential Graph 的图优化。

四、ORB-SLAM2

论文:ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
github代码仓库:ORB-SLAM2
CSDN专栏:ORB SLAM2
CSDN专栏:SLAM
CSDN专栏:视觉SLAM

1. ORB-SLAM2简介

2017年,在ORB-SLAM的基础上,Raul Mur-Artal等人提出了改进版本的ORB-SLAM,它从单目相机扩展到双目和RGB-D相机。ORB-SLAM2利用远关键点和近关键点,在使用双目相机时提高算法的准确率。

ORB-SLAM2是一套完整的SLAM方案,它能够实现地图重用、回环检测和重新定位的功能。ORB-SLAM2在后端上采用基于单目和双目的 光束法平差优化(BA)的方法,该方法允许米制比例尺的轨迹精确度评估。此外,ORB-SLAM2包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域,并且匹配特征点。

2. ORB-SLAM2系统架构

ORB-SLAM系列算法相关介绍(综合版)_第4张图片
ORB-SLAM系列算法相关介绍(综合版)_第5张图片

3. ORB-SLAM2的不足

遇到弱纹理(例如:白墙)的情况下,ORB-SLAM2提取的特征不足,导致跟踪丢失。

五、ORB-SLAM-VI

1. ORB-SLAM-VI简介

2017年, 在ORB-SLAM的基础上,Raul Mur-Artal等人提出了新的紧耦合视觉-惯性ORB-SLAM-VI系统,加入了 惯性测量单元 \textcolor{Red}{惯性测量单元} 惯性测量单元

针对单目SLAM缺少尺度信息,提出了新颖的IMU初始化的方法,以高精度快速地计算尺度、重力方向、速度以及陀螺仪和加速度计偏差,并重用地图,在已重建区域实现零漂移定位。

2. ORB-SLAM-VI系统架构

ORB-SLAM系列算法相关介绍(综合版)_第6张图片

六、ORB-SLAM-Atlas

论文:ORBSLAM-Atlas: a robust and accurate multi-map system(IROS 2019)

1. ORB-SLAM-Atlas简介

2019年,在ORB-SLAM2的基础上,Raul Mur-Artal等人提出了一个能够处理无限数量的非连接的子地图的系统,包括一个鲁棒的地图合并算法,使得相机跟踪丢失时不会停止更新地图,立即构建一个新的子地图

相比于ORB-SLAM2,ORB-SLAM-Atlas主要工作如下:

  1. 利用Atlas来解决不限数量的子地图融合问题。Atlas有不限数量的子地图关键帧的词袋数据库,保证了地图场景重识别的效率;
  2. 多地图的操作算法:新地图生成、在混合地图中重定位和地图融合;

2. ORB-SLAM-Atlas系统架构

ORB-SLAM系列算法相关介绍(综合版)_第7张图片

七、ORB-SLAM3

论文:ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
github代码仓库:ORB_SLAM3
ORB-SLAM3整体流程详解
一文详解ORB-SLAM3

1. ORB-SLAM3简介

ORB-SLAM3是一个支持 视觉、视觉 + 惯导、混合地图 \textcolor{Red}{视觉、视觉+惯导、混合地图} 视觉、视觉+惯导、混合地图的SLAM系统,可以在 单目、双目和 R G B − D 相机 \textcolor{Red}{单目、双目和RGB-D相机} 单目、双目和RGBD相机上利用针孔或者鱼眼相机模型运行。在大场景/小场景、室内/室外,ORB-SLAM3都能鲁棒地实时运行。

相较于ORB-SLAM2,ORB-SLAM3则增加了对于IMU融合的支持,兼容鱼眼相机模型,并且增加了Atlas多地图的支持;同时,回环检测为了支持多地图的模式,提供了一种叫Welding BA的优化方式。

2. ORB-SLAM3系统架构

ORB-SLAM系列算法相关介绍(综合版)_第8张图片

3. ORB-SLAM3的优势

在ORB-SLAM2中,在弱纹理场景下容易出现跟踪丢失的问题,而ORB-SLAM3可以重建地图,实现自动重定位。

4. ORB-SLAM3的经验

对于在室内场景,ORB-SLAM3的定位精度高。

对于丰富的室外场景,可以直接使用ORB-SLAM3。

对于无人机导航,由于天空中特征点较少,ORB-SLAM3效果略差,需要融合多模态信息(GPS),提高定位导航精度。

对于无人驾驶,需要融合激光雷达,提高定位导航的精度。

八、项目经验

Turbot-VSLAM入门教程-实现ORB-SLAM V2
Turbot-VSLAM入门教程-实现RGBD-SLAM-V2
ORB_SLAM运行详细过程(ubuntu14.04系统和ROS Indigo环境搭建,配置及测试运行)

EuRoC

EuRoC数据集

EuRoc数据集是在微型飞行器(Micro Aerial Vehicle,MAV)收集的视觉惯导数据集。该数据集包含:立体图像,同步IMU测量,精确的运动和结构的真值(ground-truth)。

你可能感兴趣的:(SLAM,1024程序员节,ORB-SLAM)