IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ORB-SLAM3代码详解 -> 正文阅读

[人工智能]ORB-SLAM3代码详解

一、典型的视觉SLAM系统

? ? ? ? ?一个典型的视觉SLAM系统主要包含数据处理、初始化、视觉里程计、地图维护、闭环检测等部分。

在这里插入图片描述

?1.1 关键技术解析

1)对极约束

对极约束求相机运动的步骤:

1、提取ORB特征,匹配点对

2、根据匹配点对计算基础矩阵 E

3、分解 E,得到相机位姿 R,t

使用估计的 R,t 可以验证各个特征点对的对极约束误差(理论上误差精确为0)

如果匹配存在误匹配的情况,会倾向于使用随机采样一致性(Random Sample Concensus, RANSAC)来求,而不是最小二乘。RANSAC 是一种通用的做法,适用于很多带错误数据的情况,可以处理带有错误匹配的数据

视觉SLAM实践入门——(11)用对极约束求解相机运动_floatinglong的博客-CSDN博客_对极约束求解相机运动

ORB_SLAM3 算法框架解析_墙头玩飞车的博客-CSDN博客_orbslam3框架

二、ORB-SLAM3结构解析

输入【Frame and IMU】:frame可以是单目,双目和RGB-D,外加一个IMU,视觉出来的图像,主要是使用ORB算法进行特征提取,IMU的数据主要是用来做积分。

Tracking :和ORB-SLAM2的第一个区别。在跟踪模块Tracking ,之前是只根据图像视觉的算法做的,在ORB-SLAM3中,计入加入了IMU的作用。

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

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

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

?? ? ? ? ? ? ?

Atlas【地图集】 模块:一个由一系列离散地图组成的多子图系统。分为活跃地图和非活跃地图,当前帧当做活跃地图。如果跟着跟着跟丢了,就将前面的活跃地图转换为非活跃地图。它会维护一个激活地图,用于tracking 线程对当前帧的定位,同时 local mapping 线程会利用新的关键帧信 息持续对该地图优化和更新。在 Atlas 中的其它地图被称为未激活地图。该系统基于词袋模型对关键帧信息建立数据库,用于重定位、闭环检测和地图融合。这里也是一个提升点,ORB-SLAM2该模块如下图中的右边的图所示。

? ? ? ??

总结:即使在纯视觉下,ORBSLAM3的性能比ORBSLAM2的性能也是提升了很多

以下是不同的模块,使用的匹配算法的总结:

三、代码流程图

三、ORBSLAM3源码解读?

3.1?ORB特征提取

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 11:56:10  更:2022-05-19 11:56:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:39:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码