一、ORB-SLAM简介

  最近开始入坑SLAM,经过简单调研,各位大咖认为,目前最优秀的视觉SLAM系统是ORB-SLAM2,因此对ORB-SLAM2进行了学习。

  ORB-SLAM2是2015年提出的支持单目、双目、RGB-D相机三种工作模式的SLAM系统。整个系统基于ORB特征实现,包含了跟踪定位、局部地图构建、回环检测三个主线程。通常认为ORB-SLAM是基于PTAM的而进一步发展的,包含了目前流行SLAM系统的主要模块。整个系统在PC端运行帧率可达30帧,由于使用了自动初始化、重定位、回环检测等,具备较好的鲁棒性和准确性。官网网址为:http://webdiis.unizar.es/~raulmur/orbslam/

二、ORB-SLAM三线程分析

如上图所示,三线程为Tracking、LocalMapping、LoopClosing。

(1)跟踪模块:主要是通过提取每一帧的ORB特征,通过恒速模型、关键帧模型、重定位估计相机初始位姿,然后通过共视关系跟踪局部局部地图来优化相机位姿进行优化,最后确定当前帧是否作为关键帧插入地图中。

(2)局部建图:主要是针对跟踪过程中产生的关键帧进行操作,包括把该关键帧插入到地图中,添加新的地图点,剔除冗余的关键帧、地图点,通过Local BA优化相机位姿和地图点。

(3)回环检测:同样针对关键帧进行操作,主要是通过BoW模型判断当前关键帧是否产生回环,如果产生可能的回环则进行回环一致性检测,通过一致性检测之后认为运动已经产生回环,则计算Sim3变换进行回环矫正,并另起线程进行全局优化。

  其中跟踪模块需要处理摄像头获取的每一帧图像,从而实时估计相机位姿,而局部建图和回环检测通常只针对关键帧进行操作,因此不需要实时运行。下面贴了作者测试的时间分布情况:

  学习ORB-SLAM2过程中参考了很多大咖的博客(都是可以百度出来的):

http://blog.csdn.net/u010128736/article/details/53157605

http://www.cnblogs.com/gaoxiang12/p/5161223.html

。。。。

  安装配置的过程网上的教程已经很多了,这里就不在赘述了。上面这些都是网上现成的,后面将给出自己学习过程中理解的具体细节。

最新文章

  1. Linux哲学思想--基本法则
  2. JavaScript对象的chapterI
  3. sql练习记录
  4. PHP中的正则表达式的使用
  5. HDU 5074 Hatsune Miku(DP)
  6. python--字符工厂函数dict()
  7. JAVA三大特性之多态
  8. hdu Repositoryti
  9. Mysql基于GTID主从复制
  10. 在MVC中使用rdlc格式的报表
  11. 用javascript做别踩白块游戏2
  12. Linux 命令——tee 重定向到文件并打印到屏幕
  13. 填坑!!!virtualenv 中 nginx + uwsgi 部署 django
  14. 本地连接虚拟机_环境搭建01_VMWARE/XShell/CentOS
  15. 《跟老男孩学Linux运维:Web集群实战》读书笔记
  16. Intel微处理器学习笔记(二) 三种模式
  17. 玩转X-CTR100 l STM32F4 l SD卡FatFs文件系统
  18. 2017-2018-1 20155320《信息安全技术》实验二——Windows口令破解
  19. Selenium(Python)驱动Chrome浏览器
  20. Qt开发串口

热门文章

  1. redis.windows.conf 配置注释
  2. JS分类选择插件
  3. ICP 匹配定位算法学习记录
  4. Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!
  5. 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇
  6. 十、自定义ThreadPoolExecutor线程池
  7. sierpinski地毯(II)
  8. java架构之路-(nginx使用详解)nginx的反向代理和优化配置
  9. 基于Spark的电影推荐系统(推荐系统~7)
  10. CentOS7下配置防火墙放过Keepalived