Landmark

**地图点(landmark)**是环境中一个固定、可重复观测的特征,由SLAM系统进行估计并存储在其地图中。在视觉SLAM中,典型的地图点是一个3D点XjR3\mathbf{X}_j \in \mathbb{R}^3:在多幅图像中检测到的一个关键点,被三角化为3D坐标,并关联一个描述子以便再次识别。地图点的集合就是地图(在稀疏、基于特征的系统中)。

地图点连接了SLAM问题两个部分之间的循环:

这种相互依赖——位姿需要地图点,地图点需要位姿——正是SLAM成为联合估计问题的原因:在因子图中,位姿和地图点都是变量节点,通过观测因子相互连接,光束法平差将它们联合优化。

参数化方式

最直观的表示——欧氏坐标X=(x,y,z)\mathbf{X} = (x, y, z)——并不是唯一的选择,也并非总是最好的:

数据关联

将一个观测匹配到正确的地图点是前端的核心职责,标准方法叠加了若干层过滤:

  1. 投影搜索:用当前位姿估计预测地图点应出现的位置,只在该预测周围的搜索窗口内考虑关键点。
  2. 外观检查:地图点存储的描述子与候选关键点之间的描述子距离必须小(并通过比率/次优测试)。
  3. 兼容性检查:观测必须与地图点的尺度范围(金字塔层级)和平均观测方向一致。
  4. 统计门限:估计完成后,对重投影残差进行卡方检验,剔除与预测不确定性不一致的关联。

错误的数据关联——将一个观测匹配到错误的地图点——是SLAM中最具破坏性的错误之一,这就是为什么鲁棒匹配和外点剔除会受到如此多关注。

地图点的生命周期

一个实用的地图点携带的信息不止坐标。ORB-SLAM风格系统中一个典型的地图点会存储:其3D位置、一个代表性描述子(用于匹配)、观测方向统计(从哪些角度可见)、尺度/深度范围(在哪些图像金字塔层级可被检测到),以及用于剔除不可靠点的记录信息(观测次数、外点比例)。地图点管理是保持真实系统健康运行的重要组成部分:

地图点不一定是点。已有系统使用线和平面(在人造场景中具有更丰富的几何信息),以及物体级地图点(带有位姿的已识别物体),用检测复杂度换取更具描述性、更具语义意义的地图。无论采取何种形式,其核心要求相同:必须是静态的(或对非静态情况进行特殊处理)、可重复观测的,并且足够可区分以实现可靠的数据关联。

对SLAM的意义

“地图点”是将里程计变为SLAM的关键概念:因为地图点是持久存在的,在长距离漫游之后重新观测到它,能够将当前位姿与旧地图相互约束,从而实现漂移校正、回环检测和重定位。当你阅读任何基于特征的系统的论文时,其地图点的设计——它们存储什么、如何被创建和剔除、如何被匹配——就是其地图的设计。

相关条目