导读:
HeightLane是一种先进的3D车道检测方法,通过预测基于多斜率假设的高度图,它克服了传统方法在复杂地形中的局限性。这种方法利用高度图和可变形注意力机制,有效地将2D图像特征转换为3D
BEV特征,提升了模型对车道线的空间识别和结构理解能力。©️【深蓝AI】编译
1. 问题概要
单目3D车道线检测作为自动驾驶技术的基础组成,负责从单张图像中准确估计车道线的三维坐标。尽管基于激光雷达的3D感知技术取得了显著进展,但是单目相机因其低成本、感知范围广泛,以及能够捕捉高分辨率纹理图像等关键优势,越来越受到研究者的青睐。而且,这些特性对于识别狭窄且细长的车道线至关重要,同时,深度学习在2D车道线检测方面的卓越表现也为3D检测技术的突破奠定了基础。
然而,由于2D图像缺乏深度信息,从单目图像中预测出准确的3D车道信息仍然是一个极具挑战性的任务。随着鸟瞰图(BEV)表示法的发展,3D车道线检测研究也迎来了新的发展机遇。为了克服深度信息缺失的问题,研究人员开始尝试对车道所在的地面进行更精细的建模。
图1中的三种表示方法分别为:
a)假设地面是平坦的,可以通过逆透视变换(IPM)将2D图像或特征转换为BEV特征;
b)将地面建模为具有两个自由度(2-DoF)的平面,例如通过俯仰和高度,这为LATR在transformer中的位置编码提供了更广泛的适用性;
c)本文方法预测了一个密集的高度图,用于将2D图像特征空间变换到一个预定义的BEV特征网格上。
而像PersFormer一类的方法,则能通过逆透视变换(IPM)将2D图像特征转换为BEV特征,从而实现3D车道线检测的空间变换,如图1(a) 所示。但需注意,地形环境复杂多变的现实世界中,这种方法仍然存在局限性,因为真实地面的坡度和高度变化会导致简单假设平面地面的模型产生偏差。
为了解决上述问题,LATR等模型采用了Transformer架构,并结合位置编码对地面信息进行编码,以提供更精准的空间上下文,如图1(b) 所示。尽管这种方法通过预测地面的俯仰角和高度提升了模型的自由度,但在处理复杂地形,特别是地形从平坦过渡到倾斜的区域时,依然面临错位的挑战。
2. 方法提出
为应对传统平面地面建模引发的错位问题,作者提出了HeightLane,一种新颖的地面建模方案,如图1©所示。
HeightLane在预定义的BEV网格上创建了多个高度图锚点,以适应多变的坡度条件。这些锚点反向投影至图像空间,采样前视图特征,从而使得模型能够精准预测出高度图。接着,为了精确对齐BEV网格像素与2D前视图特征,作者将预测的高度信息融合到BEV网格查询的位置编码之中。借助预测的高度图和先进的可变形注意力机制,HeightLane能够显式地将图像特征映射到BEV网格上,大幅减小图像与BEV特征之间的错位,确保了特征表示和处理的高准确性。HeightLane利用高度图进行精细地面建模,有效地将2D前视图特征转化为BEV特征,从而提升了3D车道线检测的准确度和鲁棒性。
3. 方法详解
图2展示了HeightLane的架构,它首先利用ResNet-50网络从RGB前视图像中提取特征,然后通过预定义的BEV网格和高度提取模块生成高度图。基于PersFormer的研究成果,作者开发了一种高度图引导的空间特征转换框架,不依赖于地面平坦的假设,有效提升了特征转换的效率和准确性,最终通过车道检测头输出3D车道线。
3.1 高度提取模块
1)高度预测
如图6所示,高度图以0.5米每像素的精度,详细描述了车辆周围区域的高度信息,涵盖了从车辆向前延伸和向两侧拓展的广阔范围,车辆所在位置被设定为基准高度。不同于先前仅从2D视角预测道路表面的方法,本研究首先建立了一个BEV网格,并在此基础上预测整个网格的高度图。这一过程涉及到从2D前视特征中提取并转换对应的BEV特征,确保了高度信息的精确获取和表现。
在生成高度图的过程中,首先要创建一个斜率为0的基准高度图锚点,这代表了一个所有高度值均为零的平面,用于确定BEV网格的3D坐标。再结合相机的内参矩阵和车辆坐标到相机坐标的变换矩阵,将这个基准高度图锚点投影回图像空间,以便采样对应的前视特征。这个过程涉及到根据斜率 θ \theta θ和位置 x x x计算出投影坐标。
(
u
θ
v
θ
d
θ
)
=
K
T
v
→
c
(
x
y
H
~
θ
x
1
)
\begin{pmatrix} u_\theta \\ v_\theta \\ d_\theta \end{pmatrix} = KT_{v\rightarrow c} \begin{pmatrix} x \\ y \\ \tilde{H}_\theta^x \\ 1 \end{pmatrix}
uθvθdθ
=KTv→c
xyH~θx1
H
~
θ
x
=
x
tan
(
θ
)
\tilde{H}_\theta^x = x \tan(\theta)
H~θx=xtan(θ)
为了适应实际道路的斜率变化,作者采用多斜率高度锚点进行特征采样,而不是单一斜率。这样,算法可以从不同斜率的平面上采样特征,并将它们合并,形成综合的BEV高度特征。
F H e i g h t [ x , y : ] = concat ( F F V ( u θ , v θ ) ) θ ∈ Θ F_{Height}[x, y :] = \text{concat}(F_{FV}(u_\theta, v_\theta))_{\theta\in\Theta} FHeight[x,y:]=concat(FFV(uθ,vθ))θ∈Θ
最终,利用这些特征,通过一系列卷积层,便可以预测出整个高度图,这个高度图能够精确地反映车辆周围区域的地形起伏。
H = ψ ( F H e i g h t ) H=\psi(F_{Height}) H=ψ(FHeight)
2)高度监督
由于OpenLane数据集缺乏地面的点云或标签,现有研究仅针对有车道线的区域进行数据创建和监督。LATR模型仅在有车道线的区域应用损失函数,以估计地面的俯仰角和高度。类似地,LaneCPP通过插值有车道线区域的结果来模拟地面。为了提供密集的地面高度图真值,本研究利用OpenLane基础数据集中的Waymo LiDAR点云。通过累积Waymo数据集中每个场景的可行驶区域LiDAR点云(如图3所示),可以生成每个场景的密集地面点云。然后,将这些密集地面点云采样到预定义的鸟瞰图(BEV)网格 B ∈ R H ′ × W ′ B \in \mathbb{R}^{H' \times W'} B∈RH′×W′上,用作高度图 H H H的监督。
3.2 高度引导的空间变换框架
在本节中,译者将为大家展示作者所提出的一种空间变换框架,该框架基于3.1节中预测的高度图,如图4所示。该框架首先将鸟瞰图(BEV)的初始查询展平,并进行自注意力处理。在自注意力过程中,BEV查询之间相互交互,并且每个BEV查询都添加了位置编码,以提供位置信息。位置编码是可学习的参数。虽然已有研究在2D前视(FV)特征上执行注意力机制时,将3D射线坐标与图像特征查询相结合,但我们的方法则利用BEV网格坐标和每个BEV查询的高度嵌入。在经过自注意力模块处理后,第l层的自注意力模块输出的查询 Q S A l Q^l_{SA} QSAl表示如下:
Q S A l = Self Attention ( Q l − 1 , Q l − 1 + P E ( x , y , H x , y ) ) Q_{SA}^l = \text{Self Attention}(Q^{l-1}, Q^{l-1} + PE(x, y, H_{x,y})) QSAl=Self Attention(Ql−1,Ql−1+PE(x,y,Hx,y))
其中 l l l是层索引, x , y x,y x,y是对应查询的网格值。
经过自注意力的BEV查询 Q S A l Q^l_{SA} QSAl与2D前视特征进行可变形交叉注意力。可变形注意力为每个查询定义一个参考点 u , v u,v u,v,并学习围绕该参考点的偏移。这些可学习的偏移决定了最终的参考点,前视特征 F F V r e f F_{FV}^{ref} FFVref中对应于这些最终参考点的特征在交叉注意力中充当BEV查询的值。由于前面已经获取到有对应于BEV网格的BEV高度图 H H H,如3.1节所述,我们实际上知道BEV查询的3D坐标。因此,我们可以精准地确定每个BEV网格像素将被投影到前视特征中的参考点 u , v u,v u,v,如下所示:
( u v d ) = K T v → c ( x y H x , y 1 ) \begin{pmatrix} u \\ v \\ d \end{pmatrix} = KT_{v\rightarrow c} \begin{pmatrix} x \\ y \\ H_{x,y} \\ 1 \end{pmatrix} uvd =KTv→c xyHx,y1
此外,第 l l l层中经过交叉注意力的查询 Q C A l Q^l_{CA} QCAl表示如下:
Q C A l = CrossAttention ( Q S A l , F F V r e f ) Q_{CA}^l = \text{CrossAttention}(Q_{SA}^l, F_{FV}^{ref}) QCAl=CrossAttention(QSAl,FFVref)
HeightLane的空间变换框架由多个层组成,每一层包含一个自注意力模块和一个交叉注意力模块。经过所有 N N N层处理后的BEV查询将形成最终的BEV特征,这些特征将作为车道线检测头的输入。此外,为了捕获不同分辨率的前视特征,作者采用了多尺度前视表示。为每个分辨率生成对应的BEV查询,最终的BEV特征通过连接各尺度的查询得到。
3.3 训练
通过空间变换框架生成的 F B E V F_{BEV} FBEV会被输入到 N N N个卷积层,来获得BEV网格的置信度、偏移和嵌入。最后,使用高度图提取模块预测的密集高度图 H H H与置信度、偏移和嵌入共同构建3D车道线表示。
置信度 p p p的损失函数如下,其中 B C E BCE BCE表示二元交叉熵损失, I o U IoU IoU表示交并比损失:
L c = ∑ i = 1 H ′ ∑ j = 1 W ′ ( B C E ( p i j , p ^ i j ) ) + I o U ( p , p ^ ) L_c = \sum_{i=1}^{H'} \sum_{j=1}^{W'} (BCE(p_{ij}, \hat{p}_{ij})) + IoU(p, \hat{p}) Lc=i=1∑H′j=1∑W′(BCE(pij,p^ij))+IoU(p,p^)
此外,车道线在 x x x方向预测偏移的损失如下,其中 σ \sigma σ表示sigmoid函数:
L o f f s e t = ∑ i = 1 H ′ ∑ j = 1 W ′ B C E ( x i j , σ ( x ^ i j ) ) L_{offset} = \sum_{i=1}^{H'} \sum_{j=1}^{W'} BCE(x_{ij}, \sigma(\hat{x}_{ij})) Loffset=i=1∑H′j=1∑W′BCE(xij,σ(x^ij))
在BEVLaneDet中,预测每个网格单元的嵌入以区分置信度分支中每个像素的车道线。本文采用相同的嵌入损失,其中 L v a r L_{var} Lvar表示最小化簇内方差的拉力损失, L d i s t L_{dist} Ldist表示最大化不同簇之间距离的推力损失。
L e = λ v a r ⋅ L v a r + λ d i s t ⋅ L d i s t L_e = \lambda_{var} \cdot L_{var} + \lambda_{dist} \cdot L_{dist} Le=λvar⋅Lvar+λdist⋅Ldist
预测的高度图 H H H与地面真实高度图 H G T H_{GT} HGT之间的损失使用L1损失计算。
L h = ∑ i = 1 H ′ ∑ j = 1 W ′ ∣ H G T i j − H i j ∣ L_h = \sum_{i=1}^{H'} \sum_{j=1}^{W'} |H_{GT}^{ij} - H_{ij}| Lh=i=1∑H′j=1∑W′∣HGTij−Hij∣
最后,为确保2D特征有效捕获车道线特征,作者添加了2D车道线检测头,并结合了2D车道线检测的辅助损失,如下所示:
L 2 D = I o U ( l a n e 2 D , l a n e ^ 2 D ) L_{2D} = IoU(lane_{2D},\hat{lane}_{2D}) L2D=IoU(lane2D,lane^2D)
总损失定义如下,其中 λ \lambda λ表示每种损失的权重:
L = λ c L c + λ o f f s e t L o f f s e t + λ e L e + λ h L h + λ 2 D L 2 D L=\lambda_c L_c + \lambda_{offset} L_{offset} + \lambda_e L_e + \lambda_h L_h + \lambda_{2D} L_{2D} L=λcLc+λoffsetLoffset+λeLe+λhLh+λ2DL2D
4. 实验
OpenLane验证集上的大量实验表明,HeightLane在F-score方面达到了最先进的性能,突出了其在实际应用中的潜力。
5. 结论
总的来说,这项研究通过采用一种创新的高度图方法,解决了单目图像中3D车道检测的关键难题,改进了深度信息的不确定性和地面建模问题。
研究的主要贡献包括:
- 确立了一个用于直接预测高度图的多斜率高度锚点的BEV网格;
- 引入了一个由高度图引导的空间变换框架;
- 并且在复杂场景中实证展示了HeightLane模型的鲁棒性能。
本研究所提出的方法通过高度图支持的精确3D变换,增强了空间理解与车道识别,显著推动了自动驾驶系统的进步。通过广泛的实验,验证了该模型的有效性,是现实应用的一个重要里程碑。
©️【深蓝AI】
Ref:
HeightLane: BEV Heightmap guided 3D Lane Detection
编译|Deep蓝同学
审核|Los
本文首发于微信公众号【深蓝AI】,移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态👇
深蓝AI·赋能自动驾驶+机器人+AI