万普插件库

jQuery插件大全与特效教程

SLAM 室内三维重建技术综述_slam与三维重建

摘要

随着智慧城市、文物保护、室内导航、虚拟现实等对室内精细化三维模型的需求越来越多,室内三维重建成为了研究热点。最近SLAM作为高效的室内三维重建技术得到了广泛关注与快速发展,并被成功应用于各种移动测图平台,如移动背包、推车、微型无人机等。该文首先对SLAM发展现状及关键技术进行整体回顾,然后对基于不同移动平台及深度相机SLAM室内三维重建系统进行深入分析和比较,最后讨论SLAM技术在室内三维重建中存在的问题及发展趋势。

引用格式

危双丰, 刘振彬, 赵江洪, 等.SLAM 室内三维重建技术综述[J]. 测绘科学,2018,43(7):15-26.

正文

随着智慧城市、文物保护、灾害应急响应、室内导航、虚拟现实等对室内精细化3D模型的需求越来越多,如何快速有效地获取室内3D精细化模型成为了研究热点。近年来,针对室内3D重建,出现了以3D激光扫描技术和近景摄影测量技术为主的测量手段。相比较而言,3D激光扫描技术效率更高。然而由于传统静态3D激光扫描技术不能实时快速进行整体3D重建,所需工作量仍然较大。随着SLAM(simultaneous localization and mapping)同步定位与地图构建技术日趋成熟,室内3D实时快速重建成为可能。本文从室内3D重建角度,对SLAM方法进行综述。

SLAM是指携带传感器的运动物体,在运动过程中实现自身定位,并以适当的方式对周围环境进行同步建图的过程。文献[3]称SLAM问题在1986—2004年这个阶段被称为“古典时代”(class age),这一阶段主要将概率公式引入SLAM问题中,使得SLAM问题在理论上更为严谨。主要理论方法包括EKF(extended kalman filters)、RaoBlackwellised粒子滤波和最大似然估计等。2004—2015这一阶段称作算法分析时代(algorithmic-analysis age),主要包括对SLAM算法基础性质如可观测性、收敛性和一致性等的研究,同时在用于提高SLAM效率上的稀疏性解法取得进展。当前这个阶段称为鲁棒性时代(robust age),让现有框架能够成功处理动态形变,有遮挡,光照变化等场景。目前SLAM技术基于两大类传感器,激光传感器和视觉传感器,激光传感器分为2D激光扫描器和3D激光扫描器,视觉传感器分为单目视觉和双目视觉以及新兴的RGB-D(red green blue-depth camera)深度相机。

典型SLAM主要由前端里程计、后端非线性优化、回环检测、建图四个模块构成。前端里程计(Front End Odometry)主要计算相邻时间内传感器运动关系,从而解算运动轨迹。基于视觉传感器的前端里程计算法采用直接法或特征点法获得相邻两帧图像间的运动关系,文献[5-8]对视觉SLAM进行了较全面的综述;基于激光传感器的前端里程计采用迭代最近点(iterative closest point,ICP)及其变种算法估算传感器相邻时间的增量运动。后端优化(optimization)是对初始计算结果进行优化获得最优解生成统一轨迹和地图。回环检测(loop closure detection)主要解决随着时间增加误差积累问题,搭载传感器的平台在移动一段时间后又回到起点或者到达之前经过的某点,进行误差检测和改正。建图(mapping)实质是运动过程对环境的描述,所构建地图形式分为度量地图和拓扑地图。度量地图分为稀疏地图和稠密地图,稀疏地图对环境进行了一定的抽象表达,不能表达周围环境所有信息,通常用于快速定位与导航,具有较快的计算能力;稠密地图分为二维(2D)和三维(3D),2D稠密地图由一定分辨率的小格子组成,3D稠密地图则由一定分辨率的方块或3D点云构成,主要用于三维重建。拓扑地图由节点和边两种元素组成,主要表达地图元素之间的连通性。

本文对SLAM所涉及4个模块的核心算法进行了总结。目前SLAM研究重点主要放在后端优化上,主要算法有粒子滤波、图优化、最小二乘滤波等优化算法。由于最小二乘滤波算法(如滑动窗口滤波器或Kalman滤波器及其变体)简单并能够进行实时计算,曾被广泛采用。该方法基于两个假设:1)系统运动方程是线性或局部线性;2)测量噪声服从高斯分布。基于该方法,将SLAM后端优化理解为一系列高斯随机变量的线性变换操作(这些随机变量由均值向量和协方差矩阵表示),最小二乘滤波器随着建图规模增大,协方差矩阵会呈指数增长,这对于实时解算很不利,且大多数SLAM系统都不满足上述两种假设,求解精度差。为此,文献[17-19]成功将粒子滤波器应用到SLAM后端优化中,使用蒙特卡罗方法从一群离散粒子中估计变量,成功应用于2D和3D网格图中。粒子滤波器对非线性问题具有很好的鲁棒性但存在维度增长过快的问题,无法进行实时大规模建图。最近非线性图优化方法成为了主流方案,通过估计稀疏约束集的节点网络问题,能够有效解决SLAM后端优化的问题。近年来,非线性优化正逐渐取代传统滤波器,成为SLAM中主要处理手段,当前出现了基于非线性优化方法的开源库(如TORO (tree based network)和g2o (a general framework for graph optimization))被成功应用于SLAM系统中。目前,针对不同传感器和算法理论已经出现了多种SLAM方案,其中RGBD-SLAM V2是当前最为稳定有效的SLAM系统,该系统整合了SLAM各项关键技术如图像特征、回环检测、点云渲染、图优化等,是一个非常全面的SLAM系统,但提取SIFT(scale-invariant feature transform)特征和渲染点云,消耗计算资源较大。

由于背包的便携性,并随着传感器及算法的发展,目前出现了多种不同传感器组合的背包SLAM系统[40-46],。文献[40]针对2D激光扫描仪和惯性测量单元(inertial measurement units,IMU)组成的背包SLAM系统提出了4种方法,分别为:3×ICP、2×ICP+IMU、1×ICP+planer、1×ICP+IMU+planar。针对不同环境,四种方法有着不同优势,但都是针对不同传感器数据进行求解,从而恢复运动过程中的六自由度,并未考虑传感器数据之间联系,没有设计回环检测算法,不适合大范围室内3D重建。文献[41]在基于激光和IMU结合算法进行定位的基础上,增加了改进的基于图像相似性的快速匹配法(fast appearance-based mapping,FAB-MAP)的回环检测算法,有效地消除了累积误差。此方法整合的点云和渲染图像匹配效果不好,为改善点云和像素之间的匹配效果,作者通过使用基于图像特征点匹配的定位方法增加节点限制条件,使用TORO重新优化。但该系统没有对传感器数据进行滤波或相应的处理,生成的点云精度仍可进一步提高。

文献[42]添加了滤波算法,用EKF方法融合IMU和2D激光扫描仪的数据解算人和周围环境的位姿。该系统使用IMU测量获得姿态的估计值,并根据建筑物正交结构将扫描数据进行线-面匹配,能够高效快速的初始化和估计地图点。文献[43]使用相同的传感器(IMU和LRF(laser range finder)),将这两个硬件安装在弹簧末端,在人运动过程中,弹簧系统在摆动进行扫描匹配,通过使用扫描匹配算法,进行一体化匹配。该系统能够获得较大的视角,但要对弹簧摆动和弹簧性能进行研究,增加了算法的复杂性。

由于室内存在大量相似场景,基于传统光学图像相似性的回环检测算法容易造成大量的错误回环检测,针对这一弊端,文献[44]使用已生成的2D栅格地图检测当前扫描位置,并使用几何重叠的数量和复杂度两个指标剔除错误的回环检测提高了系统整体精度。作者利用分段遗传扫描匹配算法(fractional genetic scan matching)在扫描过程中自动去除噪声点,有效去除了人走路特性带来的点云噪声,提高了匹配算法的收敛性。然而,采用的2D栅格地图的回环检测无法适用于多层建筑;翻滚角(roll)和仰俯角(pitch)完全依赖IMU数据,IMU对运动轨迹有直接影响;另外,算法没有对丰富的图像信息加以有效利用。为此,文献[45]对系统进行了改进,设计一个紧耦合的扩展卡尔曼滤波(extended kalman filter,EKF)估计器,通过融合激光点云数据、IMU数据和图像获得更精确地的运动轨迹。该系统在非平面环境下不会造成精度损失。基于气压计数据,作者首次提出楼层自动检测算法,自动检测3D重建所在楼层,算法流程如图5。总之,该款背包SLAM系统是一个算法上较为完备的系统,但是整体3D点云精度仍需要继续提高。作者可利用相机数据首先生成稀疏3D点云,然后作为新的数据源融合EKF框架,提高3D重建精度。

为了克服基于2D激光扫描仪的背包SLAM系统对室内2.5D环境的假设,文献[46]首次将3D激光扫描仪应用到背包系统中。针对ROS(Robotic Operating System)[48]操作系统记录时间离散化的特点,作者设计了半刚性匹配算法(semi-rigid registration algorithm),可对轨迹进行全局优化。该系统使用ROS操作系统中的2D SLAM节点输出位姿结果,参与解算半刚性匹配算法生成一体化3D点云,适用于更复杂的室内环境。文献[49]对该系统进行了改进,增加了IMU传感器,使用Hector SLAM[34]系统处理2D激光扫描仪数据生成初始轨迹,并对生成的轨迹进行精度验证。实验结果显示,正常情况下,绝对轨迹中误差在0.1~0.15 m之间。该系统能够在2D SLAM算法出现错误的情况下通过半刚性匹配算法较好地匹配3D点云,具有较好的鲁棒性。由于3D激光扫描仪较为昂贵,目前在背包SLAM系统中应用较少。

基于移动背包测量理论,我国已有可用于市场化的产品,如欧思徕(北京) 智能科技有限公司出的一款3D SLAM,中海达公司第二代iScan-P、Leica公司移动背包测量系统、北京数字绿土科技有限公司LiBackpack[54]等移动背包产品都能够达到厘米级测量精度。总体来看,当前的背包SLAM系统并不成熟,仍处在发展阶段,算法和硬件的结合都在经历着不断改进和优化的过程,效率和精度仍然有待提高。

文献[55,56]开发的推车SLAM系统,使用Gmapping算法,融合垂直放置的2D激光扫描仪获取室内3D信息,Gmapping算法中融合了高精度车轮测距信息,实验结果显示位姿误差在2 cm以内。文献[57]设计了一款基于3个互相正交的2D激光扫描仪的推车SLAM系统,两个蓝色激光头用于数据采集,上端红色激光头采集的数据用于进行2D SLAM。该系统配备触摸显示屏,可供用户查看实时扫描区域,检查扫描状态。实验结果为点云均误差在3 cm之内。文献[58]设计了一款室内多传感器数据采集系统,该系统使用ROS作为操作系统,其中水平放置的2D激光扫描仪使用Hector SLAM[34]算法解算位姿,假定翻滚角和俯仰角为零,高程为常数。系统对垂直放置的2D激光扫描仪采集到的数据和路径轨迹按照时间节点进行匹配生成统一的3D点云模型,系统没有设计回环检测算法,无法消除累计误差。系统轨迹漂移率低于3%,点云中误差低于10 cm。目前国内的推车SLAM产品都取得了不错的性能,如立得空间信息股份公司的推车产品由全景相机和两个2D激光扫描仪组成,测量精度达为10 cm,北京华泰天宇的IMS 3D推车系统可实现厘米级的精度。基于推车平台的SLAM系统有两个特点:①可充分利用车轮的测距信息;②主要应用于平坦的室内环境。基于上述两个特点使得推车SLAM系统对点云匹配算法的复杂性要求较低,且容易取得较为精确的室内3D点云,但同时基于推车的SLAM系统无法在不平坦的室内环境或多楼层间进行3D重建。

鉴于微型无人机的尺寸小、机动性强和悬停能力的特性,使其在无人环境中的室内3D重建中将成为理想的平台,但其有限的载重和高机动性也向其计算能力和搭载传感器的数量提出了挑战。文献[61,62]基于单目相机和IMU传感器设计了微型飞行器导航算法。该系统首先EKF框架融合相邻两帧图像的光流和IMU数据求解飞行器速度,能够实时解算飞行器的状态,由于计算能力的限制,未涉及对场景的3D重建。香港科技大学沈劭劼对微型无人机SLAM技术进行了深入的研究,提出了基于不同传感器的三种无人机SLAM方案。1)以2D激光扫描器为主要传感器的无人机平台。通过ICP算法进行2D位姿解算,使用卡尔曼滤波融合IMU和重定向的激光扫描数据(指向天花板和地面的点云数据)进行高度解算,然后使用EKF算法融合2D姿态、高度和IMU数据恢复六自由度。该系统采用基于视觉的回环检测,最后使用批量式图优化法(batch graph optimization)进行优化,SLAM模块以一个很低的频率单独运行,在保证精度情况下尽量减少计算量,适用于规则的室内环境。2)基于相机为主传感器的系统设计能够放松2.5D环境的假设,硬件系统由两个相机(分为主相机和辅助相机)和一个IMU组成。基于硬件开发了单目-立体像对松耦合法(loosely-coupled, combined monocular-stereo approach)。主相机为广角相机以高频率运行,用于解算姿态和生成局部地图,辅助相机为单目相机的补充,以低频率运行用于和主相机结合形成立体像对恢复场景尺度。将视觉系统解算出位姿数据和IMU数据进行UKF(unscented Kalman filter)求解,该方案主要受环境纹理信息以及光照条件限制较大。3)为提高系统鲁棒性,沈劭劼等人设计了多传感器融合方法,该方案融合之前无人机状态向量和相对测量数据生成一个增强的状态向量,参与UKF算法框架进行松耦合解算。计算能力的限制使该系统需要外部模块的支持,且无法对传感器数据以紧耦合方式进行融合,因此整体精度受限。

综上所述,背包SLAM系统由于人的行走特性,使得算法设计复杂性更高,但其相对推车SLAM系统有着很大的灵活性,对室内环境要求较低,能够在多楼层之间进行一体化3D重建,因此其被关注和研究的程度最高。推车SLAM系统一般用于较为平坦的室内外环境,其可充分利用车轮的测距信息,因此绘图效果较好,且算法并没有背包SLAM系统那样复杂,但缺点是其灵活性较差,对环境适应能力较差。无人机SLAM系统侧重点在于导航和位姿估计,而无法分配更多计算资源供后端优化实现高精度的3D重建,因此为了增强3D重建的精度,大多采用离线处理或将数据实时传到高性能服务器上进行计算。深度相机SLAM系统适合于小范围室内3D重建,可作为背包系统的补充。随着RGB-D深度相机的发展,将会逐渐产生基于新型传感器融合的,更加多样化的SLAM系统。基于上述对不同SLAM系统的优缺点分析,本文认为以下几方面仍有待进一步研究。

1)之前大多数SLAM 3D重建系统是基于某一特定传感器或某一环境假设设计的系统,算法鲁棒性较差。因此目前大多系统设计正朝着多传感器数据融合方向发展,通过各传感器间优势互补来提高精度和算法的鲁棒性。

2)多传感器数据由于频率不同,存在数据节点不一致的问题,如何提高数据耦合程度和提高数据利用率也将是研究的方向。

3)为解决多传感器数据处理计算量大的问题,大多数方案不得不采用基于离线的后端优化来取得高精度重建结果。在保证精度下,需对算法进行优化或改进,提高数据处理的速度,使算法具有实时性。

4)由于室内存在大量相似场景,目前基于视觉的回环检测算法仍存在大量误匹配,严重影响3D重建精度,提高回环检测的精确性,仍是需要解决的难题,未来结合深度学习构建语义地图也将是提高3D建模精度的方向。

5)目前算法基本上是基于静态环境3D重建,如何拓展SLAM技术能够在动态3D环境中依然保持算法鲁棒性仍是未来要探索的方向和难点。

SLAM室内快速三维重建是依赖硬件不断发展的技术,目前,正经历着快速发展,仍处于不成熟阶段。如何使用更加轻便的传感器在复杂室内环境实时地获得更加精确的室内3D模型是将来的研究目标。相信随着新型传感器的产生,将会有更加鲁棒的算法随之产生,并能快速获得更加精确的室内3D模型。

编辑:邓国臣

往期热点文章

(查找往期消息:进入公众号—号内搜)

觉得不错,请点赞↓↓↓

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言