ORB-SLAM2:四、 地图点、关键帧、图结构】

地图点、关键帧和图结构是ORB-SLAM系统的核心组成部分,它们共同构建了SLAM系统的空间表示与数据组织方式。本章将详细讨论这些模块及其在系统中的作用和实现方式。


4.1 地图点

4.1.1 什么是地图点

地图点(Map Point)是SLAM系统中用来表示环境中三维特征点的抽象概念。这些点是通过相机观测和三角测量得到的,是地图构建的基础。

  1. 三维位置
    每个地图点存储其在世界坐标系中的三维坐标 P ( X , Y , Z ) P(X, Y, Z) P(X,Y,Z)

  2. 观测关系
    地图点与多帧图像中的特征点建立关联,用于优化和重投影误差计算。

  3. 描述子
    每个地图点还关联一个特征描述子,用于后续帧的特征匹配和跟踪。


4.1.2 地图点的创建

地图点的创建依赖于特征点匹配和三角测量。

  1. 特征点匹配

    • 提取多帧图像的ORB特征点,并通过描述子计算匹配点对。
    • 使用极线约束或RANSAC剔除误匹配点。
  2. 三角测量

    • 从匹配点的视差信息中推算出对应的三维位置。

    • 使用公式:
      P = Triangulate ( K , R , t , matches ) P = \text{Triangulate}(K, R, t, \text{matches}) P=Triangulate(K,R,t,matches)
      其中 K K K 为相机内参, R R R t t t 为相机的相对位姿。

  3. 地图点初始化
    将三角测量得到的三维点存储为地图点,并记录其被观测的帧信息。


4.1.3 地图点的更新与优化

  1. 观测融合

    • 随着SLAM运行,地图点会被多帧图像观测。
    • 通过融合不同帧的信息,更新地图点的三维位置和描述子。
  2. 剔除误差点

    • 对无法被多帧一致观测的地图点进行剔除。
    • 使用卡方检验或投影误差阈值判断点的有效性。
  3. 优化过程

    • 使用全局Bundle Adjustment优化地图点的位置。
    • 减小重投影误差,提高地图精度。

4.1.4 地图点的存储结构

  1. Hash表组织
    地图点通常存储在Hash表中,以便快速检索。

  2. 关联关键帧
    每个地图点记录被哪些关键帧观测,用于后续跟踪和优化。

  3. 可视化与管理

    • 地图点通过三维可视化工具显示,便于调试。
    • 引入质量评分机制管理点的有效性。

4.2 关键帧

4.2.1 什么是关键帧

关键帧(Key Frame)是SLAM系统中具有代表性的一组帧,用来构建地图并减少计算量。

  1. 定义
    关键帧是相机轨迹中的一帧,它包含相机的位姿、特征点、描述子等信息。

  2. 选取标准

    • 两帧间位移或旋转超过一定阈值。
    • 地图点数量显著增加。
    • 当前帧跟踪失败,需要重新初始化。

4.2.2 关键帧的作用

  1. 地图构建
    关键帧用作地图点的创建和更新的参考帧。

  2. 全局优化
    关键帧的位姿和观测关系用于Bundle Adjustment优化。

  3. 闭环检测
    关键帧之间的共视关系用于检测和修正闭环。


4.2.3 关键帧的存储

  1. 图结构组织
    关键帧存储在稀疏图中,用于表示帧间的空间关系。

  2. 关联信息

    • 每个关键帧存储其观测到的地图点。
    • 记录与其他关键帧的相对位姿。

4.3 共视图、本质图、拓展树

4.3.1 共视图

共视图(Co-Visibility Graph)描述了关键帧之间的观测关系,用于优化和闭环检测。

  1. 节点与边

    • 节点表示关键帧。
    • 边的权重表示两关键帧间共享地图点的数量。
  2. 构建方法

    • 遍历所有关键帧,统计它们共享的地图点。
    • 根据共享地图点的数量设置边的权重。
  3. 作用

    • 闭环检测:高权重边可能对应闭环。
    • 优化:提供帧间几何约束。

4.3.2 本质图

本质图(Essential Graph)是共视图的简化版本,包含SLAM系统中的主要几何约束。

  1. 构建方法

    • 从共视图中提取高权重边。
    • 添加闭环检测产生的约束边。
  2. 用途

    • 减少计算量:本质图仅保留重要约束。
    • 提高鲁棒性:集中优化全局位姿和地图结构。

4.3.3 拓展树

拓展树(Spanning Tree)是本质图的一种扩展,用于表示系统的全局拓扑关系。

  1. 定义
    拓展树是覆盖整个图结构的最小生成树,反映帧间的基本几何约束。

  2. 生成方法

    • 使用Prim或Kruskal算法生成最小生成树。
    • 确保树的连通性和最优性。
  3. 应用场景

    • 闭环修正:通过拓展树调整关键帧的全局位姿。
    • 地图融合:利用拓展树处理多地图合并问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值