点击进入→自动驾驶之心【车道线检测】技术交流群
后台回复【车道线综述】获取基于检测、分割、分类、曲线拟合等近几十篇学习论文!
摘要
由于缺乏深度信息,单目3D车道检测是一项具有挑战性的任务。3D车道检测的一种流行解决方案是首先将前视(FV)图像或特征转换为逆透视变换(IPM)内的鸟瞰图(BEV)空间,然后从BEV特征检测车道。然而,IPM对平坦地面假设的依赖和上下文信息的丢失使得从BEV表示恢复3D信息不准确。已经尝试摆脱BEV并直接从FV表示预测3D车道,但它仍然不足执行其他基于BEV的方法,因为它缺乏3D车道的结构化表示。在本文中,作者在3D空间中定义了3D车道anchor,并提出了一种名为Anchor3DLane的无BEV方法来直接从FV表示预测3D车道。3D车道anchor被投影到FV特征以提取其特征,这些特征包含良好的结构和上下文信息以进行准确的预测。作者进一步将Anchor3DLane扩展到多帧设置,以结合时间信息以提高性能。此外,作者还开发了一种全局优化方法,利用车道之间的等宽属性来减少预测的横向误差。在三种流行的3D车道检测基准上进行的大量实验表明,Anchor3DLane优于以前基于BEV的方法,并实现了SOTA性能。
介绍
单目3D车道检测,目的是从正视图中估计车道线的3D坐标,是自动驾驶系统中必不可少的模块之一。准确而稳健的3D车道感知不仅对于稳定的车道保持至关重要,而且还是高精地图构建[21、25]和轨迹规划[1、43]等下游任务的重要组成部分。然而,由于缺乏深度信息,直接从2D图像域估计3D空间中的车道仍然非常具有挑战性。解决上述挑战的一种直接方法是从鸟瞰(BEV)空间检测车道。如下图1(a)所示,基于BEV的方法[5、7、8、20]的常见做法是使用逆透视变换(IPM)将图像或特征从正视图(FV)空间扭曲到BEV,从而将3D车道检测任务转换为BEV中的2D车道检测任务。
将检测到的BEV车道投影回3D空间,然后将车道点的坐标与其相应的高度值相结合,这些高度值由高度估计头估计。尽管这些方法被证明有效,但它们的局限性仍然很明显:(1)IPM依赖于严格的平坦地面假设,这不适用于上坡或下坡的情况。(2)由于IPM基于地面扭曲图像,一些有用的高度信息以及路面上方的上下文信息不可避免地丢失。例如,道路上的车辆等物体在扭曲后会严重扭曲。因此,IPM带来的信息丢失阻碍了从BEV表示中准确恢复3D信息。
鉴于BEV的上述局限性,一些工作试图直接从FV预测3D车道。如上图1(b)所示,SALAD[39]将3D车道检测任务分解为2D车道分割和密集深度估计。这些分段的2D车道被投影到具有相机内参和估计的深度信息的3D空间中。即使摆脱了平坦地面假设,SALAD也缺乏3D车道的结构化表示。因此,将其扩展到更复杂的3D车道设置(如多视图或多帧)是不自然的。此外,由于非结构化表示,它们的性能仍然远远落后于SOTA方法。
在本文中,作者提出了一种名为Anchor3DLane的新型无BEV方法,可以简洁有效地直接从FV预测3D车道。如上图1(c)所示,作者的Anchor3DLane将车道anchor定义为3D空间中具有给定俯仰和偏航的射线。然后,首先使用相机参数将它们投影到FV空间中相应的2D点,然后通过双线性采样获得它们的特征。采用简单的分类头和回归头分别从anchor生成分类概率和3D偏移量,以进行最终预测。与IPM中的信息丢失不同,从原始FV特征中采样保留了车道周围更丰富的上下文信息,这有助于更准确地估计3D信息。此外,作者的3D车道anchor可以反复改进以采样更准确的特征,从而更好地捕捉3D车道的复杂变化。此外,Anchor3DLane可以很容易地扩展到多帧设置,通过在帧间相机位姿的帮助下将3D anchor投影到相邻帧,这进一步提高了单帧预测的性能。
更进一步,作者还利用全局约束来改善由于分辨率低,具有挑战性的远距离部分。动机是基于一种直觉的洞察力,即同一图像中的车道在大多数情况下似乎是平行的,除了交叉车道,即每对车道上不同点对之间的距离几乎一致。通过对非交叉车道对应用全局等宽优化,作者调整3D车道预测,使车道对的宽度从近到远保持一致。通过上述调整,可以进一步减少车道线远处部分的横向误差。作者的贡献总结如下:
-
作者提出了一种新颖的Anchor3DLane框架,它直接在3D空间中定义anchor,并直接从FV回归3D车道,而无需引入BEV。还提议对Anchor3DLane的多帧设置进行扩展,以利用对齐良好的时间信息来进一步提高性能。
-
作者开发了一种全局优化方法,以利用车道的等宽属性进行细化。
-
没有花哨的东西,作者的Anchor3DLane好于以前基于BEV的方法,并在三个流行的3D车道检测基准上实现SOTA的性能。
相关工作
2D车道检测
2D车道检测[12、22、24、32、40]旨在获取图像中2D车道的准确形状和位置。早期的工作[2、10、13、36、42]主要侧重于提取低级手工特征,例如边缘和颜色信息。然而,这些方法通常具有复杂的特征提取和后处理设计,并且在不断变化的场景下鲁棒性较差。随着深度学习的发展,最近探索了基于CNN的方法并取得了显着的性能。基于分割的方法[11、23、24、26]将2D车道检测任务制定为逐像素分类问题,并且通常关注如何探索更有效和语义信息丰富的特征。为了使预测更加稀疏和灵活,基于关键点的方法 [15、27、35、38] 将车道线建模为有序关键点集,并通过后处理将属于同一车道的关键点关联在一起。除了上述方法外,基于anchor的方法[17、19、31、41]由于其简洁性和有效性,在2D车道检测任务中也很受欢迎。LineCNN[17]首先定义了从图像边界发出的直线以适应2D车道线的形状。然后将非极大值抑制(NMS)应用于2D车道,以仅保留具有更高置信度的车道。LaneATT[31]开发了基于anchor的特征池化来提取2D anchor的特征。CLRNet[41]学习通过特征金字塔迭代地细化初始anchor。
3D车道检测
由于将2D车道投影回3D空间存在不准确性和鲁棒性较差的问题,因此提出了3D车道检测任务来预测3D空间中端到端的车道。一些工作利用多个传感器,例如双目相机[4]和激光雷达-相机[3]来恢复3D信息。然而,多传感器数据的收集和标注成本昂贵,限制了这些方法的实际应用。因此,基于单目相机图像的3D车道检测[6-8,20,39]引起了更多的关注。
由于车道在BEV的角度具有良好的几何特性,3DLaneNet[7]利用IPM将特征从FV转换为BEV和然后回归BEV空间中车道的anchor偏移量。CLGo[20]将原始图像转换为具有估计的相机间距和高度的BEV图像,并通过预测多项式参数来拟合车道线。由于IPM严重依赖平坦地面假设,因此BEV空间中表示的车道可能与粗糙地面情况下的3D空间未对齐。为了解决上述问题,Gen-LaneNet[8]进一步区分了IPM生成的虚拟top视图和3D空间中的真实top视图,以实现更好的空间对齐。Persformer[5]利用可变形注意力自适应和稳健地生成BEV特征。SALAD[39]试图通过将3D车道检测分解为2D车道分割和密集深度估计任务来摆脱BEV。与上述方法不同,作者的Anchor3DLane在3D空间中定义anchor以显式建模3D车道并弥合FV空间和3D空间之间的差距。投影和采样操作确保anchor特征提取的准确性,从而能够在不引入BEV的情况下直接从FV表示中有效地预测3D车道。
方法
作者的Anchor3DLane的整体架构如下图3所示。
给定一个前视图像作为输入,其中H和W表示输入图像的高度和宽度,CNN主干(例如,ResNet-18[9])用于提取FV空间中表示的2D视觉特征。为了扩大网络的感受野,作者进一步在主干后插入一个Transformer层[34]以获得增强的2D特征图,其中、和分别代表高度、宽度和通道特征图的数量。然后在相机参数的帮助下将3D anchor投影到此特征图F,并使用双线性插值对相应的anchor特征进行采样。之后,作者将分类头和回归头应用于采样的anchor特征进行预测,每个头由几个轻量级连接的层组成。此外,预测可以被视为迭代回归的新3D anchor。
3D车道表示
作者首先回顾3D车道的表示。如下图2所示,作者的论文涉及两个不同的坐标系,包括相机坐标系和地面坐标系。
相机坐标与FV图像直接对应,是由原点和,,坐标轴定义的右手坐标系,位于相机中心,指向前方垂直于相机平面。3D车道通常标注在地面坐标系中,其中原点设置在正下方,x轴指向右侧正,y轴指向正前方,z轴指向正上方。一个3D车道由3D点描述,其中N 均匀采样坐标 。因此,作者将第i个3D lane表示为,第个点表示为,其中前3个元素表示pki在地面坐标系中的位置,最后一个表示可见性。值得注意的是,作者按照先前工作中采用的常见做法,基于地面坐标系详细阐述了作者的方法[7,8]。但是,作者的Anchor3DLane能够在任意3D坐标系中工作,只要相机标定可用
Anchor3DLane
3D 车道Anchors表示
作者的3D车道anchor在与3D车道相同的坐标系中定义,即地面坐标,以便于位置回归。如上图2所示,3D anchor是一条从开始的射线,具有pitch θ和yaw φ。类似于3D车道,作者还为每个anchor采样N个点,用相同的y坐标表示第j个3D anchor ,第k个点用表示。与之前在BEV平面中定义anchor的工作[5、7]不同,作者的3D anchor与地面有间距并且可以更好地适应车道形状。
anchor投影和特征采样
为了获得3D anchor的特征,作者首先利用相机参数将它们投影到FV特征平面F上,如上图2所示。给定一个anchor ,作者以其第k个点为例说明投影操作,省略下标j如下:
其中表示相机内参,表示地面坐标到相机坐标的变换矩阵,表示到相机平面的深度。通过上述公式,将投影到FV特征F中的位置。最后,在投影点的邻域内通过双线性插值得到anchor 的特征,表示为。
3D车道预测
作者将属于同一anchor的点的特征连接起来作为其特征表示。然后作者将分类头和回归头应用于anchor特征以预测分类概率,anchor点偏移为 =每个点的可见性分别为,其中j∈[1,M]。L和M分别表示车道类型和3D anchor的数量。这样,3D车道proposal生成为{=(,。此外,这些3D车道proposal还可以在以下迭代回归步骤中用作新anchor,如上图3所示。通过迭代回归,可以逐步细化proposal以更好地适应车道形状。
在训练期间,作者将最近的anchor与每个真实车道相关联其余定义为负样本。真值和anchor 之间的距离度量计算如下:
也使用这个度量在推理过程中使用非极大值抑制(NMS)来保持合理数量的proposal,除了计算两个proposal的可见部分之间的距离。作者采用focal loss[18]进行训练分类以平衡正负proposal如下:
其中α和γ是focal loss的超参数。回归损失仅在正proposal和它们分配的真值车道之间计算[8]:
表示正proposal的总数。这里作者使用、和来表示真值车道点的x、z坐标和可见性。
Anchor3DLane的总损失函数是上述两个损失与相应系数的组合:
时态上下文建模
由于3D anchor的设计,作者的Anchor3DLane可以很容易地扩展到多帧3D车道检测。给定第t帧真值坐标系中的一个3D点,用下面的公式将它转换到第t'帧坐标系中的地面坐标系:
其中表示从第t帧到第t'帧的变换矩阵。与等式(1)一起,可以将当前帧中定义的anchor投影到之前的帧以对其特征进行采样。对于每个anchor,作者将当前帧中的点作为查询,将先前帧中的点作为键和值,以进行跨帧注意以进行特征聚合。通过整合来自多个帧的良好对齐的anchor特征,时间上下文被合并到Anchor3DLane中以扩大其感知范围。
等宽约束优化
在大多数情况下,3D空间中的车道几乎相互平行,这有助于从单目2D图像生成稳健的3D估计。在本项工作中,作者利用3D车道的这种几何属性并将其制定为等宽约束来调整车道预测的x坐标。给定两个车道预测和,点对和处和之间的宽度计算为:
其分别表示待优化的调整和,θ表示调整后车道的法线方向。等宽约束的目标函数为:
作者用Q表示NMS后的车道预测数。限制和之间的宽度一致,第二项作为正则化,避免调整后的结果与原始预测相差太大。作者将此优化作为后处理步骤运行,以改进网络的预测结果。
实验
实验设置
数据集和评测
作者在三个流行的3D车道检测基准上进行了实验,包括ApolloSim[8]、OpenLane[5]和ONCE-3DLanes[39]。
ApolloSim 是一个使用Unity3D引擎创建的逼真合成数据集,包含10.5K来自各种虚拟场景的图像,包括高速公路、城市、住宅、市中心等。此外,数据在白天、天气状况、交通/障碍物和道路表面质量方面也多种多样。
OpenLane 是一个大规模的真实世界基于WaymoOpen数据集[30]构建的3D车道检测数据集。它包含200K帧和超过880K车道的标注。为每一帧提供相机内参和外参。如果中间没有路沿,所有车道都会被标注,包括相反方向的车道。还提供了类别和场景标签(例如,天气和位置)。
ONCE-3DLANES 是一个具有100万个场景的真实世界3D车道检测数据集。它由带有标注的3D车道点的211K图像组成。它涵盖不同时间段(晴天、阴天、雨天)和不同区域(市区、郊区、高速公路、桥梁和隧道)。ONCE-3DLanes中仅提供相机内参。
在评估阶段,预测和真值通道通过最小成本流进行匹配,其中成对成本定义为逐点欧氏距离之和的平方根。如果超过 75% 的点到地面实况点的距离小于阈值,即 1.5m,则为正预测。通过上述定义,进一步计算平均精度(AP)和最大 F1 score,并在近(0-40m)和远(40-100m)范围内分别计算 x/z 误差。作者发布了 ApolloSim 数据集上的 F1 分数、AP 和 x/z 误差的结果。在 OpenLane 数据集上,除了 F1 分数和 x/z误差,作者还报告了类别准确度,它计算类别被正确预测的预测占所有真正例预测的比例。ONCE-3D车道采用不同的方式来匹配预测和真值车道。匹配度首先由top视图平面上的 IoU 决定,然后以单边倒角距离 (CD) 作为匹配误差进一步计算高于阈值的对。当 CD 低于阈值时,则计为真正例。作者发布ONCE-3DLanes结果的 F1 分数、精度、召回率和 CD 误差。
实现细节
作者选择 ResNet-18 [9] 作为Anchor3DLane 的主干。为了保持特征分辨率,作者将其最后两个阶段的下采样步幅设置为 1,并将 3×3 卷积替换为空洞卷积。3D anchor的起始位置沿x轴均匀分布,间隔1.3m。对于每个,分别设置不同的yaw φ∈{0◦,±1◦,±3◦,±5◦,±7◦,±10◦,±15◦,±20◦,±30◦}和pitches θ∈{0◦,± 1◦,±2◦,±5◦}。对于ApolloSim和ONCE的实验,每个anchor的点数N设置为10,对于OpenLane的实验设置为20。作者将图像调整为360×480,然后将其送到骨干网,特征图F的shape为 45× 60×64。在训练过程中,λ 和 λ 都设置为 1,正proposals 的数量设置为 3。NMS 的距离阈值在推理期间为 2。对于多帧的Anchor3DLane,每次作者在训练时从前5帧中随机选择1帧与当前帧进行交互,并在推理时选择前5帧中的第一帧。由于汽车姿势仅在OpenLane数据集中可用,因此作者仅对该数据集进行时间实验。作者使用 Adam 优化器 [14],权重衰减设置为 1e-4,并将初始学习率设置为 1e-4。训练时使用step 学习率衰减,focal loss的α设置为0.5,γ设置为2。
定量结果
ApolloSim 上的结果 如表下1所示。显示了在 ApolloSim 数据集的三种不同分割设置下的实验结果,包括平衡场景、稀有子集和视觉变化。作者还发布了原始 Anchor3DLane 和使用等宽约束优化的回归的Anchor3DLane 的结果 。
OpenLanes上的结果 在下表 2 中展示了OpenLane 数据集上使用等宽约束进行了优化的实验结果 。在下表3中,比较了不同情景下以前的方法,并报告了每个情景的 F1得分。
ONCE-3DLanes上的结果 在下表 4 中,展示了在 ONCE-3DLanes数据集上的实验结果。
消融实验
从 FV 特征中抽取anchor 特征 为了说明 FV 特征的优越性,作者比较了从 FV 特征和 BEV 特征中抽取 anchor 特征的性能。结果如下表 5 所示。作者探索了获得 BEV 特征的不同方法,包括将 FV 图像扭曲为 BEV 图像(第 1 行)和将 FV 特征扭曲为 BEV 特征(第 2 行),并保持其他设置与作者的原始的 Anchor3DLane。相同,结果表明,从 FV 特征中采样 anchor 特征产生最好的 F1 分数和 x/z 误差,尤其是对于 x 误差,FV anchor 特征和 BEV anchor 特征之间存在超过 10cm 的差距。上述性能差距表明原始 FV 特征中包含的上下文信息有利于准确的车道预测。
迭代回归的步骤 下表6展示了Anchor3DLane的不同迭代回归步骤的结果。与无迭代回归相比,2 次迭代产生了相对较大的性能改进。更多的迭代回归步骤可以进一步减少横向误差,并通过逐步细化提议的形状来提高 F1 分数。
时间整合方法 在本节中,作者探索了不同的方法来整合多帧的anchor特征。除了作者在前面提到的跨框架注意力之外,作者还尝试了线性融合,它沿着它们的通道连接相同anchor的特征,并将它们与线性层融合,以及加权和,它学习为每个 y 坐标预测一组权重来融合特征 如下表 7 所示,与基线相比,将时间信息合并到 Anchor3DLane 中可以显着提高整体性能,因为从之前的帧中获得了更丰富的上下文信息。加权和产生比线性融合更好的结果,表明动态权重对于不同距离的不同点是必要的。虽然与单帧设置相比,加权和获得了更好的 F1 分数,但同时 x/z 误差增加了。在 3 种集成方法中,cross-frame attention 将 anchor 特征与之前帧中的更多 anchor 点聚合在一起,改善了 F1 score 和 x 误差并实现了最佳性能平衡。
等宽约束的影响 作者还说明了没有和有等宽约束优化的预测之间的比较。如下表 8 所示,通过将等宽约束应用于车道预测,可以通过限制车道线的较远部分与较近部分的宽度相同来进一步减少车道线的较远部分的误差。
结论和局限性
在这项工作中,作者提出了一种用于3D车道检测的新型Anchor3DLane框架,它绕过BEV空间的转换并直接从FV预测3D车道。通过在3D空间中定义anchor并将它们投影到FV特征,准确的anchor特征被采样用于车道预测。作者进一步将Anchor3DLane扩展到多帧设置以包含时间信息,由于丰富的上下文而提高了性能。此外,提出了一种全局等宽优化方法,以利用车道的并行属性进行细化。实验结果表明,Anchor3DLane在三个具有简单架构的3D车道检测基准上的性能优于以前的方法。但作者以离线方式利用等宽约束来调整车道预测,这对于实际应用来说是不灵活的。未来,作者计划利用等宽属性来促进训练过程。
参考
[1] Anchor3DLane: Learning to Regress 3D Anchors for Monocular 3D LaneDetection