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

news2024/12/23 13:29:27

文章目录

  • 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.coloradmin.cn/o/1936555.html

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

相关文章

【NetTopologySuite类库】GeometryFixer几何自动修复,解决几何自相交等问题

介绍 NetTopologySuite 2.x 提供了GeometryFixer类,该类能够将几何体修复为有效几何体,同时尽可能保留输入的形状和位置。几何的IsValid属性,反映了几何是否是有效的。 输入的几何图形始终会被处理,因此即使是有效的输入也可能会…

特征工程方法总结

方法有以下这些 首先看数据有没有重复值、缺失值情况 离散:独热 连续变量:离散化(也成为分箱) 作用:1.消除异常值影响 2.引入非线性因素,提升模型表现能力 3.缺点是会损失一些信息 怎么分:…

pdf太大了怎么变小 pdf太大了如何变小一点

在数字化时代,pdf文件已成为工作与学习的重要工具。然而,有时我们可能会遇到pdf文件过大的问题,这会导致传输困难或者存储不便。别担心,下面我将为你介绍一些实用的技巧和工具,帮助你轻松减小pdf文件的大小。 方法一、…

docker的学习(一):docker的基本概念和命令

简介 docker的学习,基本概念,以及镜像命令和容器命令的使用 docker docker的基本概念 一次镜像,处处运行。 在部署程序的过程中,往往是很繁琐的,要保证运行的环境,软件的版本,配置文件&…

SQLite数据库在Android中的使用

目录 一,SQLite简介 二,SQLIte在Android中的使用 1,打开或者创建数据库 2,创建表 3,插入数据 4,删除数据 5,修改数据 6,查询数据 三,SQLiteOpenHelper类 四&…

信弘智能与图为科技共探科技合作新蓝图

本期导读 近日,图为信息科技(深圳)有限公司迎来上海信弘智能科技有限公司代表的到访,双方共同探讨英伟达生态系统在人工智能领域的发展。 在科技日新月异的今天,跨界合作与技术交流成为了推动行业发展的重要驱动。7月…

使用JWT双令牌机制进行接口请求鉴权

在前后端分离的开发过程中,前端发起请求,调用后端接口,后端在接收请求时,首先需要对收到的请求鉴权,在这种情况先我们可以采用JWT机制来鉴权。 JWT有两种机制,单令牌机制和双令牌机制。 单令牌机制服务端…

JAVA 异步编程(线程安全)二

1、线程安全 线程安全是指你的代码所在的进程中有多个线程同时运行,而这些线程可能会同时运行这段代码,如果每次运行的代码结果和单线程运行的结果是一样的,且其他变量的值和预期的也是一样的,那么就是线程安全的。 一个类或者程序…

Linux驱动开发-06蜂鸣器和多组GPIO控制

一、控制蜂鸣器 1.1 控制原理 我们可以看到SNVS_TAMPER1是这个端口在控制着蜂鸣器,同时这是一个PNP型的三极管,在端口输出为低电平时,蜂鸣器响,在高电平时,蜂鸣器不响 1.2 在Linux中端口号的控制 gpiochipX:当前SoC所包含的GPIO控制器,我们知道I.MX6UL/I.MX6ULL一共包…

整顿职场?安全体系建设

本文由 ChatMoney团队出品 00后整顿职场,职场到底怎么了?无压力、无忧虑的00后可以直接开整,那绝大部分打工人寒窗苦读、闯过高考,艰辛毕业,几轮面试杀入职场,结婚买房、上有老下有小,就活该再被…

怎么剪辑音频文件?4款适合新的音频剪辑软件

是谁还不会音频剪辑?无论是个人音乐爱好者,还是专业音频工作者,我们都希望能找到一款操作简便、功能强大且稳定可靠的音频剪辑工具。今天,我就要为大家带来四款热门音频剪辑软件的体验感分享。 一、福昕音频剪辑 福昕音频剪辑是…

JUnit 单元测试

JUnit 测试是程序员测试,就是白盒测试,可以让程序员知道被测试的软件如何 (How)完成功能和完成什么样(What)的功能。 下载junit-4.12和hamcrest-core-1.3依赖包 相关链接 junit-4.12:Central …

【JavaScript 算法】最长公共子序列:字符串问题的经典解法

🔥 个人主页:空白诗 文章目录 一、算法原理状态转移方程初始条件 二、算法实现注释说明: 三、应用场景四、总结 最长公共子序列(Longest Common Subsequence,LCS)是字符串处理中的经典问题。给定两个字符串…

Go语言之参数传递

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 修改参数 假设你定义了一个函数,并在函数里对参数进行…

string相关

int main() {// world替换成 xxxxxxxxxxxxxxxxxxxxxxstring s1("hello world hello bit");s1.replace(6, 5, "xxxxxxxxxxxxxxxxxxxxxx");cout << s1 << endl;s1.replace(6, 23, "yyyyy");cout << s1 << endl;// 所有空格…

C++ | Leetcode C++题解之第260题只出现一次的数字III

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> singleNumber(vector<int>& nums) {int xorsum 0;for (int num: nums) {xorsum ^ num;}// 防止溢出int lsb (xorsum INT_MIN ? xorsum : xorsum & (-xorsum));int type1 0, …

类和对象:构造函数

构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然名称叫构造&#xff0c;但是构造函数的主要任务并不是开空间创建对象(我们常使⽤的局部对象是栈帧创建时&#xff0c;空间就开好了)&#xff0c;⽽是对象实例化时初始化对象。构造函数的本质是要替代…

通过splunk web服务将服务器上文件下载到本地

1. 需求说明 工作中经常遇到需要将服务器上的文件下载到本地&#xff0c;但是由于各种网络环境限制&#xff0c;没办法使用winscp或者xftp工具&#xff0c;那么如何将服务器上的文件下载下来呢&#xff1f; 这里提供一种思路: 如果服务器上安装有web服务&#xff0c;可将待下…

MongoDB教程(十四):MongoDB查询分析

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、查询分…

防火墙之内容安全过滤技术篇

深度行为检测技术&#xff1a;是一种基于应用层的流量检测和控制技术 DPI:针对完整的数据包&#xff0c;进行内容的识别和检测 基于应用网关的检测技术 --- 有些应用控制和数据是分离的&#xff0c;比如一些视频流。一开始会通过TCP协议链接之后&#xff0c;协商一些参数&#…