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

文章目录

  • 1. 摘要概述
  • 2. 背景介绍
  • 3. 方法
    • 3.1 俯视图投影
    • 3.2 网络结构
      • 3.2.1 投影变换层
      • 3.2.2 投影变换层
      • 3.2.3 道路投影预测分支
    • 3.3 车道预测头
    • 3.4 训练和真实值关联
  • 4. 实验
    • 4.1 合成 3D 车道数据集
    • 4.2 真实世界 3D 车道数据集
    • 4.3 评估结果
    • 4.4 评估图像仅车道检测
  • 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:P2P2 ,将 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(2K+1)×1×N,使得每列 i ∈ 1 … N i \in {1 \ldots N} i1N 对应于单个锚点 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} tc1,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} 5104。我们使用 \cite{32} 中描述的循环学习率方案的变体,最小学习率为 1 0 − 6 10^{-6} 106。俯视图表示的 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,
2014.
[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,
2017.
[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,
2017.
[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.
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/801900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎样在 PostgreSQL 中优化对多表关联的连接条件选择?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 怎样在 PostgreSQL 中优化对多表关联的连接条件选择一、理解多表关联的基本概念二、选择合适的连接条件…

深入解析HTTPS与HTTP

在当今数字化时代,网络安全已成为社会各界关注的焦点。随着互联网技术的飞速发展,个人和企业的数据安全问题日益凸显。在此背景下,HTTPS作为一种更加安全的通信协议,逐渐取代了传统的HTTP协议,成为保护网络安全的重要屏…

vue 实现下拉框的数据是树状结构

页面显示效果 vue实现代码 <el-form-item label"公司名称" prop"comName"><el-select ref"select" v-model"queryParams.comName" placeholder"请选择公司名称" clearable size"small"change"handl…

智慧医院智能导诊系统源码,智慧导诊小程序源码,采用前端框架:Uniapp+后端框架:springboot+移动端:微信小程序、H5自主研发

智慧导诊系统是一种基于人工智能和大数据技术的医疗辅助系统&#xff0c;旨在提高患者的就医效率和医院的管理效率。以下是对智慧导诊系统的详细解析&#xff1a; 定义与功能 智慧导诊系统通过自然语言处理、机器学习等技术&#xff0c;自动分析患者的病情及伴随症状&#xf…

Spring Boot集成Activity7实现简单的审批流

由于客户对于系统里的一些新增数据&#xff0c;例如照片墙、照片等&#xff0c;想实现上级逐级审批通过才可见的效果&#xff0c;于是引入了Acitivity7工作流技术来实现&#xff0c;本文是对实现过程的介绍讲解&#xff0c;由于我是中途交接前同事的这块需求&#xff0c;所以具…

模拟器小程序/APP抓包(Reqable+MUMU模拟器)

一、使用adb连接上MUMU模拟器 打开多开器点击ADB图标 连接模拟器端口&#xff1a; adb connect 127.0.0.1:16384列出已连接的设备&#xff1a; adb devices正常会显示MuMu的设备已连接 二、下载Reqable 1.下载链接&#xff1a;客户端下载 | Reqable 2.文档链接&#xff1a;…

昇思25天学习打卡营第12天|LLM-基于MindSpore实现的BERT对话情绪识别

打卡 目录 打卡 预装环境 BERT 任务说明 数据集 数据加载和数据预处理&#xff1a;process_dataset 函数 模型构建与训练 运行示例 模型验证 模型推理 自定义推理数据集 运行结果示例 代码 预装环境 pip install -i https://pypi.mirrors.ustc.edu.cn/simple min…

使用ant+jmeter如何生成html报告

一、安装ant 下载apache-ant&#xff0c;放到对应路径下&#xff0c;然后进行环境变量配置。系统变量的CLASSPATH添加E:\Installation Pack\eclipse\apache-ant-1.9.6\lib;用户变量的PATH添加&#xff1a;E:\Installation Pack\eclipse\apache-ant-1.9.6\bin。打开cmd&#xf…

持续集成02--Linux环境更新/安装Java新版本

前言 在持续集成/持续部署&#xff08;CI/CD&#xff09;的旅程中&#xff0c;确保开发环境的一致性至关重要。本篇“持续集成02--Linux环境更新/安装Java新版本”将聚焦于如何在Linux环境下高效地更新或安装Java新版本。Java作为广泛应用的编程语言&#xff0c;其版本的更新对…

前端框架入门之Vue的模版语法与数据单向绑定 数据双向绑定

目录 vue的模版语法 数据绑定 vue的模版语法 关于模版这个概念 root容器里面被称为模版 我们的语法分为插值语法和插值语法 这样就是实现了插值语法 接下来我们实现指令语法 首先我们写一个a标签 链一个超链接上去 <h1>指令语法</h1><a href"https:/…

【46 Pandas+Pyecharts | 当当网畅销图书榜单数据分析可视化】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 书名处理2.5 提取年份 &#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 作者图书数量分布3.2 图书出版年份…

openeuler 终端中文显示乱码、linux vim中文乱码

1、解决终端乱码 网上很多教程试了都不生效&#xff0c;以下方法有效&#xff1a; 确认终端支持中文显示&#xff1a; echo $LANG 输出应该包含 UTF-8&#xff0c;例如 en_US.UTF-8。如果不是&#xff0c;您可以通过以下命令设置为 UTF-8&#xff1a; export LANGzh_CN.UTF-8…

昇思25天学习打卡营第12天|Vision Transformer图像分类、SSD目标检测

Vision Transformer&#xff08;ViT&#xff09;简介 近些年&#xff0c;随着基于自注意&#xff08;Self-Attention&#xff09;结构的模型的发展&#xff0c;特别是Transformer模型的提出&#xff0c;极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩…

【数据结构(邓俊辉)学习笔记】高级搜索树02——B树

文章目录 1. 大数据1.1 640 KB1.2 越来越大的数据1.3 越来越小的内存1.4 一秒与一天1.5 分级I/O1.6 1B 1KB 2. 结构2.1 观察体验2.2 多路平衡2.3 还是I/O2.4 深度统一2.5 阶次含义2.6 紧凑表示2.7 BTNode2.8 BTree 3. 查找3.1 算法过程3.2 操作实例3.3 算法实现3.4 主次成本3.…

django踩坑(四):终端输入脚本可正常执行,而加入crontab中无任何输出

使用crontab执行python脚本时&#xff0c;有时会遇到脚本无法执行的问题。这是因为crontab在执行任务时使用的环境变量与我们在终端中使用的环境变量不同。具体来说&#xff0c;crontab使用的环境变量是非交互式(non-interactive)环境变量&#xff0c;而终端则使用交互式(inter…

【Map和Set】

目录 1&#xff0c;搜索树 1.1 概念 1.2 查找 1.3 插入 1.4 删除&#xff08;难点&#xff09; 1.5 性能分析 1.6 和 java 类集的关系 2&#xff0c;搜索 2.1 概念及场景 2.2 模型 3&#xff0c;Map 的使用 3.1 关于Map的说明 3.2 关于Map.Entry的说明 3.3 Map的…

JAVA-----异常处理

一、定义 在 Java 中&#xff0c;异常&#xff08;Exception&#xff09;是指程序在执行过程中遇到的不正常情况&#xff0c;这些情况可能导致程序无法继续执行或产生错误的结果。异常可以是 Java 标准库中提供的内置异常类&#xff0c;也可以是开发人员自定义的异常类。 二、…

小程序-2(WXML数据模板+WXSS模板样式+网络数据请求)

目录 1.WXML数据模板 数据绑定 事件绑定 小程序中常用的事件 事件对象的属性列表 target和currentTarget的区别 bindtap的语法格式 在事件处理事件中为data中的数据赋值 事件传参与数据同步 事件传参 bindinput的语法绑定事件 文本框和data的数据同步 条件渲染 w…

Spring Data Redis + Redis数据缓存学习笔记

文章目录 1 Redis 入门1.1 简介1.2 Redis服务启动与停止&#xff08;Windows&#xff09;1.2.1 服务启动命令1.2.2 客户端连接命令1.2.3 修改Redis配置文件1.2.4 Redis客户端图形工具 2. Redis数据类型2.1 五种常用数据类型介绍 3. Redis常用命令3.1 字符串操作命令3.2 哈希操作…

数据库的约束条件和用户管理

约束条件&#xff1a; 主键&#xff1a;主键约束 primary key 用于标识表中的主键列的值&#xff0c;而且这个值是全表当中唯一的&#xff0c;而且只不能为null 一个表只能有一个主键。 外键&#xff1a;用来建立表与表之间的关系。确保外键中的值于另一个表的主键值匹配&a…