SLAM
移动扫描的优势在扫描领域是众所周知的。与传统的架站仪(TLS)相比,移动扫描设备可以更好的涵盖扫描范围以及加速工作流程,这也意味着可以减少服务供应商在现场的工作时间,并减低扫描成本。
但对于经验丰富的 3D 扫描“老司机”来说,移动扫描系统所提供的数据似乎被认作为“不靠谱”的存在,特别是当你的业务对数据精度要求非常精准的情况下。
这是因为移动扫描系统依赖于SLAM--即时定位与地图构建(simultaneous localization and mapping algorithms)*,它会自动执行很大一部分的扫描工作流程。这个自动化让很多传统扫描专家很难理解一个移动扫描系统到底是如何生成最终的点云的,或者一个现场技术人员将如何规划他们的工作流程以确保高质量的交付成果。
而本篇文章,小编将于大家一起打开黑匣子,探索SLAM的不为
(大部分)人知的细节。我们这里将解开这个技术的面纱,于大家一起分享其如何影响最终点云的精准度,以及最后,我们会分享一些Tips来帮助您在现实项目中如何确保更精准的扫描结果。
01.SLAM之究竟是什么?
SLAM(simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。
问题可以描述为:将一个扫描仪器放入未知环境中的未知位置,是否有办法让扫描仪器一边移动一边逐步描绘出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。
所以SLAM 为一种算法,用于将来自您的移动扫描系统的传感器(激光雷达、RGB 相机、IMU 等等)所捕捉的数据进行融合,并最终确保您在建筑物中移动所产生的扫描轨迹。
VLX 实时捕获的长走廊的扫描路径
简而言之:当您在初始化系统时,SLAM 算法会使用传感器数据和计算机视觉技术来观察周围环境,并精准的估计您的当前位置。
当您在移动时,SLAM将根据您所在之前位置的估算值,并与系统传感器所回传的数据值相对比,重新计算您的当前位置。将此过程不断重复,SLAM 系统将最终跟踪您在建筑物中所行驶的路径。
SLAM 是一个很复杂的过程--即使像上述简化而言也有些复杂,但您可以想象它为测绘方法所说的“穿越法”。
穿越法(traverse method)是指,测绘人员会沿着观察路线对于许多点进行测量,当测绘人员对每个点进行测量时,他们会利用之前的点作为测量的基准。
SLAM算法有点类似于这种方法只是在每秒进行更大量的数据测量。换句话说,SLAM 算法是一种精密的技术,在移动时自动执行路线穿越。
02.SLAM 之对扫描精度的影响
想要了解一个基于SLAM 算法的设备的扫描精度,你需要了解移动扫描系统究竟是如何捕捉数据的。
一个架站仪(TLS)在捕捉一个环境时通过360°旋转一个激光传感器从而测量其周边环境的。由于它是从一个固定的点来采集数据的,它所捕获的点云中的每个测量值都已经在空间中相对于扫描仪做了精准的对齐。
一个移动扫描系统也是将一个激光传感器旋转360°,但不是从一个固定的位置。由于您是在移动(走路)过程中进行扫描,您也同时在传感器旋转过程中移动了传感器。这就会导致每次测量的对齐错误,并降低最终点云的精度。
当我们在夜间照相的时候,当您不小心挪动了照相机,就会造成照片模糊,其实是一个非常类似的现象。
同理而言,当您看到未经SLAM算法处理过的移动扫描仪器捕获的原始数据的时候,您会发现这些点非常的凌乱,并且在空间各处分散开来并且加倍的存在。
移动扫描系统旨在纠正这些对齐错误,并生成干净、准确的点云。为了实现这一点,它使用了SLAM 算法记录了扫描轨迹。这些数据使它能够确定在每次扫描设备的进行数据捕捉测量的位置,并在空间中准确的对齐这些点。
这也就意味着一个基于SLAM 技术的移动扫描系统的精度不仅仅取决于传感器本身的精度,在很大程度上也取决于SLAM 算法如何记录跟踪您的扫描轨迹。
03.SLAM 之精度误差
开发SLAM 算法来准确记录您的扫描轨迹并生成高质量的点云,制造商一直面临着一个具体大的挑战即纠正两种主要误差。
01
第一种为跟踪误差。
当SLAM算法在某些环境中会遇到一些问题,即会发生跟踪误差。例如,长走廊通常缺乏SLAM 所依赖的环境特征,就可能会导致系统失去您所在位置的跟踪。
02
第二种为偏移误差。
发生偏移误差是因为SLAM 算法利用传感器数据来计算您的位置,并且所有传感器都会产生测量误差。由于SLAM 算法的计算方式—基于之前位置来计算每个位置,例如“穿越法”—传感器产生的错误会在您扫描的过程中累积起来。最终导致了扫描轨迹的准确性的“偏移误差”从而影响了您最终扫描结果的质量 。
如果您是使用早期的移动扫描系统,这些错误很可能会影响您的最终数据的质量。
04.工作流程从而确保高质量结果
好消息是移动扫描系统自进入市场以来已经有了大为成熟。制造商已经开发了成熟的SLAM 算法来自动减少跟踪误差及偏移误差。并且移动扫描者利用可靠的工作流程来手动更正错误,因此您可以最大限度地提高最终获取地点云质量。
VLX 扫描所产生的多楼层点云
最为流行地工作流程叫做“闭环扫描”。执行“闭环扫描”,只需要简单的回到一个之前扫描过的点,然后SLAM 将会识别这个重叠点。此步骤提供了其所需地信息来计算已发生地任何偏移误差或跟踪误差并进行纠正。
尽管闭环扫描在大型空间中(譬如健身房、室外区域、甚至大型办公室)是有效的,但某些环境会使闭环扫描变得异常困难,譬如上述所说的长走廊。
对于这些情况,更先进的移动扫描系统提供了提供了一个功能及利用控制点来锁定扫描数据。
这个过程也非常简单:即在整个要扫描的建筑物中放置测量控制点(靶点坐标)。
使用VLX利用地面控制点
利用一个比移动扫描系统精准度更高的系统譬如说全站仪捕捉其坐标。
在您扫描建筑物的同时,捕捉这些控制点。移动扫描系统会利用这些信息将捕捉的点云进行处理,减少误差,并确保在异常困难的环境中也可以生成测绘级精度的点云。当精度至关重要的时候,扫描者可以使用这个方式。
05.SLAM 算法至关重要
需要注意的是,每个制造商在其移动扫描系统中都有自己专有的SLAM算法。每一个算法在表面上看起来都非常相似,但它们之间的差异可能意味着最终数据的质量会有巨大的差异。
这也是为什么,为确保高质量的扫描结果,您在购买过程中需要研究每个移动扫描系统,并了解背后的SLAM算法的具体细节。了解其SLAM算法支持哪些方法来更正误差。
使用M6获得的点云
譬如说是否可以使用“闭环扫描”,或者是“控制点”吗?这些方式在您扫描的环境下的工作表现如何?制造商就通过这些方式所获得的绝对精度和相对精度是如何断定的?
了解在特殊环境下,SLAM 算法的性能如何。例如在长走廊这种情况下所获得的精度如何?又譬如在大型开放区域?其算法是如何处理反射表面的?或相对于移动物体,譬如说路过的行人的处理又是如何?在不同的环境下表现都会很好吗?
此类问题的答案,将会告诉您在使用其移动扫描设备时所能期望的数据质量,并帮助您找到一种适应您的日常工作中不同环境下可以使用的设备。
原文:小白学视觉
作者:小白
推荐阅读
更多嵌入式AI技术相关内容请关注嵌入式AI专栏。