前言:本博客是博主本科毕业设计时的学习、探索与总结系列博客第一篇。主要是介绍了ORB-SLAM2
项目的相关背景功能以及代码学习资源,并且说明了一下这次博客的目的。其中,开发环境为VS2017
+ C++
,其中难免有很多不足与疏漏之处,还望不吝赐教。
系列博客
ORB-SLAM2 + windows + usb摄像头 项目实战(二)
目录
一、ORB-SLAM2 项目背景简介:
1.ORB-SLAM是什么,有什么特点?
1)简介:
ORB-SLAM
是一个用于 单目相机(后期的ORB-SLAM2
也提供了双目立体相机以及RGBD
相机的接口)的精确的多功能SLAM(simultaneous localization and mapping,即时定位与地图构建)
方案。
2)功能:
它能够实时计算并跟踪摄像机在空间中的运动轨迹
,也能用于小到桌子,大到多个城市街道的多种规模的场景的三维重建
。除此以外,它还具备较好的稳健性,当摄像头跟丢后还能够实时进行全局的重定位找回摄像头位置。最后,它针对平面以及非平面,提供了两套初始化方案,使得系统的初始化效果更为稳健。
3)工作原理:
(1)第一步
,系统读取摄像头参数与ORB
字典的数据,并且初始化整个系统。
(2)第二步
,它接着初始化相机位姿,初始化时采用ORB算法(算法具体介绍可以参考以下博客1-ORB特征提取详解, 2-ORB特征检测算法小结,3-特征点匹配——ORB算法介绍) 提取第一帧图像的特征点,并且得到相连两帧图像之间的特征点的匹配;
(3)第三步
,在得到特征点匹配的信息的基础上,利用 双目立体视觉中的三角法(三角法算法数学原理参考以下博客: 双目测距数学原理详解,代码参考以下博客: 1- 学习OpenCV(2)双目测距原理,2-【opencv学习】完全基于opencv的双目景深与测距的实现,3- VS2017+OpenCV3.3基于SGBM算法的双目立体视觉、双目测距(双目校正和立体匹配)) 恢复匹配上的特征点的深度(注意此处我们采用的是单目相机&