论文阅读笔记-VectorMapNet: End-to-end Vectorized HD Map Learning

VectorMapNet: End-to-end Vectorized HD Map Learning

VectorMapNet: 端到端矢量高清地图学习

Abstract

自主驾驶系统需要对周围环境有很好的了解,包括移动的障碍物和静态的高清(HD)语义地图元素。现有的方法通过离线手工注释来处理语义地图问题,这存在着严重的可扩展性问题。最近基于学习的方法产生了密集的栅格化分割预测来构建地图。然而,这些预测并不包括单个地图元素的实例信息,并且需要启发式的后处理,其中涉及许多手工设计的组件,以获得矢量地图。为此,我们引入了一个端到端的矢量化高清地图学习管道,称为 VectorMapNet。VectorMapNet 采用机载传感器观测数据,并预测鸟瞰图中稀疏的多线基元集,以模拟高清地图的几何结构。这个管道可以明确地模拟地图元素之间的空间关系,并生成对下游自主驾驶任务友好的矢量地图,而不需要进行后处理。在我们的实验中,VectorMapNet 在 nuScenes 数据集上实现了强大的高清地图学习性能,超过了之前最先进的方法 14.2 mAP。从质量上看,我们也表明 VectorMapNet 有能力生成全面的地图,并能捕捉到更多细粒度的道路几何细节。据我们所知,VectorMapNet 是第一个旨在解决端到端矢量高清地图学习问题的工作。我们的项目网站可访问。

1 Introduction

自动驾驶系统需要了解道路上的地图元素,包括车道、人行横道和交通标志,以导航世界并提前规划。此类地图元素通常由现有管道中的预注释高清晰度(HD)语义地图提供[1]。这些方法存在严重的可伸缩性问题,因为人类在注释高清地图时大量参与。最近的工作[2, 3, 4]探索了在线高清语义地图学习的问题,其中的目标是使用机载传感器(例如,激光雷达和相机)实时估计地图元素。

最近的方法 [4, 5, 3, 6] 将高清语义地图学习视为鸟瞰图 (BEV) 中的语义分割问题,它将地图元素光栅化为像素并为每个像素分配一个类标签。这种公式可以直接利用全卷积网络。然而,出于三个原因,栅格化地图并不是自动驾驶的理想地图表示。首先,栅格化地图缺乏实例信息,这是区分具有相同类标签但语义不同的地图元素所必需的,例如左转车道和右转车道。其次,很难在预测的栅格化地图中强制执行一致性,例如附近的车道像素可能与语义或几何形状相矛盾。第三,光栅化地图与大多数自动驾驶系统不兼容,因为这些系统通常为运动预测和规划等下游任务采用实例级矢量化表示。为了缓解这些问题并产生矢量化输出,HDMapNet [2] 生成语义、实例和方向图,并使用手工设计的后处理算法对这三个地图进行矢量化。

image
图 1:VectorMapNet 概述。传感器数据以与地图元素相同的坐标编码为 BEV 特征。 VectorMapNet 通过利用元素查询从 BEV 特征中检测地图元素的位置。矢量化高清地图建立在从检测结果生成的一组稀疏折线之上。

然而,高精地图网仍然依赖于栅格化地图预测,其启发式后处理步骤使管道复杂化并限制了模型的可扩展性和性能。在本文中,我们提出了一种名为 VectorMapNet 的端到端矢量化高清地图学习模型,该模型不涉及密集的语义像素集。相反,它将地图元素表示为一组与下游任务密切相关的折线,例如运动预测[7]。因此,在我们的论文中,地图学习问题归结为从传感器观察中预测一组稀疏的折线。我们利用最先进的集合预测和序列生成方法在以下步骤中预测高清地图。首先,VectorMapNet 将不同模态(例如相机图像和 LiDAR)生成的特征聚合到一个共同的 BEV 特征空间中。然后,它根据可学习的元素查询和 BEV 特征检测地图元素的位置。最后,我们为每个地图元素生成一条折线。 VectorMapNet的概述如图 1 所示。

我们的实验表明,VectorMapNet 在公共 nuScenes 数据集上取得了领先的性能,比 HDMapNet 和另一个基线至少高出 14.2 mAP。定性地,我们发现 VectorMapNet 构建了比以前的作品更全面的地图,并且能够捕获精细的细节,例如锯齿状的边界。此外,我们将预测的矢量化高清地图输入下游运动预测模块,并展示预测地图的兼容性和有效性。

综上所述,本文的贡献如下:

  • VectorMapNet 是一种端到端的高清语义地图学习方法。与以前的作品不同,它使用折线来表示地图元素,并直接从传感器观测中预测矢量化输出,而不需要地图光栅化或后处理。
  • 联合建模地图元素和每个地图元素的几何形状之间的拓扑关系具有挑战性。我们利用折线作为基元来建模复杂的地图元素,并通过将此联合模块解耦为两部分来缓解这一困难:地图元素检测器和折线生成器。
  • VectorMapNet 在 nuScenes 数据集上实现了最先进的高清语义地图学习性能。定性结果和下游评估也验证了我们的设计选择。

2 VectorMapNet

Problem formulation. 与 HDMapNet [2] 类似,我们的任务是使用来自车载传感器的数据以矢量化形式对地图元素进行建模,例如 RGB 相机和/或 LiDARs。这些地图元素包括但不限于对自动驾驶至关重要的道路边界、车道分隔线和人行横道。

我们将此任务表述为稀疏集预测问题。具体来说,我们用一组稀疏的紧凑矢量化基元表示地图 \(\mathcal{M}\),问题是学习一个模型,该模型从传感器中提取信息以预测这些基元以表示语义图。我们选择使用 \(N\) 条折线 \(\mathcal{V} ^{poly} = \{\mathcal{V} ^{poly} _1 , ... , \mathcal{V} ^{poly} _N \}\) 来表示这些地图元素。每条折线 \(\mathcal{V} ^{poly} _i = \{v _{i,n} \in \mathbb{R} ^2|n = 1, ... , N_v\}\)\(N_v\) 个有序顶点 \(v_{i,n}\) 的集合。

使用折线表示地图元素具有三个主要优点:

  1. 高清地图通常由不同几何形状的混合组成,例如点、线、曲线和多边形。折线是一种灵活的图元,可以有效地表示这些几何元素。
  2. 折线顶点的顺序是编码地图元素方向的一种自然方式,这对驾驶至关重要。
  3. 折线表示已被下游自动驾驶模块广泛使用,例如运动预测[7]。

Method overview. 首先,我们将传感器数据从传感器视图映射到规范的 BEV 表示 \(\mathcal{F} _{BEV}\)。那么剩下的任务就是基于 \(\mathcal{F} _{BEV}\) 对折线建模。然而,地图元素表现出复杂多样的结构和位置模式,共同学习它们可能具有挑战性。因此,我们将任务解耦为两部分:

  1. 场景级元素检测任务,通过预测元素关键点 \(\mathcal{A} = \{a_i \in \mathbb{R} ^{k×2}|i = 1 , ... , N \}\) 及其类标签 \(\mathcal{L} = \{l_i \in \mathbb{Z}|i = 1, ... , N \}\) 来定位和分类所有地图元素;
  2. 对象级序列生成任务,为每个检测到的地图元素 \((a_i, l_i)\) 生成折线顶点序列。元素关键点表示 \(\mathcal{A}\) 的定义在第 2.2 节中描述。

相应地,VectorMapNet 采用三个模块对这三个任务进行建模,如图 2 所示。

  1. 一个 BEV 特征提取器,将传感器观测提升到 BEV 空间(第 2.1 节);
  2. 预测地图元素关键点 A 和类标签 L 的地图元素检测器(第 2.2 节);
  3. 一个折线生成器,根据关键点和类标签完成高清地图元素的形状(第 2.3 节)。

image
图 2:VectorMapNet 的网络架构。第一行是 VectorMapNet 的管道,从原始传感器输入生成折线。下面一行展示了 VectorMapNet 的三个主要组件的详细结构和推理过程:BEV 特征提取器、地图元素检测器和折线生成器。

2.1 BEV Feature Extractor

BEV 特征提取器将各种模态输入提升到统一的特征空间中,并将这些特征聚合为称为 BEV 特征 \(\mathcal{F} _{BEV}\) 的规范表示。我们考虑两种常见的模式:周围的相机图像 \(\mathcal{I}\) 和 LiDAR 点 \(\mathcal{P}\)

Camera branch. 对于图像数据 \(\mathcal{I}\),我们使用共享的 CNN 主干获取相机空间中每个相机的图像特征,然后使用逆透视映射 (IPM) [8] 技术将这些特征转换为 BEV 空间。由于相机图像中缺少深度信息,我们采用一种常见的方法,假设地面大部分是平面的,并通过单应性将图像转换为 BEV。在不知道地平面的确切高度的情况下,这种单应性不是准确的变换。为了缓解这个问题,我们将图像特征转换为四个不同高度的 BEV 平面(我们在实践中使用 \((-1m, 0m, 1m, 2m)\)。相机 BEV 特征 \(\mathcal{F} ^\mathcal{I} _{BEV} \in \mathbb{R} ^{W×H×C _1}\) 是这些特征图的串联。

LiDAR branch. 对于 LiDAR 数据 \(\mathcal{P}\),我们使用具有动态体素化 [10] 的 PointPillars [9] 的变体,它将 3D 空间划分为多个柱,并使用柱状点云来学习柱状特征图。我们将 BEV 中的这个特征图表示为 \(\mathcal{F} ^\mathcal{P} _{BEV} \in \mathbb{R} ^{W×H×C_2}\)

对于传感器融合,我们通过连接 \(\mathcal{F} ^\mathcal{I} _{BEV}\)\(\mathcal{F} ^\mathcal{P} _{BEV}\) 得到 BEV 特征 \(\mathcal{F} _{BEV} \in \mathbb{R} ^{W×H×(C_1+C_2)}\),然后用两层卷积网络处理连接的结果。BEV 特征提取器的概述在图 2 的左下方显示。由于我们在下面的模块中使用了类似于 transformer 的架构,我们将 BEV 特征 \(\mathcal{F} _{BEV}\) 扁平化为一个序列 \(\mathcal{F} ^f _{BEV}∈\mathbb{R}^{W H×(C_1+C_2)}\)。我们还为该序列添加了固定的位置编码,以保留空间关系。

2.2 Map Element Detector

在获得 BEV 特征后,地图元素检测器的目标是根据 BEV 特征 \(\mathcal{F} _{BEV}\) 推断出元素关键点 \(a_{i,j}\)。我们利用一个 transformer set prediction detector [11] 的变体来实现这一目标。这个检测器通过预测元素关键点A和类别标签L来表示地图元素的位置和类别。这些元素之间的几何关系由检测器中的注意力模块来模拟。该检测器是用二分图匹配来训练的,从而避免了非最大抑制(NMS)等后处理步骤。

Element queries. 检测器的查询输入是可学习的元素查询 \(\{q ^{elem} _i \in \mathbb{R} ^{k×d}|i = 1, . . . , N _{max}\}\),其中 \(d\) 是隐藏嵌入大小,第 \(i\) 个元素查询 \(q ^{elem} _i\)\(k\) 个关键点嵌入组成:\(q ^{elem} _i = \{q ^{k_P} _{i,j} \in \mathbb{R} ^d | i = 1, . . . , k\}\).

Architecture. 我们的地图元素检测器的整体结构包括一个 transformer 解码器 [12] 和一个预测头,如图 2 的中下方所示。解码器使用多头自/交叉注意力机制对元素查询进行转换。特别是,我们使用可变形注意力模块 [13] 作为解码器的交叉注意力模块,其中每个元素查询都有一个二维位置基础。它提高了可解释性并加速了训练收敛 [14]。预测头有两个 MLP,分别将元素查询解码为元素关键点 \(a _{i,j} = MLP _{k _P} (q^{k _P} _{i,j})\) 和它们的类标签 \(l_i = MLP _{cls}([q ^{k_P} _{i,1}, ... , q ^{k_P} _{i,k}])\)\([.]\) 是一个连接运算符。

image

图3:地图元素的关键点表示法。这里提出了三种不同的关键点表示方法。Bounding Box(k=2),SME(k=3)和Extreme Points(k=4)。

Keypoint representation of map elements. 我们使用一种紧凑关键点的方式来表示地图元素的位置和轮廓。由于折线没有直接的关键点设计,我们提出了三种简单的表示方法,如图 3 所示:

  • Bounding Box(Bbox),它是包围折线的最小的盒子,其关键点被定义为盒子的右上角和左下角;
  • Start-Middle-End(SME),它由折线的起点、中间点和终点组成;
  • Extreme Points,它是折线的最左、最右、最上、最下的点。

我们在第 3.3 节中进行了进一步的消融研究来评估它们的性能。由于 Bbox 在消融中表现最好,在没有进一步说明的情况下,所有实验都使用 Bbox 作为默认的关键点表示。

Keypoint embeddings. 地图元素检测器中的每个关键点嵌入 \(q^{k _P} _{i,j}\) 有两个可学习的嵌入,供注意力模块识别关键点之间的差异。第一个嵌入是关键点位置嵌入 \(\{ e ^{k_P} _j \in \mathbb{R} ^d|j=1, ... , k \}\),表示该点在一个元素关键点中属于哪个位置。第二个嵌入 \(\{ e ^P _i \in \mathbb{R} ^d |i = 1, ... , N _{max} \}\) 编码该关键点属于哪个地图元素。关键点嵌入 \(q^{k _P} _{i,j}\) 是这两个嵌入 \(e^{P} _i + e^{k _P} _j\) 的相加。

2.3 Polyline Generator

给定地图元素的标签和关键点,折线生成器的目标是由它们生成详细的地图元素几何图形(即折线)。具体来说,折线生成器在每条折线的顶点上建立一个分布 \(p(V ^{poly} _i |a _i, l _i, \mathcal{F} ^f _{BEV})\) 的模型,其条件是初始布局(即元素关键点和类别标签)和 BEV 特征。为了估计这个分布,我们将 \(V ^{poly} _i\) 的联合分布分解为一系列条件顶点坐标分布的乘积。具体来说,我们将每条多线 \(V ^{poly} _i = \{ v_i, n \in \mathbb{R} ^2|n = 1, ... , N_v \}\) 转化为一个扁平化的序列 \(\{ v ^f _{i,n} \in \mathbb{R}|n = 1, ... , 2N_v \}\),通过串联多线顶点的坐标值,并在每个序列的末尾添加一个额外的序列结束符(EOS),目标分布就变成了。

\[p(V ^{poly} _i |a _i, l _i, \mathcal{F} ^f _{BEV}; \theta) = \prod ^{2Nv} _{n=1} p(v ^f _{i,n}|v ^f _{i,<n}, a _i, l _i, \mathcal{F} ^f _{BEV}; \theta). \tag1 \]

我们用一个自回归网络对这个分布进行建模,在每一步为下一个顶点坐标输出一个预测分布的参数。这个预测分布是在所有可能的顶点坐标值和 EOS 上定义的。多段线生成器被训练成能使观察到的多段线在模型参数 \(\theta\)\(\mathcal{F} ^f _{BEV}\) 方面的对数概率最大化。

Vertices as discrete variables.顶点作为离散变量 使用离散分布对多段线动量进行建模,具有表示任意形状的优势,即分类分布可以很容易地表示各种多段线,如多模、倾斜、峰值或长尾,这些都是我们任务中常见的。因此,我们将坐标值量化为离散的标记,并用分类分布对每个标记进行建模。我们还在第 3.3 节中进行了一项消融研究,以研究其他建模选择。

Architecture. 我们选择的自回归网络是一个 vanilla transformer [12] (见图 2 的右下方)。每条多线的关键点坐标和类别标签都被标记化,并作为转化器解码器的查询输入。然后,一连串的顶点标记被反复送入转化器,用交叉注意力整合 BEV 特征,并被解码为多段线顶点。请注意,生成器可以并行地生成所有多线。

Vertex embeddings.顶点嵌入 按照 PolyGen [15],我们使用三个学习到的嵌入的加法作为每个顶点标记的嵌入。

  • 坐标嵌入,表示该标记是代表 \(x\) 还是 \(y\) 坐标;
  • 位置嵌入,表示该标记属于哪个顶点;
  • 值嵌入,表达该标记的量化坐标值。

3 Experiments

我们在 nuScenes [16] 数据集上进行实验,并使用平均精度作为评价指标。数据集设置(A.1节)、模型(A.2节)和度量(A.3节)的细节在附录中介绍。

3.1 Comparison with baselines

我们选择两个密切相关的模型作为基线,即 HDMapNet [2] 和 STSU [17] 。对于 HDMapNet,我们直接采用其矢量化结果。STSU 使用一个变换器模块来检测移动物体和中心线段。它使用一个关联头将各段拼接成道路图。为了使 STSU 适应我们的任务,我们使用两层 MLP 来预测车道段,只保留其物体分支和折线分支。我们报告了使用 Chamfer distance 作为阈值的平均精度,以确定与地面实况的正面匹配。\(\{ 0.5, 1.0, 1.5 \}\) 是 Chamfer distance AP 的预定义阈值。

表 1:与基线方法的比较。融合表示使用图像和LiDAR点作为输入的模型。
image

如表 1 所示,VectorMapNet 在所有设置下都远远超过 HDMapNet(Camera +17.9 mAP,LiDAR +9.9 mAP,Fusion +11.7 mAP)。与 camera-only 和 LiDAR-only 相比,传感器融合分别带来了+4.3 mAP 和 +11.2 mAP 的改进。STSU 比VectorMapNet 低 -29.2 mAP。由于 STSU 将所有地图元素视为一组固定大小的片段,我们假设忽略地图元素的几何形状会极大地损害性能。

3.2 Qualitative Analysis

image
图 4:由 VectorMapNet 和基线产生的定性结果。我们使用相机图像作为比较的输入。红色和蓝色椭圆所包围的区域表明 VectorMapNet 可以保留尖锐的角落,而多线表示法可以防止 VectorMapNet 产生模棱两可的自我循环结果。

Benefits of using polylines as primitives. 从可视化的角度来看,我们发现,与基线相比,使用多线作为基元给我们带来了两个好处。首先,多段线有效地编码了地图元素的详细几何形状,例如边界的角落(见图 4 中的红色椭圆)。其次,多线表示防止 VectorMapNet 产生含糊不清的结果,因为它一贯编码方向信息。相比之下,栅格化方法容易错误地产生循环曲线(见图 4 中的蓝色椭圆)。这些模糊性阻碍了安全的自主驾驶。因此,折线是地图学习的理想基元,因为它可以反映现实世界的道路布局并明确地编码方向。

image
图 5:VectorMapNet 检测未标记的地图元素的例子。红色的椭圆表示一个在地面实况注释中缺失的人行横道,而 VectorMapNet 却能正确地检测到它。所有的预测都是由相机图像产生的。

Benefits of top-down modeling. VectorMapNet 以自上而下的方式工作:它首先对地图的拓扑结构和地图元素位置进行建模,然后生成地图元素的细节。可视化显示,VectorMapNet 全面地捕捉了地图元素,包括靠近边缘的小元素。VectorMapNet 相对于其他基线的高 mAP 进一步证实了这一观察。令人惊讶的是,图 5 显示 VectorMapNet 可以找到数据集所提供的高清地图中没有注释的地图元素。

3.3 Ablation Studies

在这一节中,我们探讨了多段线顶点的采样策略、多段线的建模以及关键点的表示是如何影响模型性能的。我们报告两种类型的平均精度。Chamfer AP 和 Fréchet AP(见 A.3 节中的定义)。Fréchet APs 的阈值选择为5m,Chamfer AP 的设置与 §3.1 相同。

表2:曲线取样策略的消融研究。
image

Curve sampling strategies.(曲线采样策略) 我们使用两种方法对多线条进行采样。第一种是基于 nuScenes 的原始设置 [16],在曲率变化超过一定阈值的位置对顶点进行采样。第二种是以固定的时间间隔(1米)对顶点进行采样。我们在这两种采样策略下比较了我们的方法,结果见表 2。基于曲率的抽样方法在很大程度上超过了固定抽样方法,并取得了领先的 21.5 Fréchet mAP 和 15.5 Chamfer mAP。我们假设,固定采样方法涉及大量的冗余顶点,这些顶点对几何形状的贡献可以忽略不计,因此在学习过程中对重要顶点(如多段线转角处的顶点)的权重不足。

表3:顶点建模方法的消融研究。
image

Vertex modeling methods.(顶点建模方法) 我们研究了离散的和连续的方法来建立多线性的模型的方法。离散版的多段线发生器在第 2.3 节中描述。在相同的模型结构下,我们遵循 SketchRNN [18],使用高斯分布的混合物将多段线的顶点作为连续变量来建模。比较结果见表 3。我们发现,使用离散嵌入的顶点坐标会带来相当大的性能提升,Chamfer mAP 从 18.2 增加到32.5,Fréchet mAP 从 26.8 增加到 50.4 。这些改进表明,分类分布的非局部特征有助于我们的模型捕捉复杂顶点坐标分布。

表 4:对关键点表示的消融研究。
image

Keypoint representations.(关键点表示) 在方法部分,我们提出了三种关键点的表示方法:边界盒(Bbox)、起点-中间-终点(SME)和极端点(Extreme)。在用 SME 表示法训练模型时,我们去掉了 IoU 损失,因为 SME 没有区域的定义(见 A.2 节中的损失细节)。我们对这些表示法进行了实验,并在表 4 中列出了结果。我们的结果显示,边界盒表示在两个指标上都导致了最好的平均性能,比其他的指标要好 2.0 Fréchet mAP 和 7.3 Chamfer mAP。SME 似乎是最合适的关键点表示方法,因为它与多段线有天然的联系。令人惊讶的是,SME 的性能落后于 Bbox的5.0 Chamfer mAP。我们假设 IoU 损失 [19] 极大地提高了检测器的性能,与 DETR [11] 报告的观察结果相似,因为仅用平滑的L1损失来优化点的位移可能与任务性能不太一致。

3.4 Vectorized HD Map for Motion Forecasting 用于运动预测的矢量高清地图

由于预测复杂环境中的未来运动在很大程度上依赖于地图信息,我们研究了我们预测的高清地图在这个下游运动预测任务中的有效性。

Task Settings. 在我们的设定中,运动预测模型旨在从过去的代理轨迹(1秒)和覆盖 \(60m × 30m\) 区域的高清语义地图中预测目标代理的 6 条可信的未来轨迹(3秒)。我们通过从 nuScenes 跟踪数据集中取样生成数据。我们首先检索在跟踪数据集中观察到的代理,然后选择具有完整的3秒未来观察的代理作为目标代理。因此,该数据集包括 25,645 个训练样本和 5,460 个测试样本。我们使用三种不同的输入设置来研究我们预测的高清地图的性能:过去的轨迹,过去的轨迹与地面真实高清地图,以及过去的轨迹与 VectorMapNet 预测的地图。我们使用的运动预测器是 mmTransformer [20],它可以选择将矢量地图和轨迹作为输入。

表 5:用于运动预测的预测图。有三种输入设置:过去的轨迹(表示为Traj.),过去的轨迹与来自nuScenes的人类注释的高清地图(表示为Traj.+ G.T. Map),以及过去的轨迹与来自VectorMapNet的预测地图(表示为Traj.+ Pred.Map)。与只使用过去轨迹的模型相比,预测地图极大地提高了预测性能。
image

Results. 为了评估不同输入设置下的运动预测性能,我们报告了三个常用指标的结果 [21]:最小平均位移误差(minADE)、最小最终位移误差(minFDE)和失误率(MR)。为了得到结果,这些指标只考虑了 6 个预测轨迹中的最佳轨迹。表 5 中的结果显示,与只将过去轨迹作为输入的模型相比,VectorMapNet 预测的地图具有编码的环境信息,对运动预测者有很大帮助。地面实况地图和预测地图之间的差距也不大,特别是在 MR 方面(-0.2%)。我们认为未来的研究可以进一步缩小性能差距。

Semantic map learning. 由于自动驾驶的出现,对语义地图的注释吸引了大量的兴趣。最近,语义地图学习被表述为一个语义分割问题[22],并通过使用航空图像[23]、LiDAR点[5]和高清全景图[24]进行解决。众包标签[25]被用来提高细粒度分割的性能。最近的工作重点不是使用离线数据,而是从机载相机图像[26, 27]和视频[28]中理解BEV语义。由于输入和目标地图位于不同的坐标系中,仅使用车载传感器作为模型输入特别具有挑战性。最近,一些跨视角的学习方法[3, 29, 2, 6? , 30]利用场景的几何结构来缓解传感器输入和BEV表示之间的不匹配。除了像素级的语义地图,我们的工作是从周围的摄像头或LiDAR中提取车辆周围一致的矢量地图,这适合于下游的任务,如运动预测[7, 31, 20]。

Lane detection. 车道检测旨在从道路场景中精确地分离出车道段。大多数车道检测算法[32, 33]使用像素级分割技术与复杂的后处理相结合。另一线工作利用预定义的建议来实现高精确度和快速推理速度。这些方法通常涉及手工制作的元素,如消失点[34]、多项式曲线[35]、线段[36]和贝塞尔曲线[37]来为提案建模。除了使用透视摄像机作为输入外,[38]和[39]的作者用一个递归神经网络从高架公路摄像机和LiDAR图像中提取车道段。STSU[17]没有通过边界检测发现道路的拓扑结构,而是通过使用贝塞尔曲线编码的中心线段作为基元构建车道图。为了对城市环境中的复杂几何形状进行建模,我们利用多段线来表示感知范围内的整个地图元素,而不是手工制作的元素。使用多段线作为基元,使我们的方法能够在没有复杂几何假设的情况下对地图进行建模,并以任意的形状表达地图元素。

Geometric data modeling. 与VectorMapNet密切相关的另一条工作路线是几何数据的生成。这些方法通常将几何元素视为一个序列,如家具的原始部分[40, 41],草图笔画的状态[18],以及n-gon网格的顶点[15],并通过利用自回归模型生成这些序列。由于直接建模序列对长距离中心线地图具有挑战性,HDMapGen[42]将地图视为一个两级层次结构。它用分层图RNN分别产生全局图和局部图。LETR[43]没有将几何元素视为一个序列生成问题,而是将线段建模为一个检测问题,并用一个基于查询的检测器来处理它。与上述专注于单级几何建模的方法不同,如场景级(如图像中的线段)或物体级(如家具),VectorMapNet被设计为同时解决场景级和物体级的几何建模。具体来说,VectorMapNet通过对场景中地图元素的全局关系和每个元素内部的局部几何细节进行建模来构建地图。

5 Conclusions

我们提出了VectorMapNet,一个解决高清语义地图学习问题的端到端模型。与现有的工作不同,VectorMapNet使用多段线作为基元来表示矢量化的高清地图元素。为了学习这些折线,我们将学习问题分解为一个检测问题和一个生成问题。我们的实验表明,VectorMapNet能够为城市地图元素生成连贯而复杂的几何图形,这得益于多线基元。我们相信,这种学习高清地图的新方法为高清语义地图学习问题提供了一个新的视角。

Limitations. 虽然我们的方法可以在单帧中生成连贯而复杂的几何图形,但不能保证时间上的一致预测。如何有效地对矢量高清地图预测的时间信息进行编码是一个挑战,我们把它作为未来的工作。

A Experiment Setup

A.1 Dataset

我们在 nuScenes [16] 数据集上进行实验,该数据集包含 1000 个由自动驾驶汽车收集的记录序列。每一集的注释频率为 2Hz,包含 6 个摄像头图像和 LiDAR 扫描。我们的数据集设置和预处理步骤与 HDMapNet [2] 相同,其中包括三类地图元素--来自 nuScenes 数据集的人行横道、分隔带和道路边界。

A.2 Implementation details 实施细节

Architectures.架构 BEV 特征提取器输出一个大小为 \((200, 100, 128)\) 的特征图。它使用 ResNet50 [44] 作为共享 CNN 骨干。我们使用单层 PointNet [45],其输出有 64 个维度作为 LiDAR 骨干,将 LiDAR 点聚集成一个支柱。我们将地图元素检测器中的元素查询数量 \(N_{max}\) 设定为 100。我们在地图元素检测器和折线生成器中使用的 transformer 解码器都有 6 个解码层,其隐藏嵌入的大小为 256。对于折线生成器的输出空间,我们将地图空间(见第 2.3 节)平均分成 200×100 个矩形网格,每个网格的大小为 \(0.3m×0.3m\)

Training strategy.训练策略 我们在 8 个 GTX3090 GPU 上对所有模型进行了 110 个 epochs 的训练,总批次大小为 32。我们使用 AdamW [46] 优化器,梯度剪裁规范为 5.0。对于学习率计划,我们使用了一个步骤计划,在 epoch 100 时将学习率乘以 0.1,并在前 5000 步有一个线性预热期。所有模块的 dropout rate 为 0.2,遵循转化器的设置 [12]。数据增强仅在多段线生成器的训练过程中部署;具体而言,两个 I.I.D. 高斯噪声被添加到每个输入顶点的 x 和 y 坐标中,概率为 0.3。

Loss functions. 地图元素检测器的损失函数是三个部分的线性组合:元素关键点分类的负对数似然,平滑的 L1 损失,以及关键点回归的 IoU 损失。这些损失部分的系数为 2、0.1、1。地图元素检测器的匹配成本与损失组合相同。多段线生成器的损失函数为负对数似然。我们通过简单地将这些损失相加来训练 VectorMapNet。

A.3 Metrics 指标

与现有的产生栅格化结果的方法相比,我们的方法不需要将网格上的曲线栅格化。因此,我们选择不使用 "Intersection-Over-Union"(IoU)作为衡量标准。我们使用一个基于距离的指标来评估预测曲线和地面真实曲线之间的相似度。我们遵循 HDMapNet [2] 提出的实例级评价指标,将我们模型的实例级检测性能与基线方法进行比较。该指标是平均精度(AP),其中正/负样本是基于几何相似性,更具体地说,是 Chamfer distance 和Fréchet distance。为了清楚起见,我们把基于Chamfer distance 和 Fréchet distance 的 AP 分别称为 Chamfer AP 和 Fréchet AP。

Chamfer distance. Chamfer distance 是一种量化两个无序集合之间的相似性的距离度量。Chamfer distance 是一个评价指标,它通过考虑集的元素的每个排列组合的距离来量化两个无序集之间的相似性,如下所示:

\[D_{chamfer} ( \mathcal{S} _1, \mathcal{S} _2) = \frac{1} {2} ( \frac{1} {|\mathcal{S} _1|} \sum _{p \in \mathcal{S} _1} \min _{q \in \mathcal{S} _2} ‖p, q‖ _2 + \frac{1} {|\mathcal{S} _2|} \sum _{q \in \mathcal{S} _2} \min _{p \in \mathcal{S} _1} ‖q, p‖ _2). \tag2 \]

在我们的实验中,我们使用 Chamfer distance 来计算预测和地面真相多线集之间的距离,每个多线集通过对 \(N_{pts}\) 顶点的多线均匀采样来表示,其中 \(N_{pts}\) 在我们的实验中被设定为 100。

Fréchet distance. 多段线顶点的顺序不能用 Chamfer distance 来衡量。因此,我们引入 Fréchet distance 作为一个额外的测量方法。Fréchet distance 是一种衡量曲线相似性的方法,它同时考虑到了沿曲线的点的位置和顺序。我们的实现是基于离散的 Fréchet distance [47, 48]。

我们使用离散版的 Fréchet distance [47, 48] 来评估两条折线 \(P\)\(Q\) 之间的几何相似性。 我们把 \(\sigma(P)\) 表示为 \(P\) 的线段的端点序列。 特别是,\(\sigma(P)=(p_1, ... , p_m)\) 是一个有 \(m\) 个顶点的序列,这些顶点是从原始输入多段线 \(P\) 中均匀抽取的,其中 \(P\)\(p_i\)\(p_{i+1}\) 之间的每个位置可以通过使用仿射变换来近似,即 \(p _{i+\lambda}=(1-\lambda)p _i+\lambda_{p_i+1}\),在我们的实验中 \(m\) 被设定为 100。

设P和Q是多线,σ(P )=(u1, . . . , up)和σ(Q)=(v1, . . , vq)是相应的序列。耦合L是σ(P )和σ(Q)之间不同对的序列。

\[(ua1 , vb1 ), . . . , (uam , vbm ). (3) \]

这些索引{a1, . . . , am}和{b1, . . . , bm}是非递减的抛射,这样a1 = 1, am = p, b1 = 1, bm = q,并且对于所有i < j∈{1, . . . ,q},ai ≤ aj,bi ≤ bj。我们定义L的规范‖L‖是L中最长的一对的长度,也就是说,

\[‖L‖ = max i=1,...,md(uai , vbi ). (4) \]

多段线P和Q之间的离散弗雷切特距离被定义为

\[δdF (P, Q) = min{‖L‖, L is a coupling between P and Q}. (5) \]

这个等式表明,离散的Fréchet距离是所有可能的耦合的最小规范。为了找到具有最小规范的合理耦合L,我们使用算法1中描述的基于动态编程的算法。

image

B More Visualizations of VectorMapNet (Fusion)

我们将VectorMapNet(融合)和VectorMapNet(相机)的三种情况可视化,以证明LiDAR信息可以补充视觉信息以产生更强大的地图预测。在第一种情况下,照相机的视角受到附近车辆的限制,所以它不能提供有用的周围信息。LiDAR传感器绕过了附近的车辆,为VectorMapNet提供了一些线索,使其产生的结果比仅有摄像机的结果更好(见图6)。对于第二种情况(见图7),模型无法检测到附近的停车门,因为它位于摄像头的盲区。相比之下,LiDAR提供了深度信息,并帮助VectorMapNet(Fusion)检测到丢失的车道边界。LiDAR点也可以防止模型在恶劣的天气条件下错误地检测到地图元素。如图8所示,十字路口附近有一些水坑。通过光反射,这些水坑在视觉上看起来像车道边界。然而,LiDAR数据显示,那里并没有任何凸起。与单纯的相机模型不同,LiDAR的深度信息有助于我们的融合模型不产生不存在的车道边界。

image
image
image

posted @ 2022-11-07 17:58  xiaoliu-ya  阅读(1120)  评论(0编辑  收藏  举报