这套视频所展示的最核心技术点是通过计算机视觉进行同步定位与地图构建(SLAM)。但 SLAM 是什么,室内定位为什么不用其他设备进行扫描构图?这要从移动端进行空间定位开始说起。 对于空间定位,我们可以通过蓝牙,路由器等建立标准点,或者通过红外线进行室内扫描来进行判定。但是一旦将室内定位与 VR 联系起来,就无法通过其它设备进行辅助了。目前我们已经能通过 Oculus 和 HTC Vive 的摄像头和「base station」做到进行小范围内的室内定位,但在移动 VR 领域里,空间定位一直是难题,目前还没有任何一个消费者级移动 VR 设备能够做到空间移动,哪怕是 Gear VR。 如果要让移动 VR 产品具有室内定位功能,我们要么需要在外部环境架设识别设备进行捕捉,要么则赋予产品本身判断环境的能力。由此,我们就衍生出了两大场景识别机制:Inside-Out 与 Outside-In。 由内至外与由外向内 顾名思义,Inside-Out 是从发射端发射场景识别信号,经过外部环境后再传送到发射端进行数据处理,也就是说设备本身即是发射端也是接收端。Inside-Out 因为涉及到复杂的计算机视觉算法和需要与强大的硬件支持限制,一直无法普及到小型设备中。
(Google 的 Project Tango 就是一款通过 Inside-Out 进行室内重建的典型案例) 而 Outside-In 则是在外部建立信号发射设备,信号经过外部环境之后再传输到产品自身的接收端中,从而实现位置,场景的判断。目前来说,Outside-In 的技术因为实现简单,效果好而被广泛普及。
在 Inside-Out 中有一个非常重要而领域——SLAM(Simultaneous Localization And Mapping),即同步定位与地图构建。利用计算机视觉算法和多种传感器融合实现移动机器人的定位、追踪和导航,原理上大致是计算不同时间/位置捕捉的 两张图片间深度信息差异和物体形变来计算机器人移动的路线和距离。 在用途上,传统的军工、工业领域巡航导 弹、采矿自动化、水下勘探应用,到近年来热门的智能机器人、自动驾驶汽车,再到正在成为大公司研究方向的 AR/VR 都会用到 SLAM 技术。
什么是SLAM? 机器人在未知环境中,要实现智能化需要完成三个任务,第一个是定位(Localization),第二个是建图(Mapping),第三个则是随后的路径规划(Navigation)。 之 前地平线的高翔博士用这样一句话概括SLAM的释义。不过实际生活中的SLAM都是和激光雷达或者单目/双目摄像头结合的形式出现在我们面前的,有时甚至 跟更多的传感器融合,这让很多人觉得这个技术不是一两句话能概括清楚的,但当我们熟悉完它在每一个领域的应用啊,就会明白,它,SLAM,原来是这样一个东西,而且会比我们所想象的要重要的多。 若是两年前有人跟我们提SLAM技术的话,很多人的印象是那个是用在室内移动机器人上的技术,如果非要找个刚需场景的话,扫地机那边画图边扫地的样子简直是最好像向陌生人解释这东西有多牛掰的神器。 但是,谁也没料到,两年后,因为计算机视觉技术的快速发展,摄像头和激光雷达成本的降低,SLAM正在AR、机器人、无人机、无人驾驶等领域火速入侵,用夸张点的说法,就像移动互联网时代的手机地图定位一样,只要是跟位置相关的生意,谁抛弃了这张地图,谁将抛弃了自己的未来。 SLAM的世纪意义 至于SLAM技术为什么这么重要,用SLAM技术发烧友Guang Ling的话说。 一 个机器人也好,无人汽车也好,其中最核心,最根本的问题有四个,定位技术(Localization), 跟踪技术(Tracking), 路径规划技术(Path Planning), 还有就是控制技术(Controlling)。 而这四个问题中的前三个,SLAM都扮演了最核心的功能, 其意义,打个比方,就像移动互联网时代中,wifi和3/4G数据传输技术对手机的意义,是一样的。扮演一个最核心,也是最不可或缺的角色。 若是手机离开了WIFI和数据网络,就像无人车和机器人,离开了SLAM一样。但对于AR和AI来说,因为这两个品类非常宽泛,所以,SLAM对其影响,就相对比较有限。 SLAM 分为几大类? 目前来看,基于 SLAM 的解决方案普遍分为双目、RGB-D 和 RGB 三类。 双目视觉 SLAM 方案即是使用双摄像头进行场景判定:经过对比二者摄像头所产生的差异后可以产生深度环境信息,从而构建场景。由于摄像头设定的角度和硬件本身存在的差异性,双目视觉 SLAM 构建出来的场景会有些许偏差。
(双摄像头采集图像后形成的深度视差,图片来源于 itisar.com) 基于深度摄像头(RGB-D)构建 SLAM 是比较普遍的应用,其中最被人熟知的则是 Kinect Fusion 的动作捕捉方案(这套 SDK 是开源的,感兴趣的话不妨在网上搜一搜)。Kinect 通过搭载的红外线发射器和 CMOS 摄像机构成深度摄像器,通过捕捉多自由度的运动轨迹加以进行 3D 建模,判断深度信息。
(通过 Kinect 深度摄像头捕捉到的深度图像,经过一系列滤波和乐高图拆分融合形成的 3D 图像) 最后的单目 SLAM(RGM)是最复杂也是最难实现的解决方案:即使用单个不带深度传感的摄像头进行环境重建和定位,这就更多地依靠计算机视觉和一系列滤波算法与设备自身搭配的其他硬件(陀螺仪等姿态传感器)。而且,一般采用单目 SLAM 的产品一定会搭配深度摄像头实现更多元的图像信息。 这种技术大多对硬件性能要求很高,如果无法跟传感器进行良好的配合,则在结果上就会有较大的偏差。无论是 Google 的 Project Tango 计划,还是 Oculus 的 John Carmark,都在讨论利用单目 SLAM 进行空间定位的解决方案。 总得来讲,通过摄像头进行室内空间定位正在从理论研究逐渐落地,渗透到各个领域,我们已经能从无人驾驶汽车,机器人上看到 SLAM 的应用场景了。随着小型芯片性能的提高和算法研究的优化,以移动设备为主的小型设备也初露锋芒。移动 VR/AR 作为新兴的领域,恰好给了 SLAM 一个施展拳脚的空间。 SLAM技术在AR上的应用,跟机器人不一样吗? 既然SLAM技术如文章SLAM的世纪意义所说,它对于机器人是个通用技术,要更深入的了解它,你只能通过它在不同领域应用的异同来比较,你才会知道它到底是个什么东西。 * 关于SLAM技术在AR行业的应用,跟在机器人上使用时有什么不同的地方。Watchhhh Slam创始人刘博士在接受arinchina采访的时候曾给出了很好的答案,这里就不重复了: 1) 精度上,AR一般更关注于局部精度,要求恢复的相机运动避免出现漂移、抖动,这样叠加的虚拟物体才能看起来与现实场景真实地融合在一起;机器人一般更关注 全局精度,需要恢复的整条运动轨迹误差累积不能太大,循环回路要能闭合,而在某个局部的漂移、 抖动等问题往往对机器人应用来说影响不大。 2)效率上,AR需要在有限的计算资源下实时求解,人眼的刷新率为24帧,所以AR的计算效率通常需要到达30帧以上; 机器人本身运动就很慢,可以把帧率降低,所以对算法效率的要求相对较低。 3)配置上,AR对硬件的体积、功率、成本等问题比机器人更敏感,比如机器人上可以配置鱼眼、双目或深度摄像头、高性能CPU等硬件来降低SLAM的难度,而AR应用更倾向于采用更为高效、鲁邦的算法达到需求。 * 关于SLAM技术在AR行业的应用,跟在无人机行业的应用有什么不同的地方。易瞳CTO艾韬表示 无人机范围大,精度要求没那么高,有其他的光流、超声波传感器的辅助;而应用在AR的话,AR的帧率要求高,定位要求更高,对体验也要求更高。 * 关于SLAM技术在机器人行业的应用,跟在无人车行业的应用有什么不同的地方。Velodyne激光雷达的老翁表示 SLAM在无人驾驶中的应用和移动机器人中的应用,从原理上讲,没有任何区别,无人驾驶汽车,就是移动机器人中的一种。sabastian教授的《Aritificial Inteligence for Robot》教程中,直接把无人驾驶汽车,叫做移动机器人。 但实际应用场景的差别,会让传感器和所用激光雷达的成本很不一样。 * 关于SLAM技术在无人机行业的应用,跟在无人车行业的应用有什么不同的地方。Velodyne激光雷达的老翁接着表示 关 于无人车和无人机中,Slam的区别,最大的区别是二维和三维。无人车是二维,无人机是三维。SLAM在二维世界中,有三个量,x轴,y轴,和方向角。三 维世界中,会复杂很多,有6个量,x,y,z,roll,yaw,pitch。就是说,在确定位置时,无人机要多确定三个量,相应的计算量会大很多。但是 原理仍然是一样的。 它正在入侵这些领域 一个技术重要的最好证据,就是看见它正在在各个领域深入应用,并且各个领域都视它为未来,下面我们从这四个时下最热的领域一窥它的火爆。 1)室内机器人 扫地机要算机器人里最早用到SLAM技术这一批了,国内的科沃斯、塔米扫地机通过用SLAM算法结合激光雷达或者摄像头的方法,让扫地机可以高效绘制室内地图,智能分析和规划扫地环境,从而成功让自己步入了智能导航的阵列。 不过有意思的是,科沃斯引领时尚还没多久,一大帮懂Slam算法的扫地机厂商就开始陆陆续续地推出自己的智能导航,直到昨天笔者还看到一款智能扫地机新鲜出炉,而这追逐背后的核心,大家都知道就是SLAM技术的应用。
而 另一个跟SLAM息息相关的室内移动机器人,因为目前市场定位和需求并不明确,我们目前只能在商场导购室内机器人和Buddy那样的demo视频里才能看 到,国内Watchhhh Slam和Slam Tech两家公司都是做这方面方案提供的,以现实的观点看,现在室内移动机器人市场定位和需求没落地的时候,由方案商公司推动,商用室内移动机器人先行, 这反而是一种曲线救国的发展方式。 2)AR 目前基于SLAM技术开发的代表性产品有微软的Hololens,谷歌的 Project Tango以及同样有名的Magic Leap,后者4月20号公布它的新一代水母版demo后,国内的AR公司更加看到了这个趋势,比如进化动力近期就公布了他们的SLAM demo, 用一个小摄像头实现VR头显空间定位,而易瞳去年10月雷锋网去试用新品的时候,就发现已经整合SLAM技术了,国内其他公司虽然没有正式公布,但我们可 以肯定,他们都在暗暗研发这项技术,只等一个成熟的时机就会展现给大家。
进化动力CTO聂崇岭表示,如果用一个准确的说法,很多VR应用需要用到SLAM技术,定位只是一个feature,路径记录、3D重构、地图构建都可以是SLAM技术的输出。 3)无人机 国 外的话,原来做 Google X Project Wing 无人机的创始人 MIT 机器人大牛 Nicholas Roy 的学生 Adam Bry 创办的 Skydio,挖来了 Georgia Tech 的 Slam 大牛教授 Frank Dellaert 做他们的首席科学家。 国内大家非常熟悉的大疆精灵四避障用的双目视觉+超声波,一位大疆工程师徐枭涵在百度百家的撰文里坦率承认 “P4 里面呈现的主动避障功能就是一种非常非常典型的Slam的弱应用,无人机只需要知道障碍物在哪,就可以进行 Planning,并且绕开障碍物。当然Slam能做的事情远远不止这些,包括灾区救援,包括探洞,包括人机配合甚至集群,所有的关于无人机的梦想都建立 在Slam之上,这是无人机能飞(具有定位,姿态确定以后)的时代以后,无人机最核心的技术。”
而近期另一个号称刷爆美国朋友圈的hover camera无人机,因为其创始人的的计算机视觉背景,正式把SLAM技术应用进来了,在介绍他们无人机的主要产品技术时,提到了 ●SLAM(即时定位与地图构建):通过感知自身周围环境来构建3D增量式地图,从而实现自主定位和导航。 4)无人驾驶 因为Google无人驾驶车的科普,很多人都知道了基于激光雷达技术的Lidar Slam。Lidar Slam是指利用激光雷达作为外部传感器,获取地图数据,使机器人实现同步定位与地图构建。虽然成本高昂,但目前为止是最稳定、最可靠、高性能的SLAM方式。 SLAM在同一个行业的应用,用摄像头和激光雷达的区别在哪里 很多人注意到,同一个行业的SLAM应用,有人用相对传统的激光雷达技术,有人用号称必定是未来趋势的计算机视觉技术(单目+双目摄像头),以室内机器人为例,它们的区别在哪里呢? 速腾聚创CEO邱纯鑫表示,区别应该从传感器分,再从算法上分,他们精度上目前能做到差不多,激光相对要稳定一些,而帧数,视觉要快很多,比如比30针(人眼上限)要快很多,毕竟每秒出数不同,配置的话,现在激光雷达也有平价华的方案了,配置要求都不是那么高。 而以无人机为例,不管精灵四还是Hover camera的SLAM,各家都要在SLAM技术上结合额外的超声波或者光流技术定位,雷锋网问邱纯鑫这是不是表明纯SLAM技术有硬伤,邱纯鑫表示 纯SLAM算法是有些问题的,比如基于已经地图的SLAM还是基于未知环境的SLAM,后者就有难度。 小结: 从上面SLAM在各大领域的小荷才露尖尖角,我们已经嗅到了SLAM将在各个领域全面入侵的苗头。 有了它,将让真正的智能机器人触手可及。 有了它,无人机将不再依赖于鸡肋的色块识别。 有了它,Magic Leap 这样的AR神话将变成现实。 …… 如果仅仅是一个无人机行业,借用大疆那位工程师的经典点评“所有的关于无人机的梦想都建立在SLAM之上”,那其它行业SLAM将带给我们怎样的震撼,你能预见吗?