自动驾驶三维车道线检测系列—LATR: 3D Lane Detection from Monocular Images with Transformer

文章目录

  • 1. 概述
  • 2. 背景介绍
  • 3. 方法
    • 3.1 整体结构
    • 3.2 车道感知查询生成器
    • 3.3 动态3D地面位置嵌入
    • 3.4 预测头和损失
  • 4. 实验评测
    • 4.1 数据集和评估指标
    • 4.2 实验设置
    • 4.3 主要结果
  • 5. 讨论和总结

1. 概述

3D 车道线检测是自动驾驶中的一个基础但具有挑战性的任务。最近的进展主要依赖于从前视图图像特征和相机参数构建的结构化 3D 代理(例如鸟瞰图)。然而,单目图像中的深度模糊不可避免地导致构建的代理特征图与原始图像之间的错位,这对准确的车道线检测提出了巨大挑战。为了解决上述问题,我们提出了一种新的 LATR 模型,这是一种端到端的 3D 车道检测器,使用 3D 感知的前视图特征而不依赖于视图变换表示。具体来说,LATR 通过基于查询和键值对的交叉注意力来检测 3D 车道线,这些键值对是使用我们的车道感知查询生成器和动态 3D 地面位置嵌入构建的。一方面,每个查询是基于 2D 车道感知特征生成的,并采用混合嵌入来增强车道信息。另一方面,3D 空间信息被注入为从迭代更新的 3D 地面平面中提取的位置嵌入。LATR 在合成 Apollo 数据集和现实的 OpenLane 以及 ONCE-3DLanes 数据集上大幅超越了之前的最新方法(例如,在 OpenLane 上 F1 分数提高了 11.4)。代码将发布在 https://github.com/JMoonr/LATR。

2. 背景介绍

3D车道线检测对于自动驾驶中的各种应用,如轨迹规划和车道保持至关重要。尽管基于LiDAR的方法在其他3D感知任务中取得了显著进展,最近的3D车道线检测更倾向于使用单目摄像头,因为与LiDAR相比,单目摄像头具有明显的优势。除了低部署成本外,摄像头相比其他传感器提供了更长的感知范围,并能生成高分辨率且具有丰富纹理的图像,这对于检测细长和跨度大的车道线至关重要。
在这里插入图片描述
由于缺乏深度信息,从单目图像中检测3D车道线具有挑战性。一个直接的解决方案是基于2D分割结果和每像素深度估计来重建3D车道布局,如在SALAD中提出的方法。然而,这种方法需要高质量的深度数据进行训练,并且严重依赖于估计深度的精度。或者,CurveFormer采用多项式从前视图中建模3D车道。尽管它避免了不确定的视图变换,但其设计中采用的多项式形式限制了捕捉多样化车道形状的灵活性。相比之下,当前主流方法更倾向于使用3D代理表示。这些代理表示是基于前视图图像特征和相机参数构建的,不依赖于深度信息。由于车道本质上位于道路上,大多数这些方法通过逆透视映射(IPM)将图像特征投影到鸟瞰图(BEV)中来构建3D代理。然而,IPM严格基于平地假设,因此在许多实际驾驶场景中(如上坡/下坡和颠簸)引入了3D代理与原始图像之间的错位。这种错位,加上变形,不可避免地阻碍了道路结构的准确估计,并危及驾驶安全。尽管通过引入可变形注意力来缓解这一问题的尝试取得了一些进展,但错位问题仍未解决。

基于上述观察,我们旨在通过直接从前视图定位3D车道线而不使用任何中间3D代理,通过车道感知查询来改进3D车道检测。受2D目标检测器DETR的启发,我们将车道检测简化为端到端的集合预测问题,形成LAne detection TRansformer(LATR)。LATR使用车道感知查询和动态3D地面位置嵌入从前视图图像中检测3D车道线。我们设计了一种车道表示方案来描述车道查询,更好地捕捉3D车道线的特性。此外,我们利用车道感知特征为查询提供丰富的语义和空间先验。由于纯前视图特征缺乏对3D空间的感知,我们从假设的3D地面中注入3D位置信息到前视图特征中。这个假设的地面初始化为水平网格,通过迭代优化以适应地面真实道路。最终,车道感知查询通过变压器解码器与3D感知特征进行交互,随后通过MLP生成3D车道线预测。

我们的主要贡献如下:

  • 我们提出了LATR,一种基于Transformer的端到端3D车道检测框架。通过直接从前视图检测3D车道线而不使用任何3D代理表示,LATR提供了效率并避免了以前方法中存在的特征错位。
  • 我们引入了一种车道感知查询生成器,使用动态提取的车道感知特征初始化查询嵌入。此外,提出了一种动态位置嵌入,用于桥接3D空间和2D图像,该嵌入来源于在监督下迭代更新的3D地面。
  • 我们在OpenLane、Apollo和ONCE-3DLanes的基准数据集上进行了详细实验。我们提出的LATR在这些数据集上显著超越了之前的最先进方法(在OpenLane上提高了11.4,在Apollo上提高了4.3,在ONCE-3DLanes上提高了6.26,以F1分数计算)。
    在这里插入图片描述

3. 方法

给定一个输入图像 I ∈ R 3 × H × W I \in \mathbb{R}^{3 \times H \times W} IR3×H×W,3D车道线检测的目标是预测图像中的车道线的3D位置。车道线由一组3D点表示,记为 Y = { L i ∣ i ∈ 1 , . . . , N } Y = \{L_i | i \in 1, ..., N\} Y={Lii1,...,N},其中 N N N 是图像中的车道线数量, L i L_i Li 表示第 i i i 条车道线。每条车道线 L i = ( P i , C i ) L_i = (P_i, C_i) Li=(Pi,Ci) 由一组点 P i = { ( x j i , y j i , z j i ) } j = 1 M P_i = \{(x_j^i, y_j^i, z_j^i)\}_{j=1}^M Pi={(xji,yji,zji)}j=1M 构成,其中 M M M 是输出点集的预定基数, C i C_i Ci 表示类别。通常, y ∗ y_{\ast} y 被设为预定义的纵向坐标 Y r e f = { y i } i = 1 M Y_{ref} = \{y_i\}_{i=1}^M Yref={yi}i=1M \cite{7, 8, 3}。

3.1 整体结构

LATR的总体架构如图2所示。首先,我们使用一个2D骨干网络从输入图像中提取特征图 X ∈ R C × H × W X \in \mathbb{R}^{C \times H \times W} XRC×H×W。之后,我们使用车道感知查询生成器生成车道感知查询 Q ∈ R ( N × M ) × C Q \in \mathbb{R}^{(N \times M) \times C} QR(N×M)×C,其中 N N N 表示车道线数量,每条车道线由 M M M 个点描述。这里, ( N × M ) (N \times M) (N×M) 表示相应维度上的展平通道。随后,车道感知查询 Q Q Q 通过可变形注意力 \cite{57} 与特征图 X X X 进行积极互动。在不构建任何错位的3D代理的情况下,我们提出了动态3D地面位置嵌入(PE)生成器,以在可变形注意力过程中增强2D特征的3D感知。最后,我们在更新的查询上应用预测头,以获得最终的车道线预测。每个组件的详细信息将在以下小节中给出。

3.2 车道感知查询生成器

与以往方法中采用固定学习特征作为查询不同 \cite{2, 17, 25, 57},我们提出了一种动态方案来生成车道感知查询嵌入,这些查询嵌入提供了从图像特征中提取的有价值的2D车道先验。此外,为了使查询在描述车道线时更加灵活,并隐式地建模车道线内和车道线间的关系,我们采用多种粒度来表示查询嵌入,包括车道级和点级。

车道级嵌入捕捉每条车道线的整体结构,而点级嵌入则收集位于 y i ∈ Y r e f y_i \in Y_{ref} yiYref 的局部特征,如上所述。然后我们将这两个级别结合作为我们的最终查询嵌入。这种混合嵌入方案对查询进行了不同车道的判别性特征编码,并通过共享点级嵌入使每个查询能够在特定深度捕捉共享模式。这里的直觉是,不同车道在同一深度的点在图像投影过程中将经历统一的缩放因子。此外,共享同一条道路会在3D空间中赋予车道线共享属性,如相同的海拔高度。该模块的内部结构如图2部分(b)所示。

  1. 车道级嵌入从图像特征图 X ∈ R C × H × W X \in \mathbb{R}^{C \times H \times W} XRC×H×W 编码 N N N 个车道实例的特征。具体来说,我们利用一个车道感知特征聚合器基于一组实例激活图(IAMs) A ∈ R N × ( H × W ) A \in \mathbb{R}^{N \times (H \times W)} ARN×(H×W) \cite{4} 来收集不同车道的特征。IAMs 动态生成,其公式为:
    在这里插入图片描述
    其中 F \mathcal{F} F 由几个卷积层实现, σ \sigma σ 是一个Sigmoid函数, [ , ] [ , ] [,] 表示拼接, S S S 是一个表示像素2D空间定位的双通道特征图 \cite{22}。通过IAMs,可以通过以下公式获得车道级嵌入 Q l a n e ∈ R N × C Q_{lane} \in \mathbb{R}^{N \times C} QlaneRN×C
    在这里插入图片描述
    在训练期间,我们在 Q l a n e Q_{lane} Qlane 顶部添加一个辅助分割头 \cite{4},以预测2D车道实例掩码,这些掩码由投影的3D注释监督。按照 \cite{4} 的方法,我们使用基于Dice的双向匹配为 N N N 个实例掩码分配真值标签。我们还使用相同的匹配结果为我们的最终车道线预测分配标签。更多细节请参考我们的补充材料。

  2. 点级嵌入表示车道线上点之间的关系。与从图像特征中提取不同,我们将其表示为一组可学习的权重 Q p o i n t ∈ R M × C Q_{point} \in \mathbb{R}^{M \times C} QpointRM×C,其中每个 q p o i n t i ∈ R 1 × C q_{point}^i \in \mathbb{R}^{1 \times C} qpointiR1×C 对应于预定义的 Y r e f Y_{ref} Yref 中的一个 y i y_i yi。这些嵌入将在训练期间学习。

  3. 车道感知查询嵌入 Q ∈ R ( N × M ) × C Q \in \mathbb{R}^{(N \times M) \times C} QR(N×M)×C 可以通过以下公式获得:
    在这里插入图片描述
    其中 ⊕ \oplus 表示广播求和。广播操作使模型能够区分不同实例并基于车道级嵌入对点进行分组。注意,共享点级嵌入可以帮助模型在不同车道的点之间建模相对关系和共同特征,而不引入几何先验,如点距离约束和复杂的监督,如以往方法 \cite{14} 所做的。
    在这里插入图片描述

3.3 动态3D地面位置嵌入

如第2.2节所述,现有方法主要使用替代3D空间来估计3D车道线位置 \cite{3, 8, 7, 5} 或隐式地强制模型学习3D位置 \cite{1}。与此不同,我们提出利用所有车道线在真实世界中都位于地面上的先验,构建一个3D平面来模拟地面。尽管已有几种尝试利用地面先验来促进3D目标检测,但有些方法做出了强假设,如固定地面 \cite{27},而另一些方法引入了额外的预测任务,例如密集深度估计 \cite{46, 39, 35}、地平线检测和接触点检测 \cite{50}。然而,预测这些额外任务由于其高自由度(DOF)而提出了显著挑战,并且由于累积误差,不准确的预测不可避免地会破坏性能。在本文中,我们通过将平面限制为仅两个DOF来解决这个问题。具体来说,我们将平面编码为每个可变形注意模块中关键的位置嵌入。如下所述,我们将深入探讨如何生成3D地面位置嵌入并更新假设平面,以仅通过3D车道线注释动态接近真实地面。

我们首先构建一个由 P P P 个点组成的3D平面 P ∈ R P × 3 P \in \mathbb{R}^{P \times 3} PRP×3,表示为3D网格 P = { ( x i , y i , z i ) ∣ i ∈ 1 , . . . , P } P = \{(x_i, y_i, z_i)|i \in 1, ..., P\} P={(xi,yi,zi)i1,...,P},并使用相机参数 T T T 将所有点投影到2D图像上:
在这里插入图片描述
我们将网格初始化为 z z z 经验上设为1.5的水平面。基于公式 (\ref{equ:project}),我们将所有投影点散布到一个2D画布 M p ∈ R 3 × H × W M_p \in \mathbb{R}^{3 \times H \times W} MpR3×H×W 上,保持每个投影点的3D位置:
在这里插入图片描述
其中 ( u , v ) (u, v) (u,v) ( x , y , z ) (x, y, z) (x,y,z) 表示公式 (\ref{equ:project}) 中定义的2D和3D坐标。对于那些没有投影点的像素,我们简单地将其设为0。之后,我们通过MLP获得3D地面位置嵌入 P E ∈ R C × H × W PE \in \mathbb{R}^{C \times H \times W} PERC×H×W

为了动态更新平面以接近真实地面,我们在每个解码器层中使用图像特征和投影画布预测具有两个DOF(即 Δ θ x , Δ h \Delta \theta_x, \Delta h Δθx,Δh)的残差变换矩阵:
在这里插入图片描述

其中 [ , ] [ , ] [,] 表示拼接, G \mathcal{G} G 是两个卷积层, X X X 表示来自骨干网络的2D特征, M p M_p Mp 是从公式 (\ref{equ:scatter}) 编码3D位置的投影画布。进一步地,变换矩阵可以表示为:
在这里插入图片描述

然后,我们通过以下方式逐层迭代更新平面:
在这里插入图片描述
其中 P ~ \widetilde{\mathbf{P}} P P P P 的齐次表示, l l l 是解码器层的索引。我们在附录中提供了一个算法来总结这个过程。

为了用两个DOF监督预测的变换矩阵 D D D,我们使用相机参数 T T T 通过投影3D车道线注释到图像上。 l x , y , z l_{x,y,z} lx,y,z 是3D车道线注释, l u , v l_{u,v} lu,v 是对应的2D图像上的位置。类似于公式 (\ref{equ:scatter}),我们将所有投影车道线散布到 M l M_l Ml 中。因此,我们使用投影的3D车道线注释来稀疏地监督投影平面。给定表示从平面投影的所有像素的集合 P P P 和所有投影3D车道线注释的集合 L L L,我们的损失可以表示为:
在这里插入图片描述
我们使用 L p l a n e \mathcal{L}_{plane} Lplane 来监督构建的3D平面的更新,使其接近真实地面并获得准确的3D地面位置信息。图3展示了 L p l a n e \mathcal{L}_{plane} Lplane 的效果。

我们遵循标准的基于Transformer的方法 \cite{2, 57},构建了包含 L L L 层解码器。在每一层中,我们使用查询来预测3D车道位置 ( x , y , z ) (x, y, z) (x,y,z) 作为3D参考点 r e f 3 D \mathit{ref}_{3D} ref3D 并按照公式 (1) 将每个3D点投影到2D图像上,称为 r e f 2 D \mathit{ref}_{2D} ref2D。然后,我们使用车道感知查询嵌入 Q ∈ R ( N × M ) × C Q \in \mathbb{R}^{(N\times M)\times C} QR(N×M)×C 和3D地面位置嵌入 P E ∈ R C × ( H × W ) PE \in \mathbb{R}^{C\times (H\times W)} PERC×(H×W) 来公式化消息交换过程如下:
在这里插入图片描述
其中 X ∈ R C × ( H × W ) X \in \mathbb{R}^{C \times (H \times W)} XRC×(H×W) 表示提取的图像特征图, l l l 是层索引,DeformAttn 是标准的可变形注意模块 \cite{57}。如图2所示,我们还估计了我们构建的平面的残差变换矩阵(如第3.3节所述)并迭代调整其位置,类似于参考点。通过这种迭代细化机制,LATR可以逐步更新其关于3D地面的知识并提高其本地化能力。

3.4 预测头和损失

我们在查询顶部应用一个预测头以生成最终预测。对于3D位置估计,我们使用MLP,可以表示为:
在这里插入图片描述
其中 Δ x , Δ z ∈ R N × M × 1 \Delta x, \Delta z \in \mathbb{R}^{N \times M \times 1} Δx,ΔzRN×M×1 表示相对于最后一个解码器层中的相应参考点(第3.4节)的偏移。 v ∈ R N × M × 1 v \in \mathbb{R}^{N \times M \times 1} vRN×M×1 表示每个预测车道点的可见性,这表明投影点在图像中是否有效。与预定义的纵向坐标 Y r e f ∈ R M × 1 Y_{ref} \in \mathbb{R}^{M \times 1} YrefRM×1 一起,我们获得 N N N 个点集作为 r e f 3 D \mathit{ref}_{3D} ref3D。对于车道类别,我们采用沿点维度的最大池化,然后是每个实例的MLP,公式如下:
在这里插入图片描述
其中 C ∈ R N × K C \in \mathbb{R}^{N \times K} CRN×K 表示类别对数, K K K 是可能的类别数量。分类为“背景”的车道将在我们的最终预测中被丢弃。这里我们应用与第3.2节中辅助分割相同的二分匹配结果来分配3D车道标签。此策略确保每个查询的一致2D分割和3D车道检测监督。

给定车道查询的匹配真值标签,我们计算每个匹配对的相应损失。具体来说,我们的总损失由三部分组成:实例分割辅助损失 L s e g L_{seg} Lseg(第3.2节)、3D地面感知平面更新损失 L p l a n e L_{plane} Lplane(第3.3节)和3D车道预测损失 L l a n e L_{lane} Llane。公式如下:
在这里插入图片描述

4. 实验评测

我们在三个3D车道基准数据集上评估了我们的方法:OpenLane \cite{3},Apollo \cite{8} 和 ONCE-3DLanes \cite{49}。

4.1 数据集和评估指标

\paragraph{OpenLane \cite{3}} 是一个全面的大规模3D车道检测基准,基于Waymo数据集 \cite{40} 构建。该数据集由1000段视频组成,包括在各种天气、地形和亮度条件下以1280×1920分辨率捕获的20万帧。OpenLane包含88万条车道注释,分布在14个类别中,为3D车道检测算法提供了一个真实且多样的挑战集合。

\paragraph{Apollo Synthetic \cite{8}} 使用游戏引擎生成。它包含超过1万张图片,涵盖三个不同的场景:1)平衡场景,2)罕见场景,3)具有视觉变化的场景。数据集包括多样化的地形结构,如高速公路、城市和住宅区,以及各种照明条件。

\paragraph{ONCE-3DLanes \cite{49}} 是一个真实世界的3D车道数据集,基于ONCE数据集 \cite{32} 构建。它包含21.1万张图片,涵盖不同的位置、光照条件、天气条件和坡度场景。值得注意的是,ONCE-3DLanes中没有提供相机外参。

\paragraph{评估指标} 我们遵循官方评估指标对上述数据集中的模型进行评估。评估被公式化为基于最小成本流的匹配问题,其中车道匹配成本通过对预定义的 y y y 上的逐点距离的平方和开平方得到。若预测车道的至少75%的点与真实点的逐点距离小于1.5米的预定义阈值,则视为匹配 \cite{8, 3}。误差在近距离([0, 40]m)和远距离([40, 100]m)沿前进方向测量。此外,我们使用平均精度(AP)指标来评估Apollo Synthetic数据集上的性能 \cite{8}。

4.2 实验设置

\paragraph{实现细节} 我们使用720×960的输入形状,并采用ResNet-50 \cite{9} 作为骨干网络,从三个比例上提取特征图,空间缩减比率分别为 1 8 \frac{1}{8} 81 1 16 \frac{1}{16} 161 1 32 \frac{1}{32} 321。之后,我们利用FPN \cite{18} 生成多尺度特征,构建一个四层特征金字塔。具体来说,我们应用膨胀卷积将小特征图上采样到最大的比例,即 1 8 \frac{1}{8} 81,并聚合所有特征作为解码器的输入。对于解码器,我们采用具有4个注意头、8个样本点和256维嵌入的可变形注意力 \cite{57}。与目标检测中的常见设置 \cite{52} 一致,我们在LATR中使用六层解码器作为默认版本,并使用两层设计作为轻量版本LATR-Lite。

\paragraph{训练} 我们所有的实验都使用带有0.01权重衰减的AdamW优化器训练。学习率设置为 2 × 1 0 − 4 2 \times 10^{-4} 2×104 并使用余弦退火调度器。我们使用32的批量大小,并在A100 GPU上训练模型。我们在OpenLane和ONCE-3DLanes数据集上训练24个周期,在Apollo数据集上训练100个周期。
在这里插入图片描述

4.3 主要结果

我们在OpenLane验证集上的主要结果如表1所示。可以观察到几个关键趋势:1)LATR在所有先前方法中有显著超越。相比于之前的最新方法Persformer \cite{3},在F1得分上提升了11.4,在类别准确性上提升了2.5。2)在近距离和远距离内,LATR在X和Z方向的误差均有显著减少。具体来说,在近距离/远距离内,X和Z方向的误差分别减少了0.100m/0.066m和0.037m/0.037m。3)尽管LATR-Lite仅有两个解码器层,它仍然取得了与LATR相当的结果。4)虽然Persformer(Persformer-Res50)通过使用与LATR相同的骨干网络和输入形状将F1从50.5提高到53.0,但它仍显著落后于LATR。

除了OpenLane的主要结果外,我们还在OpenLane验证集中的各种场景下进行了全面的实验。如表2所示,我们提出的LATR在六个具有挑战性的场景中显著超越了最新的方法。具体来说,我们观察到我们的模型在复杂场景(如曲线和合并/分离)下的车道检测更准确(F1分别提升了11.6和10.8),这得益于我们混合车道查询嵌入的设计。此外,我们的模型在上下坡场景中的表现也有显著提升(F1提升了10.0),这表明我们的动态3D地面设计使模型能够更好地感知道路。这些发现证明了我们提出的方法在处理多样驾驶场景中的有效性。在图4中,我们展示了LATR和Persformer \cite{3} 的定性比较,其中我们的方法在几个具有挑战性的场景中表现出更准确的预测。然而,我们也观察到在具有挑战性的光照条件、极端天气和夜间情况下,相比于其他场景,改进相对较小(分别为7.4和6.3)。这可能归因于视觉中心方法的内在限制,其重度依赖于视觉线索进行感知。
在这里插入图片描述
在这里插入图片描述

表3总结了我们在Apollo数据集上的实验结果。我们在三个不同的场景中评估了我们的方法,并按照文献 \cite{8} 研究了F1得分、AP和误差。尽管性能接近饱和,我们的LATR在所有场景和指标上表现出优越性。值得注意的是,我们的设计在视觉变化场景下显著提升了4.3个点的F1和3.6个点的AP,表明了我们动态地面设计的有效性。此外,我们观察到我们的模型在使用两层和六层解码器时都取得了相当的结果。
在这里插入图片描述

我们在表4中展示了ONCE-3DLanes \cite{49} 数据集上的实验结果,其中我们采用了与 \cite{3} 类似的相机设置。尽管相机参数不准确,我们的方法在该数据集上显著超越了现有的基准。与PersFormer相比,LATR在F1得分上提高了6.26,并在 τ C D = 0.3 \tau_{CD}=0.3 τCD=0.3 \cite{49} 和prob=0.5的标准下将CD误差减少了0.022m。这一结果展示了我们LATR在不同数据集上的有效性。总体而言,这些在现实和合成数据集上的实验展示了我们提出方法的泛化性和鲁棒性,表明其在现实场景中应用的潜力。
在这里插入图片描述

我们在OpenLane-300数据集上进行了详尽的分析,以验证我们在LATR中的设计选择的有效性,按照文献 \cite{3} 的方法。关于模型复杂性和额外消融研究(包括解码器层和输入尺寸变化)的更多细节在附录中提供。

表5中的第一行和第三行显示了使用可学习权重替换车道级嵌入的结果。使用可学习嵌入(不含图像特征的先验知识)的性能远低于其车道感知对照(F1得分分别为61.5对70.4和45.5对67.9)。此外,无论车道级嵌入是如何获得的,当从LATR中移除动态3D地面PE时,性能均有显著下降。可学习权重替换车道级嵌入时,这一差距更为显著(61.5→45.5)。总体而言,表5中的每个组件单独应用时均显著提高了相对于基线的性能。采用这两种设计进一步提升了性能并实现了最佳结果。
在这里插入图片描述
在LATR中,每个查询都通过点级嵌入得到增强,对应于最终车道预测中的单个点。属于同一车道级嵌入的每个M点被分组在一起以形成完整的车道。在这部分中,我们探索了另一种选择,使用车道级嵌入 Q l a n e ∈ R N × C Q_{lane} \in \mathbb{R}^{N \times C} QlaneRN×C 作为最终的查询嵌入。与点级查询方法不同,这种设置需要为每个车道查询预测M个不同的点。如表6所示,与我们提出的设置相比,使用纯车道级查询会导致明显的性能下降(例如,F1从70.4降至66.5)。
在这里插入图片描述

为了评估我们动态3D地面位置嵌入的有效性,我们与几种替代方案进行了比较。具体来说,我们探索了使用固定截锥体 \cite{25} 和固定地面平面将3D位置分配给图像像素的方法,以及我们提出的采用迭代更新的地面平面的方法。如表7所示,将3D位置信息引入图像像素中提升了所有评估方法的性能。正如预期的那样,通过截锥体生成3D位置的结果比使用平面差,这是合理的,因为车道存在于地面上。因此,采用截锥体引入了大量存在于空中的点,这些地方不存在车道。此外,表7显示,使用动态更新的平面优于固定平面,证明了我们设计选择的有效性。
在这里插入图片描述

5. 讨论和总结

虽然我们的模型在三个公共数据集上显著提升了性能,甚至超过了多模态方法 \cite{30},但它确实遇到了一些失败案例。作为一种视觉中心方法,LATR容易受到关键视觉线索(例如,眩光或模糊、黑暗中不可见的车道或严重阴影)的丧失影响,这可以在表2中观察到。在这种具有挑战性的情况下,结合LiDAR中的丰富3D几何信息可能会提供支持,并有望为3D车道检测提供更鲁棒的解决方案。探索多模态方法是未来研究的一个开放且有趣的途径。

在这项工作中,我们提出了LATR,这是一种简单但有效的端到端3D车道检测框架,达到了最佳性能。它跳过了代理视图转换,直接在前视图特征上执行3D车道检测。我们提出了一种有效的车道感知查询生成器,以提供查询信息先验,并设计了一种混合嵌入,通过聚合车道级和点级特征来增强查询感知能力。此外,为了构建2D-3D连接,我们设计了一个假设的3D地面,以将3D空间信息编码到2D特征中。广泛的实验表明,LATR取得了显著的性能。我们相信我们的工作可以惠及社区并激发进一步的研究。
在这里插入图片描述

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

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

相关文章

vscode搭建PyQt + Quick开发环境

VScode搭建PyQt Quick开发环境 目录 环境准备 🔔安装必要的Python包 🔔🔎 PyQt5和PySide2的区别💾 安装PyQt5💾 安装PySide2 配置VScode 🔔💻 安装扩展 代码示例 🔔✔ Python调用Qt…

【Django】django自带后台管理系统样式错乱,uwsgi启动css格式消失的问题

正常情况: ERROR:(css、js文件加载失败) 问题:CSS加载的样式没有了,原因:使用了django自带的admin,在使用 python manage.py runserver启动 的时候,可以加载到admin的文…

如何学习Spark:糙快猛的大数据之旅

作为一名大数据开发者,我深知学习Spark的重要性。今天,我想和大家分享一下我的Spark学习心得,希望能够帮助到正在学习或准备学习Spark的朋友们。 目录 Spark是什么?学习Spark的"糙快猛"之道1. 不要追求完美,在实践中学习2. 利用大模型作为24小时助教3. 根据自己的节…

无人机的发展前景大吗?

随着科技的飞速发展,无人机(Unmanned Aerial Vehicle, UAV)作为一种新兴的航空器,已逐渐从军事领域渗透到民用领域。无人机的应用广泛,包括但不限于航拍、物流配送、环境监测、农业植保、应急救援等多个领域。本文旨在…

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)

1. 引言 在现代软件开发流程中,持续集成(CI)和持续交付(CD)已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器,通过其强大的插件生态系统和灵活的配置选项&#xf…

十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

静态代理与动态代理的区别与选择

在当今软件开发领域,代理模式作为一种重要的设计模式,广泛应用于增强现有对象功能、控制访问权限以及实现远程调用等场景。本文旨在深入探讨静态代理与动态代理之间的核心区别,帮助开发者理解两者在实现机制、灵活性、性能表现及适用场景上的…

Filebeat k8s 部署(Deployment)采集 PVC 日志发送至 Kafka——日志处理(二)

文章目录 前言Filebeat Configmap 配置Filebeat Deployment验证总结 前言 在上篇文章中总结了 Django 日志控制台输出、文件写入按天拆分文件,自定义 Filter 增加 trace_id 以及过滤——日志处理(一),将日志以 JSON 格式写入日志文件。我们的…

无人机侦察:二维机扫雷达探测设备技术详解

二维机扫雷达探测设备采用机械扫描方式,通过天线在水平方向和垂直方向上的转动,实现对目标空域的全方位扫描。雷达发射机发射电磁波信号,遇到目标后产生反射,反射信号被雷达接收机接收并处理,进而得到目标的位置、速度…

spring MVC 简单的案例(2)用户登录

一、用户登录 1&#xff09;前端代码 index.html <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, user-scalableno, initial-scale1.0, maxim…

git commit报错: pre-commit hook failed (add --no-verify to bypass)

原因&#xff1a; 在提交前做代码风格检查&#xff0c;若检查不通过&#xff0c;则提交失败 解决方案&#xff1a;进入项目的.git>hooks目录&#xff0c;找到pre-commit文件&#xff0c;删除即可

单周期CPU设计(二)取指模块(minisys)(verilog)(vivado)

timescale 1ns / 1ps // module Ifetc32 (input reset, // 复位信号(高电平有效)input clock, // 时钟(23MHz)output [31:0] Instruction, // 输出指令到其他模块output [31:0] PC_plus_4_out, // (pc4)送执行单元input [31:0] Add_result, // 来自执行单元,算出…

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用 STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单…

【学习css3】使用flex和grid实现等高元素布局

过往的实现方法是使用浮动加计算布局来实现&#xff0c;当flex和grid问世时&#xff0c;这一切将变得简单起来 一、简单的两列实现 1、先看页面效果 2、css代码 .container {padding: 10px;width: 100ch;margin: 0 auto;box-shadow: inset 0 0 0 2px #ccc;}.column {margin: 2…

[Redis]典型应用——分布式锁

什么是分布式锁&#xff1f; 在一个分布式系统中&#xff0c;也会涉及到多个节点访问同一个公共资源的情况。此时就需要通过锁来做互斥控制&#xff0c;避免出现类似于"线程安全"的问题 举个例子&#xff0c;在平时抢票时&#xff0c;多个用户可能会同时买票&#…

大语言模型-文本向量模型评估基准 MTEB

MTEB&#xff08;Massive Text Embedding Benchmark&#xff09; 涵盖112种语言的58个数据集&#xff0c;包含如下8种任务。 1、双语文本挖掘&#xff08;Bitext Mining&#xff09; 任务目标&#xff1a; 在双语语料库中识别语义等价的句子对。 任务描述&#xff1a; 输入…

Nature子刊 | ATAC-seq、RNA-seq和蛋白组联合分析揭示脂质激活转录因子PPARα在肾脏代偿性肥大的作用机制

2023年6月&#xff0c;美国国立心肺血液研究所的研究团队在Nature Communications上发表题为“Signaling mechanisms in renal compensatory hypertrophy revealed by multi-omics”的文章&#xff0c;该研究通过在单侧肾切除的小鼠模型中使用多组学方法&#xff08;蛋白质组学…

深入浅出WebRTC—NACK

WebRTC 中的 NACK&#xff08;Negative Acknowledgment&#xff09;机制是实时通信中处理网络丢包的关键组件。网络丢包是常见的现象&#xff0c;尤其是在无线网络或不稳定连接中。NACK 机制旨在通过请求重传丢失的数据包来减少这种影响&#xff0c;从而保持通信的连续性和质量…

Open3D 非线性最小二乘法拟合空间球

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键代码 2.1.1定义残差函数 2.1.2拟合球面 2.2完整代码 三、实现效果 3.1原始点云 3.2拟合后点云 3.3结果数据 前期试读&#xff0c;后续会将博客加入下列链接的专栏&#xff0c;欢迎订阅 Open3D点云算法与点…

spark 动态资源分配dynamicAllocation

动态资源分配&#xff0c;主要是spark在运行中可以相对合理的分配资源。 初始申请的资源远超实际需要&#xff0c;减少executor初始申请的资源比实际需要少很多&#xff0c;增多executorSpark运行多个job&#xff0c;这些job所需资源有的多有的少&#xff0c;动态调整executor…