论文阅读笔记-MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction
MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction
MapTR:用于在线矢量高清地图构建的结构化建模和学习
ABSTRACT
我们提出了 MapTR ,一个结构化的端到端框架,用于高效的在线矢量高清地图构建。我们提出了一种统一的基于包络的建模方法,即把地图元素建模为具有一组等价包络的点集,这就避免了地图元素定义的模糊性,简化了学习。我们采用分层查询嵌入方案来灵活编码结构化的地图信息,并对地图元素的学习进行分层双比特匹配。MapTR 在 nuScenes 数据集上实现了现有矢量地图构建方法中最好的性能和效率。特别是,MapTR-nano 在 RTX 3090 上以实时推理速度(25.1 FPS)运行,比现有最先进的基于摄像头的方法快 8 倍,同时实现了 3.3 倍的 mAP 。MapTR-tiny 的速度明显超过现有的最先进的多模态方法,达到 13.5 mAP ,同时速度更快。定性结果表明,MapTR 在复杂的各种驾驶场景中保持了稳定和强大的地图构建质量。丰富的演示可在 github ,以证明其在真实世界场景中的有效性。MapTR 在自动驾驶方面有很大的应用价值。我们将发布代码以促进进一步的研究和应用。
1 INTRODUCTION
高清地图包含丰富的道路拓扑和交通规则的语义信息,是自动驾驶系统不可缺少的基本组成部分。传统的高清地图是通过基于 SLAM 的方法离线构建的,产生了高的维护成本和可扩展性问题。最近,在线高清地图的构建吸引了越来越多的兴趣,它在运行时通过车载传感器构建自我车辆周围的地图,摆脱了离线的人力努力。
车道检测可以被看作是高清地图构建的一个子任务。相关工作利用先验来感知基于前视图像的开放形状的车道。他们仅限于单视角的感知,无法应对其他具有动态形状的地图元素。随着鸟瞰图(BEV)表示学习的发展,最近的工作通过执行BEV语义分割来预测光栅化地图。然而,光栅化地图缺乏矢量的实例级信息,如车道结构,这对下游任务(如运动预测和规划)很重要。为了构建矢量化的高清地图,HDMapNet 将像素化的分割结果进行后处理,这是很复杂和耗时的。为了避免后处理,VectorMapNet 将每个地图元素表示为一条有方向的折线,并利用自动回归解码器依次预测折线的下一个点。尽管VectorMapNet 具有良好的性能,但它也有自己的问题:(1)用有向折线表示地图元素,并按顺序预测点,会招致定义的模糊性(参考图2)。这样的建模要求所有的地图元素都有明确的起始点和方向的定义。然而,对于封闭形状的元素(如行人过街)和一些线条元素(如对向车道之间的分隔线),没有合理的标准来定义起点和方向。(2) VectorMapNet 以递归的方式预测点,并采用从粗到细的级联框架,导致推理时间较长,对实时场景的扩展性有限。(3) 自动回归解码器的递归性带来了累积误差的问题,需要更长的训练周期来收敛。
在基于排列组合的建模基础上,MapTR 建立了一个结构化的地图学习框架。MapTR 将在线矢量高清地图构建视为一个平行回归问题。采用分层查询嵌入来灵活地编码实例级和点级信息。通过统一的 Transformer 结构,对所有的实例和实例的所有点同时进行预测。而 MapTR 将训练管道制定为一个层次化的集合预测任务。我们进行层次化的双点匹配,依次分配实例和点。
MapTR 在 nuScenes 数据集上实现了现有矢量地图构建方法中的最佳性能和效率。特别是,MapTR-nano 在 RTX 3090 上以实时推理速度(25.1 FPS)运行,比现有最先进的基于摄像头的方法快 8 倍,同时实现了 3.3 倍的 mAP。MapTR-tiny 在速度更快的同时,明显优于现有最先进的多模态方法,达到 13.5 mAP。如图所示(图1),MapTR 在复杂多样的驾驶场景中保持了稳定和稳健的地图构建质量。它在自动驾驶中具有重要的应用价值。
我们的贡献可以总结如下:
- 我们提出了一种统一的基于包络的地图元素建模方法,即把地图元素建模为具有一组等价包络的点集,这就避免了地图元素定义的模糊性并简化了学习。
- 基于这种新颖的建模方式,我们提出了MapTR,一个结构化的端到端框架,用于高效的在线矢量高清地图构建。我们引入了分层查询嵌入方案来灵活地编码实例级和点级信息,并对地图元素的学习进行分层双点匹配。
- MapTR是第一个实时和SOTA矢量化的高清地图构建方法,在复杂的各种驾驶场景中具有稳定和强大的性能。它在自动驾驶中具有重要的应用价值。
2 MAPTR
2.1 PERMUTATION-BASED MODELING 基于排列组合的建模
MapTR 旨在以结构化的方式对高清地图进行建模和学习。高清地图是静态地图元素的集合,包括人行横道、车道分隔线、道路边界等。为了进行结构化建模,MapTR 从几何学角度将地图元素抽象为封闭形状(如人行横道)和开放形状(如车道分隔线)。通过沿形状边界依次取样,封闭形状的元素被离散为多边形,而开放形状的元素被离散为多段线。
初步来说,多边形和折线都可以表示为一个有序的点集 \(V ^F = [v_0, v_1, ..., v_{N_v-1}]\) (见图3(Vanilla))。\(N_v\) 表示点的数量。然而,点集的置换没有明确的定义,也不是唯一的。对于多边形和折线来说,存在许多等价的排列组合。例如,如图 2(a) 所示,对于两个相对的车道之间的车道分隔线(折线),定义其方向是很困难的。车道分界线的两个端点都可以被视为起点,点集可以被组织在两个方向。在图 2(b) 中,对于人行横道(多边形),点集可以在两个相反的方向(逆时针和顺时针)组织。而循环改变点集的排列方式,对多边形的几何形状没有影响。总而言之,对点集强加一个唯一的排列组合会导致定义的模糊性。
为了弥补这一差距,MapTR 用 \(V = (V, \Gamma)\) 来模拟每个地图元素。\(V = \{v_j\}^{N_v-1} _{j=0}\) 表示地图元素的点集(\(N_v\) 是点的数量)。\(\Gamma = {γ_k}\) 表示点集V的等价置换组,涵盖所有可能的组织序列。
具体来说,对于折线元素(见图3(左)),\(\Gamma\) 包括2种等价排列,即,
对于多边形元素(见图3(右)),\(\Gamma\) 包括 \(2×N_v\)种等价的排列组合,即,
通过引入等价互换的概念,MapTR 以统一的方式对地图元素进行建模,避免了模糊性问题。在这种建模的基础上,MapTR 进一步引入了层次化的双字节匹配(见第2.2节和第2.3节),用于地图元素的学习,并采用结构化的编码器-解码器 Transformer 架构来有效预测地图元素(见第2.4节)。
2.2 HIERARCHICAL MATCHING 分层匹配
MapTR 按照 DETR(Carion等人,2020年)的端到端范式,在一个单程中平行推导出一个固定大小的 \(N\) 个地图元素集合。\(N\) 被设定为大于一个场景中典型的地图元素数量。让我们用 \(\hat{Y} = \{\hat{y}_i \}^{N -1} _{i=0}\) 来表示 \(N\) 个预测地图元素的集合。地面真实(GT)地图元素集用 \(\varnothing\)(no object)填充,形成一个大小为 \(N\) 的集合,用 \(\hat{Y} = \{\hat{y}_i \}^{N -1} _{i=0}\) 表示。 \(y _i = (c _i, V _i, \Gamma_i)\),其中 \(c_i\),\(V_i\) 和 \(\Gamma_i\) 分别是 GT 地图元素 \(y_i\) 的目标类标签、点集和包络组。\(\hat{y} _i = (\hat{p} _i, \hat{V} _i)\),其中 \(\hat{p} _i\) 和 \(\hat{V} _i\) 分别是预测的分类分数和预测的点集。为了实现结构化的地图元素建模和学习,MapTR 引入了层次化的双点匹配,即依次进行实例级匹配和点级匹配。
Instance-level Matching.(实例级匹配) 首先,我们需要在预测地图元素 \(\{\hat{y}_i\}\) 和 GT 地图元素 \(\{y_i\}\) 之间找到一个最佳的实例级标签分配 \(\hat{π}\)。\(\hat{π}\) 是 N 个元素的排列组合\((\hat{π} \in \Pi_N)\),其实例级匹配最低成本:
\(\mathcal{L}_{ins\_match}(\hat{y}_{π(i)}, y_i)\) 是预测 \(\hat{y}_{π(i)}\) 和 GT \(y_i\) 之间的成对匹配成本,它同时考虑了地图元素的类别标签和点集的位置。
\(\mathcal{L}_{Focal}(\hat{p}_{π(i)}, c_i)\) 是类别匹配成本项,定义为预测分类分数 \(\hat{p}_{π(i)}\) 和目标类别标签 \(c_i\) 之间的 Focal Loss(Lin等人,2017)。\(\mathcal{L}_{position}(\hat{V}_{π(i)}, V_i)\) 是位置匹配成本项,它反映了预测点集 \(\hat{V}_{π(i)}\) 和 GT 点集 \(V_i\) 之间的位置相关性(更多细节请参考第3.2节)。匈牙利算法被用来寻找 DETR 之后的最佳实例级分配 \(\hat{π}\)。
Point-level Matching.(点级匹配) 在实例级匹配之后,每个预测的地图元素 \(\hat{y}_{\hat{π}(i)}\) 被分配给GT地图元素 \(y_i\)。然后,对于每个被分配了正标签(\(c_i \neq \varnothing\))的预测实例,我们进行点级匹配,在预测点集 \(\hat{y}_{\hat{π}(i)}\) 点集 \(V_i\) 之间找到一个最佳的点对点分配 \(\hat{\gamma} \in \Gamma\) 。\(\gamma\) 是在预定义的互换组 \(\Gamma\) 中选择的,并具有最低的点级匹配成本:
\(D_{Manhattan}(\hat{v_j} , v_{\gamma(j)})\) 是预测点集 \(\hat{V}\) 的第 \(j\) 个点与 GT 点集 \(V\) 的第 \(\gamma(j)\) 个点之间的曼哈顿距离。
2.3 END-TO-END TRAINING
MapTR 是根据最优的实例级和点级分配(\(\hat{π}\) 和 \(\{\hat{\gamma}_i\}\))来训练的。损失函数主要由三部分组成,分类损失、点对点损失和方向损失,即:
其中λ、α和β是平衡不同损失项的权重。
Classification Loss. 根据实例级的最佳匹配结果 \(\pi\),每个预测的地图元素都被分配了一个类别标签(或‘无对象’\(\varnothing\))。分类损失是一个焦点损失项,表述为:
Point2point loss. Point2point loss 旨在限制每个预测点的位置。对于每个索引为 \(i\) 的 GT 实例,根据点级最优匹配结果 \(\gamma_i\),每个预测点 \(\hat{v}_{\hat{π}(i),j}\) 被分配到一个 GT 点 \(v_i,\hat{\gamma}_{i(j)}\)。点对点的损失被定义为每个分配的点对之间计算的曼哈顿距离。
Edge Direction Loss. Point2point 损失只限制了折线和多边形的节点点,没有考虑边缘(相邻点之间的连接线)。为了准确表达地图元素,边缘的方向很重要。因此,我们进一步设计了边缘方向损失,以限制较高边缘层次的几何形状。具体来说,我们考虑成对的预测边缘 \(\hat{e}_{\hat{\pi}(i),j}\) 和 GT 边缘 \(e_{i,\hat{\gamma}_i(j)}\) 的余弦相似度:
2.4 ARCHITECTURE
MapTR 采用了编码器-解码器的范式。图 4 描述了整体结构。
Input Modality.(输入模式) 在这项工作中,我们专注于基于摄像头的 MapTR。MapTR 与各种机载传感器(照相机、LiDAR 和 RADAR)兼容。将 MapTR 扩展到多模态数据是直接和微不足道的,这将在未来的工作中提出。而且,由于基于合理的排列组合的建模,即使只有相机输入,MapTR 也明显优于其他多模态输入的方法。
Map Encoder.(地图编码器) MapTR 的编码器从原始传感器数据中提取特征,并将传感器特征转换为统一的特征表示,即 BEV 表示。对于基于相机的 MapTR,给定多视角图像 \(\mathcal{I}=\{I_1, ... , I_K\}\),我们利用传统的骨干网来生成多视角的特征图 \(\mathcal{F} = \{F_1, ... , F_K\}\)。然后,二维图像特征F被转换为 BEV 特征 \(\mathcal{B}\in \mathbb{R}^{H×W×C}\)。默认情况下,我们采用 GKT 作为基本的二维到 BEV 转换模块,考虑到其易于部署的特性和高效率。MapTR 与其他转换方法兼容并保持稳定的性能,例如CVT、LSS、Deformable Attention 和 IPM。消融研究见表 3.
Map Decoder.(地图解码器) 我们采用分层查询嵌入方案对每个地图元素进行明确编码。具体来说,我们定义了一组实例级查询 \(\{q^{(ins)} _i \}^{N-1} _{i=0}\) 和一组由所有实例共享的点级查询 \(\{q^{(pt)} _j \}^{N_v-1} _{i=0}\)。每个地图元素(索引为i)对应于一组分层查询 \(\{q^{(hie)} _{ij} \}^{N_v-1} _{i=0}\)。第i个地图元素的第j个点的层次查询被表述为。
地图解码器包含几个级联的解码层,这些解码层迭代地更新分层查询。在每个解码层中,我们采用 MHSA 来使层次查询相互交换信息(包括实例间和实例内)。然后,我们采用 Deformable Attention,使分层查询与 BEV 特征互动,其灵感来自 BEVFormer。每个查询 \(q^{(hie)} _{ij}\) 预测参考点 \(p_{ij}\)的二维归一化 BEV 坐标\((x_{ij}, y_{ij})\)。然后我们对参考点周围的 BEV 特征进行采样,并更新查询。
地图元素通常具有不规则的形状,需要长距离的背景。每个地图元素对应于一组参考点 \(\{p_{ij}\}^{N_v-1} _{j=0}\),具有灵活和动态的分布。参考点 \(\{p_{ij}\}^{N_v-1} _{j=0}\)可以适应地图元素的任意形状,并为地图元素的学习捕捉信息背景。
MapTR 的预测头很简单,由一个分类分支和一个点回归分支组成。分类分支预测实例类别得分。点回归分支预测点集 \(\hat{V}\) 的位置。对于每个地图元素,它输出一个\(2N_v\) 维的向量,代表 \(N_v\) 点的归一化 BEV 坐标。
3 EXPERIMENTS
Dataset and Metric.(数据集和度量) 我们在流行的 nuScenes 数据集上评估了 MapTR,该数据集包含 1000 个场景,每个场景大约持续 20 秒。关键样本的注释频率为 2Hz。每个样本都有来自 6 个摄像头的 RGB 图像,涵盖了自我车辆的 360° 水平视野。按照以前的方法,选择了三种地图元素进行公平评估--行人过街、车道分隔线和道路边界。X轴的感知范围为[-15.0m, 15.0m],Y轴的感知范围为[-30.0m, 30.0m]。而我们采用平均精度(AP)来评价地图构建质量。倒角距离 \(D_{Chamfer}\) 被用来判断预测和 GT 是否匹配。我们计算几个 \(D_{Chamfer}\) 阈值 \((\tau \in T,T={0.5,1.0,1.5})\) 下的 \(AP_\tau\),然后将所有阈值的平均值作为最终的 AP 指标。
Implementation Details.(实施细节) MapTR 是用 8 个 NVIDIA GeForce RTX 3090 GPU 训练的。我们采用 AdamW 优化器和余弦退火计划。初始学习率被设置为 6e-4。对于 MapTR-tiny,我们采用 ResNet50 作为骨干。我们将每个 BEV 网格的大小设置为 0.3 米,并堆叠 6 个 transformer 解码器层。我们训练 MapTR-tiny,总批次大小为 32(包含6个视图图像)。所有的消融研究都是基于用 24 个 epochs 训练的 MapTR-tiny。MapTR-nano 是为实时应用而设计的。我们采用 ResNet18 作为骨干。我们将每个 BEV 网格的大小设置为 0.75 米,并堆叠 2 个 transformer 解码器层。我们训练 MapTR-nano 的总批次大小为 192。至于损失权重的超参数,λ 被设置为 2,α 被设置为 5,β 被设置为 5e-3。所有的源代码和模型都将在https://github.com/hustvl/MapTR,供公众使用。
3.1 COMPARISONS WITH STATE-OF-THE-ART METHODS
在表 1 中,我们将 MapTR 与最先进的方法进行比较。MapTR-nano 在 RTX 3090 上以实时推理速度(25.1 FPS)运行,比现有的最先进的基于摄像头的方法(VectorMapNet-C)快8倍,同时实现了 3.3 倍的 mAP。MapTR-tiny 明显优于现有的最先进的多模态方法(VectorMapNet-C&L),在速度更快的同时,获得了 13.5 个 mAP。
3.2 ABLATION STUDY 消融研究
Modeling Method.(建模方法) 在表 2 中,我们提供了消融实验来验证所提出的基于包络建模的有效性。与对点集施加唯一包络的香草建模方法相比,基于包络的建模方法解决了地图元素定义的模糊性,并带来了 5.9mAP 的改进。对于人行横道,改进甚至达到 11.9AP,证明了多边形元素建模的优越性。
2D-to-BEV Transformation.(2D到BEV的转换) 在表 3 中,我们对二维到 BEV 的转换方法进行了消减。我们使用了 LSS 的优化实现。而为了与 IPM 和 LSS 进行公平的比较,GKT 和 Deformable Attention 都采用了单层配置。消融结果表明,MapTR 与各种 2D-to-BEV 方法兼容,并取得了稳定的性能。考虑到 GKT 的易部署性和高效率,我们将其作为 MapTR 的默认配置。
Point Number.(点的数量) 关于每个地图元素建模的点的数量,在表 4 中列出。太少的点不能描述地图元素的复杂几何形状。太多的点会影响效率。我们采用 20 个点作为 MapTR 的默认设置。
Decoder Layer Number.(解码器层数) 关于地图解码器的层数的消减情况见表 5。地图构建性能随着层数的增加而提高,但当层数达到 6 时就会饱和。
Position Matching Cost.(位置匹配成本) 如第 2.2 节所述,我们在实例级匹配中采用了位置匹配成本术语 \(\mathcal{L}_{position}(\hat{V}_{(i)}; V_i)\),用于反映预测点集 \(\hat{V}_{(i)}\) 和 GT 点集 \(V_i\) 之间的位置相关性。在表 6中,我们比较了两种成本设计,即 Chamfer 距离成本和 Point2point 成本。Point2point 成本类似于点级匹配成本。具体来说,我们找到最佳的点对点分配,并将所有点对的曼哈顿距离相加作为两个点集的位置匹配成本。实验表明,Point2point 成本比 Chamfer 距离成本更好。
Edge Direction Loss.(边缘方向损失) 关于边缘方向损失的权重,在表 7 中列出。\(\beta = 0\) 意味着我们不使用边缘方向损失。\(\beta = 5e^{-3}\) 对应于适当的监督,并被作为默认设置。
3.3 QUALITATIVE VISUALIZATION 定性可视化
我们在图 1 中展示了复杂和各种驾驶场景的预测矢量高清地图结果。MapTR 保持了稳定和令人印象深刻的结果。更多的定性结果在附录中提供。
4 RELATED WORK
高清地图构建。 高清地图对于自动驾驶汽车至关重要。最近,随着2D-to-BEV方法的发展(Ma等人,2022),高清地图的构建被表述为一个基于车载摄像机拍摄的环视图像数据的分割问题。Chen等人(2022b);Zhou & Kr¨ahenb¨uhl(2022);Hu等人(2021);Li等人(2022c);Philion & Fidler(2020);Liu等人(2022b)通过进行BEV语义分割生成光栅化地图。为了建立矢量高清地图,HDMapNet(Li等人,2022a)将像素化语义分割的结果与启发式的、耗时的后处理相结合,生成实例。为了消除后处理,VectorMapNet(Liu等人,2022a)采用了一个两阶段的管道。第一阶段利用集合预测方法检测粗略的关键点,第二阶段利用序列生成方法依次预测地图元素的下一个点。与VectorMapNet不同的是,MapTR引入了新颖、统一的地图元素建模,解决了定义模糊的问题,便于学习。而且,MapTR建立了一个结构化的、并行的单阶段框架,效率更高。
车道检测。 车道检测可以被看作是高清地图构建的一个子任务,其重点是检测道路场景中的车道元素。由于大多数车道检测的数据集只提供了单视图注释,并关注开放形状的元素,因此相关方法仅限于单视图。LaneATT(Tabelini等人,2021年)利用基于锚的深度车道检测模型,在准确性和效率之间实现了良好的权衡。LSTR(Liu等人,2021a)采用Transformerarchitecture,直接输出车道形状模型的参数。GANet(Wang等人,2022)将车道检测制定为一个关键点估计和关联问题,并采取了自下而上的设计。Feng等人(2022)提出了基于参数化贝塞尔曲线的车道检测方法。Garnett等人(2019)提出了3D-LaneNet,该方法在BEV中执行3D车道检测,而不是在2D图像坐标中检测车道。STSU(Can等人,2021)将车道表示为BEV坐标中的有向图,并采用基于曲线的贝塞尔方法来预测单眼摄像机图像中的车道。Persformer(Chen等人,2022a)提供了更好的BEV特征表示,并优化了anchor设计以同时统一二维和三维车道检测。MapTR可以通过一个统一的建模和学习框架来感知360水平视角的各种地图元素,而不是只在有限的单视角中检测车道。
基于轮廓的实例分割。 与MapTR相关的另一项工作是基于轮廓的二维实例分割(Zhu等人,2022;Xie等人,2020;Xu等人,2019;Liu等人,2021b)。这些方法将二维实例分割重新定义为物体轮廓预测任务,并估计轮廓顶点的图像坐标。CurveGCN(Ling等人,2019)利用图形卷积网络来预测多边形边界。Deepsnake(Peng等人,2020)提出了两阶段的轮廓进化过程,并设计了循环卷积来利用轮廓上的特征。BoundaryFormer(Lazarow等人,2022)引入了基于多边形的可分化栅格化来直接预测物体的边界。与这些基于单视角图像的二维实例分割工作不同,MapTR是为驾驶场景下的高清地图构建而定制的。基于3D场景的先验知识,MapTR对各种地图元素进行了统一的抽象和建模,即一个具有一组等价排列的点集。并为高效的地图元素学习引入了一个结构化框架。
5 CONCLUSION
MapTR 是一个结构化的端到端框架,用于高效的在线矢量高清地图构建,基于所提出的基于排列组合的建模。丰富的可视化结果证明,MapTR 在各种驾驶场景下都能很好地工作,具有很大的实用价值。我们希望 MapTR 能够成为自动驾驶系统的基本模块,并推动下游任务(如运动预测和规划)的发展。