IROS24新作:MapLocNet实现自动驾驶新突破,告别GPS的亚米级定位!

论文标题:

MapLocNet: Coarse-to-Fine Visual Neural Re-Localization in Navigation Maps

论文作者:

Hang Wu, Zhenghao Zhang, Siyuan Lin, Xiangru Mu, Qiang Zhao, Ming Yang, Tong Qin∗

导读:
基于导航地图的定位是当前自动驾驶的主流技术,其复杂的匹配策略导致了不可接受的推理延迟,无法满足实时性要求。本文提出的MapLocNet框架,受人类自我定位的启发,提出一种通过从粗略到精细的特征匹配,实现了仅利用导航地图的亚米级定位,在定位精度和实时速度上均超越了现有方法。它为自动驾驶提供了一种无需高清地图的定位方法,在具有挑战性的驾驶环境中提供了高性价比、可靠和可扩展的性能。©️【深蓝AI】编译

1. 背景介绍

在GPS无法使用的区域,自动驾驶车辆的自主定位面临挑战。因为GPS信号在传播过程中容易受周围基础设施(如建筑物、隧道、桥梁等)的影响而产生多路径传播误差,从而严重影响GPS定位精度(尤其是在城市环境中),在这样状况下容易产生定位偏差和位置漂移。

解决GPS信号缺失下的定位问题,通常采取主动定位的办法。例如,通过利用提前构建好地图(三维点云和视觉特征),并基于LiDAR或视觉SLAM技术进行定位。但是,这种方法并不适用于自动驾驶各种环境中。高精地图(HD map)一定程度可以在解决GPS信号缺失下的定位问题,但制作和维护HD map高昂的成本限制了其在不同环境和地理区域的应用扩展,这也成了限制自动驾驶发展的一大障碍。随着感知算法的发展,如HDMapNet和MapTR等方法实现了在线生成高清地图,即使在低精度定位的情况下,也能够实现自动驾驶。

另一方面,面对GPS无法使用的区域,人类驾驶员往往会利用认知能力将视觉观察与导航地图匹配进行自我定位。目前,在机器人技术和增强现实(AR)领域,已经提出了类似的方法来模拟人类的定位方法。然而,这种方法通常采用复杂的匹配策略进行定位,无法进行实时推断。

为此,本文提出一种通过从粗略到精细的特征匹配,实现仅利用导航地图的亚米级定位方法—MapLockNet(如图1的工作流程),该方法在定位精度和推理延迟方面都全面超过当前SOTA方法。主要贡献如下:

●提出了MapLocNet,通过融合环视视图图像和导航地图实现了稳健的亚米级定位能力, 尤其在GPS信号丢失导致较大位置漂移的区域;

●采用分层的粗到细特征配准策略,将BEV和地图特征对齐,相比现有方法实现了更高的定位精度和推理速度;

●提出了一种新的训练准则,将感知任务作为辅助任务进行姿态预测。该框架在nuScenes和Argoverse数据集上均达到了SOTA的定位精度。

值得一提的是,该方法是一种去高精地图(HD map-free)、可靠且类人的定位方法,且能达到亚米级的定位精度能力。

在这里插入图片描述
图1|MapLocNet的工作流程©️【深蓝AI】编译

2. 论文综述

2.1 Localization Using Navigation Maps

在去高精地图的工作中,研究主要集中在基于轻量级导航地图的定位。例如,利用图像与二维地图之间的语义匹配,是基于图像的城市环境定位方法。Samano等基于学习低维嵌入空间,设计了一种在二维导航地图上对全景图像进行地理定位的新方法。还有人提出了一种基于2.5D地图的跨视图定位方法,该方法融合了2D图像特征和2.5D地图,以增加位置嵌入的独特性。而OrienterNet提出了一种深度神经网络,通过将神经BEV与开放街图(OSM)的可用地图匹配来估计查询图像的位姿,并达到了亚米级别的定位精度。其他方法做到了跨视角地理定位,将来自车辆的相机图像与航空图像或卫星图像进行匹配,以确定车辆的位姿。本文基于上述工作的启发,提出了一种将视觉环境感知与导航地图相结合的定位方法。

2.2 BEV Representation for Visual Localization

将图像特征转换到BEV网格,一般包括几何方法和基于学习的方法。Cam2BEV和VectorMapNet使用了一种利用逆透视映射(IPM)的几何方法,通过平面假设将图像特征转换到BEV空间。HDMapNet提出了一种新颖的由神经特征提取和几何投影两部分组成的视图转换器来获取BEV特征。LSS、BEVDepth、BEVDet学习了图像特征的深度分布,将每个像素提升到3D空间。然后使用相机外参和内参将所有视锥投射到鸟瞰视图(BEV)中。GKT提出了一种高效且稳健的2D到BEV表示学习方法,利用几何先验引导transformer关注具有判别性的区域,并展开核特征以获得BEV特征。BEVFormer利用预定义的网格状BEV查询在时空空间中查找并聚合时空信息,在3D目标检测任务上取得了最先进的性能。

2.3 Image Registration

图像配准旨在找到一张图像中的像素与另一张图像之间的空间映射,广泛应用于医学成像和机器人研究。传统的基于特征的方法利用从图像中检测的关键点及其描述子来匹配不同的图像。最近出现了基于CNN和transformer的图像配准方法,以加快配准时间和提高准确性。DIRNet 提出了一种用于可变形图像配准的深度学习网络,包括一个ConvNet回归器、一个空间变换器和一个重采样器。C2F-ViT利用视觉transformer的全局连接性和局部性以及多分辨率策略来学习图像之间的配准。受此启发,本文设计了一个分层特征配准模块来实现视觉定位。

2.4 End-to-end Localization Neural Networks

端到端网络是一种高效的结构,可直接从传感器输入和先前地图中估计车辆的位置,而无需进行几何计算和手工规则。PixLoc采用可微分优化方法,设计了一个端到端的神经网络,通过将深度特征与参考3D模型对齐来估计图像的姿态。I2D-Loc提出了一个基于局部图像-激光雷达深度配准的有效网络用于相机定位,并使用BPnP模块计算后端姿态估计的梯度,实现端到端训练。BEV-Locator设计了一种新颖的端到端架构,用于基于多视图图像和矢量化全局地图的视觉语义定位。它基于跨模态transformer结构,解决了相机图像和语义地图元素之间跨模态匹配的关键挑战。EgoVM构建了一个端到端的定位网络,使用轻量级矢量化地图实现厘米级定位精度。该方法采用可学习的语义嵌入和transformer解码器,弥补了矢量化地图和BEV特征之间的鸿沟。在此基础上,本文构建了一个基于transformer的端到端定位网络,实现了导航地图的精确定位。

在这里插入图片描述
图2|MapLocNet架构概览©️【深蓝AI】编译

3. 方法精析

3.1 Problem Formulation and System Overview

给定含噪声的GPS下的初始车辆定位 p ˇ = ( x , y ) \check{\mathbf p} = (x, y) pˇ=(x,y),目标是估计将初始含噪位置转换为地面真实位置 p \mathbf p p的矩阵 Δ T = { R , t } \Delta \mathbf T = \{ \mathbf R, \mathbf t\} ΔT={R,t}。由于重定位是在2D导航地图上进行的,因此典型的6-DoF位姿变换可以简化为2D旋转 R ∈ S O ( 2 ) \mathbf R \in SO(2) RSO(2)和2D平移 t ∈ R 2 \mathbf t \in \mathbb R^2 tR2的3-DoF变换。这种转换可以通过公式(1)解决:

min ⁡ Δ T ^ ∥ Δ T ^ ⋅ p ˇ , p ∥ ( 1 ) \min\limits_{\Delta \hat{\mathbf T}} \parallel \Delta \hat{\mathbf T} \cdot \check{\mathbf p}, \mathbf{p} \parallel\qquad(1) ΔT^minΔT^pˇ,p(1)

其中, Δ T ^ \Delta \hat{\mathbf T} ΔT^表示从错误定位到估计定位的转换 T ^ e s t ← e r r \hat{\mathbf T}_{\mathbf {est} \leftarrow \mathbf {err}} T^esterr。目标是最小化 T ^ e s t ← e r r \hat{\mathbf T}_{\mathbf {est} \leftarrow \mathbf {err}} T^esterr与地面真值变换 T G T ← e r r \mathbf T_{\mathbf {GT} \leftarrow \mathbf {err}} TGTerr之间的差异。 Δ T ^ \Delta \hat{\mathbf T} ΔT^记为 ξ ^ = ( x , y , θ ) \hat{\mathbf \xi} = (x, y,\theta) ξ^=(x,y,θ),其中 ( x , y ) ∈ R 2 (x,y) \in \mathbb R^2 (x,y)R2表示纵向和横向偏移量, θ ∈ ( − π , π ) \theta \in (-\pi, \pi) θ(π,π)表示航向/航向角偏移量。

另外,MapLockNet由三个关键模块组成:BEV模块、地图特征提取UNet模块和用于分层特征匹配的神经网络定位模块(如图2所示)。整个网络使用环视图像、导航地图、BEV分割和真实位姿偏移量进行端到端训练。

在这里插入图片描述
图3|导航地图,栅格化地图和环视图像的可视化结果©️【深蓝AI】编译

3.2 Map Processing

本部分描述如何对不同的地图数据源进行适当的处理和融合。

●地图栅格化:

如图3a所示,OSM作为导航地图数据的来源。OSM表示包含多边形区域的建筑物、包含折线的道路以及包含节点的交通标志和其他兴趣点(PoI)。在图3b中,作者将多边形区域、折线和节点栅格化为3幅3通道图像,作为模型的部分输入。这些要素的空间排列为定位提供了重要的几何约束。对于每一个查询,检索以初始车辆定位坐标为中心的栅格化导航地图补丁。

●分割标签:

BEV语义分割标签来自两个来源。可行驶区域标签是从高清地图数据中获得的,建筑物和PoI标签来源于导航地图。

3.3 BEV Module

该模块旨在提取图像特征,并将其投影到BEV空间中,得到BEV特征。具体来说,利用环视图像(如图3c所示),并使用LSS投影过程以及EfficientNet作为透视-视图(Perspective-View,PV)编码器来提取图像特征 F I \mathbf F_{\mathbf I} FI。提取到的图像特征用于后续两阶段由粗到精的特征配准。粗略匹配提供初步估计,然后细化BEV特征进行精细匹配,以最小化与真实值的偏差。除此之外,作者还使用一个BEV语义分割辅助任务来引导特征学习并约束两个分支中的模态差异,同时也有效地提高了定位精度。

3.4 Map U-Net

U-Net架构用于从栅格化地图中提取特征。为了缓解地图特征与视觉BEV特征之间的模态差距,这里还引入了BEV分割辅助任务。地图编码阶段,使用VGG-16主干来编码地图特征,与BEV模块类似,在地图解码器的不同阶段,也提取了粗细两层级地图特征,用于后续的层级特征配准。同BEV模块一样,使用相同的BEV分割标签来监督该模块,从而限制了两类特征之间的差异。

3.5 Neural Localization Module

该模块负责地图和视觉特征的融合以及位姿偏移量的解码,是MapLocNet的核心模块。受C2F-ViT 的启发,本文采用了Transformer编码器对融合后的视觉BEV进行自注意力计算,并以由粗到精的方式映射特征。另一方面,采用类似正弦位置编码方法,将位置编码坐标的原点移到了特征图的中心,并通过逐元素相加的方式注入到融合特征中。值得说明的是,作者利用N(N=3)个重复的Transformer编码器层和有一个由3层MLP组成的Pose Head用于位姿解码,两个阶段的累积输出共同作为最终的位姿偏移估计。

3.6 Loss Function

在训练阶段,利用真实定位 p \mathbf p p,并通过变换 T \mathbf{{T}} T来模拟含噪声定位 p ˇ \mathbf{\check{p}} pˇ。其中 T \mathbf{{T}} T是来自公式1的姿态偏移矩阵的逆矩阵 T e r r ← G T \mathbf T_{\mathbf {err} \leftarrow \mathbf {GT} } TerrGT和简化为3个变量形式 ξ 1 \mathbf {\xi_1} ξ1。在本文方法中,通过对真实定位进行两次变换从而得到噪声定位 p ˇ \mathbf{\check{p}} pˇ(如公式2所示)。

T ^ = T 2 ^ ⋅ T 1 ^ ( 2 ) \hat{\mathbf T} = \hat{\mathbf T_2} \cdot \hat{\mathbf T_1}\qquad(2) T^=T2^T1^(2)

T 1 ^ \mathbf {\hat{T_1}} T1^是粗略阶段的预测,表示从真实定位到粗略定位的变换 T ^ c ← G T \mathbf {\hat{T}_{\mathbf {c} \leftarrow \mathbf {GT} }} T^cGT,对应于 ξ c ^ \mathbf {\hat{\xi_c}} ξc^ T 2 ^ \mathbf {\hat{T_2}} T2^表示精细阶段的预测,表示从粗略估计定位到精细定位的变换 T ^ f ← c \mathbf {\hat{T}_{\mathbf {f} \leftarrow \mathbf {c} }} T^fc,对应于 ξ f ^ \mathbf {\hat{\xi_f}} ξf^。基于此,有损失函数(粗略姿态偏移 ξ c ^ \mathbf {\hat{\xi_c}} ξc^与真值 ξ 1 ^ \mathbf {\hat{\xi_1}} ξ1^之间):

L c = ∥ ξ c ^ , ξ 1 ^ ∥ S 1 ( 3 ) \mathcal L_c = \parallel \hat{\xi_c},\hat{\xi_1} \parallel_{S1}\qquad(3) Lc=∥ξc^,ξ1^S1(3)

其中$\parallel \cdot \parallel_{S1} 表示平滑 L 1 损失。对应于 表示平滑L1损失。对应于 表示平滑L1损失。对应于\mathbf {\hat{T_2}} 的真实 的真实 的真实\mathbf {{T_2}} 依赖于第一阶段预测 依赖于第一阶段预测 依赖于第一阶段预测\mathbf {\hat{T_1}} 和真实 和真实 和真实\mathbf {{T}}$,从中得到:

T 2 = T ⋅ ( T 1 ^ ) − 1 ( 4 ) \mathbf T_2 = \mathbf T \cdot (\hat{\mathbf T_1})^{-1} \qquad(4) T2=T(T1^)1(4)

T 2 \mathbf {{T_2}} T2的简化形式表示为 ξ 2 \mathbf {\xi_2} ξ2,它也用于监督 ξ f ^ \mathbf {\hat{\xi_f}} ξf^,同样使用平滑L1损失:

L f = ∥ ξ f ^ , ξ 2 ^ ∥ S 1 ( 5 ) \mathcal L_f = \parallel \hat{\mathbf \xi_f}, \hat{\mathbf \xi_2} \parallel_{S1}\qquad(5) Lf=∥ξf^,ξ2^S1(5)

另外,BEV分割辅助任务,用于加速训练收敛并提高模型性能。作者采用二进制交叉熵(BCE)损失来约束BEV模块的语义分割输出与真实标签,得到 L b e v \mathcal L_{bev} Lbev。另一方面,为了使地图特征和视觉BEV特征尽可能接近,从而降低特征配准的难度,U-Net模块设计了BEV分割辅助任务,其中真实标签对应于地图区域。同样,采用BCE损失函数得到 L m a p \mathcal L_{map} Lmap

总体损失定义如下, 加权因子为 λ c \lambda_c λc λ f \lambda_f λf λ b e v \lambda_{bev} λbev λ m a p \lambda_{map} λmap

L = λ c ⋅ L c + λ f ⋅ L f + λ b e v ⋅ L b e v + λ m a p ⋅ L m a p L = λ c ⋅ L c + λ f ⋅ L f + λ b e v ⋅ L b e v + λ m a p ⋅ L m a p ( 6 ) \mathcal L = \lambda_c \cdot \mathcal L_c + \lambda_f \cdot \mathcal L_f + \lambda_{bev} \cdot \mathcal L_{bev} + \lambda_{map} \cdot \mathcal L_{map}\mathcal L = \lambda_c \cdot \mathcal L_c + \lambda_f \cdot \mathcal L_f + \lambda_{bev} \cdot \mathcal L_{bev} + \lambda_{map} \cdot \mathcal L_{map}\qquad(6) L=λcLc+λfLf+λbevLbev+λmapLmapL=λcLc+λfLf+λbevLbev+λmapLmap(6)

4. 实验过程

4.1 Experimental Settings

●数据集:

使用自动驾驶数据集 nuScenes和 Argoverse用于训练和验证。为了解决 nuScenes 和 Argoverse 数据集缺乏导航地图数据的问题,作者从OSM 获取了对应地理区域的导航地图,丰富了数据集。图3可视化了nuScenes数据集与本地导航地图信息的对齐。

●实现细节:

*网络设置:MapLocNet 采用6个环视图像作为视觉输入。使用EfficientNet-B0作为图像主干网络,所有输入图像都被调整到128×352的分辨率。在训练阶段,使用图像数据增强技术来增强模型的鲁棒性,包括随机裁剪、随机翻转和随机删除摄像头输入。BEV空间中的自车感知范围被定义为[−64m,64m,0.5mpp]的纵向轴和[−32m,32m,0.5mpp]的横向轴,深度分布的bins范围为[4m,60m,1mpp]。对于每一帧,根据自车位置从栅格化的导航地图中取出一个128×128m的区域块,分辨率为0.5米/像素。

*模拟3自由度GPS误差: 首先,对栅格化的导航地图以及 nuScenes 和 Argoverse 地图进行对齐。在训练阶段,从栅格化的导航地图中取出一个稍大于128×128m的区域块,根据自车位置进行采样。作者对该区块应用随机旋转θ∈[−30°,30°]和随机平移t∈[−30m, 30m]。然后裁剪出128×128m的中心区域,确保导航地图内容的完整性。偏移后的地图区块作为MapLocNet的地图输入。

*训练细节:使用8个V100 GPU训练200个epoch,大约需要48小时收敛。模型使用AdamW优化器进行优化,权重衰减为1e-7,批量大小为8,初始学习率为1e-4。还使用余弦退火调度器在训练过程中调整学习率。

4.2 Localization Results and Comparison

在nuscenes数据集上比较了各种神经网络定位模块的定位能力。

●比较方法:

*OrienterNet:使用OrienterNet在nuScenes和Argoverse数据集上进行评估。由于OrienterNet只支持从单个相机输入进行姿态估计,为了方便比较,MapLocNet只使用单个前视图图像作为输入的实验。

*U-BEV: 参考了U-BEV中提供的数据。值得注意的是,它的定位结果不包括方向预测,初始定位可能不包含航向干扰,使任务更加简单。由于它使用了6个环视视图图像,将其归类到6个摄像头的参考组。

*MapLocNet DETR: 类似DETR的解码器设计中,作者创造性地将姿态偏移视为查询Q,以从视觉BEV特征和地图特征中检索融合特征。DETR解码器处理的特征然后通过同样的3层MLP姿态头进行姿态解码。

*MapLocNet CA:参考LoFTR和GeoTransformer工作,作者使用Cross-Attention(CA)模块的神经定位模块。将视觉特征视为查询Q,地图特征视为键K和值V,实现跨域注意力计算。得到的特征然后通过同样的姿态头进行姿态估计。

*MapLocNet One-Stage: 通过分层设计,这在某种程度上影响了推理速度。本文想探究在受限计算资源的情况下,该方法是否可以仅用一个阶段,即粗糙特征配准,就满足使用要求。因此,作者在这里测试了MapLocNet的单阶段版本。与分层版本的唯一区别是,省略了细粒度特征配准,直接使用初始粗糙阶段的输出作为最终结果。作者希望单阶段版本能够在定位精度和推理速度之间取得平衡,而分层版本可以推动定位精度的上限。

在这里插入图片描述
表1|在nuScenes数据集上的定位结果©️【深蓝AI】编译

●定位结果:

作者还比较了MapLockNet和OrienterNet在argoverse数据集上的表现,结果表明MapLockNet在所有指标上均优于OrienterNet。

*nuScenes:作者将单阶段和粗到细的方法统称为特征配准(FR)架构。如表1所示,在6个摄像头的实验组中,粗到细的FR架构实现了最佳的定位性能。此外,作者还设计的粗到细架构优于 U-BEV 和单阶段架构,验证了分层注册思想的有效性。单阶段 FR 架构执行速度最快,可达每秒 24.4 帧。在只有1个摄像头的实验组中,将FR架构的定位性能与 OrienterNet 进行了比较。结果表明,本文方法在执行效率和准确性方面都优于OrienterNet,尤其是速度比OrienterNet 快近 30 帧。

*Argoverse:为了进一步展示模型的能力,还在 Argoverse数据集上进行了实验。利用从 nuScenes 数据集获得的预训练权重,对模型进行了微调。如表4所示,本文的模型在单视图摄像头和全周视摄像头配置中都表现出优异的定位性能。

在这里插入图片描述
表4|在Argoverse数据集上的定位结果©️【深蓝AI】编译

●结果可视化:

为了直观地展示模型的性能,在图4中显示了用于第二阶段配准的高分辨率、低通道 BEV 特征和地图特征。用于初始粗略配准的特征是高维的,很难直观地解释。实验表明,模型在夜间场景中会略有性能下降,这是由于建筑物能见度降低造成的。总的来说,本文的模型在白天和夜间场景中都展现出优秀的定位能力。

在这里插入图片描述
图4|在nuSceness数据集上的定位结果(白天和夜晚)可视化©️【深蓝AI】编译

4.3 Ablation Study

消融实验用来验证了不同导航地图元素和损失函数组合对定位精度的影响。

在这里插入图片描述
表2|不同组合输入地图元素下的定位结果©️【深蓝AI】编译

●输入的OSM元素:

作者选择了三种类型的元素作为消融研究的对象,分别是车道、建筑物和节点。节点包括交通灯和标志等元素。考虑到它们在环境中的占比和出现频率,在消融过程中依次排除节点和建筑物。如表2 所示,定位性能的逐步降低表明这三种选定的元素都对模型的定位性能产生积极贡献。与去除节点相比,去除建筑物会导致定位性能下降更大,这意味着建筑物对定位的影响大于节点。即使只有车道作为输入,模型也保留了大部分的定位性能,表明车道在定位中起着最关键的作用。上述实验结果表明,从俯视图的角度来看,节点、建筑物和车道的学习难度逐步降低,而它们在环境中的组成比例逐步增加,因此它们在定位中的重要性也逐步增加。

●损失函数:

旨在探讨辅助分割任务对定位性能的影响。视觉分割损失被设计用于指导视觉分支在 BEV 空间中的特征学习,而地图分割损失采用与视觉任务类似的语义标签,目的是消除视觉分支和地图分支之间的特征模态差异。如表3 所示,添加视觉分割损失监督显著提高了模型的定位性能。作者猜测,这种损失增强了模型对环境结构的理解,提供了更清晰的定位线索,丰富了定位的线索。在添加地图分割损失监督后,模型的定位性能进一步提高。此外,栅格化地图表示和视觉 BEV 表示之间存在一定的模态差距。通过统一两个分支的语义监督,有助于消除这种模态差异,从而提高模型的定位性能。

在这里插入图片描述
表3|不同组合损失函数下的定位结果©️【深蓝AI】编译

5. 总结展望

总之,MapLocNet作为分层特征配准方法,通过集成环视图像和导航地图实现了亚米级的稳健定位精度,在定位精度和实时速度上均超越了现有方法。未来工作,作者将探索集成历史帧信息和使用矢量化的导航地图表示来降低计算开销,并提高定位能力。

编译|巴巴塔

审核|Los

移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态👇
深蓝AI·赋能AI+智驾+机器人

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值