地图点
地图点是 SLAM 中的核心要素之一,表示 3D 空间中的稀疏点云,用于表示地图中的特征点。
平均观测方向及观测距离范围
- 平均观测方向:
- 每个地图点被多个关键帧观测到,其平均观测方向是所有观测方向的加权平均。
- 如果地图点的观测方向和关键帧的视线方向夹角过大(例如超过 60°),说明该地图点可能已经不可见。
- 观测距离范围:
- 每个地图点的观测距离范围由两部分决定:
- 特征点提取时的尺度金字塔层级。
- 地图点在多个帧中观测到的最大和最小距离,用于预测新帧是否能观测到该地图点。
- 每个地图点的观测距离范围由两部分决定:
最具代表性的描述子
- 地图点的描述子用于匹配新帧中的特征点。
- 每个地图点有多个观测帧,从中选取最稳定、最具代表性的描述子:
- 通过计算地图点在所有关键帧中的 ORB 描述子,选择距离加权平均描述子最小的那个作为代表性描述子。
预测地图点对应的特征点所在的金字塔尺度
- ORB-SLAM2 利用相机位姿和地图点的三维位置,在新帧中预测地图点在图像中的投影位置。
- 同时,根据地图点在关键帧中被观测到的金字塔层级,推断其可能出现的金字塔尺度,限制搜索范围,提高匹配效率。
新增地图点
- 地图点主要由三角化方法生成:
- 在局部地图中,通过匹配两个关键帧的特征点,并利用相机位姿进行三角化计算生成地图点。
- 只有满足一定质量要求(如视差足够大、观测方向角度合适)的三角化结果才会被加入地图。
- 新增的地图点需要有足够多的观测帧支持,若观测帧太少,则可能被标记为孤立点并删除。
地图点融合
- 当不同关键帧三角化生成的地图点实际表示同一个物理点时,需要进行地图点融合:
- 比较地图点的三维位置,如果距离过近(通常是某个阈值范围内),则将其合并。
- 合并时会更新地图点的描述子、平均观测方向和观测范围。
关键帧
关键帧是SLAM系统的核心,用于构建稀疏地图和维持系统的全局优化。
什么是关键帧
- 关键帧是具有高信息量、能够稳定观测到足够多特征点的关键图像帧。
- 它们在地图中扮演“锚点”的角色,保存地图点的观测信息,并作为优化过程中的重要变量。
如何选择关键帧
ORB-SLAM2中对关键帧的选择遵循以下标准:
- 当前帧与最近关键帧之间的位姿变化达到一定阈值(如平移或旋转变化显著)。
- 当前帧观测到的地图点数量远少于最近关键帧。
- 当前帧为回环检测提供了足够多的新信息。
如何选择并创建关键帧
- 在系统跟踪丢失后,若重新定位成功,系统会自动将第一帧加入为关键帧。
- 每隔一段时间(或满足一定条件),将新帧加入关键帧队列:
- 新帧与已有地图点的共视关系不足,无法通过已有关键帧有效跟踪时,新增为关键帧。
- 新帧带来了显著的新特征点信息。
更新关键帧之间的共视关系
- 每个关键帧与其他关键帧通过共视关系建立联系,共视关系由以下信息决定:
- 关键帧之间的公共地图点数量。
- 公共地图点数量越多,共视关系越强。
- 共视关系会更新成共视图,用图结构表示关键帧之间的连接情况。
删除关键帧
- 删除不必要的关键帧以维持系统效率,常见规则:
- 被其他关键帧观测到的地图点超过 90%。
- 其共视帧数量较多且被其他关键帧完全覆盖。
- 删除关键帧后保证地图连通性不会被破坏。
关键帧的分类
- 关键帧可以按照用途进行分类:
- 普通关键帧:用于局部地图维护和优化。
- 回环关键帧:用于回环检测,帮助系统进行全局优化。
- 重定位关键帧:在重定位时提供初始匹配。
图结构
ORB-SLAM2 中使用了图结构来组织地图点和关键帧的关系,以下是主要的图结构类型:
共视图(Covisibility Graph)
- 定义:
- 共视图表示关键帧之间的共视关系,图的节点是关键帧,边的权重是它们之间的公共地图点数量。
- 作用:
- 用于局部地图管理,系统通过共视图寻找当前帧的局部地图点进行匹配。
- 在优化过程中,选取共视关系较强的关键帧进行优化。
- 维护:
- 每次新增关键帧时,更新共视关系;删除关键帧时移除相关边。
本质图(Essential Graph)
- 定义:
- 本质图是共视图的简化版本,只保留优化所需的关键边。
- 图的节点是关键帧,边表示它们之间的几何约束(如共视帧的相对位姿)。
- 作用:
- 用于全局优化(如回环优化),在非线性优化时减少计算量。
生成树(Spanning Tree)
- 定义:
- 生成树是从本质图生成的树状结构,根节点为第一个关键帧。
- 作用:
- 保证地图连通性,避免因关键帧删除而使地图分裂。
总结
模块 | 功能/特点 |
---|---|
地图点 | 表示 3D 稀疏点云,包含平均观测方向、距离范围、描述子等;通过三角化生成,并进行融合和管理。 |
关键帧 | 表示具有高信息量的图像帧,选择、创建、更新共视关系、删除与分类规则严格;在系统中起到锚点和地图结构优化的作用。 |
图结构 | 包括共视图(用于局部优化和管理地图点)、本质图(用于全局优化和回环检测)以及生成树(确保地图连通性)。 |
ORB-SLAM2通过对地图点、关键帧和图结构的巧妙设计,使得其在稀疏地图构建、回环检测以及全局优化等多个方面具备高效性和鲁棒性。