Chen X, Vizzo I, Läbe T, et al. Range Image-based LiDAR Localization for Autonomous Vehicles[J]. arXiv preprint arXiv:2105.12121, 2021. ICRA 2021,波恩大学;
针对问题:
使用更紧凑的先验LiDAR地图的进行LiDAR定位
提出方法:
在地图的表达上,使用激光雷达构建的mesh地图,在表达上更加紧凑;
将3D LiDAR扫描的信息通过球面坐标投影生成Range Image作为观测,建立了基于Range Image的观测模型,通过粒子滤波实现基于先验地图的精确定位结果。
达到效果:
在Carla,IPB-Car,MulRan(KAIST)以及Apollo(Columbia-Park)数据集上进行定性定量验证,对系统的定位精度、3D Lidar的普遍适用性以及实时性进行评估,证明本文系统能够实现实时且准确的定位。
存在问题:
该方法构建的先验地图仍然是稠密形式的地图,在存储上仍然存在占用内存较大的影响;
该方法采用的传感器仍比较昂贵,虽然实验验证了在线数比较小的雷达上仍能够实现较好效果。可以考虑使用GAN网络结合RGB特征生成伪图像的方式与当前相机之间的RGB图像作为观测实现定位。
代码地址:在公众号「3D视觉工坊」,后台回复「Range Image」,即可直接下载。
Abstract
鲁棒而准确的基于地图的定位对于自主移动系统至关重要。在本文中,我们利用3D LiDAR扫描产生的Range Image来解决移动机器人或自主汽车在由三角形网格表示的大规模户外环境地图中的定位问题。我们使用泊松表面重建来生成基于网格的地图表示。基于当前LiDAR扫描产生的Range Image和基于网格的地图的合成渲染视图,我们提出了一个新的观测模型,并将其整合到蒙特卡洛定位框架中,实验证明该模型实现了更好的定位性能,并能很好地适用于不同环境。我们用不同的LiDAR扫描仪在不同的环境中收集的多个数据集来测试所提出的定位方法。实验结果表明,我们的方法可以在不同的环境中可靠而准确地定位移动系统,并在LiDAR传感器的帧速率下在线运行,跟踪车辆的位姿。
Introduction
在本文中,我们不使用从三维激光雷达传感器获得的原始点云或从点云中生成或学习的特征,而是研究基于三维激光雷达的Range Image自主车辆的定位。我们将点云投影到Range Image中,并通过用三角形网格表示的地图的渲染视图来实现自主移动系统的定位。使用Range Image表示和用网格表示的地图有几个原因:圆柱形的Range Image是机械式三维激光雷达自然且轻量级的表示,而网格地图比大型点云更紧凑。这些特性使我们的方法能够在大规模环境中实现全局定位。此外,网状地图的范围图像的渲染可以使用计算机图形技术有效地进行。因此,Range Image和网状地图是实现基于LiDAR的全局定位的完美搭配。
The main contribution
本文的主要贡献是为基于LiDAR的三维定位建立了一个新的观测模型。我们的模型是基于从真实的LiDAR扫描和网状地图的合成渲染中产生的Range Image。我们使用它们之间的差异来制定蒙特卡洛定位(MCL)的观察模型,以更新粒子的重要性权重。基于我们
此外,我们的方法在用不同类型的LiDAR扫描仪收集的不同环境中具有良好的通用性。总而言之,我们提出了三个关键的观点,并且这些观点在论文和实验评估中得到了较好的支撑:
1)使用3D LiDAR数据准确可靠地实现全局定位
2)可用于不同类型的LiDAR传感器
3)在不同的环境中具有良好的通用性
Our Approach
在本文中,我们提出了一个使用三维LiDAR传感器的自主车辆的概率全局定位系统。为了实现此功能,我们将LiDAR点云投射到Range Image中,并将其与由三角形网格代表的地图上的每个粒子位置所呈现的合成Range Image进行比较。基于range image,我们为基于LiDAR的定位系统构建了一个新的观测模型,并将其整合到蒙特卡洛定位系统中。此外,我们采用tile map来加速渲染并决定系统何时收敛。使用一个基于OpenGL的渲染方式进行上述操作,所提出的系统在能够以LiDAR传感器的采集帧率在线运行。
1.Range Image Generation
所提出的方法的关键思想是使用从LiDAR扫描生成的Range Image,并从三角网状图中渲染出来,用于机器人定位。为了生成Range Image,我们使用球面投影法。
2.Mesh-based Map Representation
我们使用一个三角形的网格作为环境的地图M。三角形网格为我们提供了一个紧凑的表示,使我们能够以LiDAR传感器的帧速率渲染上述的Range Image。
为了生成地图,我们使用LiDAR传感器用于SLAM建图。请注意,我们的方法没有必要使用同一LiDAR传感器来生成地图和定位。我们采用泊松表面重建(PSR),从点云中获得作为三角形网格的地图的表示。PSR算法需要一个定向的点云,即输入点云中所有点的法线。为了估计表面法线,我们使用了一个基于range image的法线估计,该算法为每个坐
在平均化之后,无效的边缘将被去除。一旦地面被简化,它就与网格的其他部分结合在一起,不做进一步处理。这种简化使我们能够将网格模型的大小减少到原来的50%左右。
PSR算法提供了一个全局解决方案,它一次性考虑了整个输入数据,而没有诉诸启发式或分区。因此,我们不是增量式地构建地图,而是利用地图位姿将所有的定向点云聚集到一个全局参考框架中,然后,这个定向点云地图被直接输入到PSR算法中,产生一个全局一致的环境三角网格。
3.Rendering Synthetic Range Images
粒子渲染一个合成Range Image。使用球面投影,我们从给定的粒子位姿投射三角形的顶点,并让OpenGL在考虑到遮挡的情况下对三角形表面进行着色。为了进一步加速渲染,我们使用地图的实例化来渲染多个粒子的Range Image的批次,这使我们能够避免多次读取顶点位置,并最大限度地减少绘图调用的数量。
4.Monte Carlo Localization
5.Range Image-based Observation Model
根据当前LiDAR扫描生成的测距图像和所有颗粒的合成测距图像,我们设计了一个观测模型。
有几种方法来计算这种相似性。例如,我们可以直接在像素水平上用绝对差异或用交叉相关来比较两幅范围图像。我们还可以生成特征,并在特征空间中比较两幅图像。最近,也有许多基于深度学习的算法被提出。
在本文中,我们的目标是研究由LiDAR扫描和三角网格产生的测距图像在蒙特卡洛定位系统中的应用,相似性计算的具体选择取决于应用。为了保持整个系统的快速和易于使用,
上图显示了由我们提出的观察模型计算出的局部区域的概率,并表明它能很好地编码姿态假设。与我们先前的工作(OverlapNet)相比,该工作将观测模型解耦为位置似然和航向似然两部分,所提出的观测模型可以使用一个模型一次性估计整个状态空间的似然,这是优雅而快速的。
6.Tiled Map Representation
我们将基于网格的全局地图分割成tiles,通过更有效的渲染来加速蒙特卡洛的定位。我们只使用与tile关联上的、接近粒子位置的网格部分。除了更有效的渲染之外,我们还使用tiles来确定定位是否已经收敛。如果所有的粒子都被定位在最多N个tiles中,我们就认为定位已经收敛,并减少粒子的数量来跟踪位姿。瓷砖也使我们的方法的运行时间与收敛后整个环境的大小无关。
Experimental Evaluation
我们展示了我们的实验,以显示我们方法的能力,并支持我们的主张,即我们的方法能够。(i) 使用3D LiDAR数据准确可靠地实现全局定位,(ii) 可用于不同类型的LiDAR扫描仪,以及,(iii) 在不改变参数的情况下很好地适用于不同环境。
Implementation Details
Datasets
本文在Carla、IPB-Car、MulRan(KAIST)以及Apollo(Comumbia-Park)数据集上进行了系统性能测试,这些数据集包含了不同的场景以及不同的激光雷达型号。对于Carla模拟器,我们为测试序列添加了对象,这些对象不存在于地图中,以模拟像真实数据集那样的变化环境。对于不同数据集的所有实验,我们只改变LiDAR传感器的内在和外在校准参数,用于生成Range Image,并保持所有其他参数,特别是MCL的参数不变。
Baselines
在下面的实验中,我们使用相同的MCL框架,只改变观察模型。我们将我们的方法与三个Baseline观察模型进行比较:典型的beam-end模型,基于直方图的模型,以及一个基于深度学习的模型。
beam-end观测模型通常用于二维LiDAR数据。对于三维LiDAR扫描,它需要更多的粒子来确保收敛到正确的姿态,这导致计算时间大大增加。在本文中,我们用分辨率为10厘米的体素化下采样点云图来实现beam-end模型。
我们的第二个作为比较的Baseline受到Rohling的启发,他们利用了从3D LiDAR数据中提取的直方图上的相似性作为观测。
第三个作为比较的Baseline是作者之前的一项工作,它使用深度神经网络来估计查询扫描和地图数据之间的重叠和偏航角偏移,并在此基础上为MCL建立一个观测模型。基于重叠的方法利用网格地图并为每个网格单元存储虚拟帧。
1.Localization Performance
在IPB-Car数据上的定性结果表明,所提出的方法仅使用在不同时间的动态环境中收集的LiDAR数据就能很好地在地图中定位。与基线方法相比,本文所提出的方法能更准确地跟踪姿势。
来测试这些方法。对于每个设置,我们取样10个轨迹并进行全局定位。X轴代表粒子的数量,而Y轴是不同设置的成功率。一种方法的特定设置的成功率是用成功案例的数量除以测试的总数量计算出来的。为了决定一个测试是否成功,我们在收敛后每100帧检查一次位置误差。如果位置误差小于5米,我们就把这次运行算作成功。定位精度的定量结果见下表。上半部分显示了用两种序列测试的所有方法的定位误差。定位误差被定义为每次测试的均方根误差(RMSE),即相对于地面真实位置的(X,Y)欧氏误差。它显示了每个观测模型的误差的平均值和标准偏差。请注意,位置误差只针对有10,000个粒子的成功案例进行计算。下半部分显示了偏航角误差。它是每个测试的偏航角误差相对于地面真实姿势的RMSE。该表显示了每个观测模型的误差的平均值和标准偏差。和以前一样,偏航角误差也只计算全局定位收敛了10,000个粒子的情况。
定量结果表明,我们的方法在定位精度方面优于所有的基线方法,同时取得了相近的航向精度。原因是我们的方法使用了在线渲染的Range Image,不依赖于离散的网格。因此,我们的方法不会受到网格分辨率的影响。然而,这意味着我们的方法需要更多的粒子来实现同样的成功率。因此,我们使用大量的粒子进行初始化。然后,它将达到一个高的成功率,同时不影响收敛后的运行时间。
2.Generalization
为了证明我们方法对LiDAR型号的通用性,即我们的方法能够使用不同类型的LiDAR传感器在同一网格地图中进行定位。我们在Carla模拟器中测试了5种不同类型的LiDAR传感器,包括Quanergy MQ-8、Velodyne Puck、Velodyne HDL-32E、Velodyne HDL-64E和Ouster OS1-128。我们使用上述LiDAR传感器的真实参数,其中包括光束数量和视场。如下表所示我们的方法在所有不同类型的传感器上都能很好地工作,甚至在相对稀疏的扫描中也能取得良好的定位结果(Quanergy MQ-8 LiDAR的定位RMSE为0.48米)。
实验验证了我们的方法在不同环境下具有良好的通用性。我们在MulRan和Apollo数据集上测试了我们的方法,参数与Carla和IPB-Car数据集中使用的相同。我们的方法在韩国和美国的城市环境中也运行良好。
3.Runtime
这里我们表明,我们的方法运行速度足以支持在传感器帧率下对机器人进行在线处理。我们在一台拥有3.2GHz的英特尔i7-8700和11GB内存的Nvidia GeForce GTX 1080 Ti的普通计算机上测试了我们的方法。在Carla数据集上,收敛之前,一个查询帧的最大时间是56.7秒,有10,000个粒子。在收敛之后,我们的方法在100个粒子和100×100平方米的瓦片图上的平均帧率为21.8Hz。
Conclusion
在本文中,我们提出了一种新的基于Range Image的在线LiDAR定位方法。我们的方法利用了LiDAR扫描产生的Range Image和基于三角形网格的地图表示。这使我们能够在给定的地图中成功地对自主系统进行定位。我们在不同的数据集上实施并评估了我们的方法,并提供了与其他现有技术的比较。实验表明,我们的方法能够可靠而准确地实现全局定位。此外,我们的方法可以很好地适用于不同的环境,并且可以与不同的LiDAR传感器一起使用。定位收敛后,我们的方法可以在传感器帧率下在线运行。
备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区
原创征稿
初衷3D视觉工坊是基于优质原创文章的自媒体平台,创始人和合伙人致力于发布3D视觉领域最干货的文章,然而少数人的力量毕竟有限,知识盲区和领域漏洞依然存在。为了能够更好地展示领域知识,现向全体粉丝以及阅读者征稿,如果您的文章是3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、硬件选型、求职分享等方向,欢迎砸稿过来~文章内容可以为paper reading、资源总结、项目实战总结等形式,公众号将会对每一个投稿者提供相应的稿费,我们支持知识有价!
投稿方式
邮箱:[email protected] 或者加下方的小助理微信,另请注明原创投稿。
▲长按加微信联系
▲长按关注公众号
继续阅读
阅读原文