0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

视觉SLAM技术浅谈

领衔资讯 2019-08-09 17:31 次阅读

近年来,SLAM技术取得了惊人的发展,领先一步的激光SLAM已成熟的应用于各大场景中,视觉SLAM虽在落地应用上不及激光SLAM,但也是目前研究的一大热点,今天我们就来详细聊聊视觉SLAM的那些事儿。

视觉SLAM是什么?

视觉SLAM主要是基于相机来完成环境的感知工作,相对而言,相机成本较低,容易放到商品硬件上,且图像信息丰富,因此视觉SLAM也备受关注。

目前,视觉SLAM可分为单目、双目(多目)、RGBD这三类,另还有鱼眼、全景等特殊相机,但目前在研究和产品中还属于少数,此外,结合惯性测量器件(Inertial Measurement Unit,IMU)的视觉SLAM也是现在研究热点之一。从实现难度上来说,大致将这三类方法排序为:单目视觉>双目视觉>RGBD。

单目相机SLAM简称MonoSLAM,仅用一支摄像头就能完成SLAM。最大的优点是传感器简单且成本低廉,但同时也有个大问题,就是不能确切的得到深度。

一方面是由于绝对深度未知,单目SLAM不能得到机器人运动轨迹及地图的真实大小,如果把轨迹和房间同时放大两倍,单目看到的像是一样的,因此,单目SLAM只能估计一个相对深度。另一方面,单目相机无法依靠一张图像获得图像中物体离自己的相对距离。为了估计这个相对深度,单目SLAM要靠运动中的三角测量,来求解相机运动并估计像素的空间位置。即是说,它的轨迹和地图,只有在相机运动之后才能收敛,如果相机不进行运动时,就无法得知像素的位置。同时,相机运动还不能是纯粹的旋转,这就给单目SLAM的应用带来了一些麻烦。

而双目相机与单目不同的是,立体视觉既可以在运动时估计深度,亦可在静止时估计,消除了单目视觉的许多麻烦。不过,双目或多目相机配置与标定均较为复杂,其深度量程也随双目的基线与分辨率限制。通过双目图像计算像素距离,是一件非常消耗计算量的事情,现在多用FPGA来完成。

RGBD相机是2010年左右开始兴起的一种相机,它最大的特点是可以通过红外结构光或TOF原理,直接测出图像中各像素离相机的距离。因此,它比传统相机能够提供更丰富的信息,也不必像单目或双目那样费时费力地计算深度。

视觉SLAM框架解读

1.传感器数据

在视觉SLAM中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘,惯性传感器等信息的读取和同步。

2.视觉里程计

视觉里程计的主要任务是估算相邻图像间相机运动以及局部地图的样子,最简单的是两张图像之间的运动关系。计算机是如何通过图像确定相机的运动的。在图像上,我们只能看到一个个的像素,知道他们是某些空间点在相机的成像平面投影的结果。所以必须先了解相机跟空间点的几何关系。

Vo(又称为前端)能够通过相邻帧间的图像估计相机运动,并恢复场景的空间结构,称它为里程计。被称为里程计是因为它只计算相邻时刻的运动,而和再往前的过去信息没有关联。相邻时刻运动串联起来,就构成了机器人的运动轨迹,从而解决了定位问题。另一方面,根据每一时刻的相机位置,计算出各像素对应的空间点的位置,就得到了地图。

3.后端优化

后端优化主要是处理slam过程中噪声的问题。任何传感器都有噪声,所以除了要处理“如何从图像中估计出相机运动”,还要关心这个估计带有多大的噪声。

前端给后端提供待优化的数据,以及这些数据的初始值,而后端负责整体的优化过程,它往往面对的只有数据,不必关系这些数据来自哪里。在视觉slam中,前端和计算接视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波和非线性优化算法

4.回环检测

回环检测也可以称为闭环检测,是指机器人识别曾到达场景的能力。如果检测成功,可以显著地减小累积误差。回环检测实质上是一种检测观测数据相似性的算法。对于视觉SLAM,多数系统采用目前较为成熟的词袋模型(Bag-of-Words, BoW)。词袋模型把图像中的视觉特征(SIFT, SURF等)聚类,然后建立词典,进而寻找每个图中含有哪些“单词”(word)。也有研究者使用传统模式识别的方法,把回环检测建构成一个分类问题,训练分类器进行分类。

5.建图

建图主要是根据估计的轨迹建立与任务要求对应的地图,在机器人学中,地图的表示主要有栅格地图、直接表征法、拓扑地图以及特征点地图这4种。而特征点地图是用有关的几何特征(如点、直线、面)表示环境,常见于视觉SLAM技术中。这种地图一般通过如GPS、UWB以及摄像头配合稀疏方式的vSLAM算法产生,优点是相对数据存储量和运算量比较小,多见于最早的SLAM算法中。

视觉SLAM工作原理

大多数视觉SLAM系统的工作方式是通过连续的相机帧,跟踪设置关键点,以三角算法定位其3D位置,同时使用此信息来逼近推测相机自己的姿态。简单来说,这些系统的目标是绘制与自身位置相关的环境地图。这个地图可以用于机器人系统在该环境中导航作用。与其他形式的SLAM技术不同,只需一个3D视觉摄像头,就可以做到这一点。

通过跟踪摄像头视频帧中足够数量的关键点,可以快速了解传感器的方向和周围物理环境的结构。所有视觉SLAM系统都在不断的工作,以使重新投影误差(Reprojection Error)或投影点与实际点之间的差异最小化,通常是通过一种称为Bundle Adjustment(BA)的算法解决方案。vSLAM系统需要实时操作,这涉及到大量的运算,因此位置数据和映射数据经常分别进行Bundle Adjustment,但同时进行,便于在最终合并之前加快处理速度。

视觉SLAM与激光SLAM有什么区别?

在业内,视觉SLAM与激光SLAM谁更胜一筹,谁将成为未来主流趋势这一问题,成为大家关注的热点,不同的人也有不同的看法及见解,以下将从成本、应用场景、地图精度、易用性几个方面来进行详细阐述。

1.成本

从成本上来说,激光雷达普遍价格较高,但目前国内也有低成本的激光雷达解决方案,而VSLAM主要是通过摄像头来采集数据信息,跟激光雷达一对比,摄像头的成本显然要低很多。但激光雷达能更高精度的测出障碍点的角度和距离,方便定位导航。

2.应用场景

从应用场景来说,VSLAM的应用场景要丰富很多。VSLAM在室内外环境下均能开展工作,但是对光的依赖程度高,在暗处或者一些无纹理区域是无法进行工作的。而激光SLAM目前主要被应用在室内,用来进行地图构建和导航工作。

3.地图精度

激光SLAM在构建地图的时候,精度较高,思岚科技的RPLIDAR系列构建的地图精度可达到2cm左右;VSLAM,比如常见的,大家也用的非常多的深度摄像机Kinect,(测距范围在3-12m之间),地图构建精度约3cm;所以激光SLAM构建的地图精度一般来说比VSLAM高,且能直接用于定位导航。

视觉SLAM的地图建立

4.易用性

激光SLAM和基于深度相机的视觉SLAM均是通过直接获取环境中的点云数据,根据生成的点云数据,测算哪里有障碍物以及障碍物的距离。但是基于单目、双目、鱼眼摄像机的视觉SLAM方案,则不能直接获得环境中的点云,而是形成灰色或彩色图像,需要通过不断移动自身的位置,通过提取、匹配特征点,利用三角测距的方法测算出障碍物的距离。

总体来说,激光SLAM相对更为成熟,也是目前最为可靠的定位导航方案,而视觉SLAM仍是今后研究的一个主流方向,但未来,两者融合是必然趋势。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    从算法角度看 SLAM(第 2 部分)

    作者: Aswin S Babu 正如我们在[第 1 部分]中所讨论的,SLAM 是指在无地图区域中估计机器人车辆的位置,同时逐步绘制该区域地图的过程。根据使用的主要技术SLAM 算法可分为三种
    的头像 发表于 10-02 16:39 209次阅读
    从算法角度看 <b class='flag-5'>SLAM</b>(第 2 部分)

    一种适用于动态环境的实时视觉SLAM系统

    既能保证效率和精度,又无需GPU,行业第一个达到此目标的视觉动态SLAM系统。
    的头像 发表于 09-30 14:35 304次阅读
    一种适用于动态环境的实时<b class='flag-5'>视觉</b><b class='flag-5'>SLAM</b>系统

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度学习
    发表于 04-23 17:18 1204次阅读
    深度解析深度学习下的语义<b class='flag-5'>SLAM</b>

    基于多摄像头的高鲁棒性视觉SLAM系统设计

    本文的主要目标是通过扩展ORB-SLAM2的功能来增强准确性,从多个摄像头中的姿态估计和地图重用开始。所有这些多摄像头的图像特征将被合并到跟踪模块中进行特征匹配,以及在闭环检测期间进行位置识别。
    发表于 04-20 17:51 487次阅读
    基于多摄像头的高鲁棒性<b class='flag-5'>视觉</b><b class='flag-5'>SLAM</b>系统设计

    工程实践中VINS与ORB-SLAM的优劣分析

    ORB-SLAM是一种基于特征的单目视觉SLAM系统,广泛用于实时三维地图构建和机器人定位。该系统使用ORB特征进行高效的视觉识别和地图重建,支持关键帧
    的头像 发表于 04-08 10:17 2475次阅读
    工程实践中VINS与ORB-<b class='flag-5'>SLAM</b>的优劣分析

    什么是SLAMSLAM算法涉及的4要素

    SLAM技术可以应用在无人驾驶汽车、无人机、机器人、虚拟现实等领域中,为这些领域的发展提供了支持。SLAM技术的发展已经逐渐从单纯的定位和地图构建转向了基于场景理解的功能。
    发表于 04-04 11:50 2081次阅读

    什么是SLAM?基于3D高斯辐射场的SLAM优势分析

    基于NeRF的SLAM算法采用全局地图和图像重建损失函数,通过可微分渲染捕获稠密的光度信息,具有高保真度。
    的头像 发表于 04-01 12:44 632次阅读

    从基本原理到应用的SLAM技术深度解析

    LSD-SLAM 即 Large-Scale Direct SLAM,兼容单目相机和双目相机。LSD-SLAM是一种基于光流跟踪的直接法SLAM,但是实现了半稠密建图,建图规模大,可以
    发表于 02-26 09:41 8788次阅读
    从基本原理到应用的<b class='flag-5'>SLAM</b><b class='flag-5'>技术</b>深度解析

    基于NeRF/Gaussian的全新SLAM算法

    基于NeRF的SLAM算法采用全局地图和图像重建损失函数,通过可微分渲染捕获稠密的光度信息,具有高保真度。
    的头像 发表于 01-26 10:48 590次阅读
    基于NeRF/Gaussian的全新<b class='flag-5'>SLAM</b>算法

    动态环境中基于神经隐式表示的RGB-D SLAM

    神经隐式表示已经被探索用于增强视觉SLAM掩码算法,特别是在提供高保真的密集地图方面。
    的头像 发表于 01-17 10:39 837次阅读
    动态环境中基于神经隐式表示的RGB-D <b class='flag-5'>SLAM</b>

    基于视觉SLAM的研究现状

    目前视觉SLAM系统可以在微型个人计算机(PC)和嵌入式设备中运行,甚至可以在智能手机等移动设备中运行(Klein和Murray,2009)。与室内或室外移动机器人不同,自动驾驶车辆具有更复杂的参数,尤其是当车辆在城市环境中自动驾驶时。
    发表于 12-04 09:22 963次阅读
    基于<b class='flag-5'>视觉</b><b class='flag-5'>SLAM</b>的研究现状

    什么是激光雷达3D SLAM技术

    理解,SLAM的主要功能就是让机器人一边计算自身位置,一边构建环境地图,这两个过程相辅相成。可以说,SLAM技术是机器人后续自主行动和实现交互的基础,SLAM也被认
    的头像 发表于 11-25 08:23 1501次阅读
    什么是激光雷达3D <b class='flag-5'>SLAM</b><b class='flag-5'>技术</b>?

    中强光智能3D激光SLAM无人叉车技术特点详解

    中强光智能自主研发的3D激光SLAM无人叉车KSRB1425由智能3D激光导航出发,结合视觉及多项感知融合技术,搭配先进的演算能力,实现智能化精准运动
    的头像 发表于 11-10 15:59 813次阅读

    浅谈100G OTN运维技术

    电子发烧友网站提供《浅谈100G OTN运维技术.pdf》资料免费下载
    发表于 11-10 14:57 0次下载
    <b class='flag-5'>浅谈</b>100G OTN运维<b class='flag-5'>技术</b>

    浅谈煤矿固定设备中变频技术的广泛应用

    电子发烧友网站提供《浅谈煤矿固定设备中变频技术的广泛应用.doc》资料免费下载
    发表于 11-03 09:43 0次下载
    <b class='flag-5'>浅谈</b>煤矿固定设备中变频<b class='flag-5'>技术</b>的广泛应用