【视觉惯性SLAM:十一、ORB-SLAM2:跟踪线程】

跟踪线程是ORB-SLAM2的核心之一,其主要任务是实时跟踪相机的位姿变化和场景的变化,以维持地图的更新和相机轨迹的估计。ORB-SLAM2的跟踪线程通过多种方式(参考关键帧跟踪、恒速模型跟踪、重定位跟踪、局部地图跟踪)处理跟踪丢失、场景动态变化等问题,确保系统的鲁棒性和实时性。

以下从各个跟踪策略详细介绍ORB-SLAM2的跟踪线程工作原理。

跟踪线程流程

参考关键帧跟踪

背景及原理

  • 参考关键帧:
    • 当前帧通过与上一帧的特征点匹配可以获得初步的位姿估计。
    • 为进一步优化跟踪精度,需要与局部地图中最相关的关键帧 进行匹配(即参考关键帧 ),通过参考关键帧的地图点与当前帧特征点的匹配来优化当前帧的位姿
  • 作用:
    • 通过与参考关键帧的匹配,获得更多约束,避免累积误差对跟踪精度的影响。
    • 参考关键帧提供地图点,当前帧通过投影这些地图点到图像平面来寻找匹配。

实现步骤

  • 从局部关键帧中选择一个最近或最优的关键帧作为参考关键帧。
  • 从参考关键帧中提取地图点(3D点),并将其投影到当前帧的图像中。
  • 根据投影位置在图像金字塔中搜索匹配点(利用ORB特征的描述子匹配)。
  • 使用匹配点对,通过优化方法(例如PnP)进一步优化当前帧的位姿。

恒速模型跟踪

背景及原理

  • 恒速模型假设相机在连续两帧之间以恒定速度运动。
  • 在刚体运动的约束下,如果上一帧的位姿已知,则可以推测当前帧的初始位姿。
  • 通过此预测,可以缩小搜索范围,提高匹配效率和跟踪精度。

实现步骤

  • 利用上一帧的位姿和速度预测当前帧位姿:
    根据上一帧的位姿 T t − 1 T_{t-1} Tt−1和速度𝑉,预测当前帧的位姿 T t = T t − 1 ⋅ V T_{t}=T_{t-1}\cdot V Tt=Tt−1⋅V
  • 临时地图点的创建:
    • 基于恒速模型,预测上一帧中的地图点在当前帧图像中的位置,生成临时地图点用于匹配。
    • 这些地图点可通过三角化与当前帧进行验证和更新。
  • 优化位姿:
    使用匹配的特征点对,利用最小二乘方法优化预测的位姿,确保跟踪的精确性。

重定位跟踪

背景及原理

  • 场景丢失或跟踪失败的情况:
    • 当相机出现快速运动、剧烈旋转或动态遮挡时,跟踪可能丢失。
    • 此时,重定位机制能够恢复跟踪状态。
  • 原理:
    • 基于倒排索引的词袋模型,将当前帧的特征描述子与地图中已有关键帧的描述子进行快速匹配,从中找到候选关键帧。
    • 利用这些候选关键帧恢复当前帧的位姿。

实现步骤

  • 倒排索引:
    • 词袋模型提前对所有关键帧进行特征向量的编码(离线训练的字典)。
    • 当前帧通过ORB特征的描述子生成词袋向量,并快速匹配候选关键帧。
  • 搜索重定位候选关键帧:
    • 在数据库中,找到与当前帧最相似的关键帧作为重定位候选。
  • 利用EPnP算法估计位姿:
    • 对候选关键帧进行投影匹配,找到共视特征点对。
    • 使用EPnP(Efficient Perspective-n-Point)算法计算当前帧的初始位姿。
  • 位姿优化:
    • 将初始位姿作为输入,通过BA优化,恢复跟踪。

局部地图跟踪

背景及原理

  • 局部地图跟踪是通过局部优化提升跟踪精度的过程。
  • 在局部地图跟踪中,ORB-SLAM2会利用与当前帧最近的局部关键帧及其相关的地图点进行跟踪。
  • 局部地图由当前帧的共视关键帧和这些关键帧的观测地图点组成。

实现步骤

  • 构建局部地图:
    • 获取当前帧的共视关键帧集合(共视图关系提供)。
    • 从共视关键帧中提取地图点,构建局部地图。
  • 投影匹配:
    • 将局部地图点投影到当前帧的图像平面,预测其金字塔层级。
    • 在投影位置附近搜索匹配点,获取更多的特征点匹配对。
  • 优化当前帧位姿:
    • 使用匹配点对,通过光束法平差(BA)优化当前帧的位姿。

ORB-SLAM2中的跟踪策略特点

  • 多层次跟踪:
    • 针对不同的场景(跟踪正常、丢失、重定位),采用不同的策略,保证系统鲁棒性。
  • 实时性:
    • 跟踪线程与局部建图、回环检测线程分离,并采用高效的投影匹配和优化算法,保证实时性。
  • 鲁棒性:
    • 通过恒速模型预测、局部地图跟踪和重定位机制,ORB-SLAM2能够应对遮挡、快速运动等挑战。

总结

跟踪方式 关键作用 方法概要
参考关键帧跟踪 提供额外约束,提升跟踪精度 利用局部关键帧提供地图点进行投影匹配
恒速模型跟踪 提供初始位姿预测,缩小搜索范围 根据上一帧位姿和速度预测当前帧位姿
参考关键帧跟踪 恢复跟踪,防止因丢失而中断 通过词袋模型快速匹配候选关键帧并估计位姿
局部地图跟踪 提高局部跟踪精度,增加约束 构建局部地图,进行投影匹配和优化当前帧位姿

以上是ORB-SLAM2中跟踪线程的详细介绍。通过多种策略,ORB-SLAM2确保了跟踪的精度、实时性和鲁棒性,是其高性能的关键之一。

相关推荐
云卓SKYDROID1 分钟前
无人机投屏技术解码过程详解!
人工智能·5g·音视频·无人机·科普·高科技·云卓科技
闻缺陷则喜何志丹5 分钟前
【二分查找、滑动窗口】P10389 [蓝桥杯 2024 省 A] 成绩统计|普及+
c++·算法·蓝桥杯·二分查找·滑动窗口·洛谷·成绩
zy_destiny7 分钟前
【YOLOv12改进trick】三重注意力TripletAttention引入YOLOv12中,实现遮挡目标检测涨点,含创新点Python代码,方便发论文
网络·人工智能·python·深度学习·yolo·计算机视觉·三重注意力
自由的晚风9 分钟前
深度学习在SSVEP信号分类中的应用分析
人工智能·深度学习·分类
大数据追光猿9 分钟前
【大模型技术】LlamaFactory 的原理解析与应用
人工智能·python·机器学习·docker·语言模型·github·transformer
玩电脑的辣条哥24 分钟前
大模型LoRA微调训练原理是什么?
人工智能·lora·微调
极客BIM工作室31 分钟前
DeepSeek V3 源码:从入门到放弃!
人工智能
乔冠宇1 小时前
蓝桥杯算法——铠甲合体
算法·职场和发展·蓝桥杯
商bol451 小时前
算阶,jdk和idea的安装
数据结构·c++·算法
迷迭所归处1 小时前
C语言 —— 愿文明如薪火般灿烂 - 函数递归
c语言·开发语言·算法