激光SLAM与视觉SLAM的现状与趋势-程序员宅基地

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

整理:公众号@机器人e资讯

本文仅做学术分享,如有侵权,请联系删除。

本文作者龙建睿,深圳市大道智创科技有限公司联合创始人&研发总监,美国伊利诺伊理工大学博士研究生,“E巡-机器警长”首席产品经理。

同时定位与地图构建(Simultaneous Localization And Mapping,简称SLAM),通常是指在机器人或者其他载体上,通过对各种传感器数据进行采集和计算,生成对其自身位置姿态的定位和场景地图信息的系统。SLAM技术对于机器人或其他智能体的行动和交互能力至为关键,因为它代表了这种能力的基础:知道自己在哪里,知道周围环境如何,进而知道下一步该如何自主行动。它在自动驾驶、服务型机器人、无人机、AR/VR等领域有着广泛的应用,可以说凡是拥有一定行动能力的智能体都拥有某种形式的SLAM系统。

 一般来讲,SLAM系统通常都包含多种传感器和多种功能模块。而按照核心的功能模块来区分,目前常见的机器人SLAM系统一般具有两种形式:基于激光雷达的SLAM(激光SLAM)和基于视觉的SLAM(Visual SLAM或VSLAM)

激光SLAM简介

激光SLAM脱胎于早期的基于测距的定位方法(如超声和红外单点测距)。激光雷达(Light Detection And Ranging)的出现和普及使得测量更快更准,信息更丰富。激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。

激光雷达距离测量比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。激光SLAM理论研究也相对成熟,落地产品更丰富。            图1,激光SLAM的地图构建(谷歌Cartographer[1])

VSLAM简介

眼睛是人类获取外界信息的主要来源。视觉SLAM也具有类似特点,它可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。早期的视觉SLAM基于滤波理论,其非线性的误差模型和巨大的计算量成为了它实用落地的障碍。近年来,随着具有稀疏性的非线性优化理论(Bundle Adjustment)以及相机技术、计算性能的进步,实时运行的视觉SLAM已经不再是梦想。

通常,一个VSLAM系统由前端和后端组成(图2)。前端负责通过视觉增量式计算机器人的位姿,速度较快。后端,主要负责两个功能:

  • 一是在出现回环(即判定机器人回到了之前访问过的地点附近)时,发现回环并修正两次访问中间各处的位置与姿态;

  • 二是当前端跟踪丢失时,根据视觉的纹理信息对机器人进行重新定位。简单说,前端负责快速定位,后端负责较慢的地图维护。

VSLAM的优点是它所利用的丰富纹理信息。例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉则可以轻易分辨。这带来了重定位、场景分类上无可比拟的巨大优势。同时,视觉信息可以较为容易的被用来跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。第三,视觉的投影模型理论上可以让无限远处的物体都进入视觉画面中,在合理的配置下(如长基线的双目相机)可以进行很大尺度场景的定位与地图构建。

图2,视觉SLAM的前端定位与后端地图维护(ORB-SLAM2[2])

接下来我们将在细分项目上比较激光SLAM和VSLAM。

应用场景

在应用场景上,激光SLAM依据所使用的激光雷达的档次基本被分为泾渭分明的室内应用和室外应用,而VSLAM在室内外都有丰富的应用环境。VSLAM的主要挑战是光照变化,例如在室外正午和夜间的跨时间定位与地图构建,其工作稳定性不如高端室外多线激光雷达。近年来,光照模型修正和基于深度学习的高鲁棒性特征点被广泛应用于视觉SLAM的研究中,体现出良好的效果,应当说VSLAM随着这些技术的进步将会在光照变化的环境中拥有更稳定的表现。

影响稳定工作的因素

激光SLAM不擅长动态环境中的定位,比如有大量人员遮挡其测量的环境,也不擅长在类似的几何环境中工作,比如在一个又长又直、两侧是墙壁的环境。由于重定位能力较差,激光SLAM在追踪丢失后很难重新回到工作状态。而视觉SLAM在无纹理环境(比如面对整洁的白墙面),以及光照特别弱的环境中,表现较差。

定位和地图构建精度

在静态且简单的环境中,激光SLAM定位总体来讲优于视觉SLAM;但在较大尺度且动态的环境中,视觉SLAM因为其具有的纹理信息,表现出更好的效果。在地图构建上,激光SLAM的特点是单点和单次测量都更精确,但地图信息量更小;视觉SLAM特别是通过三角测距计算距离的方法,在单点和单次测量精度上表现总体来讲不如激光雷达,但可以通过重复观测反复提高精度,同时拥有更丰富的地图信息。

累计误差问题

激光SLAM总体来讲较为缺乏回环检测的能力,累计误差的消除较为困难。而视觉SLAM使用了大量冗余的纹理信息,回环检测较为容易,即使在前端累计一定误差的情况下仍能通过回环修正将误差消除。

传感器成本

激光雷达事实上有许多档次,成本都高于视觉传感器。最昂贵如Velodyne的室外远距离多线雷达动辄数十万元人民币,而室外使用的高端中远距离平面雷达如SICK和Hokuyo大约在数万元人民币的等级。室内应用较广的中低端近距离平面激光雷达也需要千元级—,其价格相当于比较高端的工业级摄像头和感光芯片。激光雷达量产后成本可能会大幅下降,但能否降到同档次摄像头的水平仍有一个大大的问号。

传感器安装和稳定性

目前常见的激光雷达都是旋转扫描式的,内部长期处于旋转中的机械结构会给系统带来不稳定性,在颠簸震动时影响尤其明显。而摄像头不包含运动机械结构,对空间要求更低,可以在更多的场景下安装使用(图3)。不过,固态激光雷达的逐步成熟可能会为激光SLAM扳回这项劣势。

图3 激光雷达和视觉系统的安装应用。谷歌无人车上的多线激光雷达

DJI精灵4上的视觉系统。

算法难度

激光SLAM由于其研究的成熟以及误差模型的相对简单,在算法上门槛更低,部分开源算法甚至已经被纳入了ROS系统成为了标配。而反观视觉SLAM,首先图像处理本身就是一门很深的学问,而基于非线性优化的地图构建上也是非常复杂和耗时的计算问题。现在已经有许多优秀的开源算法(如ORB-SLAM[2]、LSD-SLAM[3]),但在实际环境中优化和改进现有的视觉SLAM框架,比如加入光照模型、使用深度学习提取的特征点、以及使用单双目及多目融合视角等技术,将是视觉SLAM进一步提升性能和实用性的必由之路。这些技术的算法门槛也远远高于激光SLAM。

计算需求

毫无疑问,激光SLAM的计算性能需求大大低于视觉SLAM。主流的激光SLAM可以在普通ARM CPU上实时运行,而视觉SLAM基本都需要较为强劲的准桌面级CPU或者GPU支持。但业界也看到了这其中蕴藏的巨大机会,为视觉处理定制的ASICS市场已经蠢蠢欲动。一个很好的例子是Intel旗下的Movidius,他们设计了一种特殊的架构来进行图像、视频与深度神经网络的处理,在瓦级的超低功耗下达到桌面级GPU才拥有的吞吐量。DJI的精灵4系列产品就是使用这类专用芯片,实现了高速低功耗的视觉计算,为无人机避障和近地面场景导航提供根据。

多机协作

视觉主要是被动探测,不存在多机器人干扰问题。而激光雷达主动发射,在较多机器人时可能产生干扰。尤其是固态激光雷达的大量使用,可能使得场景中充满了信号污染,从而影响激光SLAM的效果。

未来趋势

激光SLAM和视觉SLAM各擅胜场,单独使用都有其局限性,而融合使用则可能具有巨大的取长补短的潜力。例如,视觉在纹理丰富的动态环境中稳定工作,并能为激光SLAM提供非常准确的点云匹配,而激光雷达提供的精确方向和距离信息在正确匹配的点云上会发挥更大的威力(图4)。而在光照严重不足或纹理缺失的环境中,激光SLAM的定位工作使得视觉可以借助不多的信息进行场景记录。

图4,KITTI数据集视觉里程计。ORB-SLAM[2],双目视觉。


V-LOAM[4],视觉引导激光修正。

 现实中的激光与视觉SLAM系统几乎都会配备惯性元件、轮机里程计、卫星定位系统、室内基站定位系统等辅助定位工具,而近年来SLAM系统与其他传感器的融合成为了一大热点。不同于以往基于卡尔曼滤波的松耦合融合方法,现在学界的热点是基于非线性优化的紧耦合融合。例如与IMU的融合和实时相互标定,使得激光或视觉模块在机动 (猛烈加减速和旋转) 时可以保持一定的定位精度,防止跟踪丢失,极大的提高定位与地图构建的稳定性。

激光点云信息本身也仍有潜力可挖。在高端的远距离多线激光雷达上,返回的点云除了包含方向和距离信息,还可以加入目标点的反射率信息。当线数较多较密时,由反射率信息构成的数据可以视为一种纹理信息,因此可以在一定程度上享受视觉算法和纹理信息带来的重定位等方面的优势。这些信息一旦融入到高精度地图中,高精度地图就可以在点云\纹理两种形式间无缝切换,使得利用高精度地图的定位可以被只拥有廉价摄像头的自动驾驶汽车分享。这也是目前国外一些团队的研究方向([5])。

同时,视觉所依赖的投影模型,蕴含着非常丰富的“混搭”玩法。长、短基线的单双目结合,可以在保证大尺度定位水平的同时提高中近距离的障碍探测和地图构建精度;广角鱼眼和360度全向摄像头与标准单双目的结合,使得VSLAM的覆盖范围可以进一步提升,特别适合对场景按照距离的远近进行不同精度不同速度的定位。被动视觉与深度相机的结合,催生了RGB-D SLAM,而深度相机量程的逐步扩大,将给这种特殊VSLAM带来更大的应用空间。

VSLAM的另一个也许更宏大的扩展在AI端。端到端的深度学习所带来的图像特征,已经在识别和分类领域大大超越了人类手工选择的SIFT/SURF/ORB等特征。我们可以很安全的说,未来在低纹理、低光照等环境下,深度学习所训练出的提取、匹配和定位估算等方法,也一定会超越目前VSLAM领域最先进的手工方法。更不用说,图像本身所大量携带的信息,可以广泛用于场景理解、场景分类、物体识别、行为预测等重要方面。一个很可能的情况是,未来视觉处理系统将直接包含定位、地图构建、运动规划、场景理解以及交互等多个功能模块,更紧密的联合带来更加智能的机器人行动能力。

如果想深入了解SLAM技术的过去、现在和未来趋势,我们推荐文献[6]。

结语

SLAM技术将赋予为机器人和智能体前所未有的行动能力。作为当前SLAM框架的主要类型,激光SLAM与视觉SLAM必将在相互竞争和融合中发展,必将带来机器人技术和人工智能技术的真正革命,也将使得机器人从实验室和展示厅中走出来,真正服务和解放人类。

引用参考:

[1] Cartographer    https://github.com/googlecartographer

[2] ORB-SLAM2   R. Mur-Artal and J. D. Tardos, “ORB-SLAM2: An open-source SLAM system for monocular, stereo, and RGB-D cameras,” IEEE Transactions on Robotics (2017).

[3] LSD-SLAM   J. Engel, J. Stuckler, and D. Cremers, “Large-scale direct SLAM with stereo cameras,” Intelligent Robots and Systems (IROS), 2015 IEEE/RSJ International Conference on. IEEE, 2015

[4] V-LOAM    J. Zhang and S. Singh, “Visual-lidar odometry and mapping: Low-drift, robust, and fast,” Robotics and Automation (ICRA), 2015 IEEE International Conference on. IEEE, 2015.

[5] G. Pascoe, W. Maddern, and P. Newman, “Direct visual localization and calibration for road vehicles in changing city environments,” Proceedings of the IEEE International Conference on Computer Vision Workshops, 2015.

[6] C. Cadena, et. al. “Past, present, and future of simultaneous localization and mapping: Toward the robust-perception age,” IEEE Transactions on Robotics 32.6 (2016): 1309-1332.

推荐阅读:

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Yong_Qi2015/article/details/106596221

智能推荐

[论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN_cyber threat prediction using dynamic heterogeneou-程序员宅基地

文章浏览阅读6.7k次,点赞7次,收藏15次。前一篇文章分享了生成对抗网络GAN的基础知识,包括什么是GAN、常用算法(CGAN、DCGAN、infoGAN、WGAN)、发展历程、预备知识,并通过Keras搭建最简答的手写数字图片生成案例。这篇文章将详细介绍北航老师发表在RAID 2020上的论文《Cyber Threat Intelligence Modeling Based on Heterogeneous Graph Convolutional Network》,基于异构图卷积网络的网络威胁情报建模。希望这篇文章对您有所帮助。_cyber threat prediction using dynamic heterogeneous graph learning

Python三次样条插值与MATLAB三次样条插值简单案例_splev函数matlab-程序员宅基地

文章浏览阅读7.3k次,点赞7次,收藏51次。1 三次样条插值早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,成为样条曲线。设函数S(x)∈C2[a,b] ,且在每个小区间[xj, xj+1]上是三次多项式,其中a=x0<x1<...<xn=b 是给定节点,则称S(x)是节点x0,x1,...xn上的三次样条函数。若在节点xj上给定函数值yj=f(xj..._splev函数matlab

Hadoop集群搭建所遇到的一些问题_error org.apache.hadoop.security.token.delegation.-程序员宅基地

文章浏览阅读3.9k次,点赞3次,收藏8次。1.命令找不到环境变量配置的不正确.2.权限问题2.1 /home/hadoop目录权限2.1 创建完hadoop用后/home/hadoop目录权限问题./home/Hadoop2.2 秘钥文件权限1.如下图的提示,是当前hadoop用的公钥没有添加到认证文件中去解决方法:将node1节点上的hadoop用户的公钥添加到认证文件中[hadoop@node1 ~]$ chmod -R 755 .ssh/[hadoop@node1 ~]$ cd .ssh/[hadoop@node_error org.apache.hadoop.security.token.delegation.abstractdelegationtokensec

ModuleNotFoundError: No module named ‘ahocorasick‘,亲测100%有效_modulenotfounderror: no module named 'ahocorasick-程序员宅基地

文章浏览阅读2.3k次,点赞10次,收藏10次。ModuleNotFoundError: No module named ‘ahocorasick‘,安装:pip install pyahocorasick -i HTTPS://mirrors.aliyun.com/pypi/simple/下面是我在安装是遇到的要安装最近在搞自然语言处理的知识图谱但是在搭建系统的时候使用了一个AC自动机词过滤,就是去掉敏感词汇就比如这些敏感词汇,需要将他替换成为**等一些隐含词或者符号。这个有许多的方法,这里列举几个:- 1、AC自动机- 2、DFA_modulenotfounderror: no module named 'ahocorasick

4kw机柜无通道封闭CFD模拟分析及优化(下篇) -孙长青_机房温度分布图-程序员宅基地

文章浏览阅读738次。本文继续接上篇文章,【技术分析】4kw机柜无通道封闭CFD模拟分析及优化(上篇)进行解析。2、方案2(单侧送风)CFD模型分析1)、方案2(单侧送风)模型基本参数方案2(单侧送风): 数据机房总面积:600m2, 其中精密空调间面积:160m2。 IT 机柜数量160台,单台功率4kw,IT总功率640KW。 电气列头柜PDR:0.5KW/..._机房温度分布图

随便推点

MIT 线性代数导论 第二讲:矩阵消元_方程组\left\{ \begin{matrix}3x - 4y = k + 1\\2x + 3y -程序员宅基地

文章浏览阅读367次。第二讲的主要内容:线性方程组的消元法使用矩阵语言表示消元过程向量、矩阵乘的理解置换矩阵的概念初步逆矩阵的概念线性方程组的消元法例子:{x+2y+z=23x+8y+z=124y+z=2\left\{\begin{matrix}x+2y+z=2\\ 3x+8y+z=12\\ 4y+z=2\end{matrix}\right.⎩⎨⎧​x+2y+z=23x+8y+z=12..._方程组\left\{ \begin{matrix}3x - 4y = k + 1\\2x + 3y = 5\end{matrix}\right.{ 3x 4y=k+1 2x+3y=5 的解中x与y的值相等,则k等于( ) a -1 b -2 c -3 d -4 查看提示

macOS下配置环境变量/查看环境变量_mac查看环境变量-程序员宅基地

文章浏览阅读4.8w次,点赞27次,收藏98次。Mac OS 的配置文件清单a. /etc/profile b. /etc/paths c. ~/.bash_profile d. ~/.bash_login e. ~/.profile f. ~/.bashrc 终端如何查看java的安装目录?输入命令:/usr/libexec/java_home -V如何查看java的版本信息?输入命令:java -version如何查看Mac的全部环境变量输入命令 export,查看全部的环境变量如何设置系统环境变量?系统环境变量应该在_mac查看环境变量

table表格------一行隐藏和显示_让row里面的内容成一行显示超出隐藏-程序员宅基地

文章浏览阅读5k次。这个功能是table原生js操作一行表_让row里面的内容成一行显示超出隐藏

使用C#使用Windows的HID通信-程序员宅基地

文章浏览阅读2k次。Windows使用HID通信相对比较简单,HID都是通过PID、VID信息来查找连接的,相比于串口,几乎无变化,连接无需人工选择,十分方便,也不需要驱动。下面上实例,PID为0x003f,VID为0x04D8,支持发送接收数据显示到UI,使用C#来编写,调用的是windows api(create file、read file、write file)。本实例将HID接口分成3层,支持自动连接..._c# hid 指定pid和vid

Python进阶学习笔记之——网络编程_self.host = '' self.port = 21567 self.buf = 1024 *-程序员宅基地

文章浏览阅读320次。网络编程1、套接字:通信端点1.1、套接字套接字是计算机网络的数据结构,它体现了“通行端点”的概念。在任何类型的通信开始之前,网络应用程序都要创建套接字。有两种类型的套接字:基于文件的和基于网络的。UNIX套接字拥有一个“家族名字” AF_UNIX(又名AF_LOCAL),它代表地址家族(address family):UNIX。因为两个进程运行在同一个计算机上,所以这些套接字都是基于文件的,这意味着文件系统支持他们的底层基础结构。因为文件系统是一个运行在同一台主机上的多个进程之间的共享常量。另一_self.host = '' self.port = 21567 self.buf = 1024 * 100 self.addr = (self.hos

JNA实战笔记汇总(二)——JNA和C / C ++的数据类型映射(dll函数回调、结构体、指针)_vixhz_initsdk-程序员宅基地

文章浏览阅读1.2w次,点赞6次,收藏80次。目录JNA技术难点1、函数回调2、结构体3、指针JNA技术难点有过跨平台、跨语言开发的程序员都知道,跨平台、预研调用的难点,就是不同语言之间数据类型不一致造成的问题。绝大部分跨平台调用的失败都是这个问题造成的。关于这一点,不论何种语言、何种技术方案都无法解决这个问题。JNA也不列外。上面说到接口中使用的函数必须与链接库中的函数原型保持一致,这是JNA甚至所有跨平台调用的..._vixhz_initsdk

推荐文章

热门文章

相关标签