在过去几十年的科技发展史上,科学家们一直在探索如何让计算机更精准地理解和重构人类所处的空间。

无论是火星车在遥远星球上的孤独旅程,还是手中智能设备在密闭空间中的精确定位,无论是无人驾驶汽车在路面飞驰,还是智能机器人自主探索世界,SLAM技术都扮演着至关重要的角色。先进技术的不断涌现,使得计算机不仅能“看到”世界,还能在更复杂的环境中“理解”和“导航”,并对空间计算的未来产生潜在的影响,扩展人类对物理和数字世界的认知边界。

01

2003年7月7日美国卡纳维拉尔角(Cape Canaveral),一架Delta 2火箭发射升空,携带着机遇号(Oppertunity)火星探测车飞向遥远的火星。

打开网易新闻 查看更多图片

在经历了200余天的漫长飞行后,机遇号于2004年1月25日降落在了火星的子午线高原,开始了对这颗陌生星球的探索,通过寻找地质线索,确定火星的部分地区过去是否存在适合生命生存的潮湿环境。

火星与地球间的距离即使在近点也超过5000万千米,这意味着将近6分钟的往返通讯延迟,而且二者的自转还会造成信号的遮挡,因此在整个火星探测的过程中,机遇号在接收到遥远地球发来的任务目标后,大部分时间必须自主的执行任务。

一个首要的问题,就是如何在没有GPS网络覆盖的火星上确定自己的位置和行驶轨迹,以保证向目标地点的移动不会偏离预定的路线。

相比它的前辈索杰纳号,机遇号在外观上有着明显大的差异——一根高高竖起的桅杆上,安装了一对navcams(导航相机)。这两个摄像头拥有1024×1024像素的CCD阵列,FOV为45度,基线为20厘米,可以生成12位的灰度图像,用于帮助机遇号进行导航并避开路途中的障碍。

过去,科学家们为火星探测车设定的定位方式,是在火星车静止时使用太阳传感和加速度计来初始化自身的姿态,随后在火星探测车行驶的过程中,不断通过陀螺仪和车轮上的里程记来计算自身的运动矢量。

用这种方式来追踪火星探测车的行驶轨迹有很大的局限性——一旦碰到斜坡或者沙地这样的路况造成车轮打滑,就会导致定位偏离了探测车实际所在的位置,通俗来说,就是定位漂移了。机遇号在火星上就曾经发生过一次严重的事故,陷入沙堆中车轮原地旋转了相当于50米的行驶距离,如果仅仅依赖于车轮里程记,机遇号的位置将发生50米的漂移,大幅度影响到探测任务的执行。

这时候,机遇号的navcams就能够发挥出重要的作用——它们可以通过视觉特征跟踪的算法(现在通常被称为视觉里程记,缩写为VO,代表Visual Odometry),来不断估算两次拍摄之间火星车的运动矢量。这也是在不增加额外硬件的情况下,火星探测车解决定位漂移的唯一方案。

打开网易新闻 查看更多图片

视觉里程记能够从两个navcams拍摄的画面中寻找出特征点并建立3D坐标,随后在多个分辨率的立体画面中对这些特征点进行匹配,从而计算出两帧画面之间火星车的方向变化和位移距离。这一算法在1980年由Moravec提出,并在后续经历了多次改良。

受限于研发时间,机遇号的导航系统并没有使用相关算法将视觉里程记得出的运动信息与IMU(惯性计量单元,通常包含陀螺仪和加速度计)以及车轮里程记的数据做结合,而是直接替代IMU+车轮里程记的运动估算数据,或者至少替代其中的位置变化数据(姿态变化的数据由陀螺仪得出,通常不会有大幅度的漂移)。

这幅图片记录了机遇号在Wopmay岩石附近的行驶轨道。黑色的椭圆大致代表岩石的位置。左侧的图片为IMU+车轮里程记记录的位置,右侧的图片为相同路线经过VO修正后接近真实行驶路径的数据。

机遇号从左上角的位置出发,先驶向岩石,然后试图绕行。在1点钟左右的方向,机遇号经历了一次下坡的过程,从图片可以看出,下坡过程中车轮里程记显示的位置会比火星车实际的位置要更靠上。

受限于机遇号火星探测车的芯片性能——车体电脑使用的是一块主频仅有20MHz的RAD6000中央处理器,通过视觉里程记来获取和处理一次立体画面并更新机遇号的位置和姿态需要花费接近3分钟的时间,还要求相邻两次拍摄的间距不超过75cm,摄影方位角的变化不超过18度,因此视觉里程记并无法用于机遇号的全行程,而是用于短距离关键路径上的局部定位,例如车轮打滑或者接近指定的科研目标时。

但视觉里程记已经在这项任务中展现出了较高精度和高自主性的优势,并展现了计算机通过视觉方式处理定位问题的巨大潜力。

02

在计算机领域,如何在陌生的环境中实现更精准的定位,是许多科学家们孜孜不倦长期研究的方向。人们将这种定位技术称为Simultaneous Localization and Mapping(同时定位和地图构建),缩写正是大家经常提起的SLAM。

顾名思义,SLAM技术能够帮助设备在环境中确定其精确的位置,创建环境的详细地图帮助计算机理解周围环境结构,还能够结合定位和地图构建功能实现复杂的路径规划和避障任务。

这项技术对于导弹精确制导、智能机器人、自动驾驶汽车、虚拟/增强现实设备等诸多领域,都具备着十分重要的意义。

有人将SLAM技术的发展分为三个阶段:1960~2003年被称为“古典时代(Classical Age)”,2003年~2013年被称为“vSLAM黄金时代”,2013年至今则被称为“提升健壮性(robustness)的第三时代”。

在古典时代,科学家们主要的研究方向,是验证SLAM问题是否有解。

1960年,匈牙利数学家Rudolf E. Kalman提出了一种递推滤波算法,成功的将状态变量引入了滤波理论。在NASA埃姆斯研究中心访问时,他发现这种算法对于解决阿波罗计划的轨道预测很有用。后来阿波罗飞船的导航电脑使用了这种滤波器,因此这种算法也被命名为卡尔曼滤波(Kalman Filter),主要用于结合雷达系统实现定位功能。

1979年,Maybeck将卡尔曼滤波算法拓展到了非线性系,实现了Extended Kalman Filter(EKF),常用于目标跟踪系统。

1986年R.C. Smith和P. Cheeseman对于空间不确定性表示和估算的研究,以及1991年Hugh F. Durrant-Whyte对于《针对自动行动机器人同时建筑地图构建和定位(Simultaneous map building and localization for an autonomous mobile robot)》的研究,证明了在无限数据限制的情况下,该问题有解。

在这些研究成果的激励下,科学家们开始寻找易于计算的近似解决方案。

1988年,Smith et al.率先提出了EKF-SLAM算法,可以结合激光遥测或是多种测量方式的里程记,在机器人上实现SLAM功能。

但直到2003年,才有一种直接使用单个网络摄像头、不依赖于其他里程记的SLAM算法被Davision et al. 提出,称为MonoSLAM。MonoSLAM是首个基于单个低成本视觉传感器的实时SLAM算法,能够以三维的方式进行定位和地图重建。

自此SLAM技术的发展进入了vSLAM(纯视觉SLAM,即只依赖视觉传感器进行SLAM的方式)的黄金时代,越来越多的vSLAM算法被提出,人们也在尝试通过不同的视觉传感器来实现更精准高效的vSLAM功能。

打开网易新闻 查看更多图片

vSLAM技术框架可以分为四个部分,分别是前端(包括视觉传感器、视觉里程记)、后端(基于滤波算法或者基于优化算法)、建图和回环检测。机遇号火星探测车上的视觉里程记,正是vSLAM框架里的前端部分,主要用于确定位置。

不过,纯视觉SLAM方案还存在着一些限制,例如环境变化大或者环境光较弱的情况可能带来定位与建图精准度和效率的下降,摄像头本身刷新率的限制(通常只有30/60Hz)带来的定位延迟等等。

因此,自2013年以来,SLAM技术开始走向视觉与多传感器融合的方向发展,以提升自身在不同环境下工作的健壮性(鲁棒性)。Kinect Fusion正是其中的代表算法之一,这是微软为Kinect这台具备深度传感器的设备(即RGB-D)量身打造的SLAM算法。另一种方向则是将视觉传感器与IMU相结合的算法,通常被称为vi-SLAM算法。

我们在一张简单的表格中列举了目前三种主流的SLAM方案——单目、双目、RGB-D。从下列表格中,可以快速了解三种方案各自的优缺点。

简单来说,单目SLAM方案优点是成本低、性能开销小、功耗低,缺点在于初始化速度、尺度信息缺失无法得出真实大小以及累积误差大;

一个最直观的案例,是如果用户在不带有LiDAR功能的iPhone或iPad上使用测距功能,该功能会要求用户移动摄像头,以完成SLAM的初始化然后开始测量,期间或许还使用到了iPhone和iPad上的IMU数据,以解决尺度缺失的问题。

打开网易新闻 查看更多图片

反之拥有LiDAR功能的iPhone和iPad在使用测距功能时就能够跳过移动摄像头的步骤,直接进入使用环节。测距功能的背后,正是视觉与IMU或者LiDAR数据融合实现的SLAM算法。

双目SLAM方案的优点是单帧画面即可完成初始化、深度信息精准、累积误差较小且符合人类通过视觉认知世界的方式,缺点在于算法性能开销大、双摄标定复杂对误差敏感;

RGB-D SLAM方案的优点是深度信息直接通过传感器得出降低了性能开销,室内效果好能够有效处理近距离场景重建和导航任务,缺点在于成本和功耗较高,且不适用于室外环境。

值得一提的是,单目和双目SLAM方案都有结合了IMU的版本,在定位方面可以实现更小的累积误差,常见于VR头显和AR眼镜的Inside-out追踪方案中。通常情况下,单目vi-SLAM方案是双目vi-SLAM方案的下位替代,仅在极端苛求功耗和算力的情况下被使用。

03

苹果为Vision Pro提出了空间计算概念,旨在利用先进的传感器和图形处理技术,将现实世界大的信息整合到数字环境中,强调虚拟与现实的无缝融合。

在这一概念下,空间计算硬件相较以往的VR头显或是AR眼镜,对自身的SLAM能力提出了更高的要求——不仅要追求“Localization(定位)”精准,还要追求“Mapping(建图)”精细。

换句话说,高精度的重构建图,是目前让计算机认知现实空间的最佳途径。问题在于,如何才能实现高精度的三维建图呢?

或许聪明的读者已经想到了答案——抛开缺乏真实尺度且累积误差较大的单目SLAM,能不能将双目和RGB-D的优点结合起来,再加上IMU高刷新率的特点,打造一套“地表最强”的SLAM系统?

微软、Meta和苹果,也是这么想的。

微软于2015年1月22日发布的第一代HoloLens,配备了四颗环境感知摄像头、一颗深度摄像头以及一个IMU单元。微软官方将HoloLens SLAM功能中的地图重建功能称为Spatial Mapping,HoloLens会以每秒5帧的速率拍摄周围空间然后重建为网格模型,并通过SDK开放给开发者使用。

在Spatial Mapping的基础上,HoloLens还能通过三维语意神经网络对重建地图进行语意分割,识别屋顶、地板、桌子等常见室内元素,进一步加强设备的MR体验。

相比HoloLens,苹果Vision Pro更是“大力出奇迹”的代表,通过2个红外摄像头、1个TrueDepth深度摄像头、1个LiDAR扫描仪以及4个IMU单元来实现SLAM功能。

通常情况下,Vision Pro优先依赖IMU单元进行定位,其他传感器数据作为辅助。仅当旅行模式被打开时,Vision Pro会停止利用IMU加速度计数据来计算位置变化,转而依赖于摄像头和陀螺仪。而TrueDepth深度摄像头和LiDAR的数据则主要用于针对近处环境进行稠密的三维重建。

此外,Vision Pro还有一个专门的摄像头用来采集周围的光线情况,用于逼真的还原虚拟物体在现实照明环境中应当呈现的光影。不仅重建了三维地图,甚至还重建了光照,凸显了苹果的技术能力和对细节的追求。

在使用Vision Pro的过程中,如果你太靠近一个物体或者墙壁,系统就会弹出提示进行提醒,这也依赖于Vision Pro强大的实时三维重建能力。作为对比,类似HTC Vive这样采用Outside-In式追踪的设备,需要事先由用户划出一片无障碍物的使用区域,并不具备对周围环境的实时建图能力。

Meta在其Quest 2 VR一体机上已经通过双目摄像头和IMU单元实现了对周围环境的重建。但仅仅通过双目摄像头和IMU的方式来进行SLAM,仍会存在着一定的累积误差,导致建图精度不足,难以支撑高质量MR应用的需求。

因此,Meta在其最新一代的Quest 3 VR一体机上新加入了深度传感器,进一步提升了SLAM能力。其中最直观的,是Meta于去年11月份开放的实验性Depth API。该API可以向开发者提供从头显视角生成的每帧粗略深度图,以用于遮挡,例如可以让手臂动态遮挡住虚拟的物体,此前虚拟物体只能与扫描房间生成的粗糙场景网格形成遮挡。

从实际效果来看,受限于深度传感器的分辨率,Meta Quest 3对遮挡物体边缘的处理依然显得十分粗糙,但相比仅使用双目摄像头+IMU的方案,依然实现了功能和精度的跃升。随着后续传感器分辨率与芯片性能的提升,这种实时的遮挡将能够以更逼真的方式呈现在用户眼前,实现更好的虚实融合效果。

从火星探测车的视觉里程记,到苹果的空间计算设备Vision Pro,我们见证了SLAM技术的诞生和进化。这项技术成为了计算机与现实世界的桥梁,弥合了物理和数字世界的边界。

可以预见的是,在SLAM体系中定位技术较为成熟的当下,三维建图能力将成为空间计算的必修课,能否更好的通过SLAM能力融合数字和现实,或许将成为评判空间计算产品优劣的重要维度,鞭策着厂商们不断前行。

我们也有理由相信,未来随着传感器技术的进一步成熟、SLAM算法的不断优化、以及引入AI帮助形成更强大的场景理解能力,SLAM技术将会和空间计算一同,用数字的方式重构世界,带来更广泛的应用场景,和更丰富真实的虚实结合体验。

「93913原创内容,转载请注明出处」