【ORB-SLAM2:六、 跟踪线程】

跟踪线程是ORB-SLAM的核心模块之一,负责实时估计相机的位姿。它通过处理连续帧之间的特征点匹配,结合参考关键帧和恒速模型,保证系统的稳健性和实时性。此外,当跟踪失败时,通过重定位机制恢复系统,并结合地图线程进行同步更新。本章将围绕跟踪线程的主要流程、参考关键帧跟踪、恒速模型跟踪、重定位跟踪及同步地图跟踪进行详细探讨。


6.1 跟踪线程整体流程

在这里插入图片描述

跟踪线程的整体流程可分为以下几个阶段:

6.1.1 初始化

  1. 第一帧处理

    • 提取ORB特征点和描述子,记录初始帧信息。
    • 对单目相机,需进行地图初始化(参考第3章)。
  2. 后续帧输入

    • 每一帧的输入包括图像、时间戳(对于视觉惯性系统,还包括IMU数据)。

6.1.2 位姿估计

  1. 特征点匹配

    • 与上一帧的地图点匹配,获取初始估计。
    • 如果匹配点不足,切换到参考关键帧或恒速模型。
  2. 初始位姿估计

    • 使用PnP算法或恒速模型估计位姿。
    • 位姿优化:通过最小化重投影误差优化初始估计。

6.1.3 位姿优化与地图更新

  1. 局部BA优化
    对当前帧位姿和地图点进行局部捆绑调整。

  2. 关键帧判定

    • 根据场景变化和运动情况,判断是否需要添加新的关键帧。
  3. 地图点更新

    • 剔除跟踪失败或误差过大的点,保持地图的稀疏性和精度。

6.2 参考关键帧跟踪

参考关键帧跟踪是ORB-SLAM中稳定性的重要保证。当前帧与参考关键帧之间的匹配帮助系统维持跟踪,尤其在场景特征较少或运动剧烈的情况下。

6.2.1 参考关键帧的选择

  • 定义:参考关键帧是系统在建图时选取的一组代表性帧。
  • 选择标准
    1. 与当前帧重叠最多的关键帧。
    2. 视角变化和特征点数量在一定范围内。

6.2.2 匹配过程

  1. 匹配地图点

    • 当前帧ORB特征与参考关键帧的地图点进行描述子匹配。
    • 使用粗匹配和精匹配两步减少误匹配。
  2. 位姿估计与优化

    • 通过匹配点计算初始位姿估计。
    • 使用优化方法(如Levenberg-Marquardt)调整位姿,最小化重投影误差。

6.2.3 挑战与改进

  • 参考关键帧过时问题
    在动态场景中,长期使用同一关键帧可能导致匹配失败。动态更新参考关键帧有助于提高鲁棒性。
  • 误匹配问题
    引入基于深度学习的特征匹配算法(如SuperPoint)进一步提高匹配准确率。

6.3 恒速模型跟踪

恒速模型利用相机的上一帧运动状态,预测当前帧的位姿,是跟踪线程中一种高效且轻量化的方法。

6.3.1 恒速模型的原理

  1. 假设
    假设相机运动是线性且恒定的,即:

    T t = T t − 1 ⋅ Δ T T_t = T_{t-1} \cdot \Delta T Tt=Tt1ΔT

    其中 T t T_t Tt 是当前帧位姿, Δ T \Delta T ΔT 是上一帧的运动增量。

  2. 预测过程

    • 使用上一帧的位姿变化作为预测增量。
    • 初始化当前帧位姿。

6.3.2 跟踪流程

  1. 特征点匹配

    • 在预测位姿下,将地图点投影到当前帧图像平面。
    • 使用描述子匹配寻找观测到的地图点。
  2. 优化调整

    • 以预测位姿为初值,最小化重投影误差,得到优化位姿。

6.3.3 优势与局限性

  • 优势
    • 计算量小,适合实时性要求高的场景。
    • 在短时间内保持稳定的跟踪效果。
  • 局限性
    • 对非线性运动(如急转弯、剧烈加减速)鲁棒性较低。
    • 对动态场景的适应性较差。

6.4 重定位跟踪

当系统发生跟踪丢失时,重定位模块通过与历史关键帧的匹配恢复位姿,是ORB-SLAM的一个重要容错机制。

6.4.1 跟踪丢失的检测

  • 跟踪失败的标志:
    1. 匹配的地图点数量过少。
    2. 优化误差超过阈值。

6.4.2 重定位流程

  1. 候选关键帧检索

    • 使用视觉词袋模型快速检索与当前帧最相似的关键帧。
  2. 粗匹配与位姿估计

    • 粗匹配:通过ORB特征描述子进行匹配。
    • 位姿估计:使用PnP方法计算当前帧与候选关键帧的相对位姿。
  3. 优化与验证

    • 使用RANSAC剔除误匹配。
    • 通过位姿优化验证重定位的成功性。

6.4.3 挑战与改进

  • 复杂场景重定位
    在动态或重复纹理的场景中,传统ORB特征匹配效果较差。引入深度学习方法,如基于CNN的全局图像特征,可以显著提高重定位效果。

6.5 局部地图跟踪

跟踪线程与地图线程同步更新,保证了系统的时效性和一致性。

6.5.1 同步过程
  1. 获取地图更新

    • 跟踪线程从地图线程获取最新的地图点和关键帧信息。
  2. 实时跟踪更新

    • 在局部地图内搜索可见点,进行匹配和位姿优化。
  3. 关键帧共享

    • 跟踪线程生成的关键帧传递给地图线程进行融合和优化。

6.5.2 优化与调整

  • 局部BA优化
    跟踪线程的局部BA仅优化当前帧与相邻关键帧,而地图线程的全局BA进行全局优化。

6.5.3 挑战与改进

  • 延迟问题
    在高帧率场景中,跟踪与地图更新可能存在同步延迟。采用多线程优化技术可以提高系统响应速度。
  • 动态场景地图更新
    动态物体的地图点可能干扰跟踪效果。通过动态物体分割和剔除机制,提升同步地图的精度。

通过对跟踪线程的整体流程及各子模块的详细讨论,可以看出ORB-SLAM的跟踪线程不仅要保证实时性和精度,还需通过多种容错机制和动态调整应对复杂的实际场景。这些机制的协同作用使得ORB-SLAM在各类应用中表现出色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值