通俗易懂!视觉slam第一部分——slam简介与相机介绍

首先是定义:

SLAM 是 Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动 。如果这里的传感器主要为相机,那就称为
“视觉 SLAM”。

这里的相机有很多种:分为单目(Monocular)、双目(Stereo)和深度相机(RGB-D)三个大类

单目相机: 只使用一个摄像头进行 SLAM 的做法称为单目 SLAM(Monocular SLAM)。

照片,本质上是拍照时的场景(Scene),在相机的成像平面上留下的一个投影。它以二维的形式反映了三维的世界。显然,这个过程丢掉了场景的一个维度:也就是所谓的深度(或距离)。在单目相机中,我们无法通过单个图片来计算场景中物体离我们的距离(远近)。平移之后才能计算深度,以及无法确定真实尺度,这两件事情给单目 SLAM 的应用造成了很大的麻烦。它们的本质原因是通过单张图像无法确定深度。所以,为了得到这个深度,人们又开始使用双目和深度相机。

双目相机 (Stereo) 和深度相机 双目相机和深度相机的目的,在于通过某种手段测量物体离我们的距离,克服单目无法知道距离的缺点。如果知道了距离,场景的三维结构就可以通过单个图像恢复出来,也就消除了尺度不确定性。尽管都是为测量距离,但双目相机与深度相机测量深度的原理是不一样的。双目相机由两个单目相机组成,但这两个相机之间的距离(称为基线(Baseline))是已知的。我们通过这个基线来估计每个像素的空间位置——这和人眼非常相似。计算机上的双目相机需要大量的计算才能(不太可靠地)估计每一个像素点的深度,相比于人类真是非常的笨拙。双目相机测量到的深度范围与基线相关。基线距离越大,能够
测量到的就越远,所以无人车上搭载的双目通常会是个很大的家伙。

深度相机(又称 RGB-D 相机,在本书中主要使用 RGB-D 这个名称)是 2010 年左右开始兴起的一种相机,它最大的特点是可以通过红外结构光或 Time-of-Flight(ToF)原理,像激光传感器那样,通过主动向物体发射光并接收返回的光,测出物体离相机的距离。这部分并不像双目那样通过软件计算来解决,而是通过物理的测量手段,所以相比于双目可节省大量的计算量。

经典视觉slam框架

1. 传感器信息读取。在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。
2. 视觉里程计 (Visual Odometry, VO)。视觉里程计任务是估算相邻图像间相机的运动,以及局部地图的样子。VO 又称为前端(Front End)。
3. 后端优化(Optimization)。后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在 VO 之后,又称为后端(Back End)。
4. 回环检测(Loop Closing)。回环检测判断机器人是否曾经到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
5. 建图(Mapping)。它根据估计的轨迹,建立与任务要求对应的地图。 

发布了367 篇原创文章 · 获赞 188 · 访问量 51万+

猜你喜欢

转载自blog.csdn.net/qq_32146369/article/details/104404837