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


    一、参考资料

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

    二、相关介绍

    1. ORB简介

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

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

    在这里插入图片描述

    三、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 项目主页。
    在这里插入图片描述

    2. ORB-SLAM系统架构

    从ORB-SLAM系统架构中可以看出,ORB-SLAM主要分为三个线程进行,分别是TrackingLocalMappingLoopClosingORB-SLAM2的工程非常清晰漂亮,三个线程分别存放在对应的三个文件中,分别是 Tracking.cppLocalMapping.cppLoopClosing.cpp 文件。
    在这里插入图片描述

    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系统架构

    在这里插入图片描述
    在这里插入图片描述

    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-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-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系统架构

    在这里插入图片描述

    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)。

  • 相关阅读:
    Java super 关键字使用,它与 this 关键字有什么区别?
    视频提取关键帧工具类KeyFramesExtractUtils.py,动态支持三种取帧方式,关键参数可配置,代码经过优化处理,效果和性能更好。
    【英雄哥六月集训】第 24天: 线段树
    想自学软件测试,应该从哪开始?
    实战文档:彻底搞懂JVM+Linux+MySQL+Netty+Tomcat+并发编程
    【数据分析】基于Matlab检测多元数据集中的异常值
    力扣452-用最少数量的箭引爆气球——贪心算法
    智能疾病查询接口
    大家都说单测没啥用,这是真的吗?
    微信小程序-云数据库开发
  • 原文地址:https://blog.csdn.net/m0_37605642/article/details/134016846