【视觉惯性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确保了跟踪的精度、实时性和鲁棒性,是其高性能的关键之一。

相关推荐
小小晓.4 分钟前
Pinely Round 2 (Div. 1 + Div. 2)
c++·算法
极客BIM工作室5 分钟前
ControlNet里的“隐形连接器”:零卷积(Zero Convolution)的工作流程
人工智能·机器学习
北京耐用通信6 分钟前
阀岛的“超级大脑”:耐达讯自动化网关让EtherNet/IP转DeviceNet“说同一种语言”
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
清风拂山岗 明月照大江13 分钟前
简单文件 IO 示例:使用系统调用读写文件
开发语言·c++·算法
泡泡茶壶_ovo17 分钟前
PixCLIP:通过任意粒度像素-文本对齐学习实现细粒度视觉语言理解
人工智能·计算机视觉·对比学习·imagecaptioning
袋鼠云数栈19 分钟前
AI的下半场,产业需要一个怎样的数据中台?
大数据·人工智能·数据挖掘
Hcoco_me21 分钟前
大模型面试题15:DBSCAN聚类算法:步骤、缺陷及改进方向
算法·数据挖掘·聚类
龙邱科技21 分钟前
21届智能车竞赛走马观碑组「灵眼LQUGSCV1」高帧率彩色USB摄像头实测!
人工智能·计算机视觉·目标跟踪
爱凤的小光21 分钟前
图漾FM855-E1相机专栏
数码相机
白日做梦Q22 分钟前
盲去噪(Blind Denoising)实战指南:如何处理未知噪声水平的图像
人工智能·深度学习·cnn