自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团

发布于 2023-8-3 15:55
浏览
0收藏

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

摘要

      本文提出一种新型的方法用于自动驾驶车辆的视觉建图和定位,该方法提取、建模并优化语义道路元素。具体而言,本文方法集成级联深度模型来检测标准化道路元素,而不是传统的点特征,以寻求改进的位姿精度和紧凑的地图表示。为了利用结构化特征,我们通过路灯和标志具有代表性的框架和边界的深度关键点对它们进行建模,并且通过分段三次样条曲线对车道进行参数化。基于道路语义特征,我们建立一个完整的建图和定位流程,其包含:a)图像处理前端;b)传感器融合策略;c)优化后端。本文方法在公开数据集和我们测试平台上的实验已经证明其有效性和优势,它优于传统的方法。

介绍

      为了使自动驾驶车辆能够在城市环境中完全导航,关键的技术组成部分之一为建图和定位,它提供高精度位姿估计。一般而言,建图和定位的设计准则概括为:精确、鲁棒和高效。前两个属性是为了确保自动驾驶车辆在变化环境中的安全性,最后一个属性是允许使用低成本的处理器、内存和存储,使得自动驾驶车辆性价比更高。

      在本工作中,我们主要着重于使用视觉传感器进行建图和定位,这些视觉传感器通常价格低廉、功耗低并且广泛应用于当前商用车辆。迄今为止,大多数视觉地图由三维可区分点组成,它们通过概率地聚合和优化从输入图像上检测到的点特征的信息来计算。然而,尽管基于点特征的算法近年来被大量研究,但是它们仍然存在效率和鲁棒性方面的缺陷。一方面,这些算法通常在每张图像上提取数以百计的点特征,并且为城镇规模的地图计算数百万或者数以千万个点。这对于离线计算和在线查询过程需要大量的计算资源。另一方面,传统的点特征可能并不总是适合于长期持续定位,因为它们可能很难在不同光照/天气条件下一直被识别到,或者可能大概率会消失。

      为了处理上述问题,一种解决方案在构建地图时约束地图元素为“持续”且“紧凑”的。具体而言,地图元素应该持续有效配准,其中动态元素被过滤,而稳定特征被保留。此外,地图元素需要是稀疏的,并且频繁可观,以实现紧凑性,而存储的目标是高度可查询的,以便进行高效配准。为了实现这些性质,而不像传统方法那样主要依赖于几何特征,可以在特征表示中既考虑几何属性,也考虑语义属性。

      在现有的建图和定位方法中,已经设计高级别特征表示,通过丰富度量地图中可应用的几何组成部分来提高估计性能。代表性方法包括:利用线(工作PL-SLAM: A stereo SLAM system through the combination of points and line segments)、面(Pop-up slam: Semantic monocular plane slam for low-texture environments)和盒子(Cubeslam: Monocular 3-d object slam)。受到最近在计算机视觉算法中语义理解方面取得成功的影响,在建图和定位中检测语义分量也在积极研究中。工作Posenet: A convolutional network for real-time 6-dof camera relocalization提出了一种通过神经网络编码语义信息以执行端到端6自由度定位的方法。然而,该方法缺少位姿不确定性保证,因此无法在需要安全性的应用中直接使用。此外,工作Semantic visual localization引入一种方法用于语义描述子学习,然而这无法满足低成本计算的要求。

      在自动驾驶应用中,我们注意到,常见道路本质上由持续且紧凑的元素组成:标准交通标志(悬挂或者画在地面上)、车道、灯柱等。因此,为了促进稳定且低成本的自动驾驶系统,本文建议检测并参数化道路元素,以及设计一种新型的语义建图和定位流程。我们认为这个流程是本工作的关键贡献,其包括:

      1)卷积神经网络(CNN)支持图像处理前端以提取语义特征;

      2)参数化道路元素和设计损失函数的方法;

      3)可以用于离线建图和在线定位的语义优化模块。

      我们注意到,存在一些方法在概念上与本文方法类似,其通过分割道路图像,在稳定区域中选点,例如工作Maskslam: Robust feature-based monocular slam by masking using semantic segmentation。然而,在稳定语义区域内的点特征可能不是稳定且紧凑的,并且没有利用高级别的信息,例如曲线。相比之下,本文方法利用多源语义信息,并且提供更紧凑的表示,达到更好的“持续性”和“紧凑性”。

语义建图和定位

A.系统概述

      本文建图和定位系统的骨架是一个紧耦合的状态优化框架,其具有批量处理和滑动窗口策略,如图1所示。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

      具体而言,本文算法提出基于标准化道路元素来构建语义地图,并且使用这类地图进行在线定位。涉及的语义元素包括三种主要类型:水平目标、地面目标和车道。给定一个关键帧,感知模块执行级联深度检测来提取实例和其具有代表性的点作为视觉特征。


      在离线建图过程中,感知模块在每一帧上运行。然后,跟踪连续帧之间的检测结果以建立多视图关联,用于联合估计相机轨迹和路标位姿。随后,通过回环检测重新识别并且合并先前访问路段中再次观测到的实体元素。最后,这些优化后的状态被序列化为地图元素用于定位。在基于在线地图辅助的定位过程中,感知模块以较低频率运行,从而允许在计算单元中实现低成本消耗。因此,通过混合检测和跟踪策略来获取语义特征。这些特征再次与存储地图匹配,并且通过基于里程计系统的滑动窗口优化来降低全局漂移。

B.道路特征选择

      考虑地图稀疏性和查询有效性,以下城市道路上标准化目标适合被检测为语义路标:1)道路旁边电线杆顶部的路灯和交通标志是稳定且足够高以被前视相机采集到;2)尽管地面区域有时被车辆遮挡,但是它占据每张图像接近一半的范围,使得地面上绘制的高对比度标志不可忽略;3)与地面标志类似,绘制的实线和虚线车道也频繁地被观测到。实线车道提供一个方向的运动约束,来自虚线车道的角点可以被认为是索引点路标。在本工作中,我们选择上述语义类型作为目标物体以构建语义地图,如图2所示。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

C.道路特征检测

      本文两阶段级联检测模块首先执行实例级检测,以将实例作为边框(即电线杆和地面)对象上的索引代表像素和车道轮廓上的采样像素。然后,沿着这些检测到的虚线车道,我们评估64x64图像块来级联检测索引的虚线车道角点。为了减少对可共享过程(例如特征提取)重复计算,我们参考anchor free检测方法CenterNet,它将低级别特征提取过程与高级别heads分离,以使这些heads能够适应不同任务。


      网络设计:本文使用DLA-34和DCN模块作为特征提取的主干。在反卷积之后,我们获得多个heads H的下采样特征地图,以及它们的损失函数,如表格I所示。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

      1)目标框和关键点。根据CenterNet的人体位姿估计任务,本文模型支持使用6个提出的heads来支持多目标框和关键点的混合检测;

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

D.语义元素特征跟踪

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

      我们使用Hungarian匹配策略在像素空间中以实例和像素两种方式来关联地面特征:1)在实例关联过程中,我们计算常规物体多边形和车道5.0像素宽折线上的交并比(IoU);2)在像素关联过程中,我们计算索引关键点的重投影像素距离。IoU百分比<50%且像素距离>5.0的匹配被忽略。


      对于垂直物体(例如电线杆)上检测到的关键点,我们使用光流法进行帧间跟踪。在特征跟踪过程中,我们保留由GFTT提取器和FREAK描述子提取、描述和跟踪的经典关键点,因为它们不仅是视觉-惯性里程计的一部分,还是值得包含在结构化物体中稳定跟踪的点特征。与输出mask的分割不同,检测到的两维边框可能包含来自背景区域的GFTT特征关键点,特别是在电线杆情况下。因此,我们在状态初始化过程中对这些背景特征关键点执行异常值剔除。

E.道路车道表示和初始化

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

F.状态估计器设计

      为了清晰起见,我们在表格II中总结了本文方法使用的索引注释。


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


      为了将这类语义实体元素加入到紧耦合视觉-惯性里程计中,我们在本文系统中引入五种新类型的优化变量,总结如下:

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

      1)点观测因子。我们倾向于如先前方法那样,通过如下约束三角化并参数化常规关键点:


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


离线建图情况。在初始化这些变量之后,我们基于常用视觉-惯性里程计约束来推导因子图优化,将Cauchy损失函数加入到上述因子以便数值稳定,并且首个帧的位姿固定为单位矩阵。所有关键帧和检测到的实体元素被包含到最终的BA中,以便联合求解关键帧位姿和实体元素位置。

在线定位情况。在线定位过程中,我们反序列化固定的语义路标(即样条的控制点和来自语义地图的常规三维点),并且在公式4和公式5中固定它们,以加入相机和地图坐标之间的相对位姿约束。在这一阶段中,不再需要公式6中的共面约束。我们将进一步介绍这些因子是如何通过所提出的地图查询策略来构建的。

G.重识别和特征合并

本文执行3D-3D关联来重新识别语义目标,而不是逐帧词袋查询。原因在于,建图过程中,重复目标的密度(几十米)比GNSS-VIO里程计的定位不确定性相对更稀疏,并且这些标准化道路元素的视觉外观太过相似,导致难以区分。在实例物体和车道关联过程中,我们将三角化物体的中心之间距离小于5.0米(或者对车道而言为0.5米)的关联结果认为是正确的,然后在Hungarian策略中级联合并其包含的深度点和经典点的观测:深度点的语义类型用于剔除误匹配。然而对于每个GFTT点,我们使用它们在多帧之间的FREAK描述子进行投票。我们使用union-find算法来合并它们的观测,并且进行另一轮全局状态优化。

H.语义地图数据结构

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

I.基于语义地图定位


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

实验评估

A.数据集

      本文使用两个真实世界数据集来评估系统性能,包括一个公开可用数据集KAIST和一个自己录制的数据集。对于KAIST序列,我们使用城市道路序列26、28、38、39中左相机、IMU和GNSS测量。注意,其中一些轨迹与其它轨迹有重叠区域。我们还通过硬件同步的传感器(包括一个10Hz ON AR0144双目相机、一个200Hz Bosch BMI 088 IMU和一个10Hz u-blox F9 RTK-GPS)在杭州录制两个序列。我们录制一个长序列,称为Hangzhou-1,其行程4.7km用于建图;另一个序列Hangzhou-2作为子集,其行程3.2km用于交叉定位。

B.感知模型训练和性能

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


      性能:表格III展示本文训练的深度模型在KAIST数据集上的性能,通过三种具有代表性的子类型(电线杆、交通标志和地面标志)在图像上的外观,使用边界框对目标分组。我们在测试集上分别评估这些任务,以总结其分类精度、检测召回率和提取像素的像素误差,如表格III所示。我们还给出像素误差的分布直方图,如图5所示。


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

C.定位和建图评估

      实验设置:我们选择将所提出方法与由FREAK描述的经典特征点组成的降采样地图进行比较。在每个关键帧上提取大约500个GFTT关键点(与本文系统相同)以执行滑动窗口优化、逐帧回环和最终BA。我们在离线建图过程中使用高质量GNSS测量,在线重定位过程中使用低质量GPS结果。具体而言,本文所提出方法与基准之间存在两个区别:1)在离线建图BA之后,我们对语义实体执行空间重识别,因此需要另一轮最终BA;2)在在线定位中帧到地图关联的过程中,本文方法通过存储在语义地图中的这些序列化语义特征来替换所有经典的帧到地图的局部特征关联。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


      交叉定位:我们使用传统地图和最新系统Maplab进行交叉重定位实验。与本文两阶段方式相同,Maplab也是一个开源建图和定位框架。由于其原始版本没有利用GNSS测量,我们转换由基准方法构建的那些地图,以提高定位汇总地图的质量。此外,我们测试了其包含的地图稀疏化方法,以通过不同点路标的保留百分比D进行压缩。


           表格IV展示这种相互交叉定位结果。


自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区


       可以看出,本文提出方法使用包含边界框对象和道路车道的语义地图,在所有交叉证测中实现了成功定位。对于传统地图,我们使用包含全尺寸地图的多种设置进行测试。不幸的是,由于不同季节和时间段捕获的视觉特征发生巨大变化,在28个序列的地图上运行KAIST-38序列时,定位始终失败。因此,集合覆盖稀疏化需要应用更大的K值进行交叉重定位,以维持足够可靠的特征。对于Maplab,生成的地图规模比预期更大,因为保留的具有信息的三维点通常与更多局部视觉描述子相关联。相比之下,本文所提出方法依赖于从标准化和持久道路元素中提取的深度特征。总之,这种语义元素的替换在交叉定位方面优于传统地图和Maplab很多,并且在Hangzhou序列上的实验反映了相同的趋势,这表明其在紧凑性和定位精度方面的优势。


      模块化和效率分析:表格V给出本文定位中涉及的两个跟踪(tracking)状态的统计数据。在大多数情况下,本文方法运行在紧跟踪(tight tracking)模式,其反映了更好的定位精度。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

      表格VI展示从不同语义实体使用的特征点的平均数量。由于行车记录仪能够观测并且检测比地面物体相对远的有效的柱子和标志物体,这些物体对定位做出的贡献最大。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

      我们还分析不同定位模式下语义物体关联的时间消耗。在在线定位过程中,感知模块和地图查询模块运行在单独的线程中。在感知模块中,如果分别进行单独地检测,车道需要17.6ms / 693MB,角点需要7.5ms / 422MB,其它物体和关键点需要17.3ms / 1177MB。在地图查询模块中,局部搜索(local search)模式的平均耗时大约为300ms,而对于主要的松跟踪(loose tracking)或者紧跟踪(tight tracking)模式,耗时减少到小于1ms。总耗时低于我们设计的定位查询频率(1Hz)。


      语义建图稳定性:由于上述实验主要说明在线定位过程中的有效性,我们还通过将传统建图和语义建图过程中的轨迹与它们对应的数据集基准(即Hangzhou序列的GNSS轨迹,并提供KAIST的真值轨迹)相比较来对地图质量进行定量评估,从而说明所包含这类语义特征的稳定性。表格VII展示经典和语义建图方法中的建图误差。这表明,引入语义物体没有明显影响建图质量。

自动驾驶定位|使用稀疏语义特征的道路建图和定位——阿里巴巴集团 -汽车开发者社区

总结

      在本文中,我们提出一种语义建图和定位流程,其检测并参数化语义实体(包含电线杆、标志和道路车道)以构建一个紧凑的语义地图,用于高效且精确的定位。


文章转载自公众号:自动驾驶专栏





分类
收藏
回复
举报
回复
相关推荐