一、跟踪模块简介

  在ORB-SLAM或其他SLAM系统中,跟踪的主要任务是根据相机或视频输入的图像帧实时输出相机位姿。在ORB-SLAM中,跟踪模块的主要任务是实时输出相机位姿和筛选关键帧,完成一个没有经过优化或者说全局优化的视觉里程计。通常根据相机的不同采用的方法也不相同,如单目除了需要进行初始化外通常根据特征匹配结果使用PnP算法求解相机位姿。

二、跟踪模块分析

  如图 是ORB-SLAM跟踪模块的技术流程图

  其流程为首先获取第一张彩色图像,然后转为灰度图,提取ORB特征,通常第一帧会构建为关键帧;

  然后进入跟踪过程(以单目为例),如果没有初始化则会进入自动初始化模块:定义参考帧和当前帧,提取ORB特征,进行特征匹配,然后分别计算单应矩阵和基础矩阵(双线程),使用H,F的判别模型判断在当前环境下使用哪个模型进行位姿求解,最后使用对应的求解方法求解H或F矩阵获取相机初始位姿,并使用三角测量计算匹配特征点的深度信息,获得3D点;

  ORB-SLAM中关于跟踪状态有两种选择(1)只进行跟踪不建图(2)同时跟踪和建图,这里以(2)为例。初始化之后ORB-SLAM有三种跟踪模型可供选择,首先假设相机恒速(即Rt和上一帧相同),然后计算匹配点数(如果匹配足够多则认为跟踪成功),如果匹配点数目较少,说明恒速模型失效,则选择参考帧模型(即特征匹配,PnP求解),如果参考帧模型同样不能进行跟踪,说明两帧键没有相关性,这时需要进行重定位,即和已经产生的关键帧中进行匹配(看看是否到了之前已经到过的地方)确定相机位姿,如果重定位仍然不能成功,则说明跟踪彻底丢失,要么等待相机回转,要不进行重置;

  假如通过一种模型完成了初始相机的位姿估计,则进一步跟踪局部地图,即和当前帧相关联的地图点做联合优化,获得一个较为准确的相机位姿;

  输出相机位姿说明跟踪过程已经完成,下面就是根据一定的判定条件判断当前帧是否可以作为关键帧输出,判定关键帧的条件一般为距上一关键帧过去了多少帧,和上一关键帧之间的匹配点的数量等。

三、跟踪模块总结

  从上面的流程可以看出,如果想进一步提升跟踪的速度,第一是从ORB特征的提取和建立描述符入手,第二是从局部地图跟踪入手,而相机初始位姿估计可能优化的余地不是很大。

后面想根据代码具体谈一谈跟踪过程的实现方式。

转载于:https://www.cnblogs.com/mafuqiang/p/6837963.html

ORB-SLAM2初步(跟踪模块)相关推荐

  1. ORB SLAM2源码解读(三):Frame类

    文章目录 前言 构造函数 双目相机 RGBD相机 单目相机 ExtractORB:提取特征点 ComputeBoW:计算词袋数据 SetPose:设置相机外参 isInFrustum:判断一个MapP ...

  2. orbslam2可视化_[Ubuntu] ORB SLAM2 编译调试

    ORB SLAM2 是 2015年比较受到关注的一篇文章,它的主要思想是借助 ORB 描述子改进了 Sparse SLAM 的性能,使得其在稳定性和速度上都达到了比较好的程度.从创新性上来讲,它的主要 ...

  3. 从零开始研发GPS接收机连载——7、跟踪模块概述和设计

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 从零开始研发GPS接收机连载--7.跟踪模块概述和设计 前言 跟踪环路概述 跟踪环路设计 PL端相关器设计 PS端码环和载波环设计 后 ...

  4. Ubuntu下使用单目相机运行ORB SLAM2

    环境:Ubuntu16.04+ROS Kinetic+USB单目摄像头 虽然ORB SLAM2的官方说明中表示没有ROS也可以编译运行,但要实时的跑ORB SLAM2还是需要ROS平台的,所以之前没有 ...

  5. PrestaShop物流跟踪模块

    2019独角兽企业重金招聘Python工程师标准>>> 广大用户用了,都说效果很好! 请大家放心购买 1.PrestaShop功能插件 – shipping物流模块:物流运输.快递运 ...

  6. Mocha Pro:跟踪模块

    虽然直接使用跟踪就可以得到很好的效果,但有必要时还可以使用 Track(跟踪)模块进一步调整,尤其是当你对追踪结果不是很满意的时候或者想做控制网格调整时. Mocha Pro V9 for Ae:Tr ...

  7. Opencv Object Tracking【使用OpenCV目标跟踪模块】

    实时目标检测如RCNN,yolo,ssd等都是可行的解决方案,但对于工业目标检测方案落地,一些嵌入式系统架构的硬件性能不能达到这样的高性能计算要求,或者当需要对特定目标进行检测识别时,这时可以采取的方 ...

  8. Ubuntu 16.04~ORB SLAM2~Kinect v1

    额 Ubuntu16.04 ORB-SLAM2实现(kinect V1/ROS) ----------------------------------------------------------- ...

  9. Ubuntu14.04 使用本地摄像头跑ORB SLAM2

    嗯 这个方法我暂时弄不出来,用了另外一个方法:SLAM14讲 第一次课 使用摄像头或视频运行 ORB-SLAM2 前面的准备: Ubuntu14.04安装 ROS 安装步骤和问题总结 Ubuntu14 ...

最新文章

  1. 计算机论文工作进程记录,毕业设计进程记录
  2. 服务器对搜索引擎有哪些影响,实录:网站换服务器后对搜索引擎的影响
  3. FCC有意支持Sprint与T-Mobile合并?
  4. linux线程时间片是多少_Linux 线程的实质
  5. 死锁的四个必要条件,及处理方法
  6. Sys和system用户、sysdba 和sysoper系统权限、dba角色的区别
  7. 前端学习(2905):用vite的2.0构建程序
  8. 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数
  9. 数据库的主键和外键总结
  10. Event Grid更新了!可轻松处理物联网装置遥测
  11. 常用语料库语言学相关软件下载
  12. 优秀的 Verilog/FPGA开源项目介绍(二十九)- 开源网站
  13. 分块矩阵乘法以及求逆应用
  14. layim php,如何通过LayuiAdminLayIMThinkphpGateway实现小程序多客服接入系统的例子
  15. 典型问题分析——三方应用网络异常分析方法
  16. 面试题27-二叉树的镜像
  17. 获取各大电商平台,item_get_app - 获得淘宝app商品详情原数据API返回数据说明
  18. 经典神经网络论文超详细解读(三)——GoogLeNet InceptionV1学习笔记(翻译+精读+代码复现)
  19. Transact使用
  20. Facebook 申请蓝色认徽章

热门文章

  1. 12届毕业生回顾我的2012年,给2013届同学一点启迪
  2. Problem B: 编写函数:求最大公约数gcd()和最小公倍数lcm() (Append Code) 山东科技大学 oj
  3. 怎么查看电脑有没有python_使用python获取电脑的磁盘信息方法
  4. sh 脚本 访问 路径 权限不够_IC设计之脚本语言介绍
  5. 韩国出现加密货币妈妈潮 女性对加密投资兴趣趋升
  6. 截至2020年底Cosmos生态基金会ICF总资金达2.12亿美元 加密资产占82%
  7. BTC 5分钟内涨幅1.08%,现价23903.52usdt
  8. NET EF 连接Oracle 的配置方法记录
  9. Python+request+ smtplib 测试结果html报告邮件发送(上)《五》
  10. laradock 进入 工作区