查看原文
其他

历史地图发大力!HRMapNet:日日新的在线地图新方案(港中文)

Xiaoyu Zhang等 自动驾驶之心
2024-09-13

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

今天自动驾驶之心为大家分享港中文&上交等团队ECCV 2024在线高精地图的工作—HRMapNet!利用历史栅格化地图暴力涨点!如果您有相关工作需要分享,请在文末联系我们!


自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询


>>点击进入→自动驾驶之心高精地图技术交流群

论文作者 | Xiaoyu Zhang等

编辑 | 自动驾驶之心

写在前面 & 笔者的个人理解

无图NOA以来,研究人员focus在端到端的在线矢量地图构建上,该技术在鸟瞰图(BEV)空间中实现,希望能够替代传统成本较高的离线高精(HD)地图。但是当前方法在恶劣环境下的准确性和鲁棒性很容易受限。为此本文提出了HRMapNet,其利用低成本的历史光栅化地图来增强在线矢量化地图的感知能力。历史光栅化地图来源于先前预测的结果,因此可以提供当前帧一定的先验信息。为了充分利用历史地图,作者设计了两个模块来增强BEV特征和地图元素的查询。对于BEV特征,本文设计了特征聚合模块,以编码图像和历史地图的特征。对于地图元素的查询,则设计了一个查询初始化模块,以赋予查询从历史地图中得到的先验信息。这两个模块对于在在线感知中利用地图信息至关重要。HRMapNet能够与大多数现有的在线矢量化地图感知方法集成。问鼎nuScenes和Argoverse 2 SOTA。

  • 开源链接:https://github.com/HXMap/HRMapNet

相关工作总结

自动驾驶技术中,高精HD地图对于车辆导航至关重要,它们可以详细表述如车道线、人行横道和道路边界等矢量化地图元素的位置与结构。这些地图以往通过离线方式并结合SLAM等技术构建的。

单帧地图感知

早期的地图感知研究主要集中在车道线检测、道路拓扑推理或地图分割上,这些研究通常产生光栅地图,并需要额外的后处理步骤来生成用于后续任务的矢量化地图元素。例如,HDMapNet通过聚类分析预测的光栅地图来构建最终的矢量化地图。

VectorMapNet和MapTR等工作直接预测矢量化地图。VectorMapNet设计了一个地图元素检测器和一个多边形生成器来构建最终的矢量化地图。MapTR提出了一种统一的排列等价模型,并采用DETR框架直接预测矢量化地图元素。这些突破性的研究推动了在线矢量化地图感知技术的发展,并激发了一系列旨在提升性能的新方法。MapTR的改进版MapTRv2在解码器中引入了解耦的自注意力机制和辅助损失,显著提高了预测精度。ScalableMap利用地图元素的结构特性,设计了一种渐进式解码器以支持长距离感知。MapVR引入了可微分的光栅化和基于渲染的损失函数,以增强对细节的敏感度。此外,BeMapNet和PivotNet等方法通过预测贝塞尔控制点和支点,而非固定数量的点,来提高预测的准确性。

利用额外信息的地图感知

上述方法仅利用单帧图像进行地图元素的预测,这限制了性能的进一步提升。最新的研究进展已经开始突破单帧感知的局限,通过整合额外的信息来提升性能。例如一些研究探索了如何利用额外的标准清晰度(SD)地图来辅助HD地图感知和车道拓扑理解。还有研究利用卫星地图来增强车载图像数据,以改善地图感知。这些方法虽然提高了性能,但需要额外的数据源,从而增加了在线建图的成本。

时间信息作为在线感知中更容易获得的补充信息,在BEV特征学习和目标检测中已被广泛利用。在矢量化地图感知方面,StreamMapNet通过查询传播和BEV特征融合来利用时间信息。SQD-MapNet引入了流查询去噪技术,以增强时间一致性。这些方法通常利用时间上短期的先前帧来辅助感知。

如果能够收集并利用所有时间信息,就可以构建一个地图。一些工作利用过去的LiDAR扫描构建的地图被用于自动驾驶中的目标检测。NMP构建了一个用于地图分割的由历史BEV特征组成的地图。然而,BEV特征占用大量的内存,这限制了它的实际应用。以nuScenes数据集中的波士顿地图为例,BEV特征需要超过11GB的内存在NMP中。相比之下,本文提出维护一个低成本的历史光栅化地图进行矢量化地图感知,大幅减少了内存开销。

HRMapNet方法详解

概述

HRMapNet框架旨在作为现有在线矢量化地图感知技术的补充。如图2所示,该框架通过维护一个全局历史光栅化地图来辅助在线感知过程。输入环视图像后,从共享的主干网络中提取2D特征,并将其转换到鸟瞰图(BEV)空间。作者引入了地图编码器和特征聚合模块,以及一个新颖的查询初始化模块,这些模块在原始地图解码器之前工作,旨在赋予基础查询来自本地地图的先验信息,使搜索所需地图元素的过程更加高效。最终矢量化地图元素直接从预测头输出,并可以光栅化以合并到全局地图中。

图 2: 所提出的 HRMapNet 架构图。图中的灰色块表示与现有最先进在线矢量化地图感知方法保持一致的部分

全局光栅化地图

下面首先介绍用于保存历史信息的光栅化地图。如图2左下角所示,矢量化地图被光栅化以更新全局地图。与[19]类似。简而言之,光栅化地图中每个像素的标签是基于其与矢量化元素边界的距离来确定的。从每个时间点i的在线预测中,作者可以获取一个语义掩码,称为本地光栅化地图,其中表示BEV空间中感知范围的空间形状;是地图元素类别的数量,,分别代表车道线、人行横道和道路边界。因此,指示对于每个类别,位置是否存在地图元素;值1表示存在,值0表示不存在。作者使用的这种光栅化地图类似于占用网格地图,这是机器人导航和建图中一个成熟的概念。Occ研究了如何从局部观测更新全局地图。作者使用类似的方法来更新全局光栅化地图,其中表示全局地图的空间形状。对于地图更新,每个像素的本地坐标首先被转换为全局坐标,基于自车姿态

其中分别是相对旋转和平移,表示将连续坐标转换为光栅化地图中的离散坐标的四舍五入函数。或者,给定全局坐标和姿态,其对应的本地坐标为:

然后,全局地图可以根据每个类别的本地地图进行更新。以一个类别为例:

其中由公式(2)确定,记录了每个地图元素类别的状态,是基于本地预测结果更新状态的设定值。这种简单的方法有效地将局部结果整合到全局地图中,便于持续细化和更新。对于在线感知,基于自车姿态从全局地图中检索本地光栅化地图,并使用阈值来确定每个类别的地图元素是否存在:

其中由公式(1)确定。

在本文的实现中,全局地图被缩放到8位无符号整数值以减少内存消耗。因此,光栅化地图只占用很小的内存空间,大约每公里1MB。

BEV特征聚合

BEV特征已经有很多相关工作。例如MapTRv2使用BEVPoolv2获取BEV特征,其中是特征通道的数量。作者保持这个模块不变,并引入一个聚合模块,以利用本地地图中的先验信息增强BEV特征。在HRMapNet中,检索到的局部地图作为先验,指示哪些位置值得更多关注以进行地图元素感知。因此,受FBBEV的启发,作者在本地地图中存在地图元素的位置(即)添加额外的BEV查询。这些额外的BEV查询被投影到图像上,通过空间交叉注意力提取相关特征。然后,在本地地图中存在地图元素的位置获得额外的BEV特征。对于没有地图元素的位置(即),相应的额外BEV特征被设置为零。这些额外的BEV特征被公式化为。在特征聚合模块中,被融合在一起:

这里,被添加到作为额外补偿。此外,可以被视为具有明确语义信息的特殊BEV特征。因此,作者将它们与BEV特征连接起来,并使用卷积获得增强的BEV特征以供进一步处理。

查询初始化

除了将检索到的光栅化地图融合到BEV特征中外,作者还设计了一个新颖的查询初始化模块,以促进对所需地图元素的有效搜索。在DETR框架中,一组可学习的查询将与提取的特征交互,以搜索所需的元素。没有先验信息,查询将从随机状态开始搜索,通过多个解码器层逐步细化预测结果。在HRMapNet中,检索到的光栅化地图提供了有关地图元素可能存在位置的先验信息,从而可以有效地促进地图元素查询搜索所需元素。如图2右侧所示,所提出的查询初始化在原始地图解码器之前工作。基础查询首先与从本地地图嵌入的先验特征进行交互。具体来说,对于检索到的本地地图中地图元素存在的有效位置,其位置与可学习的位置嵌入相关联;语义向量被投影到标签嵌入中,使用线性投影。然后,作者为每个有效位置获得地图先验嵌入:

地图先验嵌入根据检索到的本地地图编码了地图元素可能存在的位置。为了融合先验信息,基础查询通过交叉注意力与一组地图先验嵌入进行交互。然后,初始化的查询通过原始解码器层在BEV特征中搜索所需的地图元素,从而实现更高效的搜索。

实验结果和分析

数据集

nuScenes数据集包含1000个场景,这些场景分布在4个不同的地理位置,并且每个场景都提供了由6个环视图像。Argoverse 2数据集则涵盖了6个不同城市的1000个场景,每个场景都包含了7个环视图像。

评估指标

评测主要关注三个地图元素:车道线、人行横道和道路边界。本文使用Chamfer距离来衡量预测结果与真实标注之间的匹配程度,该距离在三个不同的阈值(0.5米、1.0米和1.5米)下进行计算。最终计算这三个类别的平均精度均值(mAP)作为评估指标。

实验细节

实验中,作者遵循了与MapTRv2和StreamMapNet相同的训练和验证细节。以MapTRv2为例,作者使用ResNet50作为特征提取的主干网络,每个地图元素被建模为20个顺序的点。感知范围被设定为车辆后部至前部30米,左右各15米,BEV特征的分辨率为0.3米×0.3米。本地光栅化地图的尺寸与BEV特征相匹配,局部和全局光栅化地图的分辨率同样设定为0.3米×0.3米。作者设定为30,为1,用于更新全局地图。模型训练在8个NVIDIA A100 GPU上进行,batch大小为8×4,学习率设定为

与SOTA比较

在 nuScenes 数据集上的比较:如表 1 所示,作者将 HRMapNet 与仅使用单帧图像的当前最先进技术进行了比较。HRMapNet 在这些方法中表现出显著的优势,包括 VectorMapNet、PivotNet、BeMapNet、MapTR、StreamMapNet 和 MapTRv2。具体而言,经过 24 个周期的训练,HRMapNet 将 StreamMapNet 和 MapTRv2 的性能分别提升了 5.9 mAP 和 5.7 mAP。即使在 110 个周期的训练后,HRMapNet 依然在同一设置下比 MapTRv2 高出 4.9 mAP。与引入额外信息的方法相比,HRMapNet 通过全面利用所有历史信息而脱颖而出。例如,P-MapNet 引入了 OpenStreetMap的额外标准清晰度地图,但其改进幅度不如作者的方法。SQD-MapNet 利用流查询去噪策略从先前帧的结果中受益,而 HRMapNet 利用全局栅格化地图不仅整合了时间信息,还整合了所有过去的结果进行在线感知,因此取得了更优越的性能。此外,HRMapNet 在与 StreamMapNet 和 MapTRv2 集成时,推理速度分别达到了 21.1 FPS 和 17.0 FPS,确保了其在自动驾驶实时应用中的实用性。

表 1: 在 nuScenes数据集上的比较结果。每个块中的第一行是基线方法,标记为 “#” 的是改进方法。“Modality” 列中,“means using only a single frame” 表示仅使用单帧图像;“SDMap” 表示添加额外的标准清晰度地图作为输入;“Temporal” 表示使用时间信息;“HRMap” 表示使用历史栅格化地图。MapTR 和 P-MapNet 的结果取自 P-MapNet;StreamMapNet 和 SQD-MapNet 的结果取自 SQD-MapNet,也与作者自己复现的结果一致。其他结果取自各自论文。FPS 是在单块 NVIDIA A100 GPU 上,批量大小为 1 时测量的。作者方法引入的改进用红色标记。

在 Argoverse 2 数据集上的比较:如表 2 所示,Argoverse 2 数据集上的结果进一步证明了 HRMapNet 的有效性。HRMapNet 在 StreamMapNet 和 MapTRv2 上都取得了显著的提升,分别提高了 2.8 mAP 和 4.0 mAP。这些结果强调了作者方法在不同方法论和数据集上的有效性和通用性。

表2:在 Argoverse 2数据集上的比较结果

在新分割数据集上的比较:上述实验是在常用的原始数据集分割上进行的,其中训练和验证数据集之间存在位置重叠。StreamMapNet 提出了 nuScenes 和 Argoverse 2 的新分割方法,其中训练和验证数据在位置上是分开的。作者在表 3 中也提供了这些新分割数据集上的结果。在这些新分割数据上,StreamMapNet 利用查询传播和 BEV 特征融合来整合时间信息。作者没有使用这两种时间融合模块,仅集成了利用全局栅格化地图的策略。HRMapNet 仍然在这两个数据集上提高了 StreamMapNet 的性能,分别提高了超过 3.0 mAP,这加强了集成全局栅格化地图的价值。

表3

消融实验

在本节中,作者对方法进行了消融研究,这些研究在 nuScenes 数据集上进行,使用 24 个训练周期,并将 MapTRv2作为基准模型。

特征聚合与查询初始化:在线感知中,作者的方法利用全局地图信息增强了鸟瞰视图(BEV)特征和查询。表 4 展示了这两个模块的消融研究。基于 MapTRv2,将全局地图信息集成到 BEV 特征中,性能提升了 3.1 mAP。进一步引入查询初始化模块,性能又提升了 2.6 mAP。这两个组件在将全局地图信息集成到在线感知中都起到了显著的正面作用。为了进一步证明提出的查询初始化模块有助于更高效地搜索地图元素,作者在补充材料中提供了减少解码器层数的消融研究。

表4:消融实验

查询初始化中的地图分辨率:在查询初始化过程中,所有地图元素存在的位置都被视为地图先验,并嵌入到基础查询中。然而,有时会产生过多的先验嵌入,占用大量内存。为此,在提取地图先验嵌入之前,作者对检索到的本地栅格地图进行了下采样,以达到更粗糙的分辨率。表 5 展示了不同分辨率下编码地图先验嵌入的消融研究。在 0.3 m 分辨率下,未采用下采样,导致训练过程中产生大量嵌入和显著的 GPU 内存消耗。随着分辨率的降低,内存使用量迅速减少,对推理速度的影响很小。作者将分辨率设置为 0.6 m 作为默认配置,因为此时内存消耗是可以接受的,并且能够获得最佳性能。结果还表明,与 MapTRv2 相比,HRMapNet 在训练中额外消耗了约 9 GB 的 GPU 内存。

表5:消融实验

实际使用中的额外结果

定位误差的鲁棒性:如第 3.2 节所述,全局地图是基于自车定位从本地预测的栅格地图中更新的。在自动驾驶中,自车定位通常使用 GNSS 模块或基于 SLAM 的方法进行高精度定位。为了评估 HRMapNet 对定位误差的鲁棒性,作者在 nuScenes 数据集上进行了额外的实验,结果如表 6 所示。基于 MapTRv2 训练了 24 个周期的模型在不同级别的定位误差下进行了测试;所有结果均来自同一模型,只是定位误差水平不同。作者为自车定位的平移和旋转添加了随机噪声,从而影响了地图的更新和检索。

表 6: 在不同定位误差下测试的 mAP

结果清楚地展示了 HRMapNet 对定位误差的鲁棒性,尤其是在平移方面。一个促成因素是作者方法中使用的相对较小的地图分辨率(0.3m)。尽管存在不同程度的定位误差,HRMapNet 仍然能够一致地提供可比的结果,大多数情况下性能仅下降了 1 mAP。即使在最坏情况下,即噪声最大的情况下,历史地图仍然带来了好处(63.8 mAP),与基线模型 MapTRv2(61.5 mAP)相比有所提升。考虑到自动驾驶中对平移的 0.1 m 误差和对旋转的 0.01 rad 误差是常见的要求,这些额外的结果表明 HRMapNet 在实际使用中的有效性。

不同初始地图:在上述实验中,为了进行更公平的比较,HRMapNet 被测试为使用一个空的初始全局地图。全局地图是逐渐从感知结果中更新的,并有利于后续预测。对于许多帧来说,在线感知实际上只从时间上的前几帧中受益,这削弱了使用全局历史地图的力量。在这里,作者提供了使用预构建初始地图的额外结果,如表 7 所示。这里使用的模型与表 1 中的模型相同,与 MapTRv2 集成并训练了 24 个周期。注意,模型没有重新训练或微调,作者只是用不同的初始地图进行了测试。这里有两种地图可以提供。

表 7: 使用不同初始地图进行测试的 mAP

对于“验证地图”,相同的模型用验证数据运行两次。第一次是使用空的初始地图运行。地图随着验证数据的进入而逐渐更新,最终的全局地图被保存。这个全局地图被加载用于第二次验证。实际上没有额外的数据输入,模型自己构建了一个全局地图并再次用于验证。有了这个更完整的地图的帮助,相同模型的性能进一步提高了 +5.4 mAP。此外,训练期间构建的全局地图被保存并再次加载用于验证。如第 4.2 节所述,训练和验证数据之间存在位置重叠。因此这个训练地图也可以在线感知中受益于验证。因为这个训练地图更准确,性能大大提高了 +16.5 mAP。作者提供这些额外的结果,以显示 HRMapNet 在自动驾驶实际使用中的潜力,包括众包在线地图感知。提供了一个易于维护的全局地图,甚至可以由其他车辆构建,在线矢量化地图感知的性能可以大大提高。

定性结果分析

如图 3 所示,作者对比了在严重遮挡、雨天以及夜间照明条件不佳的情况下的地图感知结果。所有参与比较的方法均基于 24 周期的训练。本研究提出的方法以 MapTRv2 为基础模型。图中,车道线、人行横道和道路边界分别用红色、绿色和蓝色标识。

图 3: 在三个挑战性场景(严重遮挡、雨天和夜间照明不足)下的可视化结果对比

结论

作者提出了一种新颖的框架,即通过维护一个全局的历史栅格化地图来增强在线矢量化地图的感知。这种全局栅格化地图能够利用过往的预测成果被简易地构建和更新。作者通过将历史栅格化地图的信息融合进鸟瞰视图(BEV)特征增强和查询初始化过程中,使其成为在线感知任务中的有益补充。本框架与当前大多数在线矢量化地图感知技术相兼容。实验结果证明,作者所提出的 HRMapNet 显著提升了两种业界领先的在线矢量化地图感知方法的性能。作者期望 HRMapNet 能够成为众包地图感知的基石:由众多自动驾驶车辆共同维护一个精确的全局栅格化地图,并以此为每辆车提供准确的在线矢量化地图感知的先验知识。

局限性:尽管 HRMapNet 专注于如何利用历史栅格化地图来增强在线矢量化地图的感知,作者并未设计过于复杂的地图维护机制,而是采用了一种源自机器人领域的占用网格建图技术的简化版本,用以将局部预测结果整合入全局地图。

参考

[1] Enhancing Vectorized Map Perception with Historical Rasterized Maps

投稿作者为自动驾驶之心知识星球特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!

① 全网独家视频课程

BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测车道线检测轨迹预测在线高精地图世界模型点云3D目标检测目标跟踪Occupancycuda与TensorRT模型部署大模型与自动驾驶Nerf语义分割自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

网页端官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

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

③【自动驾驶之心】技术交流群

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

④【自动驾驶之心】全平台矩阵



继续滑动看下一个
自动驾驶之心
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存