当前位置: 首页 > news >正文

自动驾驶车道线检测系列—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.
在这里插入图片描述

相关文章:

自动驾驶车道线检测系列—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. 总结和讨论…...

手工创建 postgres kamailio 数据库

测试环境如下: postgres server 16: ip 地址为 192.168.31.100,用户 postgres 的密码为 ****** kamailio v5.7.5: ip 地址为 192.168.31.101 1.1. 创建 kamailio 用户和 kamailio 数据库 ssh 登陆 kamailio (192.168.31.101)&a…...

装饰设计模式

装饰设计模式应用在IO流上面可以得到体现 装饰模式指的是在不改变原类, 不使用继承的基础上,动态地扩展一个对象的功能。 原来的inputstream已经可以读取数据了,但是是一个字节一个字节的读取的,为了优化这个我们采用了buffered&#xff0c…...

Linux 线程初步解析

1.线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列。在linux中,由于线程和进程都具有id,都需要调度等等相似性,因此都可以用PCB来描述和控制,线程含有PCB&am…...

为ppt中的文字配色

文字的颜色来源于ppt不可删去的图像的颜色 从各类搜索网站中搜索ppt如何配色,有如下几点: 1.可以使用对比色,表示强调。 2.可以使用近似色,使得和谐统一。 3.最好一张ppt中,使用的颜色不超过三种主要颜色。 但我想强调…...

python-区间内的真素数(赛氪OJ)

[题目描述] 找出正整数 M 和 N 之间(N 不小于 M)的所有真素数。真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。 例如,11,13 均为真素数,因为 11 的反序…...

TCP/IP、UDP、HTTP 协议介绍比较和总结

TCP/IP、UDP、HTTP是网络通信中的三种重要协议,各自具有不同的特点和应用场景。以下是对这三种协议的详细介绍、比较和总结。 TCP/IP协议 传输控制协议/互联网协议(TCP/IP, Transmission Control Protocol/Internet Protocol) 特点: 可靠性:TCP提供可靠的通信,通过握手…...

Unity Meta Quest 开发:如何在每只手指上添加 Poke 交互

XR 开发社区: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 找到玩家物体 OVRCameraRig 下的子物体 HandInteractorsRight/Left(分别管理左右手的 Interactor)下的 HandPokeInteractor 子物体&#x…...

MyBatis的原理?

MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数及获取结果集。MyBatis可以通过简单的XML或注解来配置和映射原生类型、接口和Java的POJOs(Plain Old Java Objects)为…...

数学基础【俗说矩阵】:齐次线性方程和非齐次线性方程求解-学习笔记

一、矩阵基础知识 二元一次方程的传统解法 不论是代入消元法还是加减消元法都统称 【高斯消元法】。 齐次方程组和非齐次方程组 线性方程组的解 线性方程的向量展示 向量规则 矩阵的高斯消元和初等行变行及其规则 高斯消元规则 初等行变换 矩阵经初等行变换成阶梯矩阵&…...

乐尚代驾项目概述

前言 2024年7月17日,最近终于在低效率的情况下把java及其生态的知识点背的差不多了,投了两个礼拜的简历,就一个面试,总结了几点原因。 市场环境不好 要知道,前两年找工作,都不需要投简历,把简历…...

脱发的 7 个原因,不能再瞒着大家了!

《黄帝内经》记载,“发为血之余,肾其华在发”。乌发飘逸的秀发,是年轻之体气血充盈、生机勃发的象征,更是纯粹天然、淡泊雅致的东方美学的体现。年轻一代不仅关注身体的养生,对头发的保护与保养也有了新的认识。头发已经成为当代年…...

Vim使用教程

目录 引言1. Vim的基本概念1.1 模式1.2 启动和退出 2. 基础操作2.1 导航2.2 插入文本2.3 删除和复制2.4 查找和替换 3. 高级功能3.1 多文件编辑3.2 宏录制和执行3.3 使用插件3.4 自定义快捷键 4. Vim脚本和自定义配置4.1 基本配置4.2 编写Vim脚本 5. 实用技巧5.1 快速移动5.2 批…...

前端开发体系+html文件详解

目录 html骨架 body主体内基本元素 基本元素 超文本(超链接跳转) 锚点 图片标签 列表标签 表格标签 框架标签(窗口标签) 音频标签 视频标签 VScode编译器 输入框 字体样式 实例展示: 首先简要介绍前端的整…...

小程序中用于跳转页面的5个api是什么和区别

在微信小程序中,用于页面跳转的API主要有以下几个,但通常不需要5个那么多,因为它们的功能各有侧重,用于不同的跳转场景。以下是这些API及其详细代码和区别: wx.navigateTo(OBJECT) 用于保留当前页面,跳转到…...

翁恺-C语言程序设计-10-0. 说反话

10-0. 说反话 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母&#…...

langchain 入门指南(二)- 如何跟大模型对话

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 本文中,我们会通过一个简单的例子来展示如何使用 langchain 来调用大模型的 chat API(使用 Chat Model&#xff…...

[集成学习]基于python的Stacking分类模型的客户购买意愿分类预测

1 导入必要的库 import pandas as pd import numpy as np import missingno as msno import matplotlib.pyplot as plt from matplotlib import rcParams import seaborn as sns from sklearn.metrics import roc_curve, auc from sklearn.linear_model import LogisticRegres…...

FastApi地理坐标数据存取实践

说明: 应用Pydantic Model 验证/出入 数据, SqlAlchemy Model数据实体,Fastapi提供API机制支持。数据表的坐标字段采用Mysql的GEOMETRY类型目前还没成功使用Pydantic的Coordinate类型,待后续改良 要点: 输出的结果是…...

Docker容器——初识Docker,安装以及了解操作命令

一、Docker是什么? 是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源,用来管理容器和镜像的工具是在Linux容器里驱动运行应用的开源工具是一种轻量级的“虚拟机” 基于linux内核运行Docker的容器技术可以在一台主机上轻松为任何应用…...

JavaSE从零开始到精通

1.前置知识 JVM:java virtrual machine, java虚拟机, 专门用于执行java代码的一款软件。可以将class文件,转换为机器认识的机器码,因为我们的计算机只认识010101的二进制语言。JRE:java runtime enviroment, java运行时环境, jav…...

求解答word图标变白

把WPS卸载了之后就变成白色了,然后在注册表中把word的地址改成office word的地址之后图标变成这样了,怎么办...

Jenkins 离线升级

1. 环境说明 环境 A: jenkins 版本:2.253使用 systemctl 管理的 jenkins 服务 环境 B: 可以上网的机器,装有 docker-compose docker 和 docker-compose 安装,这里都略了。 2. 安装旧版本 2.1 环境 A jenkins 目录打包文件 …...

Unty 崩溃问题(Burst 1.8.2)

错误代码: Assertion failed on expression: exception SCRIPTING_NULL UnityEngine.StackTraceUtility:ExtractStackTrace () Unity.Burst.BurstCompiler:SendRawCommandToCompiler (string Unity版本:2021.3.17F1,Burst 1.8.2 表现&…...

【大型实战】企业网络实验(华为核心交换、ESXI7.0vmware虚拟机、DHCP中继、服务端网络及用户端网络配置)

需求 实验 vmware网络配置(企业内部一般为ESXI) 这样服务器虚拟机使用192.168.200.X网段才能与用户侧互通 vmware虚拟机配置(DHCP服务器网络配置) 打开网络管理页面 nmtui重置一下网络连接(重启网卡) …...

vue2路由跳转是异步的

在 Vue 2 中,如果你在路由跳转函数中通过路由路径判断路径时,发现路径还是上一个路径,这是因为路由跳转是异步的。为了确保在路由跳转完成后进行判断,你可以使用路由的导航守卫或者 nextTick 来确保获取到最新的路由路径。 使用 …...

第一阶段面试题总结

1. 线程和进程的概念,区别、以及什么时候用线程什么时候用进程 1.1 线程概念 线程是进程中的一个执行单元,一个进程可以包含多个线程 线程是一个轻量级的进程 线程是CPU任务调度的最小单元 1.2 进程概念 进程是一个程序的运行实例,它包含了…...

设计模式(工厂模式,模板方法模式,单例模式)

单例模式: 确保一个类只有一个实例,并提供全局访问点。 单例模式举例: 配置信息类:用于存储应用程序的全局配置信息,例如数据库连接信息、日志配置等。 日志类:用于记录应用程序运行时的日志信息&#x…...

ES6 对象的新增方法(十四)

1. Object.assign(target, …sources) 特性:将一个或多个源对象的所有可枚举属性复制到目标对象。 用法:用于对象属性的合并。 const obj1 { a: 1, b: 2 }; const obj2 { b: 3, c: 4 }; Object.assign(obj1, obj2);console.log(obj1); // 输出&#…...

Spring Boot 学习总结(34)—— spring-boot-starter-xxx 和 xxx-spring-boot-starter 区别?

一、Spring Starter 简介 Spring Starter 是 Spring Boot 提供的一种便捷方式,帮助开发者快速集成和配置 Spring 应用中所需的依赖。每个 Starter 都是一个预配置的依赖集,可以自动配置应用的一部分或特定功能。这些 Starter 旨在消除手动编写大量样板代码和配置的需求。 1…...