
视觉惯性SLAM
文章平均质量分 87
视觉惯性SLAM
KeyPan
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【视觉惯性SLAM:二十、视觉 SLAM 的现在与未来】
视觉SLAM(SimultaneousLocalizationandMapping,同时定位与建图)是机器人与计算机视觉领域的重要技术,广泛应用于无人驾驶、增强现实(AR)、虚拟现实(VR)、无人机导航和工业自动化等领域。本章以视觉SLAM的发展历程为切入点,深入探讨视觉惯性SLAM的框架及数据集,并展望未来的发展方向。在未来,随着深度学习、多传感器融合和硬件技术的不断进步,SLAM系统将进一步适应动态、复杂、多样化的应用场景。2015年后,视觉SLAM技术逐步走向成熟。原创 2025-01-18 21:36:46 · 1151 阅读 · 0 评论 -
【视觉惯性SLAM:十九、ORB-SLAM3 中的闭环及地图融合线程】
闭环检测通过识别当前帧和历史关键帧的重叠区域,为全局优化提供约束,显著降低误差。例如,利用语义分割先划分场景类别,仅对同类场景的关键帧进行匹配,从而减少搜索空间。为了进一步提高检索效率,可以结合时空信息(如运动轨迹和位姿变化)对候选关键帧进行约束,排除明显不相关的关键帧。在找到初始候选关键帧后,需要计算当前帧与候选关键帧之间的位姿变换。候选关键帧可能包含误匹配,为避免错误优化影响全局地图一致性,必须对候选关键帧进行校验。地图融合负责将多源地图整合为一致的全局地图,包括纯视觉地图融合和视觉惯性地图融合。原创 2025-01-18 21:33:46 · 1067 阅读 · 0 评论 -
【视觉惯性SLAM:十八、ORB-SLAM3 中的局部建图流程】
局部建图是视觉SLAM系统中一个核心模块,其主要目的是在当前帧和附近关键帧之间建立高质量的局部地图,同时优化局部地图中所有特征点的三维位置和相关关键帧的位姿。局部建图的输入是当前帧的特征点和局部关键帧的特征点匹配关系,其输出是经过优化的地图点和关键帧位姿,以及进一步剔除的动态点或误差点。局部建图提供了更精确的地图点位置和关键帧位姿,这些信息将作为输入,传递给全局建图模块,从而提高全局优化的初始条件和效果。通过对局部区域的频繁优化,可以减少累积误差,增强地图点的质量,为后续的全局建图提供更可靠的数据。原创 2025-01-18 21:29:26 · 919 阅读 · 0 评论 -
【视觉惯性SLAM:十七、ORB-SLAM3 中的跟踪流程】
ORB-SLAM3的跟踪模块是整个系统的重要组成部分,负责实时确定相机在三维空间中的姿态位置,并保持关键帧之间的连续性。这些变化主要体现在对多模态输入的支持、跟踪失败的恢复机制以及对动态场景的适应性增强上。ORB-SLAM3的跟踪流程是一个动态的、实时更新的过程,其流图既直观地表达了数据流动关系,也为开发和调试提供了重要依据。第一阶段是特征点的提取与初始匹配过程。新增的状态管理大幅提升了ORB-SLAM3在复杂场景中的稳定性和鲁棒性。第一阶段的改进为后续的姿态估计和地图更新奠定了更坚实的基础。原创 2025-01-18 21:23:52 · 714 阅读 · 0 评论 -
【视觉惯性SLAM:十六、 ORB-SLAM3 中的多地图系统】
此外,在动态场景中,针对不同区域构建独立地图,也能提高定位的鲁棒性。多机器人系统中,不同机器人可以分别维护独立地图,完成特定区域的建图任务,然后将这些地图统一到全局模型中。虽然是新地图,但仍需要与全局地图保持一定的关联性,比如记录新地图的初始位姿,或存储与旧地图的重叠区域信息,方便后续融合。在长期操作场景中,多地图可以动态更新已有地图,移除旧地图,或引入新地图,避免因单一地图规模增长而带来的存储和计算压力。在动态场景中,例如家具搬动、环境改造等,已有地图可能已经失效,系统需要放弃旧地图并创建新的地图。原创 2025-01-18 21:21:26 · 930 阅读 · 0 评论 -
【视觉惯性SLAM:十五、ORB-SLAM3中的IMU预积分】
视觉惯性紧耦合(Visual-Inertial Tight Coupling)在 ORB-SLAM3 中的作用不可替代,是实现高鲁棒性和高精度定位的核心技术。单一的视觉 SLAM 主要依赖于图像特征进行定位和建图,这种方法虽然能够在许多环境中获得良好的效果,但其鲁棒性容易受到动态变化、光照条件恶化以及环境特征稀缺等因素的限制。例如,昏暗场景或快速运动可能导致视觉特征丢失,从而引发系统的失败。IMU 提供的惯性信息包括加速度和角速度,可以很好地弥补视觉信号的短板。原创 2025-01-17 20:05:22 · 1803 阅读 · 0 评论 -
【视觉惯性SLAM:十四、ORB-SLAM2:优化方法】
优化类型目标变量优化范围误差定义主要作用跟踪线程位姿优化当前帧的位姿当前帧和局部地图投影误差精确估计当前帧的位姿局部地图优化局部关键帧位姿和地图点坐标当前帧及相邻帧和地图点投影误差提高局部地图的精度与一致性Sim(3)位姿优化闭环关键帧位姿和Sim(3)变换当前帧与闭环帧投影误差修正闭环帧间的误差,解决尺度漂移本质图优化闭环关键帧的位姿受闭环影响的关键帧共视关系误差优化闭环后地图的几何结构全局BA优化所有关键帧的位姿和地图点的坐标整个地图投影误差。原创 2024-12-29 16:06:38 · 1146 阅读 · 0 评论 -
【视觉惯性SLAM:十三、ORB-SLAM2:闭环线程】
在SLAM系统中,累积的漂移误差会导致系统构建的地图和实际环境出现偏差,尤其是在机器人回到曾经到过的位置时。闭环检测(Loop Closure)可以通过识别系统当前观测到的场景与之前某个关键帧的重合关系,修正漂移误差,优化整个地图。步骤内容寻找闭环候选帧利用词袋模型快速找到相似帧,并通过ORB特征点匹配和几何验证筛选出真正的闭环帧。计算Sim(3)变换计算当前关键帧与闭环候选帧之间的相似变换,修正尺度漂移和位姿误差。闭环矫正。原创 2024-12-29 15:28:46 · 967 阅读 · 0 评论 -
【视觉惯性SLAM:十二、ORB-SLAM2:局部建图线程】
任务作用实现方法处理新的关键帧加入新的关键帧以扩展地图更新局部地图、共视关系删除不合格的地图点保证地图点的质量和精度检测观测次数、投影误差和视差生成新的地图点扩展局部地图,增加环境信息特征匹配、三角化、质量验证检查并融合地图点删除冗余点,提高地图的一致性检测重复点并进行融合关键帧的剔除减少冗余关键帧,控制系统开销检测覆盖率、观测次数和连接关系。原创 2024-12-28 22:19:45 · 1086 阅读 · 0 评论 -
【视觉惯性SLAM:十一、ORB-SLAM2:跟踪线程】
跟踪方式关键作用方法概要参考关键帧跟踪提供额外约束,提升跟踪精度利用局部关键帧提供地图点进行投影匹配恒速模型跟踪提供初始位姿预测,缩小搜索范围根据上一帧位姿和速度预测当前帧位姿参考关键帧跟踪恢复跟踪,防止因丢失而中断通过词袋模型快速匹配候选关键帧并估计位姿局部地图跟踪提高局部跟踪精度,增加约束构建局部地图,进行投影匹配和优化当前帧位姿以上是ORB-SLAM2中跟踪线程的详细介绍。通过多种策略,ORB-SLAM2确保了跟踪的精度、实时性和鲁棒性,是其高性能的关键之一。原创 2024-12-28 21:15:44 · 1013 阅读 · 0 评论 -
【视觉惯性SLAM:十、ORB-SLAM2:地图点初始化】
模式主要步骤单目模式1. 求单应矩阵或基础矩阵 2. 特征点对三角化 3. 检验三角化结果双目模式1. 利用视差直接计算深度 2. 通过深度生成地图点RGB-D模式1. 利用深度图直接生成三维点 2. 筛选无效深度点通过三种不同的初始化方式,ORB-SLAM2 能够适应多种相机类型和场景需求,完成地图点的初始化并为后续的跟踪与优化打下坚实的基础。原创 2024-12-28 16:12:35 · 702 阅读 · 0 评论 -
【视觉惯性SLAM:九、ORB-SLAM2:地图点、关键帧和图结构】
关键帧是具有高信息量、能够稳定观测到足够多特征点的关键图像帧。它们在地图中扮演“锚点”的角色,保存地图点的观测信息,并作为优化过程中的重要变量。模块功能/特点地图点表示 3D 稀疏点云,包含平均观测方向、距离范围、描述子等;通过三角化生成,并进行融合和管理。关键帧表示具有高信息量的图像帧,选择、创建、更新共视关系、删除与分类规则严格;在系统中起到锚点和地图结构优化的作用。图结构包括共视图(用于局部优化和管理地图点)、本质图(用于全局优化和回环检测)以及生成树(确保地图连通性)。原创 2024-12-28 15:24:09 · 1041 阅读 · 0 评论 -
【视觉惯性SLAM:八、ORB-SLAM2:特征匹配】
将一幅图像中的特征点描述符映射到离散的视觉单词集合中,生成一个词袋向量。每个单词的频率表示该单词在图像中出现的次数。单目初始化:利用金字塔搜索快速确定候选点。通过方向一致性检验提高匹配准确性。词袋匹配:使用离线训练的视觉词典和在线生成的词袋向量进行快速检索和匹配。地图点匹配:利用地图点的投影位置进行局部搜索,结合相机运动方向确定搜索层级。Sim(3)变换匹配:双向投影匹配验证,用于关键帧和地图融合场景。原创 2024-12-27 21:59:49 · 1145 阅读 · 0 评论 -
【视觉惯性SLAM:七、ORB-SLAM2:ORB特征提取】
关键点提取:基于 Oriented FAST 算法,高效、具备方向性。关键点方向由灰度质心法计算。描述子计算:基于 Steered BRIEF 描述子,支持旋转不变性。描述子是长度为256的二值特征,计算快速。特征点均匀化:在金字塔层中按面积比例分配特征点数量。使用四叉树方法实现特征点均匀化分布,提升匹配鲁棒性和全局表达能力。ORB-SLAM2通过高效的ORB特征提取与均匀化策略,能够在实时性和鲁棒性之间取得良好平衡,为后续的跟踪、建图和优化奠定了基础。原创 2024-12-27 20:48:41 · 1127 阅读 · 0 评论 -
【视觉惯性SLAM:六、图优化库(2):g2o中顶点和边常见定义方式】
描述:用于三维空间中刚体位姿的优化,基于 SE(3) 变换。用途:表示相机或机器人在三维空间中的位姿。参数类型:使用 g2o::SE3Quat 表示 SE(3) 变换。主要应用场景:SLAM 问题中的相机位姿优化。// 创建一个三维位姿顶点// 顶点 ID// 设置初始位姿(单位变换)如果现有的顶点定义不满足需求,可以通过继承 g2o::BaseVertex 自定义顶点。例如,优化一个二维点的坐标// 自定义二维点顶点public:// 设置初始值为 (0, 0)原创 2024-12-27 20:15:32 · 939 阅读 · 0 评论 -
【视觉惯性SLAM:六、图优化库(1):g2o的使用指南】
g2o 提供了一些基本顶点类,但也支持用户自定义顶点。自定义顶点需要继承 g2o::BaseVertex 并实现相应的虚函数。示例:自定义一个三维点顶点// 定义一个3维点的顶点public:// 初始化函数,设置顶点初始值// 初始化为 (0, 0, 0)// 更新顶点值// 更新顶点估计值// 可选:保存和加载顶点信息(序列化)原创 2024-12-27 20:07:19 · 1037 阅读 · 0 评论 -
【视觉惯性SLAM:五、对极几何】
对极几何是计算机视觉中的重要工具,通过对极点、对极线和对极约束的分析,我们可以理解相机间的几何关系,为后续三维重建、位姿估计等任务提供理论支持。原创 2024-12-25 20:36:19 · 1155 阅读 · 0 评论 -
【视觉惯性SLAM:四、相机成像模型】
针孔相机是一种理想化的成像设备,其核心概念是通过一个非常小的孔(针孔)将光线投射到成像平面上。光线从三维世界中的某点出发,通过针孔投射到二维成像平面上,形成一个倒立的图像。工作原理:针孔只允许光线沿直线通过,没有镜头的干扰,因而能够在屏幕上生成清晰的图像。成像特点:图像倒立。焦距与成像平面的位置决定了图像的大小。针孔相机成像模型是 SLAM 和三维重建中最基础的数学模型,能够精确描述三维点到二维图像的映射关系。原创 2024-12-25 20:16:52 · 715 阅读 · 0 评论 -
【视觉惯性SLAM:三、SLAM中常用的数学基础知识】
齐次坐标通过增加一个额外的维度,使得𝑛维空间中的点可以用𝑛+1维的向量表示。例如:通常,通过归一化,取𝑤=1或𝑤≠0的任意值来代表实际坐标。前端跟踪时使用 旋转矩阵,因其直观,适合特征点变换。后端优化中使用 四元数 或 旋转向量,因其存储效率高、无奇异性。插值时使用四元数在 SLAM 系统中齐次坐标简化了点、直线和平面的表示,统一了旋转和平移的数学表达。刚体旋转的多种表示方式(旋转矩阵、四元数、旋转向量等)分别适用于不同场景。原创 2024-12-25 19:58:36 · 406 阅读 · 0 评论 -
【视觉惯性SLAM:二、编译及编译工具】
C++ 提供了高性能和丰富的库支持,结合新特性能极大提升开发效率。CMake 极大简化了复杂项目的构建和依赖管理,是 SLAM 项目中不可或缺的工具。通过学习 C++ 新特性和 CMake 的使用方法,可以更高效地开发和构建 SLAM 系统,为实现高性能、高鲁棒性的定位与建图提供可靠支撑。原创 2024-12-25 17:56:28 · 1102 阅读 · 0 评论 -
【视觉惯性SLAM:一、SLAM概览】
SLAM (Simultaneous Localization and Mapping) 即同步定位与建图,是指在未知环境中,机器人或移动设备通过传感器感知周围环境,同时构建环境地图,并在地图中实时确定自身位置的技术。SLAM 技术是机器人与智能设备实现自主能力的核心之一。无论是在室内环境中为机器人构建导航路径,还是在增强现实中实时叠加虚拟内容,亦或是在自动驾驶汽车和无人机中精确定位与避障,SLAM都展现了其不可替代的地位。随着计算硬件和算法的进步,SLAM将在更多领域推动技术革新。原创 2024-12-24 13:19:38 · 1133 阅读 · 0 评论