童年原是一生最美妙的阶段,那时的孩子是一朵花,也是一颗果子,是一片懵懵懂懂的聪明,一种永远不息的活动,一股强烈的欲望。——巴尔扎克
现在位置:首页 > 资源宝库 > 技术教程 > 视觉SLAM十四讲 概述部分

视觉SLAM十四讲 概述部分

绿色资源网  技术教程  2021-9-29  573  0评论
    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-1a85854398.css">

蓝色
紫色
红色

SLAM:同时定位与地图构建

”搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动

若传感器主要为相机,即为视觉SLAM。

两类传感器

安装在环境中的(eg. 二维码Marker/GPS/导轨/磁条)

要满足外部环境约束才能进行定位工作。(eg. 要有GPS信号,要能铺设导轨)

携带于机器人本体上的(IMU/激光/相机)

IMU:惯性测量单元-wiki,是测量物体三轴姿态角(或角速率)以及加速度的装置。

测到的通常都是一些间接的物理量而不是直接的位置数据,从这些物理量推测自己的位置。

  • 轮式编码器-轮子转动的角度
  • IMU-测量运动的角速度和加速度
  • 相机和激光则读取外部环境的某种观测数据

优点:无环境要求,适用于未知环境

激光 -Lasers

好处:精确、快速、较长的研究历史(成熟的方法)
坏处:重、贵

相机 -Camera

以一定速率拍摄周围的环境,形成一个连续的视频流。普通的摄像头能以每秒钟30 张图片的速度采集图像,按照工作方式分为单目、双目、深度相机。
在这里插入图片描述
好处:便宜、轻巧、信息丰富
坏处:需要较高的计算资源 (处理视频流),需要在一定的工作条件下 (eg. 光线要充足、不能被遮挡、环境要是有纹理的 如果是一片白,并不能够通过相片的移动来估计自身的运动)

相机的本质

  • 以二维投影形式记录了三维世界的信息

  • 丢掉了一个维度:距离

各类相机的主要区别:是否有深度信息

  • 单目:没有深度,必须通过移动相机产生深度 Moving View Stereo
  • 双目:通过视差计算深度 Stereo
  • RGBD:通过物理方法测量深度

单目相机 -Monocular

无法通过单个图片来计算场景中物体离我们的距离,而距离信息是SLAM中非常关键的部分
在这里插入图片描述
由于单目相机只是三维空间的二维投影,所以,如果我们真想恢复三维结构,必须移动相机的视角

单目SLAM中同理,我们必须移动相机之后,才能估计它的运动(Motion),同时估计场景中物体的远近和大小,不妨称之为结构(Structure)

Motion:相机往右 -> 图像中物体往左
Sturcture:近处物体移动快,远处物体移动慢

相机移动时,这些物体在图像上的运动,形成了视差。通过视差可以定量判断物体的远近

单目相机最大缺点在于 无法确定真实的尺度 -尺度不确定性

单目相机可以知道物体的相对远近,却无法感知真实物体的大小。

把相机运动和场景大小同时缩放k倍,单目所看到的像都是一样的。即单目SLAM 估计的轨迹和地图,将与真实的轨迹和地图,相差一个因子:尺度(Scale)

单目SLAM应用难度大本质原因是:通过单张图像无法确定深度(两个原因:平移之后才能计算深度,以及无法确定真实尺度)

双目相机 -Stereo

双目相机和深度相机的目的,在于通过某种手段测量物
体离我们的距离,克服单目无法知道距离的缺点。如果知道了距离,场景的三维结构就可以通过单个图像恢复出来,也就消除了尺度不确定性。
在这里插入图片描述
双目相机由两个单目相机组成,但这 两个相机之间的距离(称为基线(Baseline))是已知的,我们通过这个基线来估计每个像素的空间位置,可以再扩展成多目相机。

注意:双目相机测量到的深度范围基线相关。基线距离越大,能够测量到的就越远。

双目相机的距离估计是比较左右眼的图像获得的,并不依赖其他传感设备,适用于室内外环境。

双目或多目相机的缺点是配置与标定均较为复杂,其深度量程和精度受双目的基线与分辨率限制,而且视差的计算非常消耗计算资源,需要使用GPU 和FPGA 设备加速后,才能实时输出整张图像的距离信息。计算量 是目前双目的主要限制原因之一。

深度相机 -RGB-D

在这里插入图片描述
最大的特点 是可以通过红外结构光或Time-of-Flight(ToF)原理,像激光传感器那样,通过主动向物体发射光并接收返回的光,测出物体离相机的距离物理测量,相比双目可节省大量计算

目前常用的RGB-D 相机包括Kinect/Kinect V2、Xtion live pro、Realsense 等。

现在多数 RGB-D 相机还存在测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质等诸多问题,在SLAM 方面,主要用于室内SLAM,室外则较难应用。

经典视觉SLAM框架

在这里插入图片描述
在这里插入图片描述

视觉里程计  Visual Odometry

实际的里程计:只计算相邻时刻的运动,而和过去的信息无关。

视觉里程计:关心相邻图像之间的相机运动,并需要精确地测量这段运动信息(eg. 旋转了多少度,平移了多少厘米)。

视觉SLAM 中,我们只能看到一个个像素,知道它们是某些空间点在相机的成像平面上投影的结果。通过相机成像原理和空间点的几何关系可以定量估计相机运动。

VO 能够通过相邻帧间的图像估计相机运动,并恢复场景的空间结构。

存在的问题:仅通过视觉里程计来估计轨迹,将不可避免地出现累计漂移(Accumulating Drift)视觉里程计(在最简单的情况下)只估计两个图像间运动,每次估计的误差都会传递到下一时刻
在这里插入图片描述
解决漂移问题:后端优化和回环检测(回环检测把”机器人回到原始位置“的事情检测出来,后端优化根据该信息校正整个轨迹形状)

后端优化  Optimization

后端优化主要处理SLAM过程中的噪声问题。

后端优化要考虑的问题,就是如何从这些带有噪声的数据中,估计整个系统的状态,以及这个状态估计的不确定性有多大——这称为最大后验概率估计(Maximum-a-Posteriori,MAP)。这里的状态既包括机器人自身的轨迹,也包含地图。

在视觉SLAM 中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波与非线性优化算法

SLAM 问题的本质:对运动主体自身和周围环境空间不确定性的估计。

回环检测 Loop Closing

回环检测,又称闭环检测(Loop Closure Detection),主要解决位置估计随时间漂移的问题。

地图存在的主要意义,是为了让机器人知晓自己到达过的地方。为了实现回环检测,我们需要让机器人具有识别曾到达过的场景的能力。(eg. 在某个位置放置二维码,再次识别到它的时候即是回到了原点)

我们更希望能够通过相机得到的图像本身来完成这一任务,eg.通过判断图像间的相似性,来完成回环检测。

建图 Mapping

建图(Mapping)是指构建地图的过程。地图是对环境的描述,但这个描述并不是固定的,需要视SLAM 的应用而定,例如有的场景只需要知道哪里有障碍物哪里能够通过,有的场景需要重建三位地图信息。

度量地图   Metric Map

度量地图强调精确地表示地图中物体的位置关系,通常我们用稀疏(Sparse)与稠密(Dense)对它们进行分类。

我们选择一部分具有代表意义的东西,称之为路标(Landmark),那么一张稀疏地图就是由路标组成的地图,而不是路标的部分就可以忽略掉。 定位

稠密地图通常按照某种分辨率,由许多个小块组成。二维度量地图是许多个小格子(Grid),三维则是许多小方块(Voxel)。(耗费大量的存储空间,且多数细节无用)一般一个小块含有占据、空闲、未知三种状态,以表达该格内是否有物体。当我们查询某个空间位置时,地图能够给出该位置是否可以通过的信息。 导航 (大规模度量地图有时会有一致性问题 很小的转向误差会导致 物体重叠,地图失效 )

拓扑地图  Topological Map

拓扑地图是一个图 (Graph) ,由节点和边组成,只考虑节点间的连通性,更强调地图元素之间的关系。拓扑地图不擅长表达具有复杂结构的地图。

难点问题:如何对地图进行分割形成结点与边,又如何使用拓扑地图进行导航与路径规划

            <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css" rel="stylesheet">
评论一下 分享本文 联系站长
绿色资源网
看完文章就评论一下!
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论