点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
论文作者 | Hang Wu
编辑 | 自动驾驶之心
写在前面&个人理解
鲁棒定位是自动驾驶的基石,尤其是在GPS信号受多径误差影响的挑战性城市环境中。传统的定位方法依赖于由精确标注的地标组成的高精度(HD)地图。然而,构建高精度地图既昂贵又难以扩展。鉴于这些局限性,利用导航地图已成为一种有前景的低成本定位替代方案。当前基于导航地图的方法可以实现高精度定位,但其复杂的匹配策略导致不可接受的推理延迟,无法满足实时需求。为了克服这些局限性,这里提出了一种新颖的基于Transformer的重定位方法。受图像配准的启发,方法在导航地图和视觉鸟瞰图特征之间进行从粗到细的神经特征配准。在nuScenes和Argoverse数据集上,方法显著优于当前最先进的OrienterNet,在单视图和环视输入设置下,定位精度分别提高了近10%/20%,帧率分别提高了30/16 FPS。本研究为自动驾驶提供了一种无需高精度地图的定位方法,在挑战性驾驶环境中提供了经济高效、可靠且可扩展的性能。

行业背景介绍
随着过去十年自动驾驶技术的最新发展,鲁棒定位起到了至关重要的作用。自动驾驶车辆和人工驾驶导航都高度依赖于全球导航卫星系统(GNSS)进行室外定位,但这些信号在城市区域中容易受到干扰。周围基础设施产生的多径传播误差以及建筑物、隧道、桥梁等造成的视线遮挡,会严重影响GPS定位的准确性。如果没有有效的全局定位源,位置会迅速漂移。
在GPS信号不可用的情况下,需要额外的主动定位方法。通过利用先前构建的地图,如3D点云和独特的视觉特征,可以使用基于激光雷达的和基于视觉的SLAM方法进行定位。然而,这种基于点的先验地图非常消耗内存,不能用于自动驾驶任务中的大型环境。自动驾驶在很大程度上依赖于包含精确地理参考的地标和几何形状的高精度(HD)地图,特别是在GPS信号不可用的区域。然而,制作和维护这些地图的高昂成本严重限制了它们在不同环境和地理位置的可扩展性。因此,对HD地图的依赖已成为阻碍自动驾驶技术更广泛应用的主要瓶颈。随着感知算法的发展,如HDMapNet和MapTR等方法已经实现了在线HD地图生成,即使在定位精度较低的情况下,也能实现自动驾驶。
另一方面,我们从生物学中得到了启示,即人类驾驶员仅凭导航地图就能识别位置。通过将视觉观察与地图信息相关联,人类可以在复杂的城市环境中大致确定自己的位置。人类从周围环境中提取出道路结构、建筑轮廓和地标等高级语义信息,并利用认知能力将这些语义信息与导航地图进行匹配。目前,在机器人和增强现实(AR)领域,已经提出了类似的方法来模拟人类定位方法。然而,这些方法往往采用复杂的匹配策略进行定位,导致无法实现实时推理。因此,它们无法应用于自动驾驶系统。为了解决上述挑战,我们提出了MapLocNet,这是一种在满足实时性能要求的同时实现高精度定位的新方法。我们将环视图像编码到鸟瞰图(BEV)空间中,并使用U-Net处理导航地图。关键的创新之处在于采用了基于Transformer的分层特征配准方法,该方法有效地将视觉BEV特征与地图特征进行对齐,从而实现高精度定位。
本文提出的方法在定位精度和推理延迟方面都超越了当前的最先进(SOTA)方法。总体而言,贡献如下:
• 提出了MapLocNet,通过融合环视图像和导航地图实现了高精度定位,特别是在GPS信号不可用且定位漂移显著的区域。
• 引入了一种分层的由粗到细的特征配准策略,用于对齐鸟瞰图(BEV)和地图特征,与现有方法相比,实现了更高的定位精度和推理速度。
• 开发了一种新颖的训练准则,利用感知任务作为姿态预测的辅助目标。MapLocNet在nuScenes和Argoverse数据集上均达到了SOTA定位精度。
再次强调,这次研究提出了一种无需高清地图(HD-map-free)、可靠且类似于人类的定位方法,与现有方法相比,实现了更高的定位精度。
相关工作
构建高清地图成本高昂,因此近期的研究重点转向了基于轻量化导航地图的定位。Panphattarasap等人提出了一种新颖的基于图像的城市环境定位方法,该方法通过图像与二维地图之间的语义匹配来实现。Samano等人设计了一种新颖的方法,该方法通过学习低维嵌入空间来在二维导航地图上对全景图像进行地理定位。Zhou等人提出了一种基于2.5D地图的跨视图定位方法,该方法融合了二维图像特征和2.5D地图,以增强位置嵌入的区分度。OrienterNet提出了一种深度神经网络,该网络通过将神经鸟瞰图(BEV)与OpenStreetMap (OSM)中的可用地图进行匹配来估计查询图像的姿态,并实现了高精度定位。其他方法实现了跨视图地理定位,即将车辆上的摄像头图像与航拍图像或卫星图像进行匹配,以确定车辆的姿态。受先前研究的启发,我们提出了一种将视觉环境感知与导航地图相结合的定位方法。
将图像特征转换为鸟瞰图(BEV)网格的方法有很多,包括几何方法和基于学习的方法。Cam2BEV和VectorMapNet使用了几何方法,该方法利用逆透视映射(IPM)通过平面假设将图像特征转换为BEV空间。HDMapNet提出了一种新颖的view transformer,该转换器结合了神经特征提取和几何投影来获取BEV特征。LSS、BEVDepth、BEVDet通过学习图像特征的深度分布来将每个像素提升到三维空间。然后,它们使用相机的外部和内部参数将所有视锥体投影到BEV上。GKT提出了一种高效且鲁棒的二维到BEV的表示学习方法,该方法利用几何先验来引导转换器关注具有区分性的区域,并展开内核特征以获得BEV特征。BEVFormer利用预定义的网格状BEV查询来查找时空空间,并从图像中聚合时空信息,在三维目标检测方面取得了最先进(SOTA)的性能。为了平衡精度和效率,我们基于LSS架构设计了我们的BEV模块。
图像配准旨在找到一幅图像中的像素与另一幅图像中像素之间的空间映射,这一技术在医学成像和机器人技术研究中得到了广泛应用。传统的基于特征的方法利用从图像中检测到的关键点和其描述符来匹配不同的图像。最近,出现了基于卷积神经网络(CNN)和transformer的图像配准方法,以加快配准速度和提高配准精度。DIRNet提出了一种用于可变形图像配准的深度学习网络。该网络包括一个卷积神经网络(ConvNet)回归器、一个空间变换器和一个重采样器。C2F-ViT是一种基于学习的3D仿射医学图像配准方法,它利用自注意力机制的全局连接性和卷积前馈层的局部性,将全局方向和空间关系稳健地编码为一组几何变换参数。
最近的端到端(E2E)方法引入了有效的架构,这些架构直接从传感器输入和先验地图中估计自我姿态,从而避免了复杂的几何计算和手工制定的规则。PixLoc使用可微优化方法设计了一个端到端神经网络,通过将深度特征与参考三维模型对齐来估计图像的姿态。I2D-Loc提出了一种基于局部图像-激光雷达深度配准的有效网络,用于相机定位,并使用BPnP模块计算后端姿态估计的梯度,以进行端到端训练。BEV-Locator设计了一种新颖的端到端架构,用于从多视图图像和矢量化的全局地图中进行视觉语义定位。基于跨模态transformer结构,它解决了语义地图元素与相机图像之间跨模态匹配的关键挑战。EgoVM构建了一个端到端的定位网络,该网络使用轻量级矢量地图,并实现了厘米级定位精度。受上述工作的启发,我们的方法构建了一个基于transformer的端到端定位网络,以实现精确定位。
MapLocNet的总体架构
MapLocNet的总体架构包含三个主要模块:BEV模块、Map U-Net和神经定位模块。我们的方法采用了一种从粗到细的特征配准策略,从BEV解码器和Map解码器中提取多尺度特征,以执行分层特征对齐。在初始的粗配准阶段之后,该阶段会得出姿态偏移的粗略估计,对高分辨率的BEV特征应用空间变换,以促进后续的细配准过程。将两个阶段的预测结果相结合,得出最终的姿态偏移估计结果。

方法介绍
在存在噪声的GPS下,给定一个初始的车辆位置估计θ,我们的目标是估计变换,该变换将初始的带噪声位置转换为真实位置p。由于重新定位是在二维导航地图上进行的,因此姿态变换可以简化为具有旋转和二维平移的三个自由度(DoF)变换。该变换可以通过以下方式求解:

我们的定位方法包含三个关键模块:BEV模块、Map U-Net和神经定位模块,网络概述如图2所示。整个网络使用环视图像、导航地图、BEV分割和真实姿态偏移进行端到端训练。在训练过程中,利用粗姿态偏移和细姿态偏移回归以及语义分割损失来监督视觉BEV和地图分支之间的一致表示,架构和损失的详细信息将在以下部分中介绍。

1)地图构建
由于我们的方法结合了导航地图输入和BEV语义分割标签,因此需要对不同的地图数据源进行适当的处理和融合:
地图光栅化:为了便于访问和全面覆盖,我们利用开放街道地图(OSM)作为导航地图数据源,如图3a所示。OSM使用多边形区域表示建筑物,使用多段线表示道路,使用节点表示交通信号灯和其他兴趣点(PoI)。如图3b所示,仅保留如建筑物、道路和PoI(交通信号灯、电线杆)等必要元素,它们的空间布局为定位提供了关键的几何约束。对于每个查询,我们检索一个以初始车辆定位坐标为中心的栅格化导航地图块。
分割标签:BEV语义分割标签来自两个来源。可行驶区域标签来自高精度地图数据,如nuScenes。作为补充来源,建筑物和PoI(兴趣点)标签来自导航地图,如OSM。
2)BEV模块
该模块旨在提取图像特征并将其投影到BEV空间以获得BEV特征。视觉输入可以是单目前视图像或多个环视图像。使用的图像越多,感知范围越广,从而提高定位精度。环视图像的一个示例如图3c所示。我们选择简单而有效的LSS架构作为主干。采用EfficientNet作为透视图(PV)编码器来提取图像特征。按照LSS程序,我们结合外部和内部参数将投影到大小为的BEV空间。我们认为纵向观测范围比横向范围宽,因此设置空间维度使得。在BEV解码器模块的不同上采样阶段,我们提取低分辨率、高通道数的粗特征 和高分辨率、低通道数的细特征,这些特征用于后续的两阶段粗到细特征配准。通过BEV语义分割辅助任务来监督该模块,这可以更好地约束模型的学习目标,同时有效提高定位精度。
3)Map U-Net
我们采用U-Net架构从光栅化地图中提取特征。为了缩小地图特征与视觉BEV特征之间的模态差距,创新性地为这个模块引入了一个BEV分割辅助任务。使用VGG-16作为编码地图特征的主干网络。与BEV模块类似,在地图解码器的不同阶段,我们也提取粗级和细级的地图特征 和 ,用于后续的分层特征配准。这里存在一个关系,即且,这有助于特征融合。我们使用与BEV模块相同的BEV分割标签来监督这个模块,从而约束两种特征之间的差异。
4)Neural Localization Module
该模块负责地图和视觉特征的融合以及姿态偏移的解码,是MapLocNet的核心模块。我们为姿态解码器设计了多种架构,并通过广泛的实验,确定了粗到细的特征配准作为最终的最优解决方案。
我们将神经定位表述为特征配准任务。受C2F-ViT的启发,这里采用Transformer编码器以粗到细的方式对融合的视觉BEV特征和地图特征进行自注意力计算。粗配准和细配准模块共享相同的架构。由于BEV特征和地图特征的宽度不同,我们在宽度维度上对BEV特征进行零填充,以匹配地图特征的宽度。考虑到计算消耗,我们在高度和宽度维度上将BEV和地图特征下采样4倍。遵循C2F-ViT的方法,我们还采用7x7的卷积核沿通道维度对它们进行融合,并将融合后的特征展平为顺序标记,以便对姿态隐藏特征进行自注意力编码。
由于这是一项与姿态相关的任务,位置编码至关重要。我们尝试了学习和固定位置编码两种方法,最终选择了正弦位置编码。然而,我们将位置编码坐标的原点移动到了特征图的中心。位置编码通过逐元素相加的方式注入到融合后的特征中。在每个神经定位模块中,我们设计了N个重复的Transformer编码器层,在实际应用中我们设置N=3。随后是一个由3层多层感知机(MLP)组成的姿态解码头。在粗略特征配准阶段估计出的3自由度姿态偏移量ξˆc被应用于精细的鸟瞰图(BEV)特征。随后,经过空间变换的BEV特征以及精细地图特征进行精细特征配准,以进一步缩小与真实姿态的差距,并获得ξˆf。两个阶段的累积输出共同作为最终的姿态偏移量估计。
5)损失函数
在训练过程中,由于已知真实定位p,因此可以通过对p应用变换T来模拟带噪声的定位,其中T是公式1中姿态偏移矩阵的逆,表示为,并简化为三变量形式ξ1。
由于我们的方法涉及两个阶段,因此可以认为是对真实定位连续应用两次变换以获得带噪声的定位。因此,存在以下关系:

是第一阶段的预测结果,表示从真实定位到粗略定位的变换,对应于ξ。表示第二阶段的预测结果,表示从粗略估计定位到精细定位的变换,对应于ξ。
基于上述关系,使用Smooth L1损失函数,通过真实值ξ1对粗略姿态偏移量ξ进行监督:

其中表示Smooth L1损失。与对应的真实值T2依赖于第一阶段的预测和真实值T,通过以下方式获得:

将T2的简化形式表示为ξ2,它也被用来通过Smooth L1损失函数来监督ξ:

为了更好地监督鸟瞰图(BEV)模块,我们设计了一个BEV分割辅助任务,遵循LSS中概述的方法,以加速训练收敛并提高模型性能。使用二元交叉熵(BCE)损失来约束BEV模块的语义分割输出与真实标签的一致性,从而得到。另一方面,为了鼓励地图特征和视觉BEV特征尽可能接近,从而降低特征配准的难度,还为Map UNet设计了一个BEV分割辅助任务,其真实标签对应于地图区域。同样,我们采用BCE损失函数得到。整体损失函数定义为:

实验对比
数据集:为了确保全面评估,使用两个自动驾驶数据集nuScenes 和Argoverse 对我们提出的方法进行了训练和验证。nuScenes数据集包含在美国波士顿和新加坡采集的1000个驾驶序列。使用了nuScenes的默认训练集,其中包含850个序列。nuScenes验证集包含150个序列,用作我们的评估基准。Argoverse数据集包含在美国迈阿密和匹兹堡录制的113个场景,其中65个场景分配给训练集,24个场景分配给验证集。为了解决nuScenes和Argoverse数据集中缺少导航地图数据的问题,通过从开放街道地图(OSM)获取相应地理区域的导航地图来丰富我们的数据集。按照BLOSBEV 中概述的方法,通过定位坐标变换将导航地图与高清地图进行对齐。图3展示了导航地图信息局部部分与nuScenes数据集中同一位置的帧的对齐情况。
网络设置:除非另有说明,MapLocNet采用6张环视图像作为视觉输入。使用EfficientNet-B0 架构作为图像骨干网络,并将所有输入图像的分辨率调整为128×352。在训练阶段,应用必要的图像数据增强技术来提高模型的鲁棒性,包括随机裁剪、随机翻转和随机丢弃一个camera输入。在鸟瞰图(BEV)空间中,自车的感知范围被定义为沿纵向轴为[−64m, 64m],沿横向轴为[−32m, 32m],两者每像素的分辨率均为0.5米(mpp)。深度分布的区间为[4m, 60m],分辨率为1mpp。对于每一帧,从栅格化导航地图中以自车位置为中心截取一个128m×128m的区域,分辨率为0.5mpp。
模拟3自由度(3-DoF)GPS误差:首先将栅格化导航地图的姿态和比例与nuScenes和Argoverse数据集中的高清地图对齐。在训练过程中,从栅格化导航地图中截取一个以自车位置为中心的区域。为了模拟GPS误差,我们对这个区域应用随机旋转θ ∈ [−30°, 30°]和随机平移t ∈ [−30m, 30m]。然后,裁剪出中央的128m×128m区域,作为MapLocNet的偏差地图输入。
训练细节:使用8块NVIDIA V100 GPU对模型进行200个周期的训练,大约需要48小时才能收敛。模型使用AdamW优化器进行优化,权重衰减为1e-7,批量大小为8,初始学习率为1e-4。使用余弦退火调度器在训练过程中调整学习率。
结果对比

1)对比方法
a) OrienterNet:在nuScenes和Argoverse数据集上使用了OrienterNet的官方实现进行训练和评估。为了确保公平比较,考虑到OrienterNet仅限于单目输入,我们也使用单摄像头输入对我们的方法进行了一系列并行实验。
b) U-BEV:由于U-BEV的任务与我们的相似,直接引用了其论文中提供的数据。值得注意的是,其定位结果不包括方向预测。因此,初始定位可能缺乏航向角误差扰动,这在某种程度上简化了任务。考虑到它使用了6张环视图像,将其归类为6摄像头配置的参考组。
c) MapLocNet DETR:受到DETR中解码器设计的启发,创造性地将姿态偏移作为查询Q,以从视觉鸟瞰图(BEV)特征和地图特征中检索融合特征。DETR解码器处理的特征随后通过相同的3层多层感知机(MLP)姿态头进行姿态解码。
d) MapLocNet CA:受LoFTR和GeoTransformer的启发,使用交叉注意力(CA)模块设计了我们的神经网络定位模块。将视觉特征作为查询Q,将地图特征作为键K和值V,从而实现跨域注意力计算。然后,由相同的姿态头对得到的特征进行解码,以进行姿态估计。
e) MapLocNet 一阶段版:我们的方法是分层的,这在某种程度上影响了推理速度。本文想探究在计算资源有限的情况下,方法是否仅通过一个阶段,即粗略特征配准,就能满足使用要求。因此,在这里测试了MapLocNet的一阶段版本。为了最大限度地降低计算复杂度,在一阶段实验中使用了粗略特征,而不是精细特征。与分层版本唯一的区别是,省略了精细特征配准,并直接将初始粗略阶段的输出作为最终结果。我们期望一阶段版本能在定位精度和推理速度之间取得平衡,而由粗到精的版本则能提高定位精度的上限。

2)定位结果
a) nuScenes:为简化表述,将一阶段方法和由粗到精的方法统称为特征配准(FR)架构。如表I所示,在实验中,使用6个camera的由粗到精的FR架构实现了最佳的定位性能。我们的一阶段FR架构表现出了最高的效率,达到了每秒24.4帧(FPS)。在单目实验组中,将FR架构的定位性能与OrienterNet进行了比较。提出的方法在计算效率和准确性方面都超过了OrienterNet,尤其是在速度上,比OrienterNet快了约30 FPS。
b) Argoverse:为了进一步展示我们模型的能力,我们在Argoverse[37]数据集上进行了实验。利用从nuScenes数据集获得的预训练权重,我们在Argoverse数据集上对模型进行了微调。我们还采用了相同的训练策略,将我们的方法与OrienterNet进行了比较。值得注意的是,如表IV所示,我们的模型在单目摄像头和环视摄像头配置下都表现出了卓越的定位性能。在所有输入设置下,我们的模型在准确性方面都显著优于OrienterNet,这凸显了我们方法的稳健性和通用性。
3)结果可视化
为了直观地展示模型的性能,图4仅展示了第二阶段配准中使用的高分辨率、低通道数的鸟瞰图(BEV)特征和地图特征。由于初始粗略配准中使用的高维特征视觉复杂性较高,因此在此省略。实验发现,在夜间场景中,由于建筑物可见度降低,模型性能略有下降。尽管如此,该模型在白天和夜间条件下都表现出了稳健的定位能力。

4)消融实验
论文进行了全面的消融研究,以评估各种开放街道地图(OSM)元素组合和损失函数配置对模型性能的影响。
输入OSM元素:对三个关键地图元素进行了消融研究:车道、建筑物和节点(包括交通信号灯和标志)。考虑到它们在环境中的普遍性,依次从输入中移除了节点和建筑物。表II显示,这三个元素都对定位性能有积极影响。与节点相比,移除建筑物导致的性能下降更为显著,这表明建筑物对定位的影响更大。值得注意的是,仅使用车道,模型就保持了相当的性能,这表明车道在定位中起着至关重要的作用。我们认为,从鸟瞰图(BEV)的角度来看,学习复杂度从节点到建筑物再到车道依次降低,而它们在环境中的普遍性则依次增加。这种相关性与它们在定位性能中的重要性增加是一致的。
损失函数:本实验旨在探究辅助分割任务对定位性能的影响。这里引入了鸟瞰图(BEV)损失,用于指导视觉分支的特征学习,以及地图损失,该损失使用相同的语义标签来减少视觉分支和地图分支之间的特征模态差异。如表III所示,纳入视觉BEV分割损失监督可以显著提升模型的定位性能。我们认为,这种损失改善了模型对环境结构的理解,提供了更清晰的定位线索。在加入地图分割损失监督后,模型的定位性能得到了进一步提升。我们假设栅格化地图和视觉BEV表示之间存在模态差异。通过统一两个分支的语义监督,我们缩小了这种模态差异,从而提高了模型的定位能力。
参考
[1] MapLocNet: Coarse-to-Fine Feature Registration for Visual Re-Localization in Navigation Maps
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)

② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵