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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7 安装私有 Gitlab

在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。 sudo yum install -y curl policycoreutils-python openssh-server perl sudo systemct…

算法 —— 快速幂

目录 P1045 [NOIP2003 普及组] 麦森数 P1226 【模板】快速幂 原理I 原理II P1226 代码解析 P1045 代码解析 P1045 [NOIP2003 普及组] 麦森数 本题来自洛谷:P1045 [NOIP2003 普及组] 麦森数,根据题意,我们可以看到本题需要计算最少2的1…

Docker的数据管理和网络通信

目录 一、Docker 的数据管理 1.数据卷 2.数据卷容器 二、端口映射 三、容器互联(使用centos镜像) 四、*Docker 镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile 创…

SwiftUI中App启动入口分析,以及视图和App生命周期介绍

App入口分析 新创建的swiftui项目中我们应该先要了解一下app的入口函数在哪里,并了解大概的含义。 @main:标记应用程序的入口。 App 协议:SwiftUI 应用程序的入口点。 Scene:表示应用程序的一个视图层级,通常是 WindowGroup,表示主窗口的内容。 Scene讲解 Scene 表示…

线性表的链式存储结构————双链表(java)

线性表的链式存储结构————双链表(java) 文章目录 线性表的链式存储结构————双链表(java)双链表双链表的创建插入数据元素头插法尾插法 求链表的长度输出双链表删除双链表中的指定元素总代码运行效果用Java内部类实现双链表…

[HCTF 2018]WarmUp1

进入靶场,检查代码看到有source.php,访问 /source.php 读代码,在参数中传入 file,通过checkFile后,会加载file界面。 再看checkFile, 第一个判断,是非空并且是个字符串,否则返回false 第二个判…

小程序里面使用vant ui中的vant-field组件,如何使得输入框自动获取焦点

//.wxml <van-fieldmodel:value"{{ userName }}"placeholder"请输入学号"focus"{{focusUserName}}"/>// .js this.setData({focusUserName: true});vant-field

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…

快捷:通过胶水语言实现工作中测试流程并行、加速

通过胶水语言实现工作中测试流程并行、加速 通过胶水语言实现工作中测试流程并行、加速工作场景&#xff08;背景&#xff09;问题抽象&#xff08;挑战&#xff09;如何做&#xff08;行动&#xff09;获得了什么&#xff08;结果&#xff09;后记相关资源 通过胶水语言实现工…

唐刘:当 SaaS 爱上 TiDB(一)- 行业挑战与 TiDB 的应对之道

导读 在 TiDB 8.1 发布后&#xff0c;TiDB 展现了强大的支持 SaaS 业务的能力&#xff0c;成为 SaaS 业务数据库的优先选择之一。 本文为“当 SaaS 爱上 TiDB”系列文章的第一篇&#xff0c;系列文章将从技术原理和真实用户体验两个角度深入探讨 TiDB 在 SaaS 业务中的表现&a…

qt 创建一个左侧边线拖拽的矩形

1.概要 2.代码 在Qt中&#xff0c;如果你想要创建一个矩形&#xff0c;并且仅允许通过拖拽其左侧边线来改变宽度&#xff0c;你可以通过重写QGraphicsRectItem类来实现。以下是一个简单的例子&#xff0c;展示了如何创建一个自定义的ResizableRectItem类&#xff0c;该类允许…

责任链模式+CompletableFuture异步处理

1、查询商品基础信息 2、查询商品价格 3、查询商品活动 4、查询商品库存 假设这几个服务逻辑比较独立&#xff0c;其实是可以并行调用&#xff0c;我们可以结合责任链模式和CompletableFuture进行优化: 下面是代码示例: Service public class ChainFactory {// 原型模式获取对…

GloVe: Global Vectors for Word Representation论文笔记解读

基本信息 作者Jeffrey Penningtondoi10.3115/v1/D14-1162发表时间2014期刊EMNLP网址https://aclanthology.org/D14-1162.pdf 研究背景 1. What’s known 既往研究已证实 全局矩阵分解方法&#xff1a;LSA&#xff0c;考虑整个语料库词频的统计信息得到共现矩阵&#xff0c;通…

Spring Security学习笔记(一)Spring Security架构原理

前言&#xff1a;本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 Spring Security中文文档&#xff1a;https://springdoc.cn/spring-security/index.html 一、什么是Spring Security Spring Security是一个安全控制相关的java框架&#xff0c;它提供了一套全…

昇思25天学习打卡营第1天 | 基本介绍

打卡&#xff1a; 小白一个&#xff0c;第一次接触昇思MindSpore&#xff0c;之前使用chatgpt较多一点。这次相当于从使用着角色转换成制作者的角色&#xff0c;跨度比较大。如果之前没有接触过相关内容&#xff0c;学习起来还是比较费劲。 基本介绍&#xff1a; 昇思MindSpo…

ValueError和KeyError: ‘bluegrass’的问题解决

项目场景&#xff1a; 项目相关背景&#xff1a; 问题描述 遇到的问题1&#xff1a; KeyError: ‘bluegrass’ 不能识别某标签 遇到的问题2&#xff1a; xml etree.fromstring(xml_str) ValueError: Unicode strings with encoding declaration are not supported. Please …

K8S 中的 CRI、OCI、CRI shim、containerd

K8S 如何创建容器&#xff1f; 下面这张图&#xff0c;就是经典的 K8S 创建容器的步骤&#xff0c;可以说是冗长复杂&#xff0c;至于为什么设计成这样的架构&#xff0c;继续往下读。 前半部分 CRI&#xff08;Container Runtime Interface&#xff0c;容器运行时接口&#xf…

PCIe驱动开发(3)— 驱动设备文件的创建与操作

PCIe驱动开发&#xff08;3&#xff09;— 驱动设备文件的创建与操作 一、前言 在 Linux 中一切皆为文件&#xff0c;驱动加载成功以后会在“/dev”目录下生成一个相应的文件&#xff0c;应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即…

元宇宙深入解析

元宇宙&#xff08;Metaverse&#xff09;是一个新兴的概念&#xff0c;它激发了技术专家、艺术家和商业领袖的无限想象。它代表着数字互动的新前沿&#xff0c;提供了一个平行的数字宇宙&#xff0c;用户可以在其中实时互动&#xff0c;超越物理世界的限制。 元宇宙是什么&am…

安防视频监控/视频汇聚EasyCVR平台浏览器http可以播放,https不能播放,如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…