| |
|
开发:
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特征提取 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |