自动驾驶三维车道线检测系列—Gen-LaneNet: A Generalized and Scalable Approach for 3D Lane Detection

1. 概述

我们介绍了一种名为GenLaneNet的通用且可扩展的方法,用于从单个图像中检测3D车道。该方法受到最新技术3D-LaneNet的启发,是一个统一的框架,可以在单个网络中解决图像编码、特征空间变换和3D车道预测。然而,我们为Gen-LaneNet提出了两个独特的设计。首先,我们引入了一种新的几何引导车道锚点表示法,在新的坐标系中应用特定的几何变换,直接从网络输出计算真实的3D车道点。我们证明,将车道点与新坐标系下的底层俯视特征对齐,对于处理不熟悉场景的通用方法至关重要。其次,我们提出了一个可扩展的两阶段框架,将图像分割子网络和几何编码子网络的学习解耦。与3D-LaneNet相比,所提出的Gen-LaneNet大幅减少了在现实世界应用中实现稳健解决方案所需的3D车道标签数量。此外,我们发布了一个新的合成数据集及其构建策略,以促进3D车道检测方法的发展和评估。在实验中,我们进行了广泛的消融研究,证实了所提出的Gen-LaneNet在平均精度(AP)和F-measure方面显著优于3D-LaneNet。

2. 背景介绍

在过去的几年中,自动驾驶引起了学术界和工业界的广泛关注。为了安全驾驶,一个基本问题就是在实时中准确感知车道结构。对当前车道和附近车道的稳健检测不仅对横向车辆控制和精确定位至关重要\cite{ref14},而且也是构建和验证高清地图的强大工具\cite{ref8}。
在这里插入图片描述
大多数基于图像的车道检测方法将车道检测视为一个2D任务\cite{ref1,ref4,ref21}。一个典型的2D车道检测流程包括三个组件:一个语义分割组件,它为图像中的每个像素分配一个类别标签,以指示它是否属于车道;一个空间变换组件,将图像分割输出投影到平坦的地面平面;以及第三个组件提取车道,通常涉及带有强假设的车道模型拟合,例如,拟合二次曲线。通过假设世界是平坦的,在平坦地面平面上表示的2D车道可能是自我车辆坐标系统中3D车道的可接受近似。然而,这种假设可能会导致意外问题,正如在\cite{ref6,ref2}中所研究的。例如,当自动驾驶车辆遇到山路时,由于2D平面几何提供了3D道路的错误感知,可能会发生意外的驾驶行为。

为了克服与平面道路假设相关的缺陷,最新的方法趋势\cite{ref5,ref19,ref2,ref6}已经开始专注于感知复杂的3D车道结构。具体来说,最新的技术3D-LaneNet\cite{ref6}引入了一个端到端框架,统一了图像编码、图像视图和俯视图之间的空间变换以及在单个网络中的3D曲线提取。3D-LaneNet显示出从单目相机检测3D车道的有希望的结果。然而,不合适的空间中的车道锚点表示使3D-LaneNet不能泛化到未观察到的场景,而端到端学习框架使其受到视觉变化的高度影响。

在本文中,我们介绍了Gen-LaneNet,一种从单个图像中检测3D车道的通用且可扩展的方法。我们引入了一种新的几何引导车道锚点表示法,在新的坐标系中应用特定的几何变换,直接从网络输出计算真实的3D车道点。原则上我们的锚点设计是对3D-LaneNet锚点的直观扩展,然而在适当的坐标系中表示车道锚点对泛化至关重要。我们展示了将锚点坐标与新坐标系下的底层俯视特征对齐本质上是将整个场景的全局编码分解到局部补丁级别。因此,它使方法在处理不熟悉的场景时更加稳健。此外,我们提出了一个可扩展的两阶段框架,允许图像分割子网络和几何编码子网络的独立学习,这大大减少了学习所需的3D标签数量。得益于更经济的2D数据,当昂贵的3D标签在某些视觉变化上相当有限时,两阶段框架优于端到端学习框架。此外,我们展示了一个高度逼真的合成数据集,具有丰富的视觉变化,这将促进3D车道检测的发展和评估。最后在实验中,我们进行了广泛的消融研究,证实了所提出的Gen-LaneNet在平均精度(AP)和F-measure方面显著优于最新技术\cite{ref6},某些测试集中高达13%。
在这里插入图片描述

3. Gen-LaneNet

受3D-LaneNet\cite{ref6}的成功及其在第2节中讨论的缺陷的启发,我们提出了Gen-LaneNet,一个用于3D车道检测的通用且可扩展的框架。与3D-LaneNet相比,Gen-LaneNet仍然是一个统一的框架,它在单个网络中解决图像编码、特征的空间变换和3D曲线提取。但它在两个方面有重大差异:车道锚点设计的几何扩展和可扩展的两阶段网络,该网络解耦了图像编码和3D几何推理的学习。

3.1 3D车道检测中的几何学

我们首先回顾一下几何学,以建立我们方法的理论基础。如图3(a)所示,在常见的车辆相机设置中,3D车道在由x、y、z轴和原点O定义的自我车辆坐标系中表示。具体来说,O定义了相机中心在道路上的垂直投影。按照一个简单的设置,只考虑相机高度 h h h和俯仰角 θ \theta θ来表示相机姿态,这导致由xc、yc、zc轴和原点C定义的相机坐标系。可以通过首先通过投影变换将3D场景投影到图像平面,然后通过平面单应性将捕获的图像投影到平坦的道路平面,从而生成虚拟的俯视图。由于涉及相机参数,虚拟俯视图中的点原则上与自我车辆系统中相应的3D点具有不同的x、y值。在本文中,我们正式将虚拟俯视图视为由轴 x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ、z和原点O定义的独特坐标系。接下来推导出虚拟俯视图坐标系和自我车辆坐标系之间的几何变换。
h − z h = x x ˉ = y y ˉ . \frac{h-z}{h} = \frac{x}{\bar{x}} = \frac{y}{\bar{y}}. hhz=xˉx=yˉy.

特别是,如图3(b)所示,无论z是正还是负,这种关系都成立。因此,我们推导出从虚拟俯视图坐标系到3D自我车辆坐标系的几何变换如下:
x = x ˉ ⋅ ( 1 − z h ) , x = \bar{x} \cdot (1 - \frac{z}{h}), x=xˉ(1hz),
y = y ˉ ⋅ ( 1 − z h ) y = \bar{y} \cdot (1 - \frac{z}{h}) y=yˉ(1hz).

值得一提的是,得到的变换描述了一个不假设相机方向零偏航角和翻滚角的一般关系。
在这里插入图片描述

3.2 几何引导的锚点表示

遵循所提出的几何学,我们分两步解决3D车道检测问题:首先应用一个网络对图像进行编码,将特征变换到虚拟俯视图,并预测以虚拟俯视图表示的车道点;然后采用所提出的几何变换计算自我车辆坐标系中的3D车道点,如图5所示。原则上,方程2保证了这种方法的可行性,因为变换被证明与相机方向无关。这是一个重要的事实,以确保方法不受不准确相机姿态估计的影响。

锚点表示是网络实现的核心,它统一了结构化场景中的边界检测和轮廓分组,因为它有效地将搜索空间限制在可管理的水平。与3D-LaneNet\cite{ref6}类似,我们开发了一种锚点表示,使网络可以直接以折线形式预测3D车道。正式地,如图4所示,车道锚点被定义为在x位置 { X i A } i = 1 N \{X_{iA}\}_{i=1}^{N} {XiA}i=1N上的N条等间距垂直线。给定一组预定义的固定y位置 { y j } j = 1 K \{y_{j}\}_{j=1}^{K} {yj}j=1K,每个锚点 X i A X_{iA} XiA定义了一个3D车道线,其属性为 3 × K 3 \times K 3×K个属性 { ( x ˉ i j , z i j , v i j ) } j = 1 K \{(\bar{x}_{ij}, z_{ij}, v_{ij})\}_{j=1}^{K} {(xˉij,zij,vij)}j=1K,或者等价地以三个向量表示为 ( x i , z i , v i ) (x_{i}, z_{i}, v_{i}) (xi,zi,vi),其中值 x ˉ i j \bar{x}_{ij} xˉij是相对于锚点位置的水平偏移,属性 v i j v_{ij} vij表示每个车道点的可见性。用 c c c表示车道中心线类型,用 l l l表示车道线类型,每个锚点可以写成 X i A = { ( x i t , z i t , v i t , p i t ) } t ∈ { c , l } X_{iA} = \{(x_{it}, z_{it}, v_{it}, p_{it})\}_{t \in \{c,l\}} XiA={(xit,zit,vit,pit)}t{c,l},其中 p t t p_{tt} ptt表示车道的存在概率。基于这种锚点表示,我们的网络以虚拟俯视图中的3D车道线输出。然后应用导出的变换来计算它们相应的3D车道点。考虑到每个车道点预测的可见性概率,只有那些可见的车道点才会保留在最终输出中。

我们的锚点表示与3D-LaneNet相比有两个主要变化。首先,车道点位置在不同的坐标系中表示,即虚拟俯视图。这个变化保证了目标车道位置与投影图像特征对齐,如图2的底部一行所示。与3D-LaneNet中的整个场景的全局编码相比,在局部补丁级别建立相关性对于新颖或未观察到的场景更为稳健。即使训练中从未观察到新场景的整体结构,这些局部补丁可能已经观察到。其次,表示中引入了额外的属性以指示每个锚点的可见性。因此,我们的方法在处理部分可见的车道时更为稳定,如图2所示,车道在中途开始或结束。
在这里插入图片描述

3.3 具有解耦图像编码和几何推理的两阶段框架

与采用端到端学习的网络不同,我们提出了一个两阶段框架,该框架通过引入以2D车道分割形式的中间表示,解耦了图像编码和3D几何推理的学习。如Fig. 5所示,第一个子网络专注于图像域中的车道分割;第二个从第一个子网络的分割输出预测3D车道结构。两阶段框架的动机是3D几何编码与图像特征相当独立的重要事实。从图3 (b)观察到,地面高度 z z z主要与从位置 ( x ˉ , y ˉ ) (\bar{x}, \bar{y}) (xˉ,yˉ)到位置 ( x , y ) (x, y) (x,y)的位移向量相关。因此,估计地面高度在概念上等同于估计一个向量场,使得所有对应于俯视图中车道的点都移动到总体平行的位置。可以预期,由2D车道分割携带的几何信息足以用于3D车道预测。

有许多现成的候选方法\cite{ref24,ref23,ref21,ref9}可以在图像中执行2D车道分割,任何一种都可以轻松集成到我们框架的第一阶段。尽管当代方法实现了更高的性能,我们选择ERFNet\cite{ref24},因为它的简单性,从而强调了两阶段框架的原始力量。对于3D车道预测,我们引入了3DGeoNet,如图5所示,从图像分割中估计3D车道。分割图首先被投影到俯视图,并通过俯视图分割编码器编码为俯视图特征图。然后,车道预测头根据所提出的锚点表示恢复3D车道属性。
在这里插入图片描述
解耦图像编码和几何推理的学习使两阶段框架更具成本效益和可扩展性。如第2节所讨论的,像\cite{ref6}这样的端到端学习框架非常依赖于图像外观。因此,它依赖于大量的非常昂贵的真实世界3D数据进行学习。相反,两阶段流水线大大减少了成本,因为它不再需要在不同的天气、一天中的时间和遮挡情况下收集同一区域的冗余真实3D车道标签。此外,两阶段框架可以利用更充足的2D真实数据,例如\cite{ref4,ref1,ref21},来训练更可靠的2D车道分割子网络。有了极其稳健的分割作为输入,3D车道预测反过来会表现得更好。在最佳情况下,两阶段框架可以从2D真实数据训练图像分割子网络,并仅使用合成的3D数据训练3D几何子网络。我们将最优解决方案作为未来的工作推迟,因为需要域转移技术来解决完美合成分割真值和第一阶段子网络输出的分割之间的域差距。

3.4 训练

给定图像及其相应的真实3D车道,训练过程如下。每个真实车道曲线被投影到虚拟俯视图中,并与Yref处最近的锚点关联。基于预定义y位置 { y i } i = 1 K \{y_{i}\}_{i=1}^{K} {yi}i=1K的真实值计算真实锚点属性。给定预测锚点 X i A X_{iA} XiA和相应的真实 X ^ i A = { ( x ^ i t , z ^ i t , v ^ i t , p ^ i t ) } t ∈ { c , l } \hat{X}_{iA} = \{(\hat{x}_{it},\hat{z}_{it}, \hat{v}_{it}, \hat{p}_{it})\}_{t \in \{c,l\}} X^iA={(x^it,z^it,v^it,p^it)}t{c,l}的对,损失函数可以写成:
在这里插入图片描述
与3D-LaneNet\cite{ref6}中引入的损失函数相比,有三处变化。首先, x i t x_{it} xit x ^ i t \hat{x}_{it} x^it均在虚拟俯视图坐标系中表示,而不是自我车辆坐标系。其次,增加了额外的成本项,以测量预测可见性向量与真实可见性向量之间的差异。第三,测量 x ˉ \bar{x} xˉ z z z距离的成本项乘以其相应的可见性概率 v v v,使得那些不可见的点不会计入损失。
在这里插入图片描述

4. 合成数据集及构建策略

由于缺乏3D车道检测基准,我们构建了一个合成数据集来发展和验证3D车道检测方法。我们的数据集\footnote{2}模拟了丰富的视觉元素,并特别关注评估方法对罕见观察场景的泛化能力。我们使用Unity游戏引擎构建了具有高度多样性的3D世界,并渲染了具有多样化场景结构和视觉外观的图像。

合成数据集从具有多样化地形信息的三个世界地图中渲染而来。所有地图都基于美国硅谷的真实地区。车道线和中心线涉及充分地面高度变化和转弯,如图6所示。图像在不同的地点和一天中的不同时间(早上、中午、晚上)稀疏渲染,在两个车道标记退化级别下,随机相机高度在1.4到1.8米之间,随机俯仰角在0到10度之间。我们在数据渲染期间使用固定的内在参数,并在模拟环境中放置了相当数量的代理车辆行驶,以便渲染的图像包括现实的车道遮挡。总之,总共提供了来自虚拟高速公路地图的6000个样本,城市地图的1500个样本,以及居住区地图的3000个样本,以及相应的深度图、语义分割图和3D车道线信息。3D车道标签在距离相机200米处被截断,并且在渲染图像的边界处。

到目前为止,对于开发可靠的3D车道探测器,遮挡的基本信息仍然缺失。一般来说,车道探测器预计会恢复被前景遮挡的车道部分,但会丢弃被背景遮挡的部分,这反过来需要为每个车道点准确标记遮挡类型。在我们的数据集中,我们使用真实的深度图和语义分割图来推断车道点的遮挡类型。首先,当车道点的y位置与深度图中对应像素的值发生偏差时,该车道点被认为是被遮挡的。其次,其遮挡类型根据语义分割图进一步确定。最终的数据集保留了被前景遮挡的车道部分,但丢弃了被背景遮挡的部分,如图6中距离所示的黑色段。

5. 实验评测

在本节中,我们首先描述了实验设置,包括数据集划分、基线、算法实现细节和评估指标。然后,我们进行实验来展示我们在消融研究中的贡献。最后,我们设计并进行实验来证实我们方法的优势,与之前最先进的技术\cite{ref6}进行比较。

5.1 实验设置

数据集设置:为了从不同角度评估算法,我们设计了三种不同的规则来划分合成数据集:
(1) 全部数据集:使用整个数据集进行训练和测试,以使用大量、无偏的数据对算法进行基准测试。
(2) 罕见观察场景:此数据集划分包含与平衡场景相同的训练数据,但仅使用测试数据的一个子集,这些测试数据来自复杂的城市地图。此数据集划分旨在检验方法对训练中很少观察到的测试数据的泛化能力。因为测试图像在不同地点稀疏渲染,涉及剧烈的高程变化和急转弯,测试数据中的场景在训练数据中很少观察到。
(3) 具有视觉变化的场景:此数据集划分评估了在光照变化下的方法,假设与昂贵的3D数据相比,更经济实惠的2D数据可用于覆盖同一区域的光照变化。具体来说,与平衡场景相同的训练集用于训练我们Gen-LaneNet第一阶段的图像分割子网络。然而,在训练我们的方法(3D-GeoNet)和3D-LaneNet\cite{ref6}的3D几何子网络时,排除了某个特定时间段的3D示例,即黎明前。在测试中,相反,只使用与排除的时间段相对应的示例。

基线和参数:Gen-LaneNet与另外两种方法进行比较:将之前最先进的3D-LaneNet\cite{ref6}视为主要基线;为了诚实地研究我们两阶段框架的上限,我们将3DGeoNet子网络视为一个独立的方法,它使用真实的2D车道分割作为输入。为了进行公平比较,所有方法都将原始图像调整为360×480的尺寸,并使用相同的空间分辨率208×108,用于表示范围为[10, 10]×[1, 101]米的平坦地面区域。对于锚点表示,我们使用y位置集合{3, 5, 10, 15, 20, 30, 40, 50, 65, 80, 100},由于在俯视图中远处的视觉信息变得更稀疏,间隔逐渐增大。在标签准备中,我们设置Yref = 5,将每个车道标签与其最近的锚点关联。在训练中,所有网络都使用正态分布进行随机初始化,并使用Adam优化从头开始训练,初始学习率为 5 × 1 0 − 4 5 \times 10^{-4} 5×104。我们设置批量大小为8,并在30个周期内完成训练。对于ERFNet的训练,我们遵循\cite{ref24}中描述的相同程序,但修改了输入图像尺寸和输出分割图尺寸。为了排除由不准确的相机参数引起的错误,我们在合成数据集提供的完美相机内参和外参条件下进行了所有实验。

评估指标:我们将3D车道检测的评估制定为预测车道和真实车道之间的二分图匹配问题。通过最小成本流寻求全局最佳匹配。我们的评估方法目前是最严格的,与\cite{ref1}中的一对多匹配或\cite{ref6}中的贪婪搜索二分图匹配相比。

为了正确处理部分匹配,我们定义了一个新的车道间欧几里得距离的成对成本。具体来说,车道在n个预定的y位置表示为 X j = { x j i , z j i , v j i } i = 1 n X_j = \{x_{ji}, z_{ji}, v_{ji}\}_{i=1}^{n} Xj={xji,zji,vji}i=1n,其中 v j i v_{ji} vji表示给定车道是否覆盖了y位置。这里使用了比锚点更密集的y位置,从0到100米以2米间隔平均放置。正式地,车道 X j X_j Xj X k X_k Xk之间的车道到车道成本被计算为所有y位置的点间距离平方和的平方根,表示为 cost j k = ∑ i d j k i \text{cost}_{jk} = \sqrt{\sum_{i} d_{jk}^i} costjk=idjki ,其中
在这里插入图片描述
具体来说,当y位置被两条车道都覆盖时,计算点间欧几里得距离。当y位置只被一条车道覆盖时,点间距离被赋予一个允许的最大距离 d max = 1.5 m d_{\text{max}} = 1.5m dmax=1.5m。当y位置没有被任何车道覆盖时,点间距离设置为零。

按照这样的度量,覆盖不同y位置范围的一对车道仍然可以匹配,但是要付出与编辑点数成比例的额外成本。这种定义的成本受到字符串匹配中编辑距离概念的启发。在枚举了两组之间的所有成对成本之后,我们采用Google OR-tools中包含的求解器来解决最小成本流问题。每组中的每个车道,当其覆盖的75%的y位置的点间距离小于允许的最大距离(1.5米)时,我们认为它匹配了。

最后,报告匹配的真实车道的百分比作为召回率,匹配的预测车道的百分比作为精确度。我们报告平均精度(AP)作为综合评估,以及最大F分数作为应用中最佳操作点的评估。

5.2 锚点效应

我们首先展示了所提出的几何引导锚点表示与\cite{ref6}相比的优越性。对于每种候选方法,我们保持架构完全相同,除了集成的锚点表示。如表1所示,所有三种方法,无论是端到端的3D-LaneNet\cite{ref6},“理论上存在的”3D-GeoNet,还是我们的两阶段Gen-LaneNet,都从新锚点设计中显著受益。在所有数据集划分中,AP和F分数都实现了3%到10%的改进。
在这里插入图片描述

5.3 两阶段框架的上限

实验旨在证实当更稳健的图像分割集成时,两阶段方法可能获得更高的准确性,并同时定位Gen-LaneNet在提供完美的图像分割子网络时的上限。如表2所示,3D-GeoNet在所有三种实验设置中一致优于Gen-LaneNet和3D-LaneNet。我们注意到,在平衡场景中,对Gen-LaneNet的改进非常明显,大约提高了3%,而在罕见观察场景和视觉变化场景中,改进在5%到7%之间。这一观察相当令人鼓舞,因为来自困难案例的3D几何(例如,新场景或具有戏剧性视觉变化的图像)仍然可以从抽象的真实分割或图像分割子网络的输出中很好地推理出来。此外,表2还展示了我们方法的有希望的上限,因为3D-GeoNet在F分数和AP方面以很大优势超过了3D-LaneNet\cite{ref6},从5%到18%不等。
在这里插入图片描述

5.4 整个系统评估

我们以两阶段Gen-LaneNet与之前最先进的3D-LaneNet\cite{ref6}的整个系统比较结束我们的实验。在所有三种数据集划分上进行了逐项比较,如表3所示。在平衡场景中,3D-LaneNet表现良好,但我们的Gen-LaneNet仍然实现了0.8% AP和1.7% F分数的改进。考虑到这个数据集划分在训练和测试数据之间很好地平衡,并涵盖了各种场景,这意味着提出的Gen-LaneNet在各种场景上有更好的泛化性;在罕见观察场景中,我们的方法是AP和F分数分别提高了6%和4.4%,证明了当我们遇到不常见的测试场景时,我们方法的优越鲁棒性;最后,在视觉变化场景中,我们的方法在F分数和AP方面显著超过3D-LaneNet约13%,这表明我们的两阶段算法成功地从图像编码和3D几何推理的解耦学习中受益。
在这里插入图片描述
对于任何特定场景,我们可以在图像中注释更经济实惠的2D车道,以学习一般的分割子网络,同时标记有限数量的昂贵3D车道来学习3D车道几何。这使得我们的方法在实际应用中成为一个更具可扩展性的解决方案。定性比较在补充材料中呈现。

除了F分数和AP之外,还报告了匹配车道上的误差(欧几里得距离)分别为近程(0-40m)和远程(40-100m)。这是一项补充评估,侧重于检测部分的质量。如观察到的,Gen-LaneNet保持与3D-LaneNet相同或更低的误差,即使涉及更多的匹配车道。

运行时间分析:Gen-LaneNet在单个NVIDIA RTX 2080 GPU上的平均运行速度为60 FPS,而3D-LaneNet为53 FPS。

6. 结论

我们介绍了一种通用且可扩展的3D车道检测方法,Gen-LaneNet。引入了一种几何引导的锚点表示以及一个解耦图像分割和3D车道预测学习的两阶段框架。此外,我们提出了一种新的策略来构建3D车道检测的合成数据集。我们通过实验证实了我们的方法在各种角度上显著超过了3D-LaneNet,无论是在AP还是F分数方面。
在这里插入图片描述

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学步_技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值