Lane Graph as Path:Continuity-preserving Path-wise Modeling for Online Lane Graph Construction

参考代码:LaneGAP

1. 概述

介绍:在车道拓扑结构建模描述中经常使用pixel-wise(基于分割)或piece-wise(小段车道检测并连接)方式,但是这样的方式并不是将一个lane完整建模和优化的,因而当某些细节单元上出现错误的时候就会对整条lane的感知产生影响。基于如此观察文章将lane描述为一个带方向的path,并完整预测path的几何结构,从而得到较为完成的path描述,一个场景的道路graph信息便是通过这些path组合起来的。

对于上述提到的3中建模方式其建模示意图见下图所示:
在这里插入图片描述

  • 1)pixel-wise:使用像素预测的方式构建lane的结构信息,这类方法以HDMapNet为代表
  • 2)piece-wise:使用小段预测和方向连接的形式构建lane结构信息,这类方法以STSU为代表
  • 3)path-wise:使用一条完整path作为基础预测单位,从而构建完整道路graph,这便是这篇文章提出的方案

将pixel-wise、piece-wise和当前文章方法的效果进行对比,见下图所示:
在这里插入图片描述
在上图中可以看到pixel-wise和piece-wise的方法在一些边缘部分会出现预测错误的问题,但是文章的方法却能很好描述这些区域中的元素,其整体预测能力更为鲁棒。

2. 方法设计

2.1 整体pipeline

文章的整体结构见下图:
在这里插入图片描述

  • 1)ResNet+GKT完成camera特征抽取和BEV特征构建
  • 2)将path的检测问题使用类似DETR形式建模方法,得到path的预测表达
  • 3)使用Graph2Path和Path2Graph完成训练数据生成和感知结果输出

2.2 path标注生成

这部分完成训练标签的建立,也就是将一个lane通过起始节点和终止节点约束得到一个path的点集(这里的点集是有顺序的),一个graph便可以通过多个path的形式进行描述 V = { V i p a t h } i = 1 M \mathcal{V}=\{\mathcal{V}_i^{path}\}_{i=1}^M V={ Vipath}i=1M。完成的训练GT生成逻辑伪代码见下图:
在这里插入图片描述

2.3 path学习

对于这些点集的描述方式可以为polygon或贝塞尔曲线的形式。

polygon描述:
polygon描述是将path使用一个有序的点集进行描述: V p o l y p a t h = { p j ∈ R 2 ∣ j = 0 , 1 , … , N p − 1 } \mathcal{V}_{poly}^{path}=\{p_j\in R^2|j=0,1,\dots,N_{p}-1\} Vpolypath={ pjR2j=0,1,,Np1}

贝塞尔曲线描述:
该形式是将点集 V B e z i e r p a t h = { p j ∈ R 2 ∣ j = 0 , 1 , … , N b − 1 } \mathcal{V}_{Bezier}^{path}=\{p_j\in R^2|j=0,1,\dots,N_{b}-1\} VBezierpath={ pjR2j=0,1,,Nb1}采用贝塞尔控制点的形式描述,这里参考Polyline的形式直接回归贝塞尔曲线的控制点。

对于预测的path会经过采样得到 N v N_v Nv个点,目的是为了与GT进行匹配,对于预测和GT匹配的过程使用的是匈牙利算法,这里用 σ ^ \hat{\sigma} σ^进行表示。整体loss划分为分类和回归两个部分:
L b i p a r t i t e ( V ^ p a t h , V p a t h ) = ∑ i = 1 N [ L F o c a l ( p ^ σ ( i ) ^ , c i ) + 1 c i ≠ ∅ L p a t h ( V ^ σ ( i ) ^ p a t h , V i p a t h ) ] L_{bipartite}(\hat{\mathcal{V}}_{path},\mathcal{V}_{path})=\sum_{i=1}^N[L_{Focal}(\hat{p}_{\hat{\sigma(i)}},c_i)+\mathcal{1}_{c_i\neq\empty}L_{path}(\hat{\mathcal{V}}_{\hat{\sigma(i)}}^{path},\mathcal{V}_i^{path})] Lbipartite(V^path,Vpath)=i=1N[LFocal(p^σ(i)^,ci)+1ci=Lpath(V^σ(i)^path,Vipath)]
其中path的回归损失采用的L1损失的形式:
L p a t h ( V ^ σ ( i ) ^ p a t h , V i p a t h ) = ∑ j = 0 N v − 1 L 1 ( v ^ j , v j ) L_{path}(\hat{\mathcal{V}}_{\hat{\sigma(i)}}^{path},\mathcal{V}_i^{path})=\sum_{j=0}^{N_v-1}L_1(\hat{v}_j,v_j) Lpath(V^σ(i)^path,Vipath)=j=0Nv1L1(v^j,vj)

不同建模方式对性能的影响:
polygon建模点数与迭代epoch对性能的影响:
在这里插入图片描述

贝塞尔曲线方式对于控制点数不同对性能带来的影响:
在这里插入图片描述
从上面可以看到要使得网络直接学习高维度的贝塞尔曲线参数还是很难的,其性能不如polygon建模方式。

2.4 path解码

将path经过如下伪代码过程得到graph:
在这里插入图片描述

3. 实验结果

文章方法与pixel-wise、piece-wise方法性能比较:
在这里插入图片描述
不同模态数据和epoch对性能的额影响:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m_buddy/article/details/129764707