如今机器人与人工智能技术蓬勃发展,无人驾驶在各行各业中体现出了巨大的应用价值和发展潜力。而要让无人驾驶走进大众生活,需要更多的前沿技术支持,比如作为无人驾驶核心技术之一的SLAM。
    何谓视觉SLAM?
    好奇的你可能要问,SLAM技术是什么?
    SLAM是“Simultaneous Localization and Mapping”的缩写,译为“同时定位与地图构建”。它是指搭载特定传感器的主体,在对周围环境未知的情况下,在运动过程中建立周围环境的模型,同时估计自己的运动。就不同的传感器而论,SLAM技术分为两类:如果传感器是激光雷达,则称为激光SLAM;如果传感器为相机(摄像头),则称为视觉SLAM。
    我们可以打一个通俗的比喻。当你去外地旅游,为了迅速熟悉周围环境,找到挑选好的餐馆吃饭,并且找到预定好的宾馆入住,你需要完成以下事情:
    1. 用眼睛观察周围的地标建筑,比如学校、银行、便利店等等,并且记住他们的特征——特征提取。
    2. 根据眼睛所观察到的环境信息,在脑海里构建一个包含这些标志性建筑物的地图,对他们的方位有一定的掌握——三维建图。
    3. 在行进的过程中,会遇到新的地标建筑,比如咖啡馆、餐厅、商场,根据获取到的它们的方位信息,校正自己脑海里的地图模型——状态更新。
    4. 根据之前行进过程遇到的地标建筑,确定自己所处的位置——路径规划。
    5. 当无意中行进了很长的一段路以后,与脑海中的标志性建筑进行匹配,查看自己是否走回了原路——回环检测。
    上述你做的这些事情,就是视觉SLAM的五个重要组成部分。
    视觉SLAM也有不同的种类!
    视觉SLAM是21世纪SLAM的研究热点之一,一方面是因为视觉非常直观,另一方面,CPU、GPU等硬件的飞速进步为视觉算法的实现带来了新的可能。
    首先,按照工作方式的不同,相机可以分为单目(Monocular)相机、双目(Stereo)相机和深度(RGB-D)相机三大类。直观看来,单目相机只有一个摄像头,双目相机有两个,而深度相机通常携带多个摄像头。其中,深度相机的原理较为复杂,与普通相机不尽相同,它不仅可以采集到彩色图片,还能读出每个像素与相机之间的距离。
    于是,基于不同的相机,视觉SLAM研究也分为了对应的三大类。
    什么是视觉SLAM技术?它能为无人驾驶带来什么? - 图1
    图1 左上、左下、右上、右下依次为单目相机、双目相机、三目相机、深度相机[1]
    只使用一个摄像头进行SLAM的做法称为单目SLAM。因其具有结构简单、成本低的特点,所以单目SLAM非常受研究者的关注。我们每个人都见过单目相机的数据,那就是照片。而照片,本质上是三维世界在相机平面上形成的一个投影。在生成照片的过程中,丢掉了一个维度,即深度,所以我们无法通过单目相机来计算所摄物体与相机的距离。因为近大远小的透视关系,在单张照片中,你没办法确定一个看上去小的物体,是由于它离你的距离特别远而显得小,还是它离你不远只是本身的大小就非常小。
    什么是视觉SLAM技术?它能为无人驾驶带来什么? - 图2 图2 “深度错觉”:远处天空的云朵像
    为了得到深度信息,人们开始研究双目相机以及深度相机。
    使用双目相机和深度相机的目的是通过特定的手段测量物体与相机间的距离,克服单目相机无法得到距离的缺点。尽管都是为了测量距离,但双目相机和深度相机测量深度的原理却是不一样的。
    双目相机由两个单目相机组成,这两个单目相机之间的距离称作基线,基线的长度已知。我们通过这个基线来估计像素的空间位置。这其实和人眼极为相似!人左右两眼之间有一定的距离,这个距离使得双眼看到的视觉形象有些许差别,而我们的大脑正是通过对左右眼捕捉到的两个有差异的视觉信号进行处理,获得空间感与立体感,从而判断一个物体的远近。
    什么是视觉SLAM技术?它能为无人驾驶带来什么? - 图3
    图3 左右双眼产生的“视觉差异”[3]
    双目相机所能测量的深度范围与基线长度有关。基线越长,能够测量的物体就越远,因此,无人车上搭载的双目相机通常是个大家伙。拓展开来,还有多目相机,其原理与双目相机没有什么大的不同。但是,双目和多目相机需要经过大量的计算才能估计每一个像素点的深度。复杂的配置与标定、对计算资源的高要求,使它们的使用受到了一定的限制。
    深度相机则是2010年前后兴起的一种相机,它最大的特点是可以通过红外结构光或光飞时间(Time-of-Flight),主动向物体发射光并接受返回的光,以此计算物体与相机的距离。它测量距离不是依赖软件的计算,而是使用物理的手段,因此比起双目、多目相机可以节省大量的计算资源。但是多数深度相机存在测量范围窄、噪声大、易受日光影响、无法测量透射材质等诸多问题,所以较难运用于室外的SLAM。
    什么是视觉SLAM技术?它能为无人驾驶带来什么? - 图4
    图4 上、下两个图像分别为普通相机成像与RGB-D相机成像[4]
    可见,基于不同摄像头的SLAM技术各有优劣。根据不同摄像头的优点与适合应用的场景,我们可以将多个视觉传感器组合运用于智能网联汽车与无人驾驶汽车上,以实现不同的功能并达到理想的效果。
    是什么在推动视觉SLAM的发展?
    如今,越来越多的车企着手于研究视觉SLAM导航方案。事实上,无人驾驶汽车导航技术的突破也是行业多年来众望所盼。
    视觉SLAM的出现,为无人驾驶汽车行业带来了新的机遇。未来机器人李陆洋博士表示,“当前工业无人车亟待提升的是智能化程度,简单理解则是机器人应对现场不规范化的能力,而这种能力必须基于对环境的理解与学习,视觉技术是无人车智能化提升的必经之路”。
    首先,与激光SLAM相比,视觉SLAM的优势在于它使用的传感器具有极高的性价比。世界顶级工业相机供应商的产品售价约为人民币3000元,是同等级的激光传感器产品售价的10-20%。我们知道,较低的制造成本意味着较低的产品价格,自然也就能大大提高产品竞争力,吸引客户投资。
    其次,视觉SLAM具有更好的信息获取能力。视觉SLAM可以从环境中提取语义信息,通俗的讲,就是可以利用摄像头对目标进行识别,识别出最接近人类理解的东西。比如说,它可以提供对象的颜色、纹理、形状,以及某一时刻的状态。
    最后,视觉导航模块具有良好的系统拓展性。随着通信设备/处理器等周边配套设施的不断完善,视觉导航模块正飞速进步,视觉导航与计算机连接可以实现大规模的调度任务,而视觉导航技术与5G及云端系统的融合也将更进一步。
    视觉SLAM发展是否受到掣肘?
    总体来说,相比于激光SLAM,视觉SLAM的应用场景要丰富很多。视觉SLAM在室内外环境下均能开展工作,但是对光的依赖程度高,在暗处或者一些无纹理区域是无法进行工作的。
    比如特斯拉的AutoPilot功能曾经闯祸,台湾一则特斯拉Model3车祸视频在那时刷遍全球。车祸发生时,一辆非常醒目的白色厢式货车侧翻在台湾嘉义的高速公路上,视频当中可以看到出事的特斯拉 Model 3,几乎没有任何减速径直撞了上去。车辆自身的自动辅助驾驶系统并未有任何减速或刹车措施。
    什么是视觉SLAM技术?它能为无人驾驶带来什么? - 图5
    图5 特斯拉AutoPilot摄像头产生致盲导致撞上前方侧翻白色货车[5]
    经过初步判断,可能是侧翻货车白车身以及其静止状态,影响了Model 3的摄像头和雷达识别。特斯拉采取的摄像头与雷达的组合是以摄像头为主,雷达为辅,由于前方侧翻货车白色油漆反光的缘故,一定程度上让特斯拉AutoPilot摄像头产生致盲反应,雷达也误认为前方是无障碍,从而产生了视觉错误。
    可见,在实际环境中视觉SLAM的图像处理技术、相关算法,以及现有的视觉SLAM框架还有非常大优化和改进的空间。
    当然,在过去的数十年里,视觉SLAM技术取得了重大的突破。无论是在无人驾驶、无人机等领域,还是在最新走进我们生活的AR(增强现实)技术中,都有非常广泛的应用。尽管在室外复杂的现实环境下,视觉SLAM技术还面临较大挑战,但相信随着视觉SLAM技术在无人驾驶车辆上的应用日臻成熟,视觉SLAM导航将会有更加光明宏大的发展前景!