自动驾驶三维车道线检测系列—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} I∈R3×H×W,3D车道线检测的目标是预测图像中的车道线的3D位置。车道线由一组3D点表示,记为 Y = { L i ∣ i ∈ 1 , . . . , N } Y = \{L_i | i \in 1, ..., N\} Y={Li∣i∈1,...,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} X∈RC×H×W。之后,我们使用车道感知查询生成器生成车道感知查询 Q ∈ R ( N × M ) × C Q \in \mathbb{R}^{(N \times M) \times C} Q∈R(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} yi∈Yref 的局部特征,如上所述。然后我们将这两个级别结合作为我们的最终查询嵌入。这种混合嵌入方案对查询进行了不同车道的判别性特征编码,并通过共享点级嵌入使每个查询能够在特定深度捕捉共享模式。这里的直觉是,不同车道在同一深度的点在图像投影过程中将经历统一的缩放因子。此外,共享同一条道路会在3D空间中赋予车道线共享属性,如相同的海拔高度。该模块的内部结构如图2部分(b)所示。
-
车道级嵌入从图像特征图 X ∈ R C × H × W X \in \mathbb{R}^{C \times H \times W} X∈RC×H×W 编码 N N N 个车道实例的特征。具体来说,我们利用一个车道感知特征聚合器基于一组实例激活图(IAMs) A ∈ R N × ( H × W ) A \in \mathbb{R}^{N \times (H \times W)} A∈RN×(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} Qlane∈RN×C:
在训练期间,我们在 Q l a n e Q_{lane} Qlane 顶部添加一个辅助分割头 \cite{4},以预测2D车道实例掩码,这些掩码由投影的3D注释监督。按照 \cite{4} 的方法,我们使用基于Dice的双向匹配为 N N N 个实例掩码分配真值标签。我们还使用相同的匹配结果为我们的最终车道线预测分配标签。更多细节请参考我们的补充材料。 -
点级嵌入表示车道线上点之间的关系。与从图像特征中提取不同,我们将其表示为一组可学习的权重 Q p o i n t ∈ R M × C Q_{point} \in \mathbb{R}^{M \times C} Qpoint∈RM×C,其中每个 q p o i n t i ∈ R 1 × C q_{point}^i \in \mathbb{R}^{1 \times C} qpointi∈R1×C 对应于预定义的 Y r e f Y_{ref} Yref 中的一个 y i y_i yi。这些嵌入将在训练期间学习。
-
车道感知查询嵌入 Q ∈ R ( N × M ) × C Q \in \mathbb{R}^{(N \times M) \times C} Q∈R(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} P∈RP×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)∣i∈1,...,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} Mp∈R3×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} PE∈RC×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} Q∈R(N×M)×C 和3D地面位置嵌入 P E ∈ R C × ( H × W ) PE \in \mathbb{R}^{C\times (H\times W)} PE∈RC×(H×W) 来公式化消息交换过程如下:
其中 X ∈ R C × ( H × W ) X \in \mathbb{R}^{C \times (H \times W)} X∈RC×(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,Δz∈RN×M×1 表示相对于最后一个解码器层中的相应参考点(第3.4节)的偏移。 v ∈ R N × M × 1 v \in \mathbb{R}^{N \times M \times 1} v∈RN×M×1 表示每个预测车道点的可见性,这表明投影点在图像中是否有效。与预定义的纵向坐标 Y r e f ∈ R M × 1 Y_{ref} \in \mathbb{R}^{M \times 1} Yref∈RM×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} C∈RN×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×10−4 并使用余弦退火调度器。我们使用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} Qlane∈RN×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取得了显著的性能。我们相信我们的工作可以惠及社区并激发进一步的研究。
相关文章:

自动驾驶三维车道线检测系列—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 车道线检测是自动驾驶中的一个基础但具有挑战性的任务。最近的进展主要依…...

守护动物乐园:视频AI智能监管方案助力动物园安全与秩序管理
一、背景分析 近日,某大熊猫参观基地通报了4位游客在参观时,向大熊猫室外活动场内吐口水的不文明行为。这几位游客的行为违反了入园参观规定并可能对大熊猫造成严重危害,已经被该熊猫基地终身禁止再次进入参观。而在此前,另一熊猫…...

FairGuard游戏加固入选《嘶吼2024网络安全产业图谱》
2024年7月16日,国内网络安全专业媒体——嘶吼安全产业研究院正式发布《嘶吼2024网络安全产业图谱》(以下简称“产业图谱”)。 本次发布的产业图谱,共涉及七大类别,127个细分领域。全面展现了网络安全产业的构成和重要组成部分,探…...
数据仓库事实表
数据仓库中的三种常见事实表类型:事务事实表、周期快照事实表和累积快照事实表 事务事实表: 事务事实表是记录事务级别数据的事实表。它记录了每个事务发生的具体度量指标,如销售金额、数量等。事务事实表的优势在于能够提供详细的事务级别…...
LeetCode题练习与总结:两数之和Ⅱ-输入有序数组--167
一、题目描述 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 < index1 < index…...
在 Java 中,怎样设计一个可扩展且易于维护的微服务架构?
在Java中设计一个可扩展且易于维护的微服务架构,可以考虑以下几个方面: 模块化设计:将应用拆分为多个小的、独立的模块,每个模块负责处理特定的业务逻辑。每个模块可以独立开发、测试和部署,增加或替换模块时不会影响其…...

零基础入门鸿蒙开发 HarmonyOS NEXT星河版开发学习
今天开始带大家零基础入门鸿蒙开发,也就是你没有任何编程基础的情况下就可以跟着石头哥零基础学习鸿蒙开发。 目录 一,为什么要学习鸿蒙 1-1,鸿蒙介绍 1-2,为什么要学习鸿蒙 1-3,鸿蒙各个版本介绍 1-4࿰…...

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)
1. 引言 在现代软件开发流程中,持续集成(CI)和持续交付(CD)已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器,通过其强大的插件生态系统和灵活的配置选项…...
ceph进程网卡绑定逻辑
main() //如osd进程,是ceph_osd.cc文件的main函数;mon进程,是ceph_mon.cc文件的main函数 -->pick_addresses() // 会读取"cluster_network_interface"和"public_network_interface"这两个配置项来过滤ip ---->fill…...
学习opencv
初步学习可以参考: OpenCV学习之路(附加资料分享)_opencv资料-CSDN博客 【OpenCV】OpenCV常用函数合集【持续更新】_opencv函数手册-CSDN博客 整体框架可以参考: OpenCV学习指南:从零基础到全面掌握(零…...

利用双端队列 实现二叉树的非递归的中序遍历
双端队列:双向队列:支持插入删除元素的线性集合。 java官方文档推荐用deque实现栈(stack)。 pop(): 弹出栈中元素,也就是返回并移除队头元素,等价于removeFirst(),如果队列无元素,则…...

昇思25天学习打卡营第18天 | 基于MindSpore的GPT2文本摘要
昇思25天学习打卡营第18天 | 基于MindSpore的GPT2文本摘要 文章目录 昇思25天学习打卡营第18天 | 基于MindSpore的GPT2文本摘要数据集创建数据集数据预处理Tokenizer 模型构建构建GPT2ForSummarization模型动态学习率 模型训练模型推理总结打卡 数据集 实验使用nlpcc2017摘要数…...

科研绘图系列:R语言circos图(circos plot)
介绍 Circos图是一种数据可视化工具,它以圆形布局展示数据,通常用于显示数据之间的关系和模式。这种图表特别适合于展示分层数据或网络关系。Circos图的一些关键特点包括: 圆形布局:数据被组织在一个或多个同心圆中,每个圆可以代表不同的数据维度或层次。扇区:每个圆被划…...
追踪Conda包的踪迹:深入探索依赖关系与管理
追踪Conda包的踪迹:深入探索依赖关系与管理 Conda作为Python和其他科学计算语言的包管理器,不仅提供了安装、更新和卸载包的功能,还有一个强大的包跟踪功能,帮助用户理解包之间的依赖关系和管理环境。本文将详细解释如何在Conda中…...

苹果电脑pdf合并软件 苹果电脑合并pdf 苹果电脑pdf怎么合并
在数字化办公日益普及的今天,pdf文件因其跨平台兼容性强、格式稳定等特点,已经成为工作、学习和生活中不可或缺的文件格式。然而,我们常常面临一个问题:如何将多个pdf文件合并为一个?这不仅有助于文件的整理和管理&…...
axios(ajax请求库)
json-server(搭建http服务) json-server用来快速搭建模拟的REST API的工具包 使用json-server 下载:npm install -g json-server创建数据库json文件:db.json开启服务:json-srver --watch db.json axios的基本使用 <!doctype html>…...

Ideal窗口中左右侧栏消失了
不知道大家在工作过程中有没有遇到过此类问题,不论是Maven项目还是Gradle项目,突然发现Ideal窗口右侧图标丢失了,同事今天突然说大象图标不见了,不知道怎样刷新gradle。 不要慌张,下面提供一些解决思路: 1…...
麦芒30全新绽放,中国电信勾勒出AI手机的新方向
高通总裁兼CEO克里斯蒂亚诺阿蒙曾在媒体采访时表示:2024年将成为全球AI手机元年,生成式AI正在“非常快”的进入手机。 把大模型装进手机,由此成了智能终端演进的新方向。三星、华为、OPPO、小米等品牌动作频频,纷纷抢滩AI手机市场…...

数据结构之初始二叉树(3)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 二叉树的基本操作 通过上篇文章的学习,我们简单的了解了二叉树的相关操作。接下来就是有…...
egret 白鹭的编译太慢了 自己写了一个
用的swc 他会检测git的改变 const simpleGit require(simple-git); const fs require(fs); const path require(path); // 初始化 simple-git const swc require(swc/core); const baseDir D:\\project; const gameDir game\\module\\abcdefg; const gitDir D:\\projec…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...