1. 概述
单目3D车道检测对可靠的自动驾驶系统至关重要,并且最近发展迅速。现有流行的方法主要使用基于前视(FV)空间的预定义3D锚点进行车道检测,旨在减轻视图变换的影响。然而,这种基于FV的方法在FV和3D空间之间的透视几何失真引入了极其密集的锚点设计,最终导致混乱的车道表示。在本文中,我们引入了一种新颖的先验引导视角的车道检测方法,并提出了一种名为PVALane的端到端框架,该框架利用2D先验知识实现精确高效的3D车道检测。由于2D车道预测可以为车道存在提供强有力的先验,PVALane利用FV特征在2D空间中生成具有潜在车道的稀疏先验锚点。这些动态先验锚点帮助PVALane实现了清晰的车道表示,并由于减少了车道搜索空间而有效提高了PVALane的精度。此外,通过利用这些先验锚点并在FV和鸟瞰(BEV)空间中表示车道,我们有效地对齐并合并了来自FV和BEV特征的语义和几何信息。在OpenLane和ONCE-3DLanes数据集上进行的大量实验表明,我们的方法相较于现有的最先进方法具有优越的性能,并表现出极佳的鲁棒性。
2. 背景介绍
作为自动驾驶系统中的一个基础模块,鲁棒的车道检测受到了广泛的研究关注,并取得了前所未有的进展。然而,基于前视(FV)空间的车道检测模型只能提供2D图像空间中的预测结果,不能直接应用于复杂的现实世界场景(Neven等人,2018;Pan等人,2018;Liu等人,2021b)。作为一个有前途的方向,提出了3D车道检测来解决上述问题。它旨在构建一个模型,从单目2D图像中提取车道特征,然后在地面坐标系中检测车道。
在3D目标检测(Liang等人,2018;Li等人,2022)成功的推动下,当前的3D车道检测模型(Garnett等人,2019;Guo等人,2020;Chen等人,2022)通常通过使用逆透视映射(IPM)将FV特征转换为鸟瞰(BEV)空间来检测3D车道。由于在俯视平面上不同车道的外观和几何形状相似,基于BEV的方法表现出几何平移不变性。尽管在BEV空间中的表示提供了更好的几何信息,但对IPM的依赖导致了若干意想不到的问题。如图1(a)所示,IPM的平坦地面假设在上坡或下坡情况下使得BEV和3D地面真值(GT)空间未对齐,因此该方法可能无法推广到具有不同视觉外观的粗糙地面场景。其次,IPM不可避免地导致FV特征中原始语义和上下文信息的丢失。
为了解决这些挑战,最近的方法(Yan等人,2022;Huang等人,2023)已经转向直接使用FV中的语义信息进行3D车道预测。具体而言,该方法通过将预定义的3D锚点投影到FV图像中的相应位置进行采样,然后基于这些锚点进行回归。尽管这种方法消除了视图变换的影响,但由于地面到图像的投影引入了透视几何失真。如图1(b)所示,FV图像上的锚点投影在远处难以区分,但在近处却显著分散,因此需要密集的锚点设计来减轻这些几何差异。然而,引入这些密集锚点可能导致动态场景中的特征重叠和错误检测,从而限制其在几何导向任务(如3D车道检测)中的有效性。
在本文中,我们介绍了PVALane,一种先验引导的3D车道检测模型,利用2D先验知识精确估计3D车道位置,如图1©所示。不同于直接利用经验密集锚点进行车道检测(Huang等人,2023),我们建立了先验锚点,这些锚点几乎可以从2D预测中免费获得,并应用于后续的3D车道检测。具体而言,在主干特征的顶部,我们构建了一个先验锚点网络(PAN),它将预定义的3D锚点投影到2D空间以计算其目标概率,从而过滤掉没有潜在车道的锚点并将其用作先验锚点。这个先验锚点明确提供了一个强有力的先验,指示车道位置,并确保仅使用高质量的先验锚点进行3D车道检测。因此,由于减少了车道搜索空间,它可以有效提高PVALane的精度。此外,PAN仅需要少量附加的全连接层,并直接在FV特征上进行,因此它可以作为一个易于部署的模块集成并以端到端的方式进行训练。
基于各种视图特征倾向于利用不同视图属性(例如上下文和几何)和区域信息进行车道检测的直观洞察(如图2所示),我们进一步提出了一个先验引导的视图无关特征对齐模块(PVFA)。具体而言,PVFA将先验锚点投影到FV和BEV空间,通过采样获取它们的相应特征,然后将它们融合在一起。由于先验锚点在3D空间中定义且非常稀疏,它们可以有效地缩小FV和BEV采样特征之间的关联。此外,这个共享的采样特征空间将后续的车道检测从视图空间中解耦,使得PVALane本质上对视图无关并可扩展到多视图/交叉视图场景。
本文的贡献总结如下:
- 我们引入了一种车道检测的先验视角,并提出了一个端到端的PVALane框架,该框架利用2D先验知识实现精确高效的3D车道检测。
- 我们提出了一种新颖的先验锚点,它几乎可以从准确的2D预测中免费获得,并明确提供了一个强有力的先验,指示车道位置。
- 我们开发了一种视图无关的特征对齐方法,该方法利用先验锚点有效对齐和融合不同视图的几何和语义信息。
- 实验表明,PVALane在两个流行的3D车道检测基准上达到了新的最先进性能,并表现出极佳的鲁棒性。
3. 方法
与 \cite{Garnett2019, Chen2022} 类似,我们将 3D 车道定义为一系列具有预定义固定
y
y
y 坐标的 3D 点。具体来说,给定一个 3D 车道集合
L
3
D
=
{
l
i
}
i
=
1
N
l
L_{3D} = \{ l_i \}_{i=1}^{N_l}
L3D={li}i=1Nl,包含
N
l
N_l
Nl 条车道,我们将第
i
i
i 条车道表示为:
其中,
x
(
i
,
k
)
x^{(i,k)}
x(i,k),
y
k
y_k
yk,
z
(
i
,
k
)
z^{(i,k)}
z(i,k) 和二进制变量
vis
(
i
,
k
)
\text{vis}^{(i,k)}
vis(i,k) 分别表示当前车道第
k
k
k 个点的地面坐标和可见性。
我们 PVALane 的整体架构如图 3 所示。给定一个 2D 前视图 (FV) 图像作为输入,我们的模型首先通过 ResNet \cite{He2016} 主干网络提取 FV 特征。这些特征随后传递通过先验锚点网络,该网络生成指示相应 3D 锚点是否包含车道目标的车道概率。为了过滤冗余的 3D 锚点,我们进一步选择得分高于预定义阈值的锚点作为先验锚点。随后,FV 和鸟瞰图 (BEV) 特征通过两个特别设计的视图编码器进行编码,并通过将先验锚点投影到相应视图中,在共享的采样特征空间中对齐。最后,经过对齐的特征被传递到预测头以获得 3D 车道预测结果。
尽管 2D 特征由于透视几何失真不直接适用于几何导向任务,但我们考虑使用它们来通过先验引导的视角来增强 3D 车道检测。一方面,这个初始 FV 特征包含丰富的语义和上下文信息。另一方面,它不需要视图变换,从而能够快速生成先验信息。如大多数两阶段目标检测文献 \cite{Ren2015} 所示,轻量级的端到端先验网络可以快速生成区域先验,从而显著减少目标检测任务的复杂性。先验锚点网络的视觉解释见图 4。
受到 \cite{Huang2023} 的启发,我们将车道锚点定义为地面坐标系统中的 3D 锚点,以更好地适应 3D 车道形状。具体来说,给定一组固定的
y
y
y 位置
y
=
{
y
k
}
k
=
1
N
p
y = \{y_k\}_{k=1}^{N_p}
y={yk}k=1Np,第
j
j
j 个 3D 锚点
A
j
=
{
q
(
j
,
k
)
}
k
=
1
N
p
A_j = \{q(j,k)\}_{k=1}^{N_p}
Aj={q(j,k)}k=1Np 使用两个向量
x
j
x_j
xj 和
z
j
z_j
zj 定义一条 3D 车道线,其中
x
j
x_j
xj 和
z
j
∈
R
N
p
z_j \in \mathbb{R}^{N_p}
zj∈RNp 是相对于
N
p
N_p
Np 个预定义点位置的水平和垂直偏移量。
为了获得 3D 锚点的车道概率,我们首先将它们投影到 FV 特征
F
f
v
∈
R
H
f
v
×
W
f
v
×
C
F_{fv} \in \mathbb{R}^{H_{fv} \times W_{fv} \times C}
Ffv∈RHfv×Wfv×C 的 2D 平面上作为 2D 锚点,以提取它们的对应特征。具体来说,以第
j
j
j 个 3D 锚点
A
j
=
{
x
j
,
y
,
z
j
}
A_j = \{x_j, y, z_j\}
Aj={xj,y,zj} 为例,我们定义投影为:
其中
K
∈
R
3
×
3
K \in \mathbb{R}^{3 \times 3}
K∈R3×3 是内参矩阵,
T
g
→
c
∈
R
3
×
4
T_{g \to c} \in \mathbb{R}^{3 \times 4}
Tg→c∈R3×4 表示从地面坐标到相机坐标的转换矩阵,
z
~
j
\tilde{z}_j
z~j 表示到相机平面的深度。根据上述投影,记作
P
g
2
f
v
(
⋅
)
P_{g2fv}(\cdot)
Pg2fv(⋅),我们通过采样 FV 特征
F
f
v
F_{fv}
Ffv 来获得锚点特征
F
j
a
F_{ja}
Fja:
由于锚点特征
F
j
a
F_{ja}
Fja 包含对应 3D 锚点的语义特征,我们进一步应用一个主要分类头到
F
j
a
F_{ja}
Fja 以获得车道分类分数
p
j
p
r
i
∈
R
1
+
N
c
p_j^{pri} \in \mathbb{R}^{1 + N_c}
pjpri∈R1+Nc,其中
N
c
N_c
Nc 代表车道类别的数量。然后,根据分类分数计算
p
~
j
p
r
i
\tilde{p}_j^{pri}
p~jpri 以提供潜在的车道概率:
其中
c
n
∈
{
0
,
1
,
…
,
N
c
}
c_n \in \{0, 1, \ldots, N_c\}
cn∈{0,1,…,Nc},0 代表非车道类别,1(·) 表示指示函数,
S
(
⋅
)
S(\cdot)
S(⋅) 是 softmax 函数。每个值
p
~
j
p
r
i
\tilde{p}_j^{pri}
p~jpri 指示对应锚点包含车道的概率。因此,为了选择高质量的 3D 锚点作为先验锚点,我们简单地基于阈值
τ
\tau
τ 过滤低概率锚点:
其中
Ψ
j
(
⋅
)
\Psi_j (\cdot)
Ψj(⋅) 表示一个操作符,该操作符返回满足 $ \tilde{p}_j^{pri} > \tau $ 的
j
j
j 值。通过结合由这种高效的 2D 预测头提供的先验,3D 车道检测的复杂性可以显著降低。这使得模型能够优先处理更具挑战性的回归任务。
为了消除由于透视几何失真引起的正负样本不平衡的影响,我们采用了焦点损失 \cite{Lin2017b} 来训练分类:
其中
p
j
t
p_{jt}
pjt 是当前类别的预测概率,
α
\alpha
α 和
γ
\gamma
γ 是焦点损失的超参数,在我们的实验中分别设置为 0.25 和 2。
为了利用 FV 和 BEV 中的语义和几何信息,PVALane 同时从两个视图中学习特征。考虑到 FV 和 BEV 特征的不同视图表示,模型包含两个专门的编码器,以独立捕捉每个视图的特定信息。
对于每个 FV 特征
F
f
v
∈
R
H
f
v
×
W
f
v
×
C
F_{fv} \in \mathbb{R}^{H_{fv} \times W_{fv} \times C}
Ffv∈RHfv×Wfv×C,我们引入一个带有投影层的变换器编码器 \cite{Vaswani2017} 来捕捉全局语义和上下文信息:
其中
E
(
⋅
)
E(\cdot)
E(⋅) 表示变换器编码器层,
P
(
⋅
)
P(\cdot)
P(⋅) 是线性投影。这样的编码器使得模型能够利用高级语义信息来结合更大的上下文领域,改善整体场景理解。
为了充分利用顶视图平面的几何属性(即平移不变性),我们在 BEV 空间中提出了一种几何感知的 BEV 编码器。具体来说,给定一个具有坐标
(
u
f
,
v
f
)
(u_f, v_f)
(uf,vf) 的点
p
f
v
p_{fv}
pfv 在多尺度 FV 特征
F
f
v
o
l
F_{fvo}^l
Ffvol 中,IPM 将点
p
f
v
p_{fv}
pfv 映射到 BEV 空间中坐标为
(
x
b
,
y
b
)
(x_b, y_b)
(xb,yb) 的对应点
p
b
e
v
p_{bev}
pbev:
其中
S
f
→
b
S_{f \to b}
Sf→b 是前视图和 BEV 之间的尺度矩阵,
H
c
→
g
∈
R
3
×
3
H_{c \to g} \in \mathbb{R}^{3 \times 3}
Hc→g∈R3×3 表示从相机坐标到地面坐标的单应矩阵。类似于 FPN \cite{Lin2017a} 结构,将来自相邻金字塔层的两个 BEV 特征
F
b
e
v
l
F_{bev}^l
Fbevl 和
F
b
e
v
l
−
1
F_{bev}^{l-1}
Fbevl−1 通过下采样层
R
l
R_l
Rl 合并到上一层的空间维度。卷积块
C
l
(
⋅
)
C_l(\cdot)
Cl(⋅) 随后处理该混合物,以粗到细的方式将几何信息传播到更高层。该过程定义为:
其中
⊕
\oplus
⊕ 是拼接操作。在顶视图中,跨尺度共享知识具有增强模型处理复杂场景的鲁棒性的潜力。
通过利用 PAN 提供的先验锚点,我们进一步引入了先验引导的视图无关特征对齐模块 (PVFA),以有效地对齐和合并来自两个视图的丰富信息在共享的采样空间中。
以第
j
j
j 个先验锚点
A
j
p
r
i
=
{
q
(
j
,
k
)
p
r
i
}
k
=
1
N
p
A_j^{pri} = \{q(j,k)_{pri}\}_{k=1}^{N_p}
Ajpri={q(j,k)pri}k=1Np 为例,我们分别将其投影到 FV 和 BEV 空间,如图 5 所示。类似于 PAN,我们使用
P
g
2
f
v
(
A
j
p
r
i
)
P_{g2fv}(A_j^{pri})
Pg2fv(Ajpri) 表示先验锚点
A
j
p
r
i
A_j^{pri}
Ajpri 在 FV 中的投影,详细描述见公式 (2)。然后,我们使用双线性插值从 FV 编码器的输出特征 $ \tilde{F}_{g2fv}$ 在投影点
P
g
2
f
v
(
A
j
p
r
i
)
P_{g2fv}(A_j^{pri})
Pg2fv(Ajpri) 处采样 FV 锚点特征:
通过定义 BEV 中的投影为
P
g
2
b
e
v
(
⋅
)
=
P
f
v
2
b
e
v
(
P
g
2
f
v
(
⋅
)
)
P_{g2bev}(\cdot) = P_{fv2bev}(P_{g2fv}(\cdot))
Pg2bev(⋅)=Pfv2bev(Pg2fv(⋅)),我们进一步定义 BEV 空间特征的采样过程如下:
由于
F
^
j
f
v
\hat{F}_j^{fv}
F^jfv 和
F
^
j
b
e
v
\hat{F}_j^{bev}
F^jbev 是通过统一的先验锚点投影采样的,因此它们可以被视为视图无关的,从而可以在先验锚点的指导下轻松对齐。具体来说,我们首先将
F
^
j
f
v
\hat{F}_j^{fv}
F^jfv 和
F
^
j
b
e
v
\hat{F}_j^{bev}
F^jbev 中的
N
p
N_p
Np 个点转换到通道维度,并使用融合模块
Φ
f
u
s
(
⋅
)
\Phi_{fus}(\cdot)
Φfus(⋅) 合并 FV 和 BEV 锚点特征:
其中
F
(
⋅
)
F(\cdot)
F(⋅) 是扁平化操作。这个增强的特征包含不同视图的信息,使网络能够推断道路场景中的 3D 结构。此外,通过稀疏先验锚点对齐 FV 和 BEV 特征显著减少了它们之间的关联空间,从而提高了模型的效率。
给定对应于第 j j j 个先验锚点的融合特征,我们使用一个分类头和一个回归头来预测其车道概率 p j ∈ R 1 + N c p_j \in \mathbb{R}^{1 + N_c} pj∈R1+Nc、x 轴和 z 轴偏移量 Δ x j ∈ R N p \Delta x_j \in \mathbb{R}^{N_p} Δxj∈RNp、 Δ z j ∈ R N p \Delta z_j \in \mathbb{R}^{N_p} Δzj∈RNp 以及每个点的可见性 v i s j ∈ R N p vis_j \in \mathbb{R}^{N_p} visj∈RNp。因此,我们根据先验锚点 A j p r i = { x j , y , z j } A_j^{pri} = \{x_j, y, z_j\} Ajpri={xj,y,zj} 定义我们的 3D 车道提议为 P j = ( p j , x j + Δ x j , y , z j + Δ z j , v i s j ) P_j = (p_j, x_j + \Delta x_j, y, z_j + \Delta z_j, vis_j) Pj=(pj,xj+Δxj,y,zj+Δzj,visj)。
给定正提议对
{
P
i
}
i
=
1
N
p
o
s
\{P_i\}_{i=1}^{N_{pos}}
{Pi}i=1Npos 和对应的地面真值
{
G
i
}
i
=
1
N
p
o
s
\{G_i\}_{i=1}^{N_{pos}}
{Gi}i=1Npos,其中
G
i
=
{
x
~
i
,
z
~
i
,
v
i
s
~
i
}
G_i = \{ \tilde{x}_i, \tilde{z}_i, \tilde{vis}_i \}
Gi={x~i,z~i,vis~i},损失函数可以写为:
为了进一步增强 FV 和 BEV 的表示,我们引入了一个分割损失
L
s
e
g
L_{seg}
Lseg,受 LaneNet \cite{Neven2018} 启发。总损失函数定义为:
其中
λ
p
r
i
\lambda_{pri}
λpri 和
λ
s
e
g
\lambda_{seg}
λseg 在我们的实验中分别设置为 1.0 和 0.1。
4. 实验评测
实验在两个流行的 3D 车道检测基准数据集上进行:OpenLane \cite{Chen2022} 和 Once-3DLanes \cite{Yan2022}。在我们的实验中,我们使用最大 F1 分数、近距离(0-40 米)和远距离(40-100 米)的 X/Z 错误来评估模型的性能。
我们采用了 ResNet-50 \cite{He2016} 和 ImageNet \cite{Deng2009} 预训练权重作为 CNN 主干。公式 (5) 中的锚点过滤阈值 τ \tau τ 设置为 0.2,最大先验锚点数设置为 1000。对于 ResNet,提取 block1 之后的特征以构建 4 个金字塔层的 BEV 编码器,block4 特征传递到 FV 编码器以获得 FV 特征。使用四台 A100 进行模型训练,批量大小设置为 32。此外,PVALane 使用 Adam 优化算法 \cite{Kingma2017} 进行端到端训练,学习率设置为 2 × 1 0 − 4 2 \times 10^{-4} 2×10−4。在训练过程中,公式 (14) 中的 λ p r i \lambda_{pri} λpri 和 λ s e g \lambda_{seg} λseg 分别设置为 1.0 和 0.1。
我们将我们的方法与五种最先进的方法进行比较:3D-LaneNet \cite{Garnett2019}、GenLaneNet \cite{Guo2020}、PersFormer \cite{Chen2022}、Anchor3DLane \cite{Huang2023} 和 BEV-LaneDet \cite{Wang2023}。
我们在 OpenLane 验证集上的结果见表 1。从中可以看出,PVALane 在 F1 分数和类别准确度上达到了最先进的结果。使用 ResNet-50 作为主干,我们在 F1 分数上分别超过了 BEV-LaneDet 和 LATR 4.3% 和 0.8%。此外,通过使用 Swin Transformer 作为主干,PVALane 的性能显著提升。如表 2 所示,取所有场景的平均 F1 分数作为指标,我们分别在 F1 分数上超过了 BEV-LaneDet 和 LATR 5.2% 和 0.7%。此外,我们的方法在极具挑战性的场景(例如极端天气和夜间)中取得了显著改善,展示了我们方法的鲁棒性。
为了展示 PVALane 的效率,我们对使用不同主干的 PVALane 推理速度进行了实验,如表 1 所示。使用 ResNet-18 作为主干,PVALane 达到了 108 FPS 的高速度,满足了自动驾驶的实时要求。
在表 3 中,我们展示了 ONCE-3DLanes 数据集上的结果。具体来说,PVALane 在精度上比最先进的方法提高了 1.48%,显示出显著的改进。这表明 PVALane 能够以先验引导的方式过滤冗余的锚点,从而减少了相较于密集锚点方法的假检测。
为了更好地展示我们的方法,我们可视化了测试阶段的检测结果,如图 6 所示。可以发现,PVALane 显著减少了假阳性车道,并且比 Anchor3DLane 显示出更精确的检测结果。此外,我们进一步可视化了先验锚点的生成过程,见图 7。基于 FV 特征提供的先验知识,PVALane 显著减少了用于下游车道检测的锚点数量。
在本节中,我们展示了消融分析,以验证所提出模块的有效性并证明我们所做的参数选择的合理性。所有实验都使用 ResNet-18 主干和批量大小为 8 进行。
如表 4 所示,没有 PAN 和 PVFA 的情况下,我们的基线方法 F1 分数为 55.4%。仅引入 PAN 到基线方法中,我们的性能显著提升了 4.0%,将 F1 分数提高到 59.3%。此外,加入 PVFA 进一步将模型的性能提升到 60.1%,但从不同视图中增强信息(如语义或结构信息)将使其更好。我们可以观察到,FV 和 BEV 特征的视图特定编码将 F1 分数提升到 60.5%。
为了找出不同数量的先验锚点的影响,我们进行了不同得分阈值的先验锚点生成实验。如表 4 所示,阈值高于 0.2 的结果未能拟合车道,因为选择的先验锚点少于 50 个,这导致 F1 分数较低。当阈值高于 0.2 时,可能会向先验锚点引入一些额外的干扰,因此我们的模型性能略有下降。因此,PVALane 配备约 100 个先验锚点是理想的,以指导下游 3D 车道检测。因此,我们在所有实验中将
τ
=
0.2
\tau=0.2
τ=0.2 设置为固定值。
与仅使用单一视图(即 FV 或 BEV)中的信息相比,所提出的 PVFA 在 F1 分数上分别取得了 0.7% 和 1.4% 的提升(见表 6)。这表明 FV 和 BEV 通常在特征空间中包含不同的信息(即语义和几何信息)。通过先验锚点指导合并过程,PVFA 能够有效地利用来自两个视图的信息来增强车道表示。
5. 总结和讨论
在这项工作中,我们提出了 PVALane,一种简单而准确的先验引导框架,专门用于 3D 车道检测。通过利用由 2D 预测提供的强先验,生成几乎无成本的先验锚点以减少车道搜索空间,从而实现高效的 3D 车道检测。此外,我们进一步在不同视图空间中表示车道,并在先验锚点的指导下对齐 FV 和 BEV 特征的语义和几何信息。大量实验表明,我们的方法相较于现有最先进的方法具有优越的性能。