热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ORBSLAM3整体结构梳理

作者丨成长中的菜鸟知乎来源丨https:zhuanlan.zhihu.comp402301643编辑丨3D视觉工坊1、整体框架1.1Tracking模块处理传感器信息并实时计算当前

作者丨成长中的菜鸟@知乎

来源丨https://zhuanlan.zhihu.com/p/402301643

编辑丨3D视觉工坊

1、整体框架

1.1 Tracking 模块

处理传感器信息并实时计算当前帧在激活地图中的姿态。同时该模块也决定了是否将当前帧作为关键帧。在视觉-惯性模式下,通过在优化中加入惯性残差来估计刚体速度和 IMU 偏差。当追踪丢失时,tracking 线程会尝试在 Atlas 地 图中重定位当前帧。若重定位成功,恢复追踪,并在需要的时候切换激活地图。若一段时间后仍未激活成功,该激活地图会被存储为未激活地图,并重新初始化一个新的激活地图。

1.2 Local mapping 模块

加入关键帧和地图点到当前激活地图,删除冗余帧,并通过对当前帧的附近关键帧操作,利用视觉 BA 或视觉-惯性 BA 技术来优化地图。此外,在惯性模式下,mapping 线程会利用最大后验估计(MAP)技术来初始化和优化 IMU 参数。

1.3 Loop and map merging 模块

每当加入一个新的关键帧,该线程在激活地图和整个 Atlas 地图中检测公共区域。如果该公共区域属于激活地图,它就会执行回环校正;如果该公共区域属 于其他地图,就会把它们融合为一个地图,并把这个融合地图作为新的激活地图。在回环校正以后,一个独立线程就会进行全局 BA,进一步优化地图,同时并不影 响实时性能。

1.4 Atlas 模块

一个由一系列离散地图组成的多子图系统。它会维护一个激活地图,用于tracking 线程对当前帧的定位,同时 local mapping 线程会利用新的关键帧信 息持续对该地图优化和更新。在 Atlas 中的其它地图被称为未激活地图。该系统基于词袋模型对关键帧信息建立数据库,用于重定位、闭环检测和地图融合。

2、IMU 和 Camera 数据融合获取位姿数据的过程

IMU 虽然可以测得角速度和加速度,但这些量都存在明显的漂移,使得积分 两次得到的位姿数据非常不可靠。但是,短时间内的快速运动,IMU 能够提供一 些较好的估计,这正是相机的弱点。当运动过快时,相机会出现运动模糊,或者 两帧之间重叠区域太少以至于无法进行特征匹配,所以纯视觉 SLAM 非常害怕快 速的运动。而有了 IMU,即使在相机数据无效的那段时间内,我们也能保持一个较好的位姿估计,这是纯视觉 SLAM 无法做到的。相比于 IMU,相机数据基本不 会有漂移,所以相机数据可以有效的估计并修正 IMU 读数中的漂移,使得在慢速运动后的位姿估计依然有效。当图像发生变化时,本质上我们没法知道是相机自 身发生了运动,还是外界条件发生了变化,所以纯视觉 SLAM 难以处理动态的障 碍物。而 IMU 能够感受到自己的运动信息,从某种程度上减轻动态物体的影响。主要流程如下:
(1) 利用相机和 IMU 分别进行图像采集和惯性数据采集,且 IMU 的采集频率大于 相机的采集频率;

(2) 提取相机获取的每一帧图像的特征点,然后提取特征点的描述子(ORB-SLAM 采用),匹配特征点;此处,还可以采用光流追踪的方法;

(3) 对 IMU 得到的多组 IMU 数据进行预积分,计算出两帧图像对应的 IMU 位置和 速度;

(4) IMU 初始化(讲解 ORB-SLAM3 采用的方法),这一步的目的是获取 IMU 参数较好的初始值:速度、重力以及 Bias。

1> Vision-Only
采用 ORB-SLAM 经典框架纯视觉初始化流程,按照关键帧速率 4Hz 持续运行2s,然后我们可以得到按比例缩放的地图,包括 10 个关键帧以及上百个地图点,然后通过 Visual-Only BA 进行优化。

2> Inertial-Only
这一步目的是获得 IMU 参数最优估计。利用前述单目视觉 SLAM 初始化后稳 定运行的数据,以及这些关键帧之间的 IMU 测量,包括:尺度因子、重力方 向、IMU 传感器偏置参数、关键帧的无尺度速度。这些 IMU 测量放在一起构 成状态向量,构建优化问题求解。一旦惯性优化完成,帧的姿态、速度以及 3D 地图点就会以估计的尺度进行缩放,同时旋转以使 z 轴与估计的重力方向对齐。
3> Visual-Inertial

一旦视觉以及 IMU 有了较好的估计后,进行一个联合优化进一步对这些参数进行精化。

(5) 结合上面得到的惯性残差和视觉残差,视觉-惯性 SLAM 可以看作是基于关键帧的最小化问题。在后期中,基于下式进行计算优化。

在 tracking 过程中,只优化最后两帧的位姿,同时保持地图点固定。在mapping 过程中,为了解决全图优化问题,若图的规模比较大就会比较棘手。ORB-SLAM3 采用了滑动窗口思想,把关键帧及其地图点的滑动窗口作为优化变量。

3、ORB-SLAM3 的基于特征点的 tracking 模块的优缺点,改善的机会点或方向

首先,ORB-SLAM3 视觉前端做法采用特征点提取+描述子匹配特征点的方式。因为有描述子,所以对地图的维护很方便(包括重定位、闭环、全局优化)。尤其是对室内环境,当视觉上共视关系较多的时候,这种方法能很大程度上提高定 位精度和局部稳定性。但这种方式也有缺点,每帧图像都要提取特征点数量的描述子,比较浪费时间。在 tarcking 过程中,如果运动过快(图像出现模糊),比较容易 tracking loss。此外,纯视觉 ORB-SLAM3 严重依赖特征点的提取与匹配 效果,在如纹理缺失的环境下运行会无法得到足够多的稳定匹配点对,此时光束平差法缺乏足够多的输入信息,无法有效地修正位姿偏差。基于这点,有很多人 也有不同的方法,还有一个主流方法是,特征点提取+光流跟踪的方式。采用这种方式tracking 要鲁棒一些,但这种方式不容易构建全局 map,同时在闭环和重定位阶段也需要另外提取特征点和描述子。同时,visual-inertial ORB- SLAM3 通过引入 IMU 来约束和修正特征缺失带来的偏差,得到尺度信息,在一定程度上解决了过度依赖严重依赖特征点问题。

ORB-SLAM3 引入了 Atlas 系统,在 tracking 过程中,如果跟丢了,可以利用当前帧查询 Atlas DBoW 数据库。这个查询可以利用所有先验信息,在所有地图 中找相似的关键帧。一旦有了候选关键帧,地图和匹配的地图点就可以进行重定位,极大提升性能,增大鲁棒性。

个人认为,ORB-SLAM3 此次更新的一大变化就是引入了 Atlas 地图,相当于 开辟了一条新的方向。当前由于只是第一个版本,所以在这方面的改进空间还有 很大,可以在这个方向做一些研究。同时 IMU 相比于 camera,有很多互补优势, 如何让 IMU 和 camera 更好的结合,发挥更好的效果,也是可以研究改进的点。IMU 初始化也有很多不足,采用一个更好的方法进行 IMU 初始化,也是一个可以改进的点。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  



推荐阅读
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • 深入探讨:Java 8 中 HashMap 链表为何选择红黑树而非 AVL 树
    深入探讨:Java 8 中 HashMap 链表为何选择红黑树而非 AVL 树 ... [详细]
  • Predicting Future Outcomes to Enhance Decision-Making and Action Planning
    通过预测未来结果以优化决策和行动计划。本文探讨了通过机器学习方法预测未来事件,从而提升决策质量和行动效率的策略。作者Alexey Dosovitskiy和Vladlen Koltun提出了一种新的模型,该模型能够通过预测未来的多步状态来指导智能体采取更有效的行动。实验结果显示,这种方法在多种任务中显著提高了性能,为实际应用提供了有力支持。 ... [详细]
  • 英语面试技巧:提升个人技能与表现
    在英语面试中,个人技能是指除专业知识外,能够促进职业发展的各种能力。虽然你可能具备多种技能,但建议重点突出与目标岗位最相关的几项,以增强面试官对你专业能力和适应性的认可。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
author-avatar
利威尔的黑猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有