大家好,欢迎来到IT知识分享网。
视觉SLAM入门十四讲
写在前面的话
考研期间迷上了SLAM,买来了高翔、张涛等著的《视觉SLAM十四讲——从理论到实践》,感悟颇深,作文记之。愿心之所向,梦亦同趋。
什么是视觉SLAM
SLAM是Simulataneous Location and Mapping的缩写,中文译为“同时定位与地图构建”。通俗来讲就是两个部分,“定位”与“建图”。同时此处所用的传感器主要为摄像头,故称为视觉SLAM。
视觉SLAM中所使用的摄像头传感器
如上所讲,视觉SLAM需要实现的两个部分——“定位”与“建图”,即带有哲学性质的两个提问,“我在哪里?”,“我周围是怎么样?”。通过眼睛观察,人类可以轻而易举地回答这两个问题,而机器人要实现这个目标,也需要有眼睛,传感器,就是机器人的眼睛。而安装于环境中的传感器,对环境的要求比较高,实际应用中,机器人的使用环境往往是多种多样的,这就意味着,使用携带式的传感器是我们重点关心的一个问题。而视觉SLAM中所需要的摄像头,需要以一定速率拍摄周围的环境,形成一个连续的视频流。按照工作方式不同,摄像头可以分为单目摄像头(Monocular)、双目摄像头(Stereo)以及深度摄像头(RGB-D)。下面对着三种摄像头以及它们的工作方式分别进行介绍。
单目摄像头
顾名思义,单目摄像头只有一个镜头。而摄像头所拍摄的图像是三维图像在二维世界的投影,要想恢复三维结构,必须移动摄像头。通过一个很简单的生活常识:近处的物体移动得快,看起来大,远处的物体移动地慢,看起来小。 我们可以通过摄像头在移动时产生的视差来对物体远近进行相对的定量的判断。需要注意此处得到的物体远近是相对的,可以通过特摄剧来理解,我们无法判断是怪兽摧毁了高楼大厦,还是穿着怪兽皮套的演员摧毁了高楼模型。进一步理解,我们可以认为,单目摄像机得到的图像,是将真实的三维世界的投影乘以一个因子进行了缩放,这个因子可称为尺度,由于这个尺度是不确定的,故单目摄像头具有尺度不确定性。但要注意,单目摄像机可以确定深度,但需要平移之后才能计算深度,加上无法确定尺度,这给”SLAM“带来了很大的麻烦。
双目摄像头
双目摄像头,双目摄像头是由两个单目摄像头组成,该两个单目摄像头的距离是已知的,我们称他为基线,据此通过复杂的计算可以得到深度,但此处的计算是通过软件算法实现的,比较占用系统资源,需要使用GPU、FPGA等设备来进行加速。计算量是双目摄像头目前最主要的问题。
深度摄像头
深度摄像头即RGB-D摄像头,它最大的特点是通过红外结构或Time-of-Flight(ToF)原理,笔者参加全国大学生智能汽车竞赛时曾使用过ToF模块进行距离测量,效果比较好。深度摄像头通过主动发出红外光并接收返回的光,来得到物体与摄像头之间的距离。通过物理的方式进行深度的获取,在对比双目摄像头来说有较大的优势,可以很好地节省计算资源。
经典视觉SLAM框架
经典视觉SLAM的结构框架由以下步骤组成:
- 传感器信息读取。传感器是机器人的眼睛。在视觉SLAM中,主要是对相机获取的图像进行预处理。
- 前端视觉里程计(VO)。 视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图是如何的。又称为前端。
- 后端(非线性化)优化。 后端接收前端获取的相机位姿信息以及回环检测的信息,进行优化、处理,得到较好的全局地图。
- 回环检测。 判断机器人之前是否到过同样的位置。
经典视觉
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22018.html