首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

[视觉 SLAM 十四讲] 笔记:第2讲 初识SLAM

当前存在的问题:

如何理解“线性高斯系统(LG),它的无偏最优估计可以由卡尔曼滤波器给出”

把相机的运动和场景大小同时放大两倍,单目相机所看到的像是一样的。

Ⅰ. 传感器

1.1 单目相机 - Monocular

估计模式: 移动的单目相机通过比较多帧差异可以得到深度信息 - 运动恢复结构(Structure from Motion, SfM)

说明:

三维空间的二维投影,这个过程丢掉了深度。

把相机的运动和场景大小同时放大两倍,单目相机所看到的像是一样的。

单目SLAM估计的轨迹和地图与真实的轨迹和地图相差一个因子,即尺度(Scale)。由于单目SLAM无法仅凭图像确定这个真实尺度,称为尺度不确定性(Scale Ambiguity)。

优势: 结构简单,成本低。

缺点: 单张图片无法确定物体真实大小。

1.2 双目相机 - Stereo,立体摄像头

估计模式: 由两个单目相机组成,相机间距离(基线)已知,估计像素空间位置。双目相机不主动对外发射光源,因此称为被动深度相机。

优势:

基线距离越大测量越远,可以用于室内和室外。

可以计算相机与物体之间的距离,场景的三维结构可以通过单个图像恢复,同时消除尺度不确定性。

不需要结构光、TOF的发射器和接收器,因此结构简单硬件成本低。

缺点:

强光、暗光影响较大;

依赖自然光,对无纹理的物体或表面影响较大,如纯色墙,因双目相机依据视觉特征进行图像匹配,这一问题会引起匹配失效。

配置和标定较为复杂。

深度量程与精度受基线与分辨率限制。

视差的计算非常消耗计算资源,需要使用GPU和FPGA设备加速,才能实时输出整张图像的距离信息,在现有条件下,计算量是双目的主要问题之一。

1.3 深度相机 - RGB-D

估计模式: 红外结构光或 ToF 原理,通过主动向物体发射光并接收返回的光,通过物理测量手段计算距离。

优势:

节省大量计算资源。

近距离(1米内)精度较高,毫米级。

测量范围广、对光线和颜色的敏感度低等。

主动投影,适合弱光照使用。

缺点:

测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质,主要用于室内。

测量距离和分辨率存在一定的局限性。远距离精度差,随着距离的拉长,精度也随之变差。

Ⅱ. 经典视觉 SlAM 框架

经典的视觉SLAM框架包含以下五个部分。其中,前端和计算机视觉领域更为相关,比如图像的特征提取和匹配,负责给后端提供待优化的数据,以及这些数据的初始值;后端主要是滤波与非线性优化算法,负责整体的优化过程,它往往面对的只有数据,不必关心这些数据到底来自什么传感器。

2.1 传感器信息读取

视觉SLAM中主要为相机图像信息的读取和预处理。

机器人中,还有码盘、IMU等信息的读取和同步。

2.2 视觉里程计(Visual Odometry, VO)

估算相邻图像间相机的运动和局部地图(恢复场景空间结构),存在累积漂移。VO又称为前端(Front End)。

2.3 后端优化(Optimization)

后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在VO之后,又称为后端(Back End)。

除了解决“如何从图像估计出相机运动”,还需要关心这个估计带有多大噪声,这些噪声是如何从上一时刻传递到下一时刻的,对当前的估计有多大自信。

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

2.4 回环检测(Loop Closing)

判断机器人是否到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。

视觉回环检测实质上是一种计算图像数据相似性的算法。

2.5 建图(Mapping)

根据估计的轨迹,建立与任务要求对应的地图。分为度量地图(Metric Map)和拓扑地图(Topological Map)两种。

度量地图(Metric Map)

强调精确的表示地图中物体的位置关系,通常用稀疏(Sparse)和稠密(Dense)对其分类。稀疏地图不需要表达所有物体,只关注路标;稠密地图着重于建模所有看到的东西,二维栅格地图、三维体素地图,都是稠密地图;

拓扑地图(Topological Map)

拓扑地图强调地图元素之间的关系,由节点和边构成,只考虑节点间的连通性;

Ⅲ. SLAM问题的数学描述

两个方程描述了最基本的SLAM问题

当知道运动测量的读数u,以及传感器的读数z时,如何求解定位问题(估计x)和建图问题(估计y)

将SLAM问题建模成了一个状态估计问题:如何通过带有噪声的测量数据,估计内部的、隐藏着的状态变量。

根据机器人的真实运动和传感器的种类,存在着若干种参数化方式。

运动方程:参数化—>李群李代数

观测方程:路标点如何投影到一张照片上—>相机的成像模型

为了解决SLAM问题,我们需要

状态估计理论:把定位和建图的不确定性表达出来;

滤波器或非线性优化:估计状态的均值和不确定性(方差)。

状态估计问题的求解,与两个方程的具体形式,以及噪声服从哪种分布有关。按照运动和观测方程是否线性,噪声是否服从高斯分布进行分类:线性/非线性和高斯/非高斯系统。

线性高斯系统(LG),是最简单的,它的无偏最优估计可以由卡尔曼滤波器给出。

复杂的非线性非高斯系统(NLNG),使用扩展卡尔曼滤波器和非线性优化两大类方法求解。

最早的实时视觉SLAM系统基于EKF开发[2],为了克服EKF的缺点(线性化误差和噪声高斯分布假设),开始使用粒子滤波器等其他滤波器,乃至非线性优化。

现在主流视觉SLAM使用以图优化(Graph Optimization)为代表的优化技术进行状态估计[13]。

参考文献

[2] A. J. Davison, I. D. Reid, N. D. Molton and O. Stasse, "MonoSLAM: Real-Time Single Camera SLAM," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 29, no. 6, pp. 1052-1067, June 2007, doi: 10.1109/TPAMI.2007.1049.

[13] Strasdat H, Montiel J M M, Davison A J. Visual SLAM: why filter?[J]. Image and Vision Computing, 2012, 30(2): 65-77.

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O4sa6EOswBfiMCczrFqeiXEg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券