APP下载

基于环境语义信息的同步定位与地图构建方法综述

2021-06-16李小倩朱世强李月华

工程科学学报 2021年6期
关键词:鲁棒性语义物体

李小倩,何 伟,朱世强,李月华,谢 天

之江实验室,杭州 311100

同步定位和建图(Simultaneous localization and mapping, SLAM)是机器人利用自身携带的视觉、激光等传感器,在完成自身定位的同时构建环境地图的过程,是提高机器人智能性、自主性的核心环节,也是机器人相关研究中的一个基本问题[1-2].通过相机采集图像信息作为环境感知信息源的SLAM系统称为视觉 SLAM[3-4](Visual SLAM,VSLAM),与其他 SLAM系统(如激光 SLAM[5-6])相比,V-SLAM可感知更加丰富的色彩、纹理等环境信息[7-8].

V-SLAM系统大多将估计相机位姿作为主要任务,通过多视几何理论构建三维地图. 随着机器人的应用范围越来越广,使用者对于机器人的智能程度提出了更高的要求,传统利用环境中点、线、面等低级别几何特征信息的V-SLAM系统在系统定位精度和鲁棒性等方面已表现出明显不足,特别在应对弱纹理环境、光照变化和动态目标等方面依然有很多挑战[9]. 随着深度学习技术的迅速发展,其在计算机视觉(Computer vision,CV)的各个领域都有着非常成功的应用. 在此背景下,近年来,越来越多的SLAM研究者使用基于深度学习的方法提取环境语义信息,以获取高层次的场景感知和理解,并应用在V-SLAM系统中[10],辅助视觉SLAM系统提升定位性能、地图可视化,从而赋予机器人更高效的人机交互能力.

本文专注于对语义SLAM方法进行分析和讨论,首先系统地介绍和分析环境语义信息与SLAM系统结合在定位精度、鲁棒性和地图形式等方面的研究进展,并将语义SLAM技术与传统V-SLAM技术进行分析和比较. 最后,讨论了语义SLAM技术最新的研究热点和发展方向,进行总结和展望.

1 语义 SLAM 系统概述

同步定位与建图的核心研究内容是机器人对自身的状态估计和对环境的感知描述,其中定位可以看作机器人对自身当前状态的估计,而地图可以认为是机器人对环境认识、描述的集合. 从应用层面分析,机器人对于“定位”的需求是相似的,即实现对自身位姿的状态估计;而对于地图构建来说,其需求是广泛的.

现代V-SLAM系统主要包括传感器信息读取、前端视觉里程计、后端优化和建图4个部分[11],如图 1 所示. 视觉里程计[12](Visual odometry, VO)模块接收传感器所提供的数据,其任务包括特征提取,SLAM初始化,特征跟踪,估计相邻图像间相机的运动,构建局部地图,并根据图像间的多视几何关系确定机器人位姿,又可称为V-SLAM的前端. 后端优化包括位姿优化[13-14]和场景重定位[15],其任务为接收多个时刻视觉里程计估计的相机位姿,并结合回环检测信息,进行优化,从而得到全局一致的轨迹和地图. 回环检测通过计算图像间的相似性判定当前场景与历史某个场景是否一致,并将检测结果输入后端优化,从而解决位置估计随时间漂移的问题. 最后,机器人根据优化后的运动轨迹和三维点云,建立满足任务要求的地图.

图1 V-SLAM系统框架Fig.1 Architecture of the V-SLAM system

对SLAM系统而言,引入环境语义信息的SLAM系统,均属于语义SLAM系统. 语义信息的引入,对于提升机器人的定位性能、优化机器人系统的鲁棒性、提高机器人的场景理解能力等方面具有重要意义. 一方面,借助语义信息提升了复杂场景下的识别精度,为视觉里程计、位姿估计、回环检测等带来更多的优化条件,提高了定位精度和鲁棒性;另一方面,借助语义信息将数据关联从传统的像素级别提升到物体级别,将感知的几何环境信息赋以语义标签,进而得到高层次的语义地图,可帮助机器人进行自主环境理解和人机交互.

2 语义与 SLAM 系统定位

移动机器人对系统定位的性能要求主要包括3个方面:定位实时性、定位精度和定位鲁棒性.目前SLAM的实时性已达到较高的水平,因此对于SLAM技术真实应用于机器人领域,亟需提高SLAM系统的定位精度和鲁棒性. 本节针对SLAM系统结合环境语义信息提高系统定位的这两项重要性能展开介绍.

2.1 语义与定位精度

定位是确定机器人在其工作环境中所处位置的过程,定位精度是SLAM系统中最为基本也是最重要的考核指标,是移动机器人开展导航和路径规划任务的先决条件. 利用语义分割和目标检测等技术将物体划分为更加具体的目标,非常适合SLAM这种需要精确几何约束问题的系统. 结合环境语义信息,可有效改善单目视觉定位过程中的尺度不确定性问题和累积漂移等问题,进而提高系统定位精度.

(1)面向单目初始化.

由于单目相机存在尺度不确定性问题,单目视觉SLAM系统不可避免地出现尺度模糊和随时间漂移等现象,无法准确估计移动机器人的位姿[16].因此,如何修正尺度模糊和漂移是单目视觉SLAM系统初始化中的关键问题.

Frost等[17]提出基于混合多尺度可变模型的目标检测系统[18]检测物体,并与SLAM系统中的关键帧进行数据关联,然后对物体尺寸进行估计,生成地图地标,最后地标与相机位姿共同参与局部优化,以解决尺度模糊和漂移的问题,保证了全局地图的一致性. Sucar与Hayet[19]在贝叶斯框架内,通过基于深度学习的目标检测算法观测物体,确定其先验高度,然后将局部地图中3D点投影到目标检测的2D图像上,确定目标检测区域的边界点并投影回3D空间,进而确定物体的实际高度,最后将先验高度与实际高度之比设置为尺度因子,用于单目SLAM系统中的尺度矫正,从而准确估计移动机器人位姿. 两项研究共同引入了环境语义信息,充分考虑目标对象的大小,使得单目尺度初始化处理更加高效和简洁. 基于公开数据集的实验结果验证了其在各种场景应用中的有效性.

(2)面向数据关联.

在V-SLAM框架中,根据更新频率,数据关联可以被分为两类:短期关联(如特征匹配)和长期关联(如回环检测). 基于环境语义信息的SLAM研究提出了一种基于中期数据关联机制的新思路.

Bowman等[20]利用目标检测,整合尺度信息与语义信息,用于SLAM系统的位姿估计. 作者在应用时发现,目标对象的不合理数据关联,会严重影响定位与建图的结果. 因此提出了概率数据关联机制,在处理数据关联过程中充分考虑语义信息的不确定性. 通过引入最大期望估计(Expectation maximization,EM),根据语义分类结果计算数据关联的概率,成功地将语义SLAM转换成概率问题,获得了ICRA2017年的最佳论文.

Lianos等[21]在此基础上,提出了全新的视觉语义里程计框架(Visual semantic odometry,VSO),利用重投影前后语义标签具有的一致性来实现中期(Medium-term)连续点跟踪. 使用距离变换将分割结果的边缘作为约束,利用重投影误差构造约束条件,整合语义约束到姿态和地图优化中,以改善系统的平移漂移问题. 所提算法可以直接融合进已有的直接法或间接法视觉里程计框架中,并分别在 ORB-SLAM2[22](间接法 VO代表)和PhotoBundle[23](直接法VO代表)系统中对语义信息引入的效果进行实验对比,结果表明,添加语义约束后有效减少了系统的平移漂移现象.

(3)面向位姿优化.

在V-SLAM系统中,需要解决的主要问题是机器人的状态估计问题,常见的优化算法为基于粒子滤波的优化算法和基于非线性优化的算法.

在基于粒子滤波的优化算法中,可利用环境语义信息更新粒子状态,进而更精准地进行位姿估计. Bavle等[24]提出了一种基于双目视觉里程计和室内环境语义信息的粒子滤波优化方法. 粒子滤波器的预测阶段使用双目视觉里程计估计机器人的三维姿态,并使用惯性和语义信息更新三维姿势,进而对机器人进行无漂移的姿态估计.

在基于非线性优化的算法中,可借助目标检测算法,将物体作为路标,融合到一个优化算法中,以提高系统定位精度. Nicholson等[25]提出了面向对象的语义SLAM系统 QuadricSLAM,利用椭圆体(对偶双曲面)对物体进行三维建模,紧凑地表示物体的大小、位置和方向,并作为路标添加到优化公式中,联合估计相机位姿和对偶二次曲面,以提高系统的定位精度.

类似的,卡内基梅隆大学机器人研究所Yang与Scherer[26]提出了CubeSLAM系统,用单目相机实现了对象级的定位与建图. 作者利用目标检测算法生成2D边界框,通过消失点法(Vanishing points,VP)生成物体三维立方体,并将物体作为路标,结合物体约束信息与几何信息,融合到一个最小二乘公式中,改善相机位姿估计,提高了SLAM的定位精度. 与基于特征点的SLAM系统相比,对象级SLAM系统可以提供更多的几何约束和尺度一致性,所提算法在公开数据集上得到了较好的位姿估计精度,同时还提高了3D物体的检测精度. 同时,Yang与Scherer[27]在此基础上,结合Pop-up SLAM[28]的思想,提出了一个无需先验物体和模型的联合物体和平面估计的单目SLAM系统. 首先,利用高阶图形模型,结合语义和遮挡等约束[29],推断单张图像中的三维物体和平面,然后将提取的物体和平面,结合相机和特征点位姿,放在统一的框架中进行优化. 实验结果表明,所提算法在ICL NUIM和TUM mono数据集中定位精度准确,并可以在结构化环境中生成稠密地图.

(4)面向重定位与回环检测

重定位和回环检测的目的不同,但通常可以采用相同的技术. 重定位主要是跟踪丢失时重新找回当前姿态,恢复相机姿态估计;回环检测是识别机器人曾经到过的场景,得到几何一致的映射,从而解决漂移问题,提高全局精度. 传统的SLAM算法大都依赖于低级别的几何特征,使得重定位和回环检测通常依赖于相机的视角,在特征不明显或重复性的纹理环境中容易检测失败. 语义SLAM系统利用目标识别推测标志物的种类和大小,产生易于识别的标志物,进而提高系统的定位精度.

Gawel等[30]提出了一种基于图的语义重定位算法,将具有语义目标位置的关键帧组合成一组三维图,并利用图匹配算法求解相机在全局地图中的位置. Konstantinos等[31]提出了一种基于地点视觉词描述的回环检测算法,通过对输入的图片流进行动态分割,定义一个个“地点”,并通过在线聚类算法,将图像的描述子转化为地图中的相应的视觉词. 系统通过概率函数判断回环检测的候选地点,并通过最近邻投票算法,匹配候选地点中最准确的那一帧图像. 实验表明,算法在精确和召回率上有很好的表现. 此外,所提算法仅通过将查询图像的局部描述子转换为词典的视觉词,就能判断已访问过的地点,不需要任何预训练的步骤,能够满足很好的实时性要求.

张括嘉等[32]利用YOLOv3[33]目标检测算法获取环境中关键目标的语义信息,建立目标检测结果之间的相对位置关系,根据连续关键帧的相似度变化情况进行回环判断. 所提算法在公开数据集上取得了较好的效果,与单纯利用传统视觉特征的算法相比,环境语义信息的应用有效提高了室内场景下的闭环检测准确性.

2.2 语义与定位鲁棒性

定位鲁棒性是机器人安全运行的保证,是移动机器人系统重要的考量指标. 传统的V-SLAM系统在纹理特征缺失、光照变化较大和高速动态等场景下,非常容易出现定位信息丢失的情况,尤其是在自动驾驶这种对安全性要求较高的应用领域,一旦定位信息丢失,后果将不堪设想. 利用环境语义信息可有效改善传统V-SLAM系统面临的这些问题,有效提升系统定位的鲁棒性.

(1)面向弱纹理环境.

传统V-SLAM方案中采用的图像特征语义级别低,造成特征的可区别性较弱,在弱纹理等缺少显著特征的环境中,传统基于特征点的方法难以进行准确的运动估计. 借助深度学习的方法提取环境中的立体特征,并用于优化位姿估计,可提升系统定位鲁棒性.

Yang等[28]提出的Pop-up SLAM系统,验证了场景理解对弱纹理环境下机器人状态估计改善的有效性. 利用深度学习的方法提取环境中墙-地的边界信息,并根据单幅图像生成立体平面模型,同时利用平面法线间的差、平面间的距离和平面间的投影重叠3个几何信息进行平面匹配. 然后将Pop-up模型提供的深度估计融合到LSD-SLAM[34]深度图中,提高LSD-SLAM的深度估计质量,以提高系统的鲁棒性. Ganti和Waslander[35]指出从信息熵较低的区域提取特征点,位姿估计的准确性低[36],对这些特征点跟踪,会增加错误数据关联的风险,他们提出了一种基于信息论的特征选取方法,利用语义分割的不确定性概念计算信息交叉熵. 该方法减少了对特征点数量的要求,显著提高了系统实时性和鲁棒性,而在精度上没有任何明显损失.

Qin等[37]针对地下停车场自动代客泊车系统,提出了一种基于语义特征的定位方法. 在狭窄拥挤且没有GPS信号的停车场环境中,环境结构相似,纹理特征不足,传统V-SLAM方法容易发生跟踪丢失的问题,作者首先利用深度学习将地面上的指路标志、停车线以及减速带等信息分割出来,再根据里程计的信息,将语义特征映射到全局的坐标系下,建立停车场的地图,然后通过将语义特征与先前的构建出来的地图进行匹配来对车辆进行定位,最后采用扩展卡尔曼滤波器将视觉定位结果与里程计融合,保证在缺少纹理信息的停车场环境中,系统能够输出稳定的定位结果.

(2)面向光照变化.

在传统V-SLAM系统中,特征描述子(如SIFT,ORB等)对于光照变化较敏感,光照的变化容易导致目标表面颜色等特征的变化,对系统定位鲁棒性造成干扰. 而环境中的物体类别与光照和时间变化无关,可利用环境语义信息构造新的特征描述子,从而有效降低由于光照变化对定位鲁棒性造成的不利影响.

2018年,瑞典查尔姆斯理工大学信号处理研究小组的Stenborg等[38]提出了一种在已有的3D地图上,将语义类别作为地图点描述子的定位算法,有效解决了长时间跨季度定位系统中环境光照变化等对定位系统的影响. Schönberger等[39]提出了一种基于3D几何和语义信息进行视觉定位的新方法,通过训练语义场景完备化作为辅助任务,学习出鲁棒的局部描述符,以此建立查询和数据库映射之间3D-2D的匹配,将匹配结果用于位姿估计与矫正,成功解决了大范围观测条件下的鲁棒性视觉定位问题. 在KITTI和NCLT数据集上运行结果表明,所提方法在极端视角、照明和几何变化情况下,表现出了系统的高可靠性. 此类方法相较于基于传统描述子的方法节省了大量的存储空间,但语义描述子的应用也有一定的局限性,如在较单一类别的场景中容易产生误差.

此外,还可通过优化特征选择策略,结合语义信息进行过滤,使得所关注目标对于光照变化更加鲁棒. Naseer等[40]提出了一种判别整体图像内容的方法,能够根据图像语义信息生成一个密集的场景显著性描述. 通过训练感知环境变化大的数据集学习显著性描述,保证能够在图片上分割出更加稳定的区域,剔除易随时间变化的区域,并将显著区域的特征和现有的整体图像上的特征进行融合,从而得到了一个更加鲁棒的场景描述.Liang等[41]在稀疏直接法里程计(Direct sparse odometry, DSO)[42]基础上,改变了跟踪点的选取策略,通过在图像上的感兴趣区域上选取点(感兴趣区域即显著性图),并利用语义分割的结果对显著性图进行滤波,调整每个像素点的显著性得分,从而降低了无信息区域(例如墙,天花板和地板等)的显著性得分. 实验结果表明显著性区域的点对于光照和视角的变化更加鲁棒.

(3)面向动态场景.

传统的V-SLAM系统大多基于静态环境假设,在处理动态环境的定位问题时,容易发生错误匹配. 近年来,针对动态场景的语义SLAM系统逐渐受到越来越多的关注[43-44],通过引入环境语义信息有效地对静态和动态特征点进行划分,移除动态特征点,从而减少动态干扰,以提高SLAM系统的鲁棒性.

Yu等[45]基于ORB-SLAM2提出了一种动态环境下鲁棒的语义SLAM系统(DS-SLAM),该系统基于光流金字塔算法进行运动一致性校验,并结合语义分割网络获取物体轮廓,剔除位于移动物体上的特征点,减少动态对象对姿态估计的影响,提升了系统定位鲁棒性. 在TUM RGB-D数据集以及真实环境下测试结果表明,该系统的绝对轨迹精度比ORB-SLAM2提高了一个数量级. 但是,该算法能识别的语义类别较少,且只定义人为动态物体,另外,该地图在回环失败时需要重新建图,地图的可移植能力不足. Bescos等[46]也在ORB-SLAM2系统上,提出了一种面向动态物体检测和背景修复的V-SLAM系统(DynaSLAM),通过使用多视几何和深度学习的方法实现移动物体的检测,并通过对动态物体遮挡的背景帧进行修复,生成静态场景地图. 实验结果表明,DynaSLAM提供的单目、双目和RGB-D 3种运行状态在动态场景中均有较好的鲁棒性,并能输出场景的静态地图,更符合机器人长时间运行的使用需要.

目前大多数语义信息用于动态场景都是将所有潜在运动的物体直接去除,但如若动态目标物体并没有发生运动,且占据相机视角的大部分,那么将目标物体上的点都去除会对位姿估计产生很严重的影响. Brasch等[47]针对此类现象提出了一种改进方案,其引入对于地图点是否为静态点的概率估计“静态率”(Inlier ratio),实现地图点在动静态之间的平滑过渡. 首先,根据语义分割网络的输出赋予静态率一个先验值,例如车具有较低的静态率,建筑具有较高的静态率等,然后根据不断地引入新的观测数据来更新该地图点的静态率,以在具有挑战性的条件下实现定位鲁棒性. Cui与Ma[48]提出了一种基于ORB-SLAM2 RGB-D模式的面向动态环境的视觉语义SLAM系统(SOFSLAM). 该系统采用一种新的语义光流动态特征检测方法,使用SegNet[49]产生像素级的语义分割结果,获取运动先验(静态、潜在动态的和动态),并将运动先验作为掩膜去除动态和潜在动态特征之间的匹配,然后利用语义静态特征的匹配计算基本矩阵,最后利用基本矩阵和对极约束寻找并剔除真正的动态特征,在跟踪和优化模块中保留剩余的静态特征,实现动态环境下相机位姿的精确估计. 在公开的TUM RGB-D数据集和真实环境中的实验结果表明,所提算法可有效应对动态环境.

由上可见,利用环境语义信息通过特征选择和优化数据关联等方法可有效提高系统定位的精度,通过对目标物体的跟踪,可以提高弱纹理环境、光照变化和动态场景下SLAM系统的鲁棒性.相较于传统V-SLAM系统,基于语义的SLAM系统直接提取图像特征,无需人工特征提取和匹配,更加简洁直观;基于语义的SLAM系统能够更充分表达环境信息,进而实现高层次的场景感知和理解,保障了系统的定位精度和鲁棒性. 但是,目前对环境理解的算法主要基于深度学习等方法,不同学习算法之间的网络架构设计差异性大,且对训练数据库有较强的依赖性. 同时,系统性能严重依赖于环境目标识别和语义分割结果的准确性. 此外,当前环境语义信息多与SLAM局部的子模块相结合,如位姿优化或回环检测等,部分语义SLAM学者也开始关注如何搭建一个端到端的SLAM系统[50],将深度学习架构应用于整个SLAM系统,也是未来研究的一个重要方向.

3 语义与 SLAM 地图构建

在传统的SLAM研究中,地图构建主要服务于机器人定位,即利用构建的环境地图提高机器人的定位精度,此时地图的表现形式主要是稀疏的点云地图. 而当SLAM技术逐渐应用于机器人和自动驾驶领域,其需要利用环境地图完成导航和避障,因此需要稠密的环境地图,如稠密点云地图、八叉树地图等. 随着机器人和智能化程度提高,机器人逐渐服务于日常生活和工业生产,需要更加利于交互的环境地图. 近年来,深度学习技术快速发展,利用深度学习方法构建具有语义信息的环境地图成为提高机器人交互能力一种可行的方案.

基于环境语义信息的SLAM技术不仅提取环境中的几何信息,还能充分利用环境中的语义信息,即环境中个体的属性,从而提高机器人执行任务的智能水平. 21世纪初,Vasudevan等[51]和Galindo等[52]先后提出了机器人语义地图的概念,阐述了构建具有语义信息的环境地图可以提高机器人的感知能力,并且地图中的语义信息使机器人具有一定的推算能力. 得益于SLAM技术的快速发展,研究人员希望将这种含有语义信息的地图形式应用到SLAM系统中,即构建环境语义地图. 早期的语义地图构建算法大多采用离线的方式,基于马尔可夫等方法对几何地图进行语义标注[53-54],这种方法需要离线对地图进行处理,无法在机器人上实际使用. 随着机器学习技术的发展,部分学者使用条件随机场(Conditional random field,CRF)、随机决策森林(Random forest)等算法获取场景中的语义标签[55-56],但是此类算法语义融合的效率较低、精度较差,亦不能将其应用到实际场景. 同时,部分学者针对机器人与环境中实体的交互问题,提出将地图与预先构建的物体模型进行融合,把实体从地图中分割出来[57-58],但是这种方法依赖先验知识,限制了地图的应用场景. 近年来,深度学习技术快速发展,越来越多的研究人员将深度学习方法与SLAM技术结合,利用目标检测、语义分割等算法[59]提取环境的语义信息,并将其融入到环境地图中,以构建环境语义地图.目前针对语义信息与SLAM地图构建融合的研究主要分为两个方向,包括面向场景的语义地图构建和面向对象的语义地图构建,如表1所示. 其中,面向场景的语义地图侧重于机器人对环境的感知,而面向对象的语义地图更侧重于机器人与实体进行交互,接下来本文将围绕这两个方面进行综述.

表1 面向场景的语义地图与面向对象的语义地图对比Table 1 Comparison of scene-oriented semantic maps with objectoriented semantic maps

3.1 面向场景的语义地图

面向场景的语义地图是指使用语义分割算法对2D图像进行像素级分割,提取图片中的语义信息,并将其与3D点云进行融合,以构建全场景的语义地图. McCorma等[60]基于卷积神经网络提出了SemanticFusion算法,实现了室内环境语义地图构建,是构建像素级语义地图的典型代表. 该算法构建了一个完整的语义SLAM系统,实现了传统SLAM框架与语义分割的结合,解决了传统语义标注算法中语义类别少、需要离线标注等问题,并且引入了一种节点概率更新算法和语义修正方法,在语义地图构建算法精度上具有较高水平. 同时,SemanticFusion简单实现了SLAM技术对语义分割的优化,即根据SLAM输出的帧间特征点匹配关系,优化CNN对单张图片的语义分割效果,极大地提高了语义地图的精度,体现了SLAM系统对深度学习研究的优化作用. 但是,该算法需要极大的计算资源,难以在机器人上进行实际部署使用. 同时,虽然该算法在一定程度上提高了语义分割的准确性,但是提升的效果非常有限,仅3.3%. 与 SemanticFusion算法类似,Ma等[62]基于卷积神经网络提出了一种自监督的方式生成环境语义信息,该算法根据多视图的语义信息一致性进行语义信息融合,实现了像素级的语义地图构建. 但是这种基于卷积神经网络的语义信息提取技术忽视了图像信息的前后帧联系,这种算法虽然利用多视图进行语义约束,但是语义关联的帧数较少. 因此,Xiang与Fox[63]提出了基于递归神经网络的DA-RNN算法,直接对视频帧进行语义信息提取,并将语义信息与KinectFusion算法[64]构建的三维地图融合,实现了环境语义地图构建.

早期的面向场景的语义地图构建算法虽然提出了完整的语义地图构建框架,但是其计算资源消耗大,难以在机器人上实际部署使用,针对此问题,研究人员提出了轻量化的面向场景的语义地图构建方法. Mao等[65]基于RTABMAP[66]和YOLO[67]算法提出了用于语义地图构建的SEMANTICRTAB-MAP (SRM)算法,该算法不直接使用深度学习方法对图像进行语义分割,而是使用YOLO V2算法进行目标检测,以粗略估计物体位置,然后运用Canny运算符检测深度图像上目标对象的边缘,并基于区域增长算法对边缘进行处理,以完成物体的精确分割. SRM算法通过非深度学习的语义分割算法,解决了传统语义地图构建过程中计算资源大的问题,从而提高了语义地图构建的实时性. Cui等[68]在该方向取得了比较好的地图构建结果,该算法利用边缘计算实现了数据的实时处理,并使用云端服务器处理数据,一定程度上解决了实时性问题. MIT提出的Kimera算法[69]将面向对象的语义地图构建方法提升到比较成熟的层次,其基于模块化的思想构建SLAM系统,该系统可以在CPU上运行. 在语义地图构建方面,Kimera使用双目相机获取三维点云,并利用深度学习获取环境语义信息,然后利用集束投影(Bundled raycasting)在处理三维点云的同时映射语义标签,最后使用贝叶斯滤波更新每个体素的语义标签. 虽然该算法在语义地图构建的精度方面达到了较高的水平,但是该算法语义融合的实时性较差.

同时,部分学者倾向于通过控制计算资源的调用解决面向场景的语义地图构建算法存在的实时性和精度问题. Webb等[70]针对语义地图构建系统中精度和实时性展开研究,提出了一种语义地图自动参数调整方法,通过对语义模型准确性和计算资源消耗进行衡量,自动调节语义融合的参数,保证系统的实时性. Ehlers等[71]提出了高层次的管理语义地图构建的方法,考虑到机器人需要在多样的场景中开展工作,而单一的参数不能保证机器人在任意场景中建图效果均为最优,因此通过预先设定地图构建参数,并根据语义识别结果,自动选择设定好的参数,从而挑选最佳的传感器和建图参数构建语义地图.

面向场景的语义地图大多采用深度学习的方法,将2D的语义信息映射到3D的点云中,目前相关研究基本围绕语义分割方法和语义融合方法展开. 一方面,从地图应用的角度考虑,虽然面向场景的语义地图可以辅助机器人更好的认识环境,构造表现力更好的环境地图,但是这种地图构建方法不利于机器人认识环境中的个体,机器人无法与环境中的个体进行交互,在一定程度限制了机器人的智能化程度. 另一方面,从算法的效果考虑,此类算法需要对场景中所有物体进行像素级语义分割,计算量大,导致实时性普遍不理想,而且需要对语义融合结果进行充分优化,否则难以构建高精度的语义地图. 因此,部分学者基于目标检测算法和点云分割算法提出了面向对象的语义地图构建算法.

3.2 面向对象的语义地图

面向对象的语义地图是指语义地图中仅包含部分实例的语义信息,语义信息以聚类的方式独立于地图. 因此,可以允许机器人对地图中每一个实体的语义信息进行操作和维护. 对机器人来说,这种以聚类方式存储环境中实体信息的地图形式更利于机器人感知环境,并与环境的中的实体进行互动,提高了地图的实用性.

经典的SLAM算法大多只构建纯几何形式的地图,如度量地图、拓扑地图等,语义信息的添加仅限于部分先验已知的物体,需要预先构建物体模型库,降低了语义地图的普适性,限制了语义地图的发展. Sunderhauf等[72]提出了基于ORBSLAM2[23]和SSD算法[73]的语义地图构建方法,在线实时分割点云中的实体,在数据处理的过程中将实体与非实体分开进行,对于实体维护更新点云和类别信息,而对于非实体仅维护更新点云信息. 实验表明,这种先进行实体分割,后进行语义融合的方法,语义精度更高,错误匹配较少,但遗漏的语义类别较多. 一方面,该算法使用的SSD算法在室外数据集上训练,而在实验室内环境中进行实验;另一方面,语义分割精度、深度图的噪声、相机的分辨率等因素都对语义地图的效果有较大影响. 类似的,McCormac等[74]基于MASKRCNN[75]和KinectFusion算法[64]提出了一种在线的基于体素的语义SLAM系统,使用MASK-RCNN算法检测物体,基于体素前景(voxel foreground)原理将目标检测结果与TSDF模型进行融合,以构建面向对象的语义地图. 但是,该系统设置了较高的目标检测阈值,虽然保证了检测的准确性,但是漏检较多,算法的实时性较差. Hoang等[76]针对环境中物体存在遮挡,难以估计物体位姿的问题,提出了Object-RPE系统,解决了环境中存在遮挡、环境杂乱时的语义地图构建问题,具有较好的鲁棒性.但是,Object-RPE系统基于ElasticFusion[77]和MASKRCNN[75]算法开发,亦受到计算资源的限制,实时性较差.

基于此,部分学者针对语义地图构建算法中的目标检测算法和数据关联方法展开研究.Hoang等[78]针对Object-RPE系统的实时性问题进行研究,提出了一种全景映射和物体姿态估计系统(Panoptic-MOPE),这里的“全景”是指该系统同时采用目标检测算法和实例分割算法提取环境语义信息,并在面元上基于贝叶斯融合和更新语义信息. 相比Object-RPE,Panoptic-MOPE的实时性提升了大约3倍,主要是后者提出的语义分割算法Fast-RGBD-SSWP,解决了RGB-D数据的实时语义标注问题. Li等[79]直接利用体素和像素之间的映射关系获取体素的语义类别,从而降低了语义融合中的计算量,一定程度上提高了算法的实时性,但是语义地图的精度略差. 上述面向对象的语义方法也关联了三维点云与2D语义分割结果,在原理上基本与面向场景的语义地图构建方法类似,忽视了三维地图与物体模型之间存在的几何联系. Hosseinzadeh等[80]提出了一种将空间物体表示为二次曲面的方法,并整合了空间物体与平面存在的约束,利用CNN进行目标检测,搭建了一套面向对象的语义地图构建系统. 但是,该算法在二次曲面生成时依赖深度图像进行平面分割和参数回归,而且存在轴对称假设,导致算法的二次重构鲁棒性降低,在实时性方面完全依赖于CNN网络的运行速度,实时性相对较差. 针对上述问题,Hosseinzadeh等[81]提出了一种改进算法,使用两个CNN分别进行平面分割和参数回归,并集成了目标检测算法,实现了对象实时检测和跟踪,提升了语义地图的精度. 面向对象的语义地图构建需要检测环境的实体,而通过目标检测算法可以判别环境中物体是否为动态物体,从而优化系统鲁棒性.

早期面向对象的语义地图构建算法大多只关注了地图构建问题,而忽略了利用动态物体属性优化系统性能. Rünz等[61]提出了动态场景中基于实例分割的语义地图构建算法MaskFusion,对于场景中的动态刚体,追踪其在地图中的位置,仅剔除场景中的非刚体,减少了场景信息的缺失. 算法使用Co-Fusion算法[82]根据物体的运动一致性和是否与人接触判断物体是否为动态物体,并基于图像的像素强度和ICP深度点云配准跟踪动态物体. 其次,该算法结合语义分割和几何分割结果对环境进行实例分割,并引入基于深度不连续性和表面法向量的几何分割方法,既满足了实时性要求,又解决了语义分割边缘较粗糙的问题. 最后,在语义融合部分使用了类似文献[83]和ElasticFusion[77]的方法,即用surfel的方式表示环境模型,通过物体标签将表面元素与正确的模型相关联,使每个物体的几何体随时间融合. Xu等[84]针对语义地图大多采用面元的方式构建,难以在机器人上进行应用的问题,提出了一种基于体素的语义地图构建方法,利用测量不确定性加权并重新设置参数实现动态物体检测,并集成了几何信息、光度信息和语义信息进行语义分割,系统的鲁棒性较好. 但是该算法直接将行人当作外点进行剔除,没有进行跟踪,另外,随着地图扩大、实体增多,基于体素构建环境地图的建图系统效率逐渐下降.

面向对象的语义地图构建算法将工作重心置于实体本身,包括环境中每一个实体的类别信息和位置信息,不同于面向场景的语义地图,在这种地图中,实体独立于环境,因此更利于高层次的场景理解. 但是目前面向对象的语义地图构建方法大多需要同时处理实例分割和语义分割两项任务,系统的实时性比较差. 另外,在处理动态物体时,大多数算法直接剔除动态物体,这对于地图构建来说信息损失较多,因此,如何表示动态环境中的动态物体是一个亟需解决的问题.

对于地图构建来说,目前尚未出现公认一致的地图表征,而上述两种语义地图占用空间大,无法应用于大规模场景工作的移动机器人. 另外,在度量地图基础上构建的语义地图虽然在细节上对场景的表现更加丰富,但是通常无法表达某一场景的语义类别,例如厨房、卧室、书房等等. 因此,拓扑地图作为传统SLAM研究中不可或缺的一部分,因其可表示环境的连通关系,并显著降低地图的存储空间,部分学者着手研究拓扑语义SLAM.Oberlander等[85]提出了一种融合度量、拓扑和语义信息的环境地图构建方式,度量地图用来进行局部避障和路径规划,拓扑地图表达环境的连通关系,并根据场景的几何形状特征进行语义判别,赋予拓扑地图每个节点语义信息. 这种拓扑-度量融合的混合地图形式一直是机器人导航领域的研究重点[86],Luo与 Chiou[87]使用 YOLO V2算法[67]识别场景分类,将其与拓扑节点融合,赋予拓扑节点语义信息,并利用栅格地图进行路径规划和避障,实现了用语音控制机器人运动. 拓扑地图与语义信息的融合往往是将语义信息与拓扑节点融合,忽视了环境中的细节,虽然可帮助机器人方便、快捷地到达某一场景,但是难以与场景中实体进行交互. 例如,当机器人需要抓取环境中的杯子等物体时,机器人并不能获取杯子的语义信息. 因此,拓扑地图与语义信息的融合往往用来实现机器人自主探索未知环境,文献[88-89]均开展了相关工作. 类似人类进入一个陌生的环境,人类并不需要了解环境中存在每一个实体,而可以根据环境中某些物体的类别,推理该环境的分类,以联想其他可能存在于该环境的其他物体. 此时,环境的连通性对于机器人探索环境的效率更加重要,Chaplot等[90-91]利用拓扑地图和CNN网络探索未知环境,该算法主要包括3个模块:Neural SLAM模块、全局决策模块和局部决策模块. 其中,SLAM模块卷积神经网络进行拓扑地图构建和位姿估计,而带有空间语义信息的拓扑节点可以辅助机器人更加高效地探索未知环境.

综上所述,面向场景的语义地图和面向对象的语义地图均需要大量的计算资源来处理地图构建中的语义获取和数据融合,而拓扑语义地图难以满足机器人与环境交互的需要. 因此,部分学者开始研究提取环境中的标志物、文字等信息替代传统意义的语义目标,从而简化语义地图的构建.Li等[92]提出将环境中的文本信息,并将其融入到SLAM系统中,以提升SLAM的定位性能和地图质量. 但是当相机运动较快,图像的噪点较多时,算法的鲁棒性下降,在快速运动状态下有效提取文本信息仍面临巨大挑战.

4 语义 SLAM 与传统视觉 SLAM 对比

对视觉SLAM系统来说,精度、鲁棒性和实时性是影响其能否实现实际应用的关键因素,系统所提取的特征描述子是否具有良好不变性会直接影响SLAM系统的性能[15]. 传统的V-SLAM系统提取环境中的几何特征信息,常见的SIFT和SURF等特征,需要具有相关专业领域的专家设计,具有较大的人为性,并且一般基于静态环境假设,这明显不符合实际应用场景,当存在弱纹理区、光照强度变化和动态移动物体等情况时,SLAM系统性能会明显下降,系统基本失效[93-94].在构建环境地图时,一般只恢复环境的几何特征,不能满足机器人导航、人机交互、自主探索等应用要求,而早期的语义地图构建方法一般采用模型库匹配的方式,需要预先构建物体模型库,局限性大,不利于推广使用.

随着计算机性能的提高和机器学习技术快速发展,V-SLAM技术与机器学习技术相结合,以填补传统V-SLAM系统的不足,成为机器人自主导航领域的重要研究方向之一. 近几年兴起的深度学习技术作为当前最具潜力和优势的计算机视觉处理方法,受到SLAM领域研究者的广泛关注. 在语义SLAM系统中,环境语义信息大多通过深度学习技术从预训练的图像集和实时感知的图像集中直接学习高层次特征[95],还可使用迁移学习,使特征学习更加便捷,且能够更好地利用大规模数据集,使系统具有更强的泛化能力. 语义SLAM系统构建语义地图时,可利用深度学习方法对环境中的物体进行检测分类,构建信息更加丰富的地图,地图的实用性更好.

综上所述,语义SLAM技术具有较大应用潜力,与传统方法相比具有多方面的优点(如表2),具体表现为:(1)传统SLAM方法一般基于静态环境假设,而语义SLAM可以感知物体(人、汽车、动物等)的可移动属性;(2)语义SLAM中的物体知识描述可以共享,通过维护共享知识库可提高SLAM系统的可扩展性和存储效率;(3)语义SLAM可提高机器人导航的智能化程度,如机器人在搬动物体的任务中,利用语义信息优化路径.

表2 传统SLAM算法与语义SLAM算法对比Table 2 Comparison of traditional SLAM algorithm and semantic SLAM algorithm

5 未来展望

5.1 SLAM 对语义的优化与联合推理

环境语义信息给SLAM系统带来性能改进、促进SLAM系统发展的同时,SLAM系统也能促进环境语义理解和语义分割的效果. 一方面,物体识别和分割都需要大量的训练数据,SLAM可以估计相机的运动,计算物体在图像中的位置,并根据图像间的对应关系辅助构建大规模数据集,从而降低场景理解数据集的标注难度;另一方面,借助SLAM技术计算出物体间的位置约束,可以对同一物体在不同角度,不同时刻的识别结果进行一致性约束,从而提高语义理解的精度,这也是SLAM助力环境语义的思路. 此外,语义和SLAM也可以在同一个系统中紧密结合,相辅相成[96-97].一方面,可利用场景中几何与语义属性,对相机参数、场景中的点和物体的标签进行联合估计,提高算法的识别性能和定位的鲁棒性;另一方面,可利用相机的姿态信息帮助对应3D语义地图与2D标签地图之间的像素进行数据关联,并利用场景语义帮助姿态估计.

5.2 端到端 SLAM 系统

SLAM的核心任务是机器人在未知环境中完成自身位姿估计和地图构建,从而可完成特定的任务. 对于视觉SLAM系统来说,一个理想的状态是,机器人在未知环境中根据视觉传感器获取的图像视频信息,直接生成一系列的任务决策,这一般被称为端到端的视觉SLAM系统. 但是,目前端到端的视觉SLAM系统需要同时学习环境特征、位姿估计和任务决策等,这使得样本的获取和训练均非常困难,在大型环境中难以部署. 端到端的语义地图构建方式是解决该问题的方案之一,利用深度学习完成传统SLAM研究的位姿估计和地图构建,但是该任务决策是在地图构建的基础上进行的,因此具有更好的泛化能力和实际应用价值. 另外,如何解决目前端到端SLAM研究中鲁棒性差、训练难度大、样本获取困难等问题,并且如何将传统SLAM研究中完整、可靠的数学解释应用到端到端SLAM研究中是比较重要的研究方向.

5.3 主动 SLAM 系统

主动SLAM系统是机器人自主探索环境研究中的重要研究方向之一,语义SLAM系统作为融合了环境语义信息的SLAM系统,可辅助机器人根据环境中的语义信息更加高效的探索未知环境. 早期的主动SLAM研究一般使用随机探索策略或边界信息来生成机器人运动目标节点[98-99],这是一种低效的、非智能探索策略. 随着语义SLAM的发展,部分学者已实现利用拓扑语义SLAM系统探索未知环境的任务[89]. 但是,目前的相关研究在地图的表现力方面还有提升空间,如何利用环境中的语义对象更加高效生成探索目标是提升机器人探索效率的重要方向.

5.4 多机器人系统

多机器人系统是机器人领域历久弥新的研究方向之一,与单个机器人相比,多机器人系统可高效地完成特定任务,比如说探索未知环境. 在传统SLAM研究中,多机器人系统一般采用两种方式构建环境地图:一种是每个机器人单独构建局部地图,再将所有的地图进行合并;另一种是利用子母式的多机器人系统,子机器人负责感知环境,并将环境信息发送到母机器人,母机器人负责地图构建. 第一种地图构建方式可以更加高效的构建环境地图,并完成特定任务,但是在地图融合时需要判定每个地图的边界,这对于仅包含几何特征的环境地图来说,无疑是极其困难的. 而语义信息的引入可辅助多机器人系统更好的判定地图边界,从而高效完成地图融合,但对于用于语义SLAM任务的多机器人系统来说,合理的语义地图形式以及地图融合方法是该方向的重要内容.

5.5 语义地图评价标准

在SLAM系统研究中,一般使用绝对轨迹误差(Abosulte trajectory error,ATE)或相对位姿误差(Relative pose error,RPE)评级一个SLAM系统的优劣. 但是这两种评价标准均围绕SLAM系统的位姿估计结果进行,目前尚未出现公认可靠的地图构建效果评价标准. 对于语义SLAM系统来说,如何评价语义信息获取的准确性、如何评价语义地图构建的效果等均是语义SLAM系统评价标准中应着重考虑的问题. 一个可行的方案是使用CAD等三维建模的方法构建虚拟三维环境,并使用人工标注的方法标注环境中的语义信息,将其作为环境模型的真值. 但是,这种方法需要耗费大量的人力物力资源,且难以证明所构建真值的有效性,因此,语义地图的评价标准是一个必要的、亟需的研究方向.

6 结论

经过多年发展,语义SLAM技术已取得初步的成果. 特别是面对尺度和光照变化、运动场景变化等诸多因素时,基于环境语义信息的SLAM系统已表现出良好的性能. 本文对语义SLAM相关研究进展进行了全面的分析和总结,重点围绕语义对SLAM系统的优化进行了详细的讨论、归纳和总结,还对SLAM对语义的优化、语义与SLAM联合推断以及机器人知识库进行了展望.因此,本文希望对语义SLAM的理论研究者以及应用系统的工程实践者均具有良好的参考价值.

语义SLAM是实现自然、和谐的人机交互的基础,对于机器人的室内建图、定位、导航等多方面应用将发挥关键作用. 然而,目前语义SLAM在工业界尚未受到广泛关注,主要限制在于精确的语义分析需要大量计算资源,实时性受到制约. 此外,语义SLAM系统的精度和鲁棒性依赖于环境语义信息提取的准确性. 未来随着计算机硬件水平的提升和软件算法的更新,基于语义SLAM的研究和应用将有着巨大的发展空间.

猜你喜欢

鲁棒性语义物体
语言与语义
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
深刻理解物体的平衡
基于确定性指标的弦支结构鲁棒性评价
我们是怎样看到物体的
基于非支配解集的多模式装备项目群调度鲁棒性优化
“上”与“下”语义的不对称性及其认知阐释
非接触移动供电系统不同补偿拓扑下的鲁棒性分析
为什么同一物体在世界各地重量不一样?
认知范畴模糊与语义模糊