阿里工程师详解典型SLAM应用场景及解决方案

2017 年 8 月 21 日 机械鸡 阿里巴巴李习华

戳我加群 ▼

 机械鸡邀你与数万名人工智能人才

共赢未来!


随着AR/VR行业的兴起,以及智能移动机器人、无人驾驶的发展,行业对SLAM技术的需求出现了井喷。


另一方面,随着传感器技术的发展,计算资源的丰富以及算法的进步,SLAM技术本身也进入了一个从算法到产品过渡的阶段。行业中已经出现了一些以SLAM技术为主的产品,但离进入千家万户还有一定的距离。


本文将从SLAM的基本技术,典型SLAM的应用以及目前行业中使用的解决方案来介绍。


SLAM技术入门


SLAM是simultaneous localization and mapping的简写,中文直译为同时定位与建图,其中又以定位更为核心,建图实际上是在定位的基础上,将观测数据进行融合的过程。


关于定位,我们或许听过很多相关的术语,GPS(全球定位系统),基站定位,WIFI定位,陀螺仪等等;但以上定位方案无论是适用场景,还是精度,抑或是价格,对于常见的SLAM应用都不能满足需求,因此需要寻求更好的定位解决方案。


定位本质上可以定义为一个估计问题,通过传感器的观测数据(存在不同程度的噪声)来估计位置;也可以定义为一个优化问题,通过多种观测数据之间的约束关系,对位置进行优化。


逻辑上,噪声越低的传感器能够获得更好的定位精度,但需要在价格和精度上寻求balance;


目前行业中使用的传感器有:激光雷达(单线、多线,能够获得对应点的深度信息),深度摄像头(TOF,结构光,双目;三种方案各有优缺点,能够获取彩色和深度图像),IMU(惯导单元,能够获得高频的位移信号),彩色摄像头(单目,鱼眼,或者是经过特殊的设计获得更大的FOV),码盘(记录累积里程,累积误差大);


对于定位,通常意义上我们都指绝对定位,比如我们的GPS,固定原点位置,所有的定位都以这个原点作为参考,并以经纬度表示;又比如建筑物内部,我们规定一个原点,其他的定位结果都已这个位置为参考,并加上度量衡(cm, m等)表示。


另外,在SLAM中我们也考虑相对定位(或者称为相对位移),当前时刻相对于前一时刻的旋转、平移量是多少,并且可以通过时序的累积得到绝对定位。


关于SLAM入门,在这里把几个相关的资料list出来:


1. slamcn主页:http://suo.im/SaPrA


2. 大神Andrew Davison的主页:http://suo.im/3WJvc1


3. openslam:http://openslam.org/


4. 《视觉SLAM十四讲》,高翔,总结比较全面,同时有对应的code可以参考


5. slam基础知识:http://suo.im/2icPv3


学习SLAM需要哪些预备知识?感兴趣的朋友可以关注一下上面的材料。


以下从三个方向,简单介绍SLAM技术的入门以及视觉SLAM技术。


1. 激光雷达定位


使用激光雷达进行定位一般情况下包含建图、定位两个过程;当然,单线和多线激光在处理时是有差异的,在此以单线激光为例。


单线激光能够获取到某一平面上以激光位置为参考的点的深度信息,一周常见的是上千个点左右;他能够很好的捕捉场景以某一平面为参考的轮廓信息。

结合如码盘等完成建图,获取2d的平面图,建好的地图参考这个图片:


通过这个图片,我们大致能够判断这个地图是办公区,然后工位信息相对准确。


定位过程可以简单的理解成,通过当前激光的观测数据,同地图信息匹配得到定位位置;当然这中间需要使用相对的位移的信息,在此不进行更多的介绍。


当环境变化较小(即地图信息不需要频繁更新)的情况下,激光雷达能够获得很好的定位精度以及定位的连续性。但对于周围环境变化较快,比如商场的公共区域,存在很多行人的情况,激光雷达定位需要做特殊处理。


2. 视觉SLAM技术


着重介绍基于视觉的SLAM技术,并且参考ORB_SLAM为例说明一个完整的视觉SLAM系统需要的多个模块。可以参考这个链接学习相关内容:


orb-slam在众多SLAM方法中处于怎样的地位?



从上图,我们大致可以将SLAM分成如下几个模块:


前端,完成VO的功能

后端,对VO的结果进行优化和融合

建图,在优化之后的定位结果上进行地图的构建

回环,当到达之前去过的位置时,通过回环进行全局的优化,减小累积误差


a1. 前端VO


VO的目标是计算两个图像帧之间的相对位移关系,由于很多时候存在深度图像,所以可以将VO分成3d-3d, 3d-2d, 2d-2d等多种情况(注意:2d-2d的方案没有尺度信息,需要想办法从其他地方引入),流程如下:


实际当中面临的问题主要是特征点的选择(精度,计算时间的平衡),配对算法的选择,以及R,T计算方法的选择。


但连续两帧之间VO的计算存在较大的累积误差,同时也并没有完整的利用帧间信息,VO基本上使用的是t,t+1时刻的信息,但实际上t+2时刻和t时刻可能同时获得某些特征点的观测信息,因此可以考虑将这些非相邻帧之间的观测信息作为约束条件,进行局部的优化,常见的如local BA



通过这个优化,我们可以认为获得了较好的前端VO数据。


a2. 后端优化


后端优化大体上有基于滤波和基于优化的两种方案。关于两种方案的实现都有多种方法,在此不进行详细介绍,因为很重要,还请读者自行学习。不过总结各自的优缺点:


EKF滤波方案:


滤波器方案一定程度上假设了马尔可夫性,但这个在实际场景中通常不一定满足;

EKF方案在小范围可以近似线性,但是在较大范围时存在非线性误差;


EKF需要存储状态量的均值和方差,随着路标数量的增大,状态量呈平方级数增加(协方差矩阵)。


基于优化的方案:


基于优化的方案目前使用越来越多,但也存在着长时间运行的规模问题


a3. 建图


建图很多情况下需要根据具体的需求决定,比如需要3d的点云地图,那就可以通过定位结果对点云数据进行融合;比如需要2d地图数据,则可以通过截取3d地图的某一个高度范围的点云并投影到某一个平面来获取;其他的比如octomap等。


总体来说建图是根据需要决定的。


a4. 回环检测


回环检测实际上完成了一个非常重要的功能,就是当目标运动到之前到达过的场景的时候,可以通过这个新的观测,完成对地图以及定位的整体优化。方法上,主要解决闭环识别的问题。逻辑上,人是通过什么方法判断自己是否到达过某一区域呢?


我们通过当前的图片信息,和之前存储过的关键帧信息进行比对,或者是进行search,通过相似程度判断是否到达过对应的区域。所以任何用来进行相似图片判断的方案都可以用到这个场景,比如ORB_SLAM中基于bow的方法。


3. 多传感器融合


传感器融合是一个趋势,也或者说是一个妥协的结果。为什么说是妥协呢?主要的原因还是由于单一的传感器不能适用所有的场景,所以我们寄希望于通过多个传感器的融合达到理想的定位效果。


简单的,目前行业中有很多视觉+IMU的融合方案,视觉传感器在大多数纹理丰富的场景中效果很好,但是如果遇到玻璃,白墙等特征较少的场景,基本上无法工作;


IMU长时间使用有非常大的累积误差,但是在短时间内,其相对位移数据又有很高的精度,所以当视觉传感器失效时,融合IMU数据,能够提高定位的精度。


再比如,无人车当中通常使用差分GPS+IMU+激光雷达(视觉)的定位方案。差分GPS在天气较好、遮挡较少的情况下能够获得很好的定位精度,但是在城市高楼区域、恶劣天气情况下效果下降非常多,这时候融合IMU+激光雷达(视觉)的方案刚好能够填补不足。


实时SLAM技术是从业者的一个追求,在这里将一些SLAM算法list如下,方便大家学习:


  • 比较有代表性的几个工作 PTAM, LSD-SLAM, ORB-SLAM

  • ROS中融合的RGBD-SLAM, RTAB-SLAM

  • 稠密、半稠密、稀疏的方案等 LSD-SLAM, SVO, DSO, DVO

  • 多传感器融合的方案,如MSCKF, OKVIS等

  • 主要是罗列一些关键词,方便大家检索


几个典型的SLAM应用场景及解决方案


slam技术目前在很多场景都有需求,有些是产品层面的真实需求,有些却是噱头。无论从哪个角度,我认为在某些应用场景当中,SLAM技术不可或缺。


比如AR/VR设备,比如需要在室内自主移动的机器人,比如无人车,比如目前兴起的室内导航等。


1. AR/VR设备


AR/VR目前来看,依旧有很多问题需要解决,但AR/VR设备自身的定位问题是需要解决的核心之一。移动的AR/VR设备由于其耗电、功耗,设备尺寸、重量等的原因,有诸多的特殊性。


总结起来,AR/VR设备中的SLAM解决方案基本上就是视觉+IMU(VIO)的方案,不过需要综合考虑设备耗电、功耗的问题;因此有很多厂商在做软硬件一体化的事儿,将某些耗电、耗时的算法通过芯片等来完成。


针对这个领域,我个人有一个观点,或许会出现一个统一的解决方案,成为标配。


2. 室内机器人


室内机器人,当有了自主移动的需求之后,就一定有对SLAM技术的需求;当然,我们也可以通过增强学习等使机器人具有可靠可控的移动能力,但目前来看,这个路还会比较遥远。


对于室内机器人,我个人建议的解决方案有两种,实际上就是含有激光雷达和不含有激光雷达的两种方案,摄像头基本上都是标配,因为室内机器人基本上会带有摄像头。


a1. 码盘+单线激光

a2. 码盘+IMU+深度摄像头


很多人会好奇,为什么会把精度不高以及累积误差较大的码盘放上,但实际经验看,在打滑不严重的情况下,码盘是最能用来应对复杂场景的。


3. 无人车


无人车需求非常强烈,个人观点如下的方案:

差分GPS+激光雷达+多摄像头(多个双目)+IMU+高精度地图

当然,除去成本因素,激光雷达或许可以省掉。


4. 室内定位(基于视觉)


基于视觉的室内定位,在AR/VR导航,以及GPS/WIFI基本上无法工作或者满足定位精度要求的场景很有用。


不知道大家有没有使用过微信的街景定位,通过拍摄一张室外的照片儿进行定位。可以简单的理解就是GPS加上图像匹配的方案进行的。在室内场景,这种方案依旧适用,但有一个问题,就是室内场景已经获取到的照片的位置真值的获取。最近看到一个解决方案是这样的:


a1. 采集待定位场景的连续视频数据(连续图片帧);

a2. 使用SFM的方案,进行室内的3d建模;

a3. 根据获得的3d模型,给图片帧赋予真值;

a4. 通过图像search 以及匹配的方法进行定位 / 或者是训练深度学习模型,input是图片,output是图片的6DOF真值,然后对新输入的定位图片进行回归。


以上方案目前来看,只解决了特定场景的定位问题,由于数据是在云端的,所以一定需要在线使用,因此定位的频率不会太高。


总结,SLAM技术目前还不是非常成熟,但需求却很多。我个人认为的趋势并不多,主要就一点,那就是:软硬件协同后的统一的解决方案,但针对各个应用场景存在tuning的空间


解释一下:


1. 未来的硬件提供商、或者是操作系统提供商,给出统一的SLAM解决方案,包括硬件,软件,芯片,并逐步成为标配;


2. 标配的方案会在成本层面进一步压缩,满足产品化的需求;


3. 各个应用场景的开发者,可以针对具体的使用场景进行tuning,这种tuning不仅仅是技术、算法层面的,也可以有硬件、芯片层面。


作者:李习华 阿里巴巴算法工程师


推荐阅读

奇虎360技术经理详解深度学习与大数据(PPT)

黑科技!世界上第一支用AI算法酿造的啤酒

收藏 ‖ 机器学习、深度学习速查思维导图

再见吧,水印君!谷歌的新算法可自动去除图片水印

吴恩达注册了1.5亿美元基金公司,专注于AI投资 

2017斯坦福大学CS224N深度学习NLP通关课程

李飞飞主讲 ‖ 斯坦福大学基于卷积神经网络的视觉识别

重磅 ‖ 科学家利用机器学习技术解码大脑(paper)

有人@你,领取27本免费的数据挖掘书籍

专访陆奇:我与李彦宏分工明确,百度要征服世界!

从收银员到斯坦福科学家,李飞飞如何凤凰涅槃?


长期招聘志愿者

加入「AI从业者社群」请备注个人信息

添加小鸡微信  liulailiuwang


登录查看更多
6

相关内容

即时定位与地图构建(SLAM或Simultaneouslocalizationandmapping)是这样一种技术:使得机器人和自动驾驶汽车等设备能在未知环境(没有先验知识的前提下)建立地图,或者在已知环境(已给出该地图的先验知识)中能更新地图,并保证这些设备能在同时追踪它们的当前位置。
最新《深度学习自动驾驶》技术综述论文,28页pdf
专知会员服务
153+阅读 · 2020年6月14日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
基于视觉的三维重建关键技术研究综述
专知会员服务
154+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
187+阅读 · 2020年4月24日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
169+阅读 · 2020年2月8日
专知会员服务
84+阅读 · 2019年12月13日
综述 | SLAM回环检测方法
计算机视觉life
14+阅读 · 2019年8月19日
干货总结 | SLAM 面试常见问题及参考解答
计算机视觉life
17+阅读 · 2019年5月19日
SLAM中VIO的优势及入门姿势
计算机视觉life
86+阅读 · 2019年5月7日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
20+阅读 · 2019年3月12日
激光slam导航方案凭什么更被各大厂家青睐?
计算机视觉life
15+阅读 · 2019年1月25日
视觉SLAM技术综述
计算机视觉life
25+阅读 · 2019年1月4日
对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?
人工智能学家
8+阅读 · 2018年11月13日
从零开始一起学习SLAM | SLAM有什么用?
计算机视觉life
18+阅读 · 2018年9月17日
SLAM入门+典型SLAM应用及解决方案
全球人工智能
13+阅读 · 2017年8月17日
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
S4Net: Single Stage Salient-Instance Segmentation
Arxiv
10+阅读 · 2019年4月10日
Arxiv
11+阅读 · 2018年5月13日
VIP会员
相关VIP内容
最新《深度学习自动驾驶》技术综述论文,28页pdf
专知会员服务
153+阅读 · 2020年6月14日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
基于视觉的三维重建关键技术研究综述
专知会员服务
154+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
187+阅读 · 2020年4月24日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
169+阅读 · 2020年2月8日
专知会员服务
84+阅读 · 2019年12月13日
相关资讯
综述 | SLAM回环检测方法
计算机视觉life
14+阅读 · 2019年8月19日
干货总结 | SLAM 面试常见问题及参考解答
计算机视觉life
17+阅读 · 2019年5月19日
SLAM中VIO的优势及入门姿势
计算机视觉life
86+阅读 · 2019年5月7日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
20+阅读 · 2019年3月12日
激光slam导航方案凭什么更被各大厂家青睐?
计算机视觉life
15+阅读 · 2019年1月25日
视觉SLAM技术综述
计算机视觉life
25+阅读 · 2019年1月4日
对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?
人工智能学家
8+阅读 · 2018年11月13日
从零开始一起学习SLAM | SLAM有什么用?
计算机视觉life
18+阅读 · 2018年9月17日
SLAM入门+典型SLAM应用及解决方案
全球人工智能
13+阅读 · 2017年8月17日
相关论文
Top
微信扫码咨询专知VIP会员