HDMapNet: An Online HD Map Construction and Evaluation Framework

论文名字:HDMapNet: An Online HD Map Construction and Evaluation Framework

代码地址 https://github.com/Tsinghua-MARS-Lab/HDMapNet
论文地址:https://arxiv.org/pdf/2107.06307.pdf

一 摘要

​ 在自动驾驶领域,构建高精度的语义地图是一个关键组成部分。然而,传统的地图构建流程需要大量的人力和资源来进行地图的语义标注和维护,限制了其可扩展性。在本文中,我们引入了高精度语义地图学习的问题,该方法通过基于车载传感器观测动态构建局部语义。同时,我们提出了一种名为HDMapNet的语义地图学习方法。HDMapNet通过编码周围摄像头的图像特征和激光雷达的点云,并在鸟瞰视角下预测地图元素的向量化表示。我们在nuScenes数据集上对HDMapNet进行了基准测试,并展示了在所有设置下,它表现优于基线方法。值得注意的是,我们基于摄像头和激光雷达融合的HDMapNet在所有指标上的表现超过现有方法50%以上。此外,我们还开发了语义级别和实例级别的评估指标,以评估地图学习性能。最后,我们展示了我们的方法能够预测出具有局部一致性的地图。通过介绍这种方法和评估指标,我们邀请学术界共同研究这一新颖的地图学习问题。

二 相关介绍

高清晰度(HD)语义地图是自动驾驶的关键模块。传统的构建HD语义地图的流程涉及提前捕获点云数据,使用SLAM构建全局一致的地图,并在地图中添加语义注释。尽管这种方法可以产生准确的HD地图,并被许多自动驾驶公司采用,但需要大量的人力投入。

作为一种替代方案,我们正在研究可扩展且经济实惠的自动驾驶解决方案,例如减少在注释和维护HD地图方面的人力投入。为此,我们引入了一种新颖的语义地图学习框架,利用车载传感器和计算来估计矢量化的局部语义地图。值得注意的是,我们的框架不旨在替代全局HD地图的构建,而是提供一种简单的方式来实时预测和规划运动时的局部语义地图。 --------- 这里是作者的目的:减少人力的投入,通过车载传感器,实时构建局部语义地图

​ 我们提出了一种名为HDMapNet的语义地图学习方法,该方法可以从周围摄像头的图像和/或点云(如LiDAR)中生成矢量化的地图元素。我们研究了在缺少深度信息时如何有效地将透视图像特征转换为鸟瞰图特征。我们提出了一种新颖的视图变换器,它包括神经特征转换和几何投影两部分。此外,我们还研究了点云和相机图像在这个任务中是否互补。我们发现,不同的地图元素在单一模态下的识别能力并不相同。为了充分利用两者之间的优势,我们的最佳模型将点云表示与图像表示相结合。在所有类别中,这个模型在性能上显著优于单一模态的对比模型。为了展示我们方法的实际价值,我们使用我们的模型生成了一个局部一致的地图,如图6所示;这个地图可以应用于实时运动规划。


图6 通过在多帧之间融合占用概率,实现长期时序累积。

最后,我们提出了综合的评估地图学习性能的方式。这些指标包括语义级别和实例级别的评估,因为在高清地图中,地图元素通常被表示为物体实例。在公开的NuScenes数据集上,HDMapNet在语义分割上的IoU提高了12.1%,在实例检测上的mAP提高了13.1%。

​ 总结起来,我们的贡献包括以下几点:1.我们提出了一种新颖的在线框架,结合了一种名为HDMapNet的方法,用于从感知观测中构建高清语义地图。 2. 我们设计了一种从透视视角到鸟瞰视角的新型特征投影模块。该模块隐式地建模了3D环境,并显式地考虑了相机外参。 3. 我们开发了综合的评估协议和指标,以促进未来的研究。

三 相关工作

1. 语义地图构建

现有的高清(HD)语义地图大多是通过对环境中的激光雷达(LiDAR)点云进行手动或半自动标注,这些点云是从配备高级GPS和IMU的测绘车辆中融合得到的LiDAR扫描数据。同时,基于并行对准(pairwise alignment)的同时定位与地图构建(SLAM)算法是将LiDAR扫描融合成高精度和一致性点云的常用方法。首先,利用类别语义信息[4]或几何信息[5],采用ICP [1]、NDT [2]及其变种[3]等对两个近邻时间戳的LiDAR数据进行配准。其次,将自车的准确位姿估计作为一个非线性最小二乘问题[6]或因子图[7]进行建模,这对于构建全局一致的地图至关重要。Yang等人[8]提出了一种基于对齐因子约束下的位姿图优化方法,用于在城市尺度上重建地图。为了减少对语义地图的手动标注成本,[9]、[10]等提出了几种机器学习技术,用于从融合的LiDAR点云和相机数据中提取静态元素。然而,由于需要高精度和及时更新,维护一个高精度的HD语义地图仍然是一项费时费力的工作。因此,本文认为我们提出的本地语义地图学习任务是一种更具可扩展性的自动驾驶解决方案。

2. 透视视角下的车道检测

传统的基于透视视角的车道检测流程包括局部图像特征提取(例如颜色、方向性滤波器[11],[12],[13]),线段拟合(例如霍夫变换[14]),图像到世界坐标的投影等。随着基于深度学习的图像分割和检测技术的进步[15],[16],[17],[18],研究人员已经开始探索更多的数据驱动方法。已经开发了用于道路分割[19],[20],车道检测[21],[22],可行驶区域分析[23]等的深度模型。近年来,一些模型已经开始输出3D结果,而不仅仅是2D。Bai等人[24]将激光雷达信号纳入模型,从而可以将图像像素投影到地面上。Garnett等人[25]和Guo等人[26]使用合成车道数据集对相机的高度和俯仰进行监督训练,从而将输出的车道放置在3D地面平面上。除了检测车道外,我们的工作还可以从周围的相机或激光雷达中输出一致的本地语义地图。

3. 跨视角学习

最近,一些研究致力于研究跨视角学习,以促进机器人的周围感知能力。Pan [27] 使用多层感知器(MLP)来学习透视视角特征图和鸟瞰视角特征图之间的关系。Roddick和Cipolla [28] 在图像特征沿水平轴的方向上应用一维卷积来预测鸟瞰视角。Philion和Fidler [29] 预测了单目摄像头的深度,并使用软注意机制将图像特征投影到鸟瞰视角。我们的工作着重于本地语义地图构建的关键任务,我们使用跨视角传感方法以矢量化的形式生成地图元素。此外,我们的模型可以与LiDAR输入轻松融合,以进一步提高其准确性。

四 语义地图学习

A.HDMapNet

我们的语义地图学习模型被称为HDMapNet,它可以直接从单帧图像IP中通过神经网络预测地图元素M。模型的概览如图2所示,它由四个神经网络参数化:图像分支中的透视视角图像编码器 φ I φ_{I} φI和神经视图转换器 φ V φ_{V} φV,以及基于pillar的点云编码器 φ P φ_{P} φP和地图元素解码器 φ M φ_{M} φM。我们将我们的HDMapNet系列命名为HDMapNet(Surr)HDMapNet(LiDAR)HDMapNet(Fusion),分别表示模型仅接受周围图像、仅接受LiDAR输入或同时接受两者输入。


图2 模型概述。HDMapNet可以使用图像、点云或两者同时作为输入,输出语义分割、实例嵌入和方向信息,并最终生成矢量化的局部语义地图。左上角:图像分支。左下角:点云分支。右侧:高清语义地图。
1. 图像编码

我们的图像编码器有两个组成部分,分别是透视视角图像编码器神经视图变换器
(1)透视视角图像编码器
我们的图像分支从 N m N_{m} Nm个周围的相机获取透视图输入,覆盖场景的全景。每个图像 I i I_{i} Ii由共享的神经网络 φ I φ_{I} φI进行特征提取,以获得透视图特征图 F I i p v ⊆ R H p v × W p v × K F_{I_{i}}^{pv}⊆R^{H_{pv}×W_{pv}×K} FIipvRHpv×Wpv×K,其中 H p v H_{pv} Hpv W p v W_{pv} Wpv K K K分别表示高度、宽度和特征维度。
(2)神经视图变换器
​ 如图3所示,我们首先将图像特征从透视视图转换到相机坐标系统,然后再转换到鸟瞰视图。透视视图和相机坐标系统之间的任何两个像素之间的关系由一个多层感知器 φ V i φ_{V_{i}} φVi建模。建模过程为:
F I i c [ h ] [ w ] = φ v i h w ( F I i p v [ 1 ] [ 1 ] , . . . , F I i p v [ H p v ] [ W p v ] ) F^{c}_{I_{i}}[h][w]=φ^{hw}_{v_{i}}(F^{pv}_{I_{i}}[1][1],...,F^{pv}_{I_{i}}[H_{pv}][W_{pv}]) FIic[h][w]=φvihw(FIipv[1][1],...,FIipv[Hpv][Wpv])其中 φ v i h w φ^{hw}_{v_{i}} φvihw用于描述在相机坐标系中位置为 (h, w) 的特征向量与透视视角特征图上每个像素之间的关系。我们将 H c Hc Hc W c Wc Wc表示为 F I c F_{I}^{c} FIc的自上而下的空间维度。鸟瞰图(ego坐标系)中的特征 F I i b e v ⊆ R H b e v × W b e v × K F_{I_{i}}^{bev} ⊆ R^{H_{bev}×W_{bev}×K} FIibevRHbev×Wbev×K 是通过使用相机外参进行几何投影,将 F I i c F_{I_{i}}^{c} FIic的特征进行变换得到的,其中 H b e v H_{bev} Hbev W b e v W_{bev} Wbev是鸟瞰图中的高度和宽度。最终的图像特征 F I b e v F_{I}^{bev} FIbev N m Nm Nm个相机特征的平均值(应该说把特征对应映射到对应的位置,而不是直接将6camerabev空间下的特征相加,这里暂时存疑)。


图3 特征转换。左图:透视视图中的6个输入图像。中图:在相机坐标系统中的6个特征图,这些特征图通过图像编码器提取特征并使用多层感知器(MLP)进行转换;每个特征图(以不同颜色表示)覆盖一定的区域。右图:在自车坐标系统中的特征图(橙色),这是从6个特征图融合而来,并使用相机外参将其转换到自车坐标系统中。
2. 点云编码器

我们的点云编码器 φ P φ_{P} φPPointPillar[30]的一种变体,采用动态体素化[31]将三维空间划分为多个柱状体,并从每个柱状体的点云特征中学习特征映射。输入是点云中的N个激光雷达点。对于每个点p,它具有三维坐标和表示为 f p ⊆ R K + 3 f_{p}⊆R^{K+3} fpRK+3的额外K维特征。
​ 在将点云特征投影到鸟瞰图时,可能会有多个点落入同一个柱状体中。我们定义 P j P_{j} Pj为对应于柱状体j的点的集合。为了从柱状体中的点中聚合特征,我们需要使用一个PointNet[32](记为PN),表示 :
f j p i l l a r = P N ( f p ∣ ∀ p ∈ P j ) f^{pillar}_{j}=PN({f_{p}|∀_{p}∈P_{j}}) fjpillar=PN(fppPj)接下来,柱状特征通过卷积神经网络 φ p i l l a r φ_{pillar} φpillar进行进一步编码。我们将鸟瞰图中的特征映射表示为 F P b e v F_{P}^{bev} FPbev

3. 鸟瞰视角编码器

地图是一个复杂的图形网络,包括车道分隔线和车道边界的实例级和方向信息。为了让自动驾驶车辆能够准确地跟随车道,车道线需要进行矢量化处理,而不是使用像素级表示。因此,我们的BEV解码器 φ M φ_{M} φM不仅输出语义分割,还预测实例embedding和车道方向。在预测后,会应用后处理过程来对嵌入进行聚类,并将其矢量化处理。
(1)整体架构
BEV解码器是一个全卷积网络(FCN)[33],具有3个分支,分别是语义分割分支、实例嵌入分支和方向预测分支。BEV解码器的输入是BEV(鸟瞰视角)图像特征图 F I b e v F_{I}^{bev} FIbev和/或点云特征图 F P b e v F_{P}^{bev} FPbev,如果两者都存在,我们会将它们拼接在一起。
(2)语义预测
语义预测模块是一个全卷积网络(FCN)[33]。我们使用交叉熵损失(cross-entropy loss)进行语义预测。
(3)实例嵌入(这个是用于聚类使用的,后处理时候用)
我们的实例嵌入模块旨在对每个鸟瞰视角嵌入进行聚类。为了简化表示法,我们遵循[34]中的确切定义: C C Cground truth中的聚类数, N c Nc Nc是聚类 c c c中的元素数量, µ c µ_{c} µc是聚类 c c c的平均嵌入,|| ·||表示 L 2 L2 L2范数, [ x ] + = m a x ( 0 , x ) [x]_{+} = max(0, x) [x]+=max(0,x)表示元素的最大值。 δ v δ_{v} δv δ d δ_{d} δd分别是方差损失和距离损失的边界值。聚类损失如下:
L v a r = 1 C ∑ c = 1 C 1 N c ∑ j = 1 N c [ ∣ ∣ μ c − f j i n s t a n c e ∣ ∣ − δ v ] + 2 L_{var}=\frac{1}{C}\sum_{c=1}^{C}\frac{1}{N_{c}}\sum_{j=1}^{N_{c}}[||\mu_{c}-f^{instance}_{j}||-δ_{v}]^{2}_{+} Lvar=C1c=1CNc1j=1Nc[∣∣μcfjinstance∣∣δv]+2 L d i s t = 1 C ( C − 1 ) ∑ c A ≠ c b ∈ C [ 2 δ d − ∣ ∣ μ c A − μ c B ∣ ∣ ] + 2 L_{dist}=\frac{1}{C(C-1)}\sum_{c_{A}\neq c_{b}∈C}[2δ_{d}-||\mu_{c_{A}-\mu_{c_{B}}}||]_{+}^{2} Ldist=C(C1)1cA=cbC[2δd∣∣μcAμcB∣∣]+2 L = α L v a r + β L d i s t L = \alpha L_{var}+\beta L_{dist} L=αLvar+βLdist
(4)方向预测
我们的方向模块旨在从每个像素C预测车道的方向。这些方向在单位圆上被离散化为Nd个类,均匀分布。通过对当前像素 C n o w C_{now} Cnow进行方向D的分类,可以得到下一个车道像素 C n e x t C_{next} Cnext,其计算方式为 C n e x t = C n o w + ∆ s t e p ⋅ D C_{next} = C_{now} + ∆step · D Cnext=Cnow+stepD,其中 ∆ s t e p ∆step step是预定义的步长。由于我们不知道车道的方向,无法识别每个节点的前进和后退方向。因此,我们将两者都视为正标签。具体而言,车道节点的方向标签是一个Nd维的向量,其中有2个索引标记为1,其余标记为0。注意,顶视图地图上的大多数像素不在车道上,这意味着它们没有方向。这些像素的方向向量是一个零向量,在训练过程中我们不对其进行反向传播。我们在分类中使用softmax作为激活函数。
(5)向量化
在推断阶段,我们首先使用密度基空间聚类应用噪声(DBSCAN)对实例嵌入进行聚类。然后使用非极大值抑制(NMS)来减少冗余。最后,借助预测的方向,通过贪婪地连接像素,得到向量表示。

B 评估

在本节中,我们提出了语义地图学习的评估协议,包括语义度量和实例度量。

1.语义度量

模型预测的语义可以通过欧拉方式和拉格朗日方式进行评估。欧拉度量在密集网格上计算,并测量像素值之间的差异。相反,拉格朗日度量随着形状的变化而移动,并测量形状之间的空间距离。

(1)欧拉度量,我们使用交并比(IoU),IOU使用普遍,默认大家都理解,这里不做具体说明和公式编辑。
(2)拉格朗日度量,我们对结构化输出感兴趣,即由连接点组成的曲线。为了评估预测曲线与真实曲线之间的空间距离,我们使用在曲线上采样的点集之间的Chamfer距离(CD)
C D d i r ( S 1 , S 2 ) = 1 S 1 ∑ x ∈ S 2 m i n ∣ ∣ x − y ∣ ∣ 2 CD_{dir}(S_{1},S_{2})=\frac{1}{S_{1}}\sum_{x∈S_{2}}min||x-y||_{2} CDdir(S1,S2)=S11xS2min∣∣xy2 C D ( S 1 , S 2 ) = C D d i r ( S 1 , S 2 ) + C D d i r ( S 2 , S 1 ) CD(S_{1},S_{2})=CD_{dir}(S_{1},S_{2})+CD_{dir}(S_{2},S_{1}) CD(S1,S2)=CDdir(S1,S2)+CDdir(S2,S1)

其中, C D d i r CD_{dir} CDdir表示方向性的Chamfer距离,CD表示双向的Chamfer距离,S1S2分别是曲线上的两组点集。

2.实例度量

我们进一步评估我们模型的实例检测能力。我们使用平均精度(AP),类似于目标检测中的评估指标[35]。 A P = 1 10 ∑ r ∈ { 0.1 , 0.2 , . . . , 1.0 } A P r AP=\frac{1}{10}\sum_{r∈\{0.1,0.2,...,1.0\}}AP_{r} AP=101r{0.1,0.2,...,1.0}APr其中, A P r AP_{r} APr是在召回率(recall)等于r时的精确率(precision)。我们收集所有的预测结果,并根据语义置信度将其按降序排列。然后,我们根据CD(Chamfer距离)的阈值对每个预测进行分类。例如,如果CD低于预定义的阈值,则被视为真正例(true positive),否则为假正例(false positive)。最后,我们得到所有的精确率-召回率对,并相应地计算AP(平均精度)。

五 实验

A 实现细节

1. 任务和评估指标

我们在NuScenes数据集[36]上评估我们的方法。我们专注于两个子任务:语义地图分割和实例检测。由于NuScenes数据集中的地图元素类型有限,我们考虑三种静态地图元素:车道边界、车道分隔线和人行横道。

2. 架构

对于透视图像编码器,我们采用在ImageNet[38]上预训练的EfficientNet-B0[37],与[29]中的方法相同。然后,我们使用多层感知器(MLP)将透视图特征转换为在相机坐标系统中的鸟瞰图特征。MLP在通道上共享权重,并且不改变特征维度。对于点云数据,我们使用PointPillars的变种[39]进行动态体素化[31]。我们使用PointNet[32]进行pillar中点云的聚合,并使用具有三个块的ResNet[40]作为BEV解码器。

3. 训练细节

对于语义分割,我们使用交叉熵损失;对于实例嵌入,我们使用判别损失(公式5),其中设置 α = β = 1 α=β=1 α=β=1 δ v = 0.5 , δ d = 3.0 δ_{v}=0.5,δ_{d}=3.0 δv=0.5δd=3.0。我们使用Adam[41]进行模型训练,学习率为1e-3

B Baseline Methods

对于所有基准方法,我们使用与HDMapNet相同的图像编码器和解码器,并且只更改视图转换模块。

  1. IPM方法
    最直接的基准方法是通过反透视映射将分割预测映射到鸟瞰视图中[42],[43]。
  2. IPM with鸟瞰视图解码器(IPM(B))
    我们的第二个基准方法是IPM的扩展。与其在透视视图中进行预测,我们直接在鸟瞰视图中进行语义分割。
  3. IPM with透视视图特征编码器和鸟瞰视图解码器(IPM(CB))
    下一个扩展是在透视视图中进行特征学习,同时在鸟瞰视图中进行预测。
  4. Lift-Splat-Shoot
    Lift-Splat-Shoot [29] 在透视视图图像中估计深度分布。然后,它将2D图像转换为带有特征的3D点云,并将其投影到自车坐标系中。
  5. View Parsing Network (VPN).
    VPN [27] 提出了一个简单的视图变换模块:一个视图关系模块,用于建模任意两个像素之间的关系,以及一个视图融合模块,用于融合像素的特征。

C.结果

​ 我们将HDMapNet与基线方法进行比较,表格I显示了比较结果。首先,我们的HDMapNet(Surr),即仅使用周围摄像机的方法,在所有基线方法中表现优越。这表明我们基于学习的新型视图变换方法确实是有效的,而无需对复杂的地平面(IPM)进行不切实际的假设或估计深度(Lift-Splat-Shoot)。其次,我们的HDMapNet(LiDAR)在边界方面优于HDMapNet(Surr),但在分隔线和人行横道方面则较差。这表明不同的类别在一个模态下的可识别性并不相同。第三,我们融合了摄像机图像和LiDAR点云的模型取得了最佳性能。相对于基线方法和我们的仅摄像机模型,它的性能提升了50%
请添加图片描述
另一个有趣的现象是不同模型在CD(类别距离)方面表现不同。例如,VPN在所有类别中具有最低的CDP,但在CDL方面表现不佳,且整体CD最差。而我们的HDMapNet(Surr)CDPCDL之间取得了平衡,在所有基于摄像机的方法中实现了最佳的CD。这一发现表明,CD在衡量模型性能时是与IoU互补的,后者衡量了模型的精确度和召回率方面。这有助于我们从不同的角度理解不同模型的行为。

1.实例图检测

在图2中(实例检测分支),我们使用主成分分析(PCA)显示了嵌入的可视化。即使不同车道接近或交叉,它们被分配了不同的颜色。这证实了我们的模型学习了实例级别的信息,并能够准确预测实例标签。在图2中(方向分类分支),我们展示了我们方向分支预测的方向掩码。方向是一致且平滑的。在图4中,我们展示了经过后处理后产生的矢量化曲线。在表II中,我们展示了实例地图检测的定量结果。HDMapNet(Surr)已经优于基线方法,而HDMapNet(Fusion)在所有对照组中表现显著优于其他方法,例如,相对于IPM的改进幅度为55.4%。


图4 定性结果在验证集上展示如下:左上角:周围图像和地面实况语义地图标注的真值。IPM:透视视图和鸟瞰视图中的车道分割结果。其他方法:语义分割结果和矢量化实例检测结果。

请添加图片描述

2.传感器融合

在本节中,我们进一步分析传感器融合对构建高精度语义地图的效果。如表格I所示,对于分隔线和人行横道,HDMapNet(Surr)的性能优于HDMapNet(LiDAR),而对于车道边界,HDMapNet(LiDAR)表现更好。我们假设这是因为车道边界附近存在高度变化,使得在LiDAR点云中容易检测到。另一方面,道路分隔线和人行横道的颜色对比是有帮助的信息,使得这两个类别在图像中更加易于识别;在图4的可视化结果中也得到了确认。当将LiDAR和相机结合在一起时,获得了最强的性能,组合模型在很大程度上优于单一传感器的模型。这表明这两个传感器之间具有互补的信息。

3.坏天气条件

​ 在这里,我们评估了我们的模型在极端天气条件下的稳健性。如图5所示,即使在光照条件较差或雨天遮挡视线的情况下,我们的模型仍能生成完整的车道线。我们推测,当道路不完全可见时,模型可以基于部分观测来预测车道线的形状。虽然在极端天气条件下性能可能会下降,但整体性能仍然是合理的(见表格III)。


图5 在恶劣天气条件下的定性结果。左侧两幅图像展示了夜间的预测结果,右侧两幅图像展示了雨天的预测结果。

请添加图片描述

4.时序融合

在这里,我们对时间融合策略进行了实验。首先,我们通过将前一帧的特征图根据自车位姿粘贴到当前帧中进行短时期的时间融合。特征图通过最大池化进行融合,然后输入解码器。如表 IV 所示,融合多帧可以提高语义的IoU。我们进一步对长期时间累积进行实验,通过融合分割概率。如图 6 所示,我们的方法在融合多帧时产生了具有更大视野的一致性语义地图。
请添加图片描述

六 总结

HDMapNet通过直接从摄像头图像和/或LiDAR点云中预测高精度的语义地图。本地语义地图学习框架可能是一种更可扩展的方法,相比于需要大量人工努力的全局地图构建和注释流程。虽然我们的基准方法在语义地图学习方面可能不如精确,但它为系统开发者提供了另一种在可扩展性和准确性之间权衡的选择。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值