​大幅提升,高精地图新SOTA!PivotNet:端到端向量化高精地图构建方案(ICCV2023)...

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

ADAS巨卷干货,即可获取

大家好,很荣幸受邀分享我们中稿ICCV 2023的工作PivotNet,PivotNet使用统一的基于枢纽点的矢量化表达来构建精准且紧凑的高精地图,最终取得了 SOTA 的结果。文章已授权自动驾驶之心原创!如果您有相关工作需要分享,请在文末联系我们!

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

论文作者 | 丁文杰

编辑 | 自动驾驶之心

45ac63e701ed2bfcedaa7e13dd7847c2.png

  论文链接:https://arxiv.org/abs/2308.16477

高精地图(HD map)是自动驾驶研究中最关键的组成部分之一。传统的HD地图构建依赖于对激光雷达点云进行手动标注,耗时且费力。近期的研究通过地图学习 (map learning) 问题来减少标注成本。给定车载传感器数据,地图学习的目标是在预定义的鸟瞰视图(BEV)范围内构建局部地图。大多数现有方法将地图构建视为一种语义学习 (semantic learning) 问题。它们将地图表示为一组固定数量的网格,并为每个网格预测类别标签, 最终通过复杂的后处理生成下游所需的向量化地图。这类语义地图存在明显的局限性,它忽略了网格之间和网格内部的几何关系,且包含许多冗余信息。复杂的后处理也导致了不必要的时间消耗和累计误差。

dd8bb27a77299bfe7920772657cce55a.png

为了解决这些问题,一些研究者提出以端到端的方式生成矢量化地图。MapTR 使用固定数量的点来表示不同复杂度的地图元素。这种方法存在的问题是:首先,均匀化的表示包含了对几何性影响较小的冗余点。其次,使用固定数量的点表示动态形状的线可能会丢失地图元素的关键细节,特别是对于圆角和直角(图1)。因此,为了学习准确且紧凑的表示,我们将地图元素建模为有序的枢纽点列表,这种表示方法紧凑、适合处理角点且具有几何鲁棒性。然而,不同地图元素内枢纽点数量的动态变化给基于枢纽点的建模带来了新的挑战。前人的工作利用粗到细的框架和自回归解码来解决这些挑战,但自回归的特性会导致推理时间较长且会累积误差。

针对这些问题,我们提出了 PivotNet,它采用了 set prediction 的范式,使用统一的基于枢纽点的地图表示对地图元素进行准确建模。

本文的贡献有三个方面:

  • 我们提出了PivotNet,基于枢纽点表示,实现了端到端的精确而紧凑的矢量化建图。

  • 我们创新性地引入了点线掩码模块 (point-to-line mask module)、枢纽点动态匹配模块 (pivot dynamic matching module) 和动态矢量化序列损失 (dynamic vectorized sequence loss),以实现准确的地图元素建模。

  • PivotNet 在广泛使用的公开数据集中进行了验证, 分别在 nuScenes 及 Argoverse 2 数据集上领先当前 SOTA 11.2 和 5.9 mAP。

Pipeline

65c0ede334a9ebac2f695b00ce4be917.png

PivotNet的框架如图2所示,包括四个主要模块:相机特征提取器(camera feature extractor)、BEV 特征解码器 (bev feature decoder)、线感知的点解码器 (line-aware point decoder) 和枢纽点预测器 (pivot point head)。多视图图像首先输入相机特征提取器,生成图像特征。然后,通过BEV 特征解码器,将图像特征聚合并转换为统一的 BEV 特征。接着线感知的点解码器提取线感知点特征。最后,枢纽点预测器删除共线点并输出灵活而紧凑的基于枢纽点的地图表示。

  1. 相机特征提取器:将车载相机捕获的多视角图像输入到相机特征提取器,生成相机视角特征。

  2. BEV特征解码器:采用 Transformer-based 模块将图像特征聚合和转换成统一的 BEV 表示,通过采用可变形注意力机制来编码几何对应关系,同时减少计算内存。这个模块将图像特征转化为BEV特征。

  3. 线感知点解码器:将BEV特征解码成线感知的点特征。该模块采用Transformer-based架构,并且通过引入点线掩码模块,更准确地对点线关系进行建模。

  4. 枢纽点预测器:根据线感知的点特征,预测出地图中的枢纽点序列, 实现准确且紧凑的矢量化表达。

Point-Line Relation Modeling

b969b067020926d74bc66b3f103cdedc.png

在 set prediction 的框架下,我们无法明确区分实例之间和实例内部的点,这可能导致实例混淆。因此,为了确保地图元素的准确建模,我们需要对网络中的点线关系进行编码。点线关系主要包含从属 (subordinate) 关系和几何 (geometrical) 关系。其中,从属关系指的是网络定义的点线对应关系,比如哪些 point query 属于同一条线,哪些属于不同的线。几何关系指的是点线的几何对应,比如点构成线,一条线对应的点序列包含了恢复这条线的任意表达所需要的所有信息。

为了编码点线关系,我们提出了点线掩码模块 (point-to-line mask module),它以直观的方式编码了从属关系和几何关系。该模块的基本概念是一个向量化的有序点序列能够构建一个地图元素。基于这个概念,我们强制要求相同实例的点查询(point query)学习共享的线感知注意力掩码 (line-aware mask)。该掩码会参与 transformer 的交叉注意力计算,使得点查询的注意力被限制在对应的掩码区域内。这样一来,同一实例的点查询(point query)共享同样的掩码, 不同实例采用不同的掩码。每个实例都有一个唯一的掩码负责处理该实例的所有点查询。通过限制注意力区域,点线掩码模块从结构上对从属关系进行了编码,使得点特征能更好地捕捉到地图元素之间的关系。此外,通过监督线感知掩码 (line-aware mask),让它去学习这条线的语义表达,点线的几何关系也得到了显式约束。

Pivot Dynamic Matching

9890851c8e5948aaaf90f5685bc07125.png

用枢纽点序列对地图元素进行建模的难点在于:

  1. 枢纽点之间的拓扑关系建模,即需要保证点序列的有序性

  2. 动态枢纽点数量建模,即需要根据地图元素的复杂度动态调整枢纽点数量。

Set prediction 任务常用的二分匹配(bipartite matching)无法保证匹配元素间的有序性。为此,我们引入了 序列匹配(sequence matching)的概念,并设计了枢纽点动态匹配模块 (pivot dynamic matching module)。具体来说,在 PivotNet 的框架下,不同地图元素之间(line level)是无序的,但地图元素内部的点 (point level) 是有序的。

我们把地图元素建模成一个同时包含枢纽点(pivot point)和共线点(collinear point)的序列。枢纽点指的是对地图元素形状贡献度大的点,而共线点则指代相邻两个枢纽点之间的点。具体来说,我们设定了一个地图元素的最大点数量 N, 用这个长度为 N 的点序列来代表一个实例,这个点序列同时包含了枢纽点和共线点。然后我们用这个固定长度的 DT 点序列和动态长度(T)的 GT 枢纽点序列去做 pivot dynamic matching。匹配上的点我们认为是枢纽点,未匹配上的认为是共线点,同时我们会根据匹配结果对这些点进行分类。在测试阶段,被预测为共线点的点会被删掉,只保留序列中的枢纽点作为最终输出。

枢纽点动态匹配模块的中心思想是,在预测点序列(长度N)中找到一个与 GroundTruth 长度(T)相同的子序列 ,使得该子序列与 GT 点序列之间的序列距离 (sequence matching cost)最小。

759b69ab7f4ef716e2a9e3b74f1f0ff6.png cb88e77c4ce9ffdbc4da26bb043c04bb.png

对于不同的预测序列,由于点分布的不同,对应的 也不同。采用暴力解法需要遍历所有长度为 T 的组合,时间复杂度为 。为了提升匹配效率,我们设计了基于动态规划的优化方法, 将时间复杂度减小到 。由于该部分公式符号较多,在此不作赘述。值得注意的是,枢纽点动态匹配模块进行的是两个实例内点的匹配,对于实例级别的匹配,我们仍然采用双边匹配,同时我们采用序列距离来衡量 GT 和 DT 实例之间的距离。

Dynamic Vectorized Sequence Loss

动态矢量化序列损失(Dynamic Vectorized Sequence loss,简称DVS loss)监督了矢量化地图元素预测中位置和拓扑关系。它包含三个主要部分:枢纽点监督、共线点监督和枢纽点分类损失。

枢纽点监督:根据枢纽点动态匹配的结果,被选出的 DT 枢纽点序列与GT序列中的点一一对应,因此,我们采用 距离对枢纽点序列作监督。

c9a37afcaa584000832e135f41673662.png

共线点监督:共线点指的是相邻枢纽点之间的点,它们需要在满足共线条件的同时按照索引有序连接。

c0bdfd1423d6608b8ad6d12eb057df24.png ab3f83463591ed50ee7fa4b0a4c88ce5.png

枢纽点分类:采用二元交叉熵损失函数来监督预测点是否为枢纽点的概率。

4e2e4e60c9846180c997043caec5a076.png

总的来说,动态矢量化序列损失结合了枢纽点、共线点和拓扑关系的监督,通过权重因子进行综合计算,用于指导矢量化地图元素的预测和优化。

实验

Comparison with SOTA

在nuScenes数据集上,我们将PivotNet与当前 SOTA 进行了比较。表1中展示了不同实验设置下 PivotNet 与现有方法的整体评估性能对比结果。现有方法在评估中使用了不同的 Chamfer Distance 阈值来计算 AP。因此,为了进行公平比较,我们在表1中对 PivotNet 分别在两种阈值设置下进行了评估。与 MapTR 相比,在 {0.2, 0.5, 1.0}m 的评测阈值下,我们领先了 11.2% mAP, 在 {0.5,1.0,1.5}m 的评测阈值下领先 7.3% mAP。

b3609427106e35837161b7d7ee1dc8d8.png

表2对PivotNet在新的大规模数据集Argoverse 2上进行了评估,并与SOTA方法进行了比较。我们使用公开的源代码复现了这些方法,并将其迁移到了 Argoverse 2 数据集上。需要注意的是,表2中的所有结果都是使用{0.2,0.5,1.0}m阈值进行评估的。如表所示,PivotNet 在 Argoverse 2 领先现有 SOTA 5.9% mAP。

f83661c95e95573b3b14d00cfd7694bd.png

Ablation Study

ca782b364914d1725d4c0b4c03063ba6.png

我们在表3中仔细分析了每个模块对PivotNet最终性能的贡献。第一行代表基准方法,它采用了基于 transformer 的普通点解码器和基于分类的长度预测器(用于取代枢纽点匹配)。作为任意长度序列建模的简单替代方案,长度预测器通过预测所需的枢纽点数量k,并输出前k个点作为最终结果,来实现动态点数目建模。第2行和第4行的比较验证了动态枢纽点序列匹配的有效性,尤其是在复杂形状的道路边界上,AP提高了8.9%。第3行和第4行的比较验证了提出的点线掩码模块的有效性,mAP提高了4.9%。

Discussion of the point-line relation modeling

afd5cee0926dfdc14d36183c617308c5.png

在表5中,我们比较了建模点线关系的不同方法,包括我们提出的点线掩码模块和现有的基于层次查询的方法。第一行代表baseline,它没有引入点线关系,而是直接使用 mask-attention based transformer 作为线感知点解码器。第一行和第二行的比较表明,层次查询设计对于动态序列建模是无益的。我们在上图中比较了层次查询和点查询方法的模型结构。在层次查询设计中,具有相同索引的点查询共享相同的点特征。然而,由于我们使用动态数量的点来建模地图元素,在不同的线预测中,具有相同索引的点之间几乎没有关系。根据预测点的不同分布,匹配上的枢纽点序列对应的索引各不相同。简而言之,层次查询是索引相关的,这与我们的索引无关的问题建模相冲突,而且可能会引入关于索引信息的噪声。因此,为了避免索引相关的信息嵌入,我们采用原始的点查询设计,并将点线从属和几何关系编码到注意力掩码中。

Discussion of different AP thresholds.

20bbf87037cc75af7ece66068e9f8f7a.png

不同的 CD 阈值设置代表着评估协议中对地图误差的不同容忍程度。考虑到实际自动驾驶场景中,高精度地图通常要求厘米级精度,因此我们认为在更为严苛的阈值条件下进行比较,更能凸显出实际的建图性能。与HDMapNet 相比,VectorMapNet MapTR 在简单阈值下,如1.0m1.5m,有显著改进,但在更严格的场景下,如0.2m0.5m,它们的改进幅度迅速下降。相比之下,无论采用哪种阈值,PivotNet 总是取得更好的结果,这显示了我们框架的鲁棒性。

Visualization

0bcf536036ea9e28fe1bc40d979307e6.png 408c165af4b23fe4c347bfb49e8d04c0.png

我们在图5中展示了在不同环境条件下与SOTA方法的定性比较结果,从左至右分别为多视角图片、HDMapNet、MapTR 与 PivotNet 的模型输出。与 HDMapNet 的相比,PivotNet 除了避免了复杂的后处理,这种基于枢纽点矢量化的方法比基于分割的方法更准确地预测了端点。与 MapTR 相比,我们的方法比基于均匀点的方法能更平滑准确地表达地图形状,例如直线、圆角和直角。此外,PivotNet在建模过程中需要更少的点,表达更加紧凑。与 GroundTruth 的比较可以看出,PivotNet 对各种驾驶场景具有鲁棒性,并且能在不同环境中保持良好的性能。即使在夜晚,车辆附近的地图也与实际情况非常接近。

结论:

本文聚焦于局部高精地图构建任务,将其建模为点集预测问题。我们提出了一种端到端的框架,即PivotNet,它基于统一的枢纽点矢量化表达来构建精确且简洁的高精地图,同时在网络建模过程中融入了关于点线几何和从属关系的先验知识。通过引入点线掩码模块、枢纽点动态匹配模块以及动态矢量化序列损失,PivotNet取得了目前最佳的性能表现,并为未来的相关研究提供了新的视角和启发。

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署协同感知语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

da357f6a3514f786443bf84ebad7bd1a.png 视频官网:www.zdjszx.com

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

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

092d9aebaa36560c803869cdf7a2315f.png

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

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

c4519076c988bcaeb991e24a1cb40a45.jpeg

④【自动驾驶之心】平台矩阵,欢迎联系我们!

58e899aa4f884410f83dc43124663dbc.jpeg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值