1. 摘要
为了减少对高清地图的依赖,自动驾驶领域的一个发展趋势是利用车载传感器在线生成矢量地图。然而,目前的方法大多受限于仅处理单帧输入,这妨碍了它们在复杂场景中的鲁棒性和有效性。为了解决这一问题,本文提出了一种在线地图构建系统,该系统利用长期的时间信息来建立一致的矢量地图。首先,该系统通过现成的网络高效地融合所有历史道路标记检测结果到一个语义体素地图中,该地图采用基于哈希的策略来利用道路元素的稀疏性。然后,通过分析融合的信息找到可靠的体素,并逐步聚类成道路标记的实例级表示。最后,系统结合领域知识来估计道路的几何和拓扑结构,这些结果可以直接被规划与控制模块使用。复杂城市环境中进行的实验证明了本文的系统输出比仅用网络输出的结果更加一致和准确,并且可以有效地应用于闭环的自动驾驶系统中。
2. 介绍
地图通常用于定位和规划控制。传统上,自动驾驶车辆主要使用预制的HD地图,但其制作和维护依赖于昂贵且耗时的多传感器移动测绘系统。为了减少对这些离线HD地图的依赖,研究人员开发了利用车载传感器实时构建在线地图的无地图解决方案,如HDMapNet和MapTR。这些方法从鸟瞰图视角构建地图,但容易受到遮挡和光照变化的影响,且地图间的时间一致性不足。
为改善时间一致性,研究人员探索了多种方法,如使用深度网络进行时间融合的StreamMapNet和MapTracker,它们通过记忆缓冲区保留先前的特征并结合当前数据以提高一致性,但这增加了计算和存储负担。另一种方法是跟踪和融合神经网络的3D检测,如MonoLaM,这种方法更灵活高效,但依赖于检测结果的一致性。此外,与成熟的HD地图相比,大多数在线地图构建方法缺乏对PnC算法至关重要的车道级信息。
本文提出了一个在线地图构建系统,用于闭环自动驾驶,要求地图时间一致且包含车道信息。本文融合检测网络的输出而非高维特征,采用基于空间哈希的稀疏体素地图,随时间融合检测数据。这种方法无需显式时间数据关联,能高效提取稳定的道路标记实例,如图1所示。本文还提出了一种基于常见道路布局的通用程序,从体素中提取的矢量化实例构建车道和连接,输出可直接用于PnC算法,支持复杂城市环境中的自动驾驶。主要贡献包括:
●一个用于无HD地图自动驾驶的在线地图构建系统。它可以直接输出轻量级的几何和拓扑道路结构,供PnC算法使用;
●一种有效的基于体素的融合方法,可以高效地将嘈杂的道路标记检测融合成一致且准确的矢量化实例;
●在复杂的现实世界城市环境中进行全面实验,以验证所提出系统的效能和适应性。
3. 相关工作
3.1 3D道路标记检测
获取3D道路标记最直接的方法是将图像平面上的语义信息投影到3D空间。例如,RoadMap使用逆透视建图将前向摄像头的语义分割投影到地面平面。然而,IPM假设地面是平面的,因此在上坡路段等条件下可能会退化。可以使用额外的硬件,如激光雷达和立体摄像头,来获取实际高度以实现准确投影。
另外,研究人员已经探索直接从图像中预测3D道路标记。大多数最近的研究将检测任务在BEV视角中制定,以充分利用环绕视角摄像头的信息。环绕视角图像的特征被聚合到BEV空间,并在BEV特征上执行道路元素的分割。为了进一步促进下游任务,道路元素的矢量化形式(例如,多段线)可以在单独的后处理步骤中生成,或者直接从网络以端到端的方式生成。尽管最先进的网络已经能够实现出色的检测性能,但它们大多依赖于单一时间点的图像,并且在现实世界场景中仍然缺乏稳定性。
3.2 道路制图
缓解单次检测不稳定性的一个常见方法是融合多次信息来构建持久的地图。这主要是作为一个离线过程开发的。例如,利用多传感器的SLAM技术进行离线高清地图构建。为了最小化所需的传感器和成本,RoadMap采取基于视觉的方法,为视觉定位构建离线地图。
与此相反,在线道路制图有潜力降低离线维护成本,并吸引了越来越多的研究兴趣。大多数工作采用成熟的SLAM技术。Road-SLAM使用IPM获取道路标记点,并将其分割和分类为不同类型。分类后的标记用作基于姿态图的SLAM中的地标。
其他工作探索直接使用3D道路标记。例如使用立体摄像头提取参数化为Bézier曲线的3D路径边界,然后在EKF中估计摄像头姿态和3D曲线。本文的工作属于在线道路制图类别,但在几个方面有所不同。首先,由于基于体素的融合策略,本文的方法不需要显式数据关联。其次,与其他基于体素的方法相比,本文能够生成矢量化的道路标记。最后,所提出的系统专注于为现实世界自动驾驶系统中的下游模块直接生成可用的地图,而上述方法主要服务于定位目标。
最近,为了提高稳定性,检测网络中直接引入了显式时间融合。这些方法,如StreamMapNet和MapTracker,通常维护一个过去网络特征的窗口,以便与当前特征融合。这会产生不可忽视的计算成本,因此限制了可以利用的时间信息的范围。
4. 方法
本文所提出的系统利用环绕视角摄像头和里程计姿态作为输入,输出矢量化的道路标记(车道线、道路边缘和停止线)以及道路布局(车道和车道连接)供PnC模块使用。
4.1 道路标记检测和预处理
本文使用深度神经网络(MapTR)来检测车辆周围的3D道路标记。唯一的假设是网络将检测到的标记输出为多段线,这使得本文的方法与广泛的网络兼容。具体来说,每个检测到的道路标记被表示为有序的3D点,带有语义标签和置信度,即
S = { s i } i = 1 N , s i = ( { ( p b j ) j = 1 M i } , c i , l i ) , ( 1 ) S = \{s_i\}_{i=1}^N, \quad s_i = \left( \{(p_{b_j})_{j=1}^{M_i}\}, c_i, l_i \right), \quad (1) S={ si}i=1N,si=({(pbj)j=1Mi},ci,li),(1)
其中 l i ∈ L = { 车道线 , 道路边缘 , 停止线 } l_i \in L = \{\text{车道线}, \text{道路边缘}, \text{停止线}\} li∈L={ 车道线,道路边缘,停止线}是道路标记类型, c i c_i ci是置信度。请注意,3D点是在车辆的本体坐标系中。
由于网络检测的不完美,本文首先根据几个线索发现并拒绝 S S S中可能错误的路面标记。首先,如果检测到的标记 s i s_i si的置信度 c i c_i ci低于某个阈值,则该标记会被丢弃。其次,计算多段线 { p b j } j = 1 M \{p_{b_j}\}_{j=1}^M { pbj}j=1M连续线段之间的角度,并拒绝锯齿形多段线。相关的阈值是手动调整的。然后,将过滤后的道路标记转换到一个预定义的参考框架 g g g中,以便融合到持久的表示中。具体来说,多段线的点被转换为 p g = R p b + t p_g = Rp^b + t pg=Rpb+t。
4.2 语义体素建图
单次时间点过滤后的道路标记仍然可能包含相当多的噪声,并且没有强制执行时间一致性(见图2,第二列)。因此,本文融合不同时间点的检测结果以获得更稳定的几何和语义信息,即语义地图。此外,融合过程应该是增量的,以适应像本文这样的在线系统。
1)道路标记的体素地图
本文使用基于体素哈希方法的动态体素地图,以高效地融合不同时间点检测到的道路标记。如图3所示,体素地图由独立块组成,这些块按其空间坐标索引。一个哈希表维护块位置和它们在内存 O ( 1 ) O(1) O(1)操作。值得注意的是,该方法通过仅在有效观测的地方分配块来处理地图增长。这使得它特别适合表示道路标记,因为道路标记本质上是稀疏的。
在本文的方法中,在参考框架 g g g中创建了一个语义体素地图,语义地图中的一个体素存储了几何和语义信息,如下所示:
v = ( x g , { n o } o = 1 ∣ L ∣ ) , L = { 车道线 , 道路边缘 , 停止线 } , ( 2 ) v = (x_g, \{n_o\}_{o=1}^{|L|}), \quad L = \{车道线,道路边缘,停止线\} , \quad (2) v=(xg,{ no}o=1∣L∣),L={ 车道线,道路边缘,停止线},(2)
其中 x g x_g