自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection

文章目录

  • [1. 摘要概述](#1. 摘要概述)
  • [2. 背景介绍](#2. 背景介绍)
  • [3. 方法](#3. 方法)
    • [3.1 俯视图投影](#3.1 俯视图投影)
    • [3.2 网络结构](#3.2 网络结构)
      • [3.2.1 投影变换层](#3.2.1 投影变换层)
      • [3.2.2 投影变换层](#3.2.2 投影变换层)
      • [3.2.3 道路投影预测分支](#3.2.3 道路投影预测分支)
    • [3.3 车道预测头](#3.3 车道预测头)
    • [3.4 训练和真实值关联](#3.4 训练和真实值关联)
  • [4. 实验](#4. 实验)
    • [4.1 合成 3D 车道数据集](#4.1 合成 3D 车道数据集)
    • [4.2 真实世界 3D 车道数据集](#4.2 真实世界 3D 车道数据集)
    • [4.3 评估结果](#4.3 评估结果)
    • [4.4 评估图像仅车道检测](#4.4 评估图像仅车道检测)
  • [5. 总结和讨论](#5. 总结和讨论)

1. 摘要概述

我们介绍了一种网络,可以从单张图像直接预测道路场景中车道的3D布局。这项工作首次尝试使用车载传感设备来解决这一任务,而不假设已知的恒定车道宽度或依赖预先映射的环境。我们的网络架构,3D-LaneNet,采用了两个新概念:网络内逆透视映射(IPM)和基于锚点的车道表示。网络内IPM投影在常规图像视图和俯视图中促进了双重表示信息流。基于每列锚点的输出表示使我们能够采用端到端的方法,取代了常见的聚类和离群值拒绝等启发式方法,将车道估计视为目标检测问题。此外,我们的方法能够明确处理车道合并和分离等复杂情况。结果展示在两个新的3D车道数据集上,一个是合成的,另一个是真实的。为了与现有方法进行比较,我们在仅使用图像的tuSimple车道检测基准上测试了我们的方法,取得了与当前最先进技术竞争的性能。

2. 背景介绍

3D车道检测,通过精确估计可行驶车道相对于主车的3D位置,是实现自动驾驶的关键技术。现有两种互补的技术解决方案:加载离线生成的预映射车道【33】和基于感知的实时车道检测【4】。离线解决方案在主车定位(地图坐标)精确的情况下几何精度高,但部署和维护复杂。最常见的基于感知的解决方案使用单目相机作为主要传感器来完成这一任务。现有基于相机的方法在图像域内检测车道线,然后假设平坦地面将其投影到3D世界【4】,这种假设在被打破时不仅在高度上产生误差,也会在车道曲率上产生误差。受到卷积神经网络(CNN)在单目深度估计中取得的成功【20】的启发,我们提出直接在3D中检测车道。具体而言,给定一张来自前置摄像头的图像,任务是输出一组在相机坐标系中的3D曲线,每条曲线描述一个车道分界线或车道中心线。

我们提出的解决方案是3D-LaneNet,一种用于3D车道检测的深度CNN。该网络端到端训练,在每个纵向道路切片中输出车道穿过切片的置信度及其在相机坐标系中的3D曲线。我们的方案如图1所示。我们的直接单次拍摄方法避免了现有方法中使用的聚类和离群值拒绝等后处理。网络的主干基于一种新颖的双路径架构,使用多个网络内的特征图投影到虚拟俯视图。这种双重表示赋予网络在道路场景中推断3D的增强能力,可能用于其他需要此能力的任务(例如3D车辆检测)。输出由一种新的基于列的锚点编码表示,使网络在水平上具有不变性,并实现端到端方法。每个输出与一个锚点关联,类似于单次拍摄的基于锚点的目标检测方法如SSD【21】和YOLO【29】。实际上,我们的方法将问题视为目标检测,每个车道实体是一个目标,其3D曲线模型的估计类似于目标的边界框。

我们在三个不同的数据集上验证了我们的方法。用于开发该方法的主要数据集是一个新的计算机图形数据集synthetic-3D-lanes1,提供每个车道元素的精确3D位置。尽管存在几个驾驶模拟器【8, 30】,它们并未专注于3D车道检测任务,并且在相关场景属性(例如车道曲率)的多样性上受到限制。我们在这一领域的主要成就是能够随机生成具有高度可变3D形状和车道拓扑的道路段。因此,我们将其用作评估和消融研究的主要数据集。为了验证我们的方法在真实世界图像上的表现,我们收集了另一个数据集3D-lanes,来自车辆安装的前置摄像头。3D车道注释通过使用激光雷达扫描仪在半手动注释方案中完成。最后,为了与仅在图像域中操作的最先进车道检测方法进行比较,我们将我们的方法适应于这一任务,并展示了端到端的仅图像车道检测。这一仅图像版本在tuSimple数据集【1】上进行了测试,取得了与最先进技术竞争的结果,而没有使用常见的后处理技术。

总结来说,我们的主要贡献是:

  • 引入了一种新问题:无几何假设的单帧3D车道检测,并提出了新的评估指标。
  • 一种新颖的双路径架构,部署了网络内特征图的IPM投影。
  • 一种新的基于锚点的车道输出表示,支持直接端到端训练的网络,用于3D和基于图像的车道检测。
  • 一种生成具有车道拓扑(即车道数量、合并、分离)和3D形状变化的随机合成示例的方法。

3. 方法

我们的方法以安装在车辆上的前置摄像头拍摄的单张图像作为输入,如图3所示。我们假设已知相机的内部参数 κ \kappa κ(例如焦距、投影中心)。我们还假设相机相对于局部地平面安装时的滚转角度为零度。由于车辆动态变化,我们不假设已知的相机高度和俯仰角。道路场景中的车道可以通过每条车道的中心线集合 C i i = 1 N C {C_i}{i=1}^{N_C} Cii=1NC 和车道分界线集合 D i i = 1 N D {D_i}{i=1}^{N_D} Dii=1ND 描述,如图5所示。每个这样的车道实体(中心线或分界线)都是用相机坐标系( C camera C_{\text{camera}} Ccamera)表示的3D曲线。任务是根据图像检测车道中心线和/或车道分界线的集合。

3.1 俯视图投影

我们简要回顾一下逆透视映射(IPM)。简而言之,IPM是一种单应性变换,将前视图图像扭曲为虚拟俯视图图像,如图1左上角图像所示。它相当于应用相机旋转单应性(视图向下旋转)然后进行各向异性缩放【11】。在我们的实现中,我们希望确保俯视图图像中的每个像素对应于道路上的预定义位置,而不依赖于相机的内部参数及其相对于道路的姿态。

见图3以了解以下定义的示意图。相机坐标 C camera = ( x ~ , y ~ , z ~ ) C_{\text{camera}} = (\tilde{x}, \tilde{y}, \tilde{z}) Ccamera=(x~,y~,z~) 设置为 y ~ \tilde{y} y~ 是相机的观看方向。设 P road P_{\text{road}} Proad 为局部道路表面的切平面。我们定义道路坐标 C road = ( x , y , z ) C_{\text{road}} = (x, y, z) Croad=(x,y,z) 如下: z z z 方向为 P road P_{\text{road}} Proad 的法线方向, y y y 为 y ~ \tilde{y} y~ 在 P road P_{\text{road}} Proad 上的投影,原点为相机中心在 P road P_{\text{road}} Proad 上的投影。设 T c 2 r T_{c2r} Tc2r 为 C camera C_{\text{camera}} Ccamera 和 C road C_{\text{road}} Croad 之间的6自由度(3D平移和3D旋转)变换。由于我们假设相机滚转为零度, T c 2 r T_{c2r} Tc2r 由相机俯仰角 θ \theta θ 和其高度 h cam h_{\text{cam}} hcam 确定。单应性变换 H r 2 i : P 2 ↦ P 2 H_{r2i} : P^2 \mapsto P^2 Hr2i:P2↦P2 ,将 P road P_{\text{road}} Proad 上的每个点映射到图像平面坐标,由 T c 2 r T_{c2r} Tc2r 和 κ \kappa κ 确定(见【11】,第8.1.1节)。最后,IPM 由 H r 2 i H_{r2i} Hr2i 使用一组固定参数 I P M P a r a m s IPM_{Params} IPMParams 确定俯视图区域边界并从米到像素进行各向异性缩放获得。俯视图图像使用由采样网格 S I P M S_{IPM} SIPM 定义的双线性插值生成。

3.2 网络结构

3D-LaneNet的概览如图4所示。信息在两个并行流或路径中处理:图像视图路径和俯视图路径。我们称之为双路径主干。图像视图路径处理并保留图像中的信息,而俯视图路径提供具有平移不变性的特征,用于预测3D车道检测输出。图像视图路径的架构基于VGG16【31】,而俯视图路径则结构相似。信息通过四个投影变换层流向俯视图路径。

3.2.1 投影变换层

我们架构中的一个主要构建块是图4中标记为蓝色的投影变换层。这个层是空间变换模块【14】的一种特定实现,具有轻微的变化。它通过对输入特征图进行可微分采样,将其空间对应于图像平面,输出特征图空间对应于场景的虚拟俯视图,同时保留通道数。可微分采样通过如第3.1节所述的网格生成,使用由道路投影预测分支预测的IPM实现。除了第一组投影特征图外,其余的投影特征图与来自俯视图路径的下游特征图连接。随后的神经元在连接的特征图上操作,结合了车道检测的以下两个理想特性。首先,在俯视图平面上的平移不变性。这很有价值,因为在俯视图中,车道在整个空间中具有相似的外观和几何形状。其次,保留双信息上下文------在图像和俯视图中。附加的图像视图上下文编码了俯视图中不存在的信息,如围栏、天际线和树木,这对于解读场景的3D结构至关重要。特别是,在远距离,图像视图上下文在视觉信息上更为丰富,并且相比于俯视图,表示了一个实际面积更大的区域。

3.2.2 投影变换层

我们架构中的一个主要构建块是图4中标记为蓝色的投影变换层。这个层是空间变换模块【14】的一种特定实现,具有轻微的变化。它通过对输入特征图进行可微分采样,将其空间对应于图像平面,输出特征图空间对应于场景的虚拟俯视图,同时保留通道数。可微分采样通过如第3.1节所述的网格生成,使用由道路投影预测分支预测的IPM实现。除了第一组投影特征图外,其余的投影特征图与来自俯视图路径的下游特征图连接。随后的神经元在连接的特征图上操作,结合了车道检测的以下两个理想特性。首先,在俯视图平面上的平移不变性。这很有价值,因为在俯视图中,车道在整个空间中具有相似的外观和几何形状。其次,保留双信息上下文------在图像和俯视图中。附加的图像视图上下文编码了俯视图中不存在的信息,如围栏、天际线和树木,这对于解读场景的3D结构至关重要。特别是,在远距离,图像视图上下文在视觉信息上更为丰富,并且相比于俯视图,表示了一个实际面积更大的区域。

3.2.3 道路投影预测分支

图像视图路径网络的第一个中间输出是对"道路投影平面" P road P_{\text{road}} Proad 的估计。本质上,这个分支预测了相机( C camera C_{\text{camera}} Ccamera)到道路( C road C_{\text{road}} Croad)的变换 T c 2 r T_{c2r} Tc2r。它是以监督方式训练的。 T c 2 r T_{c2r} Tc2r 确定了俯视图的单应性 H r 2 i H_{r2i} Hr2i 和采样网格 S IPM S_{\text{IPM}} SIPM,如第3.1节所解释的,因此需要用于俯视图路径的前向传播步骤。在推理时,它还用于将网络输出从 C road C_{\text{road}} Croad 转换回 C camera C_{\text{camera}} Ccamera。如第3.1节所述,在我们的情况下, T c 2 r T_{c2r} Tc2r 由相机高度 h cam h_{\text{cam}} hcam 和俯仰角 θ \theta θ 确定,因此这是这个分支的两个输出。

3.3 车道预测头

在我们端到端方法的核心是基于锚点的车道表示。受目标检测的启发,我们使用锚点定义车道候选,并使用精细的几何表示来描述每个锚点的精确3D车道形状。输出坐标系是由 h cam h_{\text{cam}} hcam 和 θ \theta θ 确定的 C road C_{\text{road}} Croad 的估计。我们的锚点对应于该坐标系中的纵向线,并且精细的车道几何形状对应于相应锚点的3D点。如图5所示,我们通过在 x x x 位置等间距的垂直(纵向)线 X i A , i = 1 , ... , N X_i^A, i=1, \ldots, N XiA,i=1,...,N 定义锚点。每个锚点 X i A X_i^A XiA 的3D车道由2个 K K K个输出神经元激活 n x i , z i = ( x ~ i j , z ~ i j ) j = 1 K n_{x_i, z_i} = (\tilde{x}{ij}, \tilde{z}{ij}){j=1}^K nxi,zi=(x~ij,z~ij)j=1K 表示,这些激活与预定义的 K K K 个 y y y 位置( y = y j j = 1 K y = {y_j}{j=1}^K y=yjj=1K)的固定向量一起定义了一组3D车道点。值 x ~ i j \tilde{x}{ij} x~ij 是相对于锚点位置 X i A X_i^A XiA 的水平偏移量。也就是说,输出 ( x ~ i j + X i A , y j , z ~ i j ) ∈ R 3 (\tilde{x}{ij} + X_i^A, y_j, \tilde{z}{ij}) \in \mathbb{R}^3 (x~ij+XiA,yj,z~ij)∈R3 在 C road C{\text{road}} Croad 坐标中表示一个点。此外,对于每个锚点 i i i,我们输出一个置信度 p i p_i pi 表示与该锚点相关的车道。我们使用预定义的纵向坐标 Y ref Y_{\text{ref}} Yref 进行关联。与车道相关的锚点 X i A X_i^A XiA 是最接近 y = Y ref y = Y_{\text{ref}} y=Yref 处车道 x x x 坐标的锚点。

每个锚点,网络输出多达三种类型( t t t)的车道描述符(置信度和几何形状),前两种( c 1 , c 2 c_1, c_2 c1,c2)代表车道中心线,第三种类型( d d d)代表车道分界线。为每个锚点分配两个可能的中心线使网络支持合并和分离,这常常导致两个车道的中心线在 Y ref Y_{\text{ref}} Yref 处重合并在不同的道路位置分开,如图5最右侧示例所示。相比于中心线,车道分界线的拓扑通常更复杂,我们的表示不能捕获所有情况(例如车道分界线不穿过 y = Y ref y = Y_{\text{ref}} y=Yref 的情况如图5)。3D-LaneNet的预测头设计用于生成所描述的输出。通过一系列在 y y y 维度无填充的卷积,特征图被减少,最终预测层的大小为 3 ⋅ ( 2 ⋅ K + 1 ) × 1 × N 3 \cdot (2 \cdot K + 1) \times 1 \times N 3⋅(2⋅K+1)×1×N,使得每列 i ∈ 1 ... N i \in {1 \ldots N} i∈1...N 对应于单个锚点 X i A X_i^A XiA。对于每个锚点 X i A X_i^A XiA 和类型 t ∈ c 1 , c 2 , d t \in {c_1, c_2, d} t∈c1,c2,d,网络输出表示为 y x i t , z i t , p i t y_{x_it, z_it, p_it} yxit,zit,pit。最终预测执行了一维非极大值抑制,这在目标检测中很常见:只保留在置信度上局部最大(与左右相邻锚点比较)的车道。每个剩余的车道由少量( K K K)个3D点表示,并使用样条插值转换为平滑曲线。

3.4 训练和真实值关联

给定一个图像示例及其对应的3D车道曲线 C i i = 1 N C {C_i}{i=1}^{N_C} Cii=1NC(中心线)和 D i i = 1 N D {D_i}{i=1}^{N_D} Dii=1ND(分界线),训练过程如下进行。首先,使用已知的俯仰角( θ ^ \hat{\theta} θ^)和相机高度( h ^ cam \hat{h}{\text{cam}} h^cam),为局部道路切平面定义真实值(GT)坐标系 C road C{\text{road}} Croad,如第3.1节所述。接下来,每条车道曲线投影到 C road C_{\text{road}} Croad 的 x y xy xy 平面,并与 Y ref Y_{\text{ref}} Yref 处最接近的锚点相关联。最左边的车道分界线和与锚点相关联的最左边中心线被分配给该锚点的输出类型 c 1 c1 c1 和 d d d。如果还有另一条中心线与同一个锚点相关联,则它被分配给输出类型 c 2 c2 c2。这种分配以与输出相同的格式定义了每个示例的GT:每个锚点 X i A X_i^A XiA 和类型 t t t 的关联GT表示为 y ^ x i t , z ^ i t , p ^ i t \hat{y}{x_it}, \hat{z}{it}, \hat{p}{it} y^xit,z^it,p^it,其中 p ^ i t \hat{p}{it} p^it 是锚点/类型分配指示符,以及 C road C_{\text{road}} Croad 中的坐标。

无论是在训练时还是在评估时,如果整个车道没有穿过有效俯视图图像边界内的 Y ref Y_{\text{ref}} Yref,则忽略整个车道;如果车道点被地形遮挡(即在山顶之后),则忽略这些车道点。网络的整体损失函数如公式1所示。它结合了三个等权重的损失项:车道检测(交叉熵损失)、车道几何和道路平面估计(L1损失)。

4. 实验

我们的实验工作如下呈现。首先,我们介绍生成新合成数据集 synthetic-3D-lanes 的方法,该数据集用于得出本研究的大部分结论。接下来,我们介绍用于验证真实世界图像的 3D-lanes 数据集。使用新提出的 3D 车道检测评估方法,我们展示了在这两个数据集上的结果,包括一项详细研究我们总体方法中每个概念贡献的消融研究。最后,我们将 3D-LaneNet 的仅图像版本与 tuSimple 基准测试 \cite{1} 上现有的最先进方法进行比较。

4.1 合成 3D 车道数据集

我们使用开源图形引擎 Blender \cite{2} 生成了 synthetic-3D-lanes 数据集。我们的方法允许我们对每个建模元素进行随机化,从场景的 3D 几何到对象类型,如图6所示。生成每个场景的过程包括以下步骤:

  • 地形 3D。 地形由高斯分布混合建模,高斯分布的数量和参数随机化。图6(a)显示了一个这样的地形示例。
  • 车道拓扑。 选择主道路上的车道数量。然后选择是否有次要道路及其车道数量。根据场景中相机的后续方向,次要道路的交叉点显示为合并或分离。
  • 车道俯视图几何。 主道路在俯视图中的几何由四次多项式建模,产生从轻微到极端的曲率。选择合并/分离的交叉点以及车道宽度。这会生成如图6(b)所示的俯视图车道级地图。
  • 车道 3D。 将俯视图车道地图放置在地形上,次要道路被抬高以模拟常见的道路地形。图6©显示了此阶段的结果。
  • 地形和道路外观。 从一组纹理中选择道路和地形的纹理。车道标记的类型和颜色也被随机化。
  • 物体。 从一组模型中选择的汽车和树木分别被放置在场景中,道路上和道路旁。
  • 场景渲染。 主道路上选择其车道和围绕车道中心的横向偏移来定位宿主车辆相机。相机高度随机设置在140cm到190cm之间,俯仰角在0到5度之间。最后,设置照明并从相机视角渲染场景。每条车道中心线和分界线的3D点被转换为相机坐标以生成真实值。

每个生成的示例包含一个图像(360×480像素)及其关联的真实值:3D 车道、相机高度和俯仰角。图2(左列和中列)展示了几个示例,显示了结果的多样性和复杂性。随机生成过程使用的确切参数列在附录I中。生成的数据集包含30万个训练示例和5000个测试示例。另有1000个验证集用于学习率调度和选择性能最佳的快照。

4.2 真实世界 3D 车道数据集

获取带有 3D 标注的真实值数据需要复杂的多传感器设置和可能昂贵的高清地图。为此,我们引入了一个新的数据集 3D-lanes,使用包括前视摄像头、Velodyne HDL32 激光雷达扫描仪和高精度 IMU 在内的多传感器设置创建,所有设备同步并准确对齐。数据在6次驾驶中收集,每次在不同的道路段,共计近2小时的驾驶时间。使用激光雷达和IMU,我们生成了聚合的激光雷达俯视图图像 \cite{33},然后与半手动标注工具一起用于生成真实值。总共标注了85000张图像,其中1000张(单独的一次驾驶)用作测试集,其余用作训练集。激光雷达信息还用于提供每条车道的完整3D曲线。这种方法的一个缺点是由于遮挡或远处分辨率有限,激光雷达无法充分看到的车道在真实值中缺失。因此,标注有些噪声,如图2(右列)所示。此外,与合成-3D-车道数据集相比,该数据集在几何和拓扑方面的变化较小。因此,我们使用具有完美真实值的合成数据来开发方法并进行消融研究,而真实世界的数据集用于验证方法向真实数据的可转移性和定性分析。

4.3 评估结果

评估指标。我们提出一种 3D 车道检测评估方法,将检测精度与几何估计精度分开。检测精度通过标准平均精度(AP)测量精确率-召回率曲线来计算。我们首先计算 GT 和检测到的车道之间的曲线到曲线距离,该距离是点对点欧几里德距离的加权和。我们在沿曲线的预定义 y 值集合上测量距离,每 80cm 在 0-80 米范围内。较远的点的权重减少。然后我们通过选择相似性递减的对来进行一对一(曲线)匹配。如果加权距离低于某个较宽松的阈值(1.5 米),则匹配被视为正确。通过迭代车道置信度阈值,我们生成精确率-召回率曲线。

对于匹配的检测,我们通过测量用于测量曲线到曲线距离的相同点上的误差(点对点欧几里德距离)的分布来评估几何估计精度。由于误差幅度的差异,我们进一步将整个数据集划分为近范围(0-30m)和远范围(30-80m)的车道点。然后我们计算每个范围的 1σ 误差(68% 误差百分位数)和 2σ 误差(95% 误差百分位数)。使用这种方法分别评估车道中心线和分界线检测。在评估中,像训练阶段一样忽略不相关的车道点。

实现细节。3D-LaneNet 和本节中提到的所有变体均使用相同的协议进行初始化和训练。图像视图路径初始化自在 ImageNet 上训练的 VGG16 \cite{7}。我们使用 Adam 优化器 \cite{17},初始学习率为 5 ⋅ 1 0 − 4 5 \cdot 10^{-4} 5⋅10−4。我们使用 \cite{32} 中描述的循环学习率方案的变体,最小学习率为 1 0 − 6 10^{-6} 10−6。俯视图表示的 y 范围为 80 米,x 范围为 20 米。IPM 尺度在 x 和 y 方向不同:在第一个俯视图特征图中,每个像素对应于横向(x)16cm 和纵向(y)38.4cm。最后一个俯视图特征图比原图小 8 倍,并且由于每列有一个锚点,锚点之间的距离为 16 × 8 = 128 16 \times 8 = 128 16×8=128cm。我们将 K ( = 6 ) K(= 6) K(=6) 个垂直参考点设置为 y = 5 , 20 , 40 , 60 , 80 , 100 y = {5, 20, 40, 60, 80, 100} y=5,20,40,60,80,100 和 Y r e f = 20 Y_{ref} = 20 Yref=20m。

在 synthetic-3D-lanes 数据集上的结果。图2展示了测试集上的典型网络结果,标有真实值。表1中的第一行显示了 3D-LaneNet 对中心线检测的定量结果。一个合理的担忧是,合成数据集的变异性太有限,学习到的网络记住了整个示例空间,而不是学习泛化。一个积极的迹象是测试 AP (0.952) 明显低于训练 AP (0.966),几何评估指标也是如此。在此介绍的消融测试中训练的所有网络均从 VGG16 初始化,并使用相同的训练参数和训练轮数。

我们首先通过与替代架构进行比较来检查双路径架构的作用。仅图像视图版本将图像视图路径直接连接到车道检测头,该头输出与 3D-LaneNet 完全相同的 Croad 表示。在这种情况下,锚点位置 X A X_A XA 由最后一个特征图中的列决定:对于每列,我们在预定义的图像 y 坐标处选择一个像素,并将其投影到俯视图以确定对应于该列的锚点。仅俯视图版本首先将图像本身投影到俯视图,然后继续与俯视图路径相同的计算。此外,我们测试了包括双路径的有限版本的两个版本。早期 IPM 包含单个双上下文模块(整个网络中的第一个)。晚期 IPM 类似地只包含四个双上下文模块中的最后一个。结果总结在表1中,显示了完整的双路径架构比所有其他变体具有更好的性能。特别是,仅图像视图版本的结果最差,强调了俯视图处理路径的重要性。请注意,包含修剪版双路径的晚期 IPM 提供了第二好的准确性,但计算成本较低,使其成为实时实现的良好候选者。

我们还尝试了道路投影平面的替代定义。一种方法在拟合道路平面时考虑整个场景,而不仅仅是局部道路法线。为了测试它,我们设计了一种生成真实值的算法,该算法采用最远的可见道路点并将其连接到局部道路位置以确定俯仰角。此方法在表1中称为 horizon,因为它类似于地平线估计方法。显然,尽管我们一致观察到场景地形有利于此定义,但总体上其表现略差。我们还尝试了假设相机的固定位置,其中使用平均俯仰角(2.5°)和相机高度(165cm)来定义 T c 2 r T_{c2r} Tc2r。最后,我们注意到,正如 \cite{25} 中提出的那样,在没有明确监督的情况下学习每个场景的最佳道路投影平面未能为我们的任务产生令人满意的结果。

表1的最后一行(平地)强调了与当前现有方法(即仅图像检测和使用平地假设的图像到世界转换)相比,完全 3D 车道估计的重要性。仅图像检测通过将 3D-LaneNet 结果投影到图像平面获得。对于图像到世界阶段,我们需要选择一个平面将图像结果投影到该平面。我们尝试了两种选项,均使用真实值计算:道路平面 P r o a d P_{road} Proad 和由地平线定义的平面,如前一实验所述。如预期的那样,基于地平线的方法实质上使用整个场景的最佳平面拟合,产生了更好的结果,但仍不如执行完全 3D 估计的 3D-LaneNet。

3D-LaneNet 获得的分界线检测性能为 0.971 AP(位置误差:近范围 12.9 12.9 12.9cm@1σ, 33 33 33cm@2σ;远范围 30 30 30cm@1σ, 106 106 106cm@2σ)。这些指标显示出比中心线检测稍好的性能。一个可能的解释是分界线在道路上明显标记,而中心线是间接推断的。由于输出是使用估计的 T c 2 r T_{c2r} Tc2r 从道路坐标转换到相机坐标,我们还测量了这种估计的质量及其对结果的影响。俯仰角( θ \theta θ)和相机高度( h c a m h_{cam} hcam)的绝对误差中位值分别为 0.09 0.09 0.09° 和 2.4 2.4 2.4cm。为了消除此误差的影响,我们通过在转换到 C c a m e r a C_{camera} Ccamera 之前获取原始网络输出在道路坐标 C r o a d C_{road} Croad 中评估性能,结果显示性能差异可以忽略不计。

在 3D-lanes 数据集上的结果。为了在真实世界数据上操作,我们在 3D-lanes 数据集的训练部分上训练了 3D-LaneNet。相应测试集的结果示例如图2(右列)所示。请注意,由于相机安装有向下的俯仰角,检测到的 3D 车道上升。评估指标如表2所示。如在合成数据中,使用平地假设在真实数据上的性能下降,远范围内误差大了4倍。

4.4 评估图像仅车道检测

本实验的目的是将我们的方法与当前最先进的图像仅车道检测方法进行比较。tuSimple 车道数据集 \cite{1} 包含 3626 张训练图像和 2782 张测试图像。不幸的是,目前无法访问测试图像的标签。因此,我们将原始训练集划分为我们自己的训练/验证集(90% 训练和 10% 验证)。虽然我们知道我们的评估(在验证集上获得的)与测试集上的评估可能存在偏差,但我们可以预期类似的性能并定性地得出相同的结论。由于该数据集不包含 3D 信息,我们训练了 3D-LaneNet 的变体,该变体在图像域中检测车道。网络输出被减少到道路投影平面上的 2D 点,通过消除高度( z i t z_{it} zit)组件。由于数据集中标记的实体是车道分界线,因此只保留了分界线输出类型( t = d t = d t=d)。在图像平面和道路投影平面之间手动选择了固定的单应性 H t u S i m p l e H_{tuSimple} HtuSimple,使得直线车道在俯视图中变得平行。网络直接预测的车道通过 H t u S i m p l e H_{tuSimple} HtuSimple 转换为图像视图中的车道。由于 H t u S i m p l e H_{tuSimple} HtuSimple 是固定的,未使用道路投影平面预测分支。除此之外,该网络与为 synthetic-3D-lanes 数据集配置的 3D-LaneNet 相同。tuSimple 主要评估指标(acc)\cite{1} 是每张图像中检测到的真实点的平均比率。使用我们端到端的方法,在我们的验证集上,我们达到了 0.951 的准确率,与 tuSimple 2017 竞赛获胜方法 \cite{27}(0.965)相当。考虑到我们的方法完全是为了 3D 估计任务设计的,这一结果令人鼓舞且有些惊讶。特别是,我们的几何损失(公式1)在实践中在俯视图坐标中计算,对远处的车道点赋予了更高的权重,而在 tuSimple acc 指标中,所有点均等贡献。

5. 总结和讨论

我们提出了一个新的问题,3D 多车道检测,以及一个基于端到端学习的解决方案,3D-LaneNet。该方法使用新引入的合成数据集开发,并在真实数据上进行了验证。该方法原则上适用于所有驾驶场景,除了复杂的城市交叉路口。最后,我们相信双路径架构可以促进其他重要的道路 3D 估计任务,如 3D 车辆检测。

参考文献:

[1] http://benchmark.tusimple.ai, lane challenge.

[2] https://www.blender.org/.

[3] Mohamed Aly. Real time detection of lane markers in urban

streets. In IVS, pages 7--12, 2008.

[4] Aharon Bar Hillel, Ronen Lerner, Dan Levi, and Guy Raz.

Recent progress in road and lane detection: a survey. Machine Vision and Applications, 25(3):727--745, Apr 2014.

[5] Amol Borkar, Monson Hayes, and Mark T. Smith. Robust

lane detection and tracking with ransac and kalman filter. In

ICIP, pages 3261--3264, Nov 2009.

[6] Pierre Coulombeau and Claude Laurgeau. Vehicle yaw,

pitch, roll and 3d lane shape recovery by vision. In Intelligent

Vehicle Symposium, 2002. IEEE, volume 2, pages 619--625

vol.2, 2002.

[7] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei.

ImageNet: A Large-Scale Hierarchical Image Database. In

CVPR, 2009.

[8] Alexey Dosovitskiy, German Ros, Felipe Codevilla, Antonio

Lopez, and Vladlen Koltun. CARLA: An open urban driving

simulator. In Proceedings of the 1st Annual Conference on

Robot Learning, pages 1--16, 2017.

[9] Mohsen Ghafoorian, Cedric Nugteren, Nora Baka, Olaf ´

Booij, and Michael Hofmann. El-gan: Embedding loss

driven generative adversarial networks for lane detection.

CoRR, abs/1806.05525, 2018.

[10] R. Gopalan, T. Hong, M. Shneier, and R. Chellappa. A learning approach towards detection and tracking of lane markings. IEEE Transactions on Intelligent Transportation Systems, 13(3):1088--1098, Sept 2012.

[11] Richard I. Hartley and Andrew Zisserman. Multiple View

Geometry in Computer Vision. Cambridge University Press,

ISBN: 0521540518, second edition, 2004.

[12] Bei He, Rui Ai, Yang Yan, and Xianpeng Lang. Accurate

and robust lane detection based on dual-view convolutional

neutral network. In IVS, pages 1041--1046, June 2016.

[13] Brody Huval, Tao Wang, Sameep Tandon, Jeff Kiske, Will

Song, Joel Pazhayampallil, Mykhaylo Andriluka, Pranav

Rajpurkar, Toki Migimatsu, Royce Cheng-Yue, Fernando

Mujica, Adam Coates, and Andrew Y. Ng. An empirical

evaluation of deep learning on highway driving. CoRR,

abs/1504.01716, 2015.

[14] Max Jaderberg, Karen Simonyan, Andrew Zisserman, and

Koray Kavukcuoglu. Spatial transformer networks. In NIPS,

pages 2017--2025, 2015.

[15] Jihun Kim and Minho Lee. Robust lane detection based on

convolutional neural network and random sample consensus.

In Neural Information Processing, pages 454--461, 2014.

[16] Jiman Kim and Chanjong Park. End-to-end ego lane estimation based on sequential transfer learning for self-driving

cars. In CVPR Workshops, pages 1194--1202, July 2017.

[17] Diederik P. Kingma and Jimmy Ba. Adam: A method for

stochastic optimization. arXiv preprint arXiv:1412.6980,

[18] Seokju Lee, Junsik Kim, Jae Shin Yoon, Seunghak

Shin, Oleksandr Bailo, Namil Kim, Tae-Hee Lee, Hyun Seok Hong, Seung-Hoon Han, and In So Kweon. Vpgnet:

Vanishing point guided network for lane and road marking detection and recognition. In CVPR, pages 1947--1955,

[19] Jun Li, Xue Mei, Danil Prokhorov, and Dacheng Tao. Deep

neural network for structural prediction and lane detection in

traffic scene. IEEE Transactions on Neural Networks and

Learning Systems, 28(3):690--703, March 2017.

[20] Fayao Liu, Chunhua Shen, and Guosheng Lin. Deep convolutional neural fields for depth estimation from a single

image. In CVPR, pages 5162--5170, 2015.

[21] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian

Szegedy, Scott Reed, Cheng Yang Fu, and Alexander C.

Berg. Ssd: Single shot multibox detector. In Bastian Leibe,

Jiri Matas, Max Welling, and Nicu Sebe, editors, ECCV,

pages 21--37, Germany, 1 2016. Springer.

[22] Hanspeter A. Mallot, Heinrich H. Bulthoff, James Little, and ¨

Stefan Bohrer. Inverse perspective mapping simplifies optical flow computation and obstacle detection. Biological Cybernetics, 64(3):177--185, Jan 1991.

[23] A. Meyer, N. Salscheider, P. Orzechowski, and C. Stiller.

Deep semantic lane segmentation for mapless driving. In

IROS, Oct 2018.

[24] Sergiu Nedevschi, Rolf. Schmidt, Thorsten Graf, Radu

Danescu, Dan Frentiu, Tiberiu Marita, Florin Oniga, and

Ciprian Pocol. 3d lane detection system based on stereovision. In IEEE Conference on Intelligent Transportation

Systems, pages 161--166, Oct 2004.

[25] Davy Neven, Bert De Brabandere, Stamatios Georgoulis,

Marc Proesmans, and Luc Van Gool. Towards end-to-end

lane detection: an instance segmentation approach. CoRR,

1802.05591, 2018.

[26] Gabriel L. Oliveira, Wolfram Burgard, and Thomas Brox.

Efficient deep models for monocular road segmentation. In

IROS, pages 4885--4891, Oct 2016.

[27] Xingang Pan, Jianping Shi, Ping Luo, Xiaogang Wang, and

Xiaoou Tang. Spatial as deep: Spatial CNN for traffic scene

understanding. In AAAI, pages 7276--7283, 2018.

[28] Dean Pomerleau. Ralph: rapidly adapting lateral position

handler. In IVS, pages 506--511, Sept 1995.

[29] Joseph Redmon, Santosh Kumar Divvala, Ross B. Girshick,

and Ali Farhadi. You only look once: Unified, real-time object detection. In CVPR, pages 779--788, 2016.

[30] Shital Shah, Debadeepta Dey, Chris Lovett, and Ashish

Kapoor. Airsim: High-fidelity visual and physical simulation for autonomous vehicles. In Field and Service Robotics,

[31] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. CoRR,

abs/1409.1556, 2014.

[32] Leslie N. Smith. Cyclical learning rates for training neural

networks. In WACV, pages 464--472, March 2017.

[33] Chris Urmson, Joshua Anhalt, Drew Bagnell, Christopher R.

Baker, Robert Bittner, M. N. Clark, John M. Dolan, Dave

Duggins, Tugrul Galatali, Christopher Geyer, Michele Gittleman, Sam Harbaugh, Martial Hebert, Thomas M. Howard,

Sascha Kolski, Alonzo Kelly, Maxim Likhachev, Matthew McNaughton, Nick Miller, Kevin M. Peterson, Brian Pilnick,

Raj Rajkumar, Paul E. Rybski, Bryan Salesky, Young-Woo

Seo, Sanjiv Singh, Jarrod M. Snider, William Whittaker,

Ziv Wolkowicki, Jason Ziglar, Hong Bae, Thomas Brown,

Daniel Demitrish, Bakhtiar Litkouhi, Jim Nickolaou, Varsha Sadekar, Wende Zhang, Joshua Struble, Michael Taylor,

Michael Darms, and Dave Ferguson. Autonomous driving in

urban environments: Boss and the urban challenge. Journal

of Field Robotics, 25(8):425--466, 2008.

[34] Lu Xiong, Zhenwen Deng, Peizhi Zhang, and Zhiqiang Fu.

A 3d estimation of structural road surface based on lane-line

information. IFAC-PapersOnLine, 51(31):778 -- 783, 2018.

相关推荐
IT古董33 分钟前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee34 分钟前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa34 分钟前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐36 分钟前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空1 小时前
Python调用open ai接口
人工智能·python
睡觉狂魔er1 小时前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶
scan7241 小时前
LILAC采样算法
人工智能·算法·机器学习
leaf_leaves_leaf1 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零11 小时前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
菌菌的快乐生活2 小时前
理解支持向量机
算法·机器学习·支持向量机