Abstract
车道检测是指确定道路上车道的精确位置和形状。尽管目前的方法已经做出了努力,但由于现实世界场景的复杂性,这仍然是一项具有挑战性的任务。无论是基于建议的方法还是基于关键点的方法,现有方法都无法有效、高效地描绘车道。基于建议(proposal)的方法通过自上而下的精简方式区分和回归建议集合来检测车道,但在车道表示方面缺乏足够的灵活性。另一方面,基于关键点的方法可根据局部描述符(local descriptors)灵活构建车道,但通常需要复杂的后处理。在本文中,我们提出了一种 "Sketch-and-Refine"范式,它同时利用了基于关键点和基于建议(proposal)的方法的优点。其动机在于,车道的局部方向在语义上简单明了。在 "Sketch "阶段,关键点的局部方向可以很容易地通过快速卷积层估算出来。然后,我们就可以相应地建立一套车道建议,准确度适中。在 "Refine "阶段,我们通过新颖的车道分段关联模块Lane Segment Association Module(LSAM)进一步优化这些建议,该模块允许自适应车道分段调整。最后,我们提出了多层次特征整合,以更有效地丰富车道特征表征。基于所提出的 "Sketch-and-Refine"范式,我们提出了一种快速而有效的车道检测器,称为 "SRLane"。实验表明,我们的 SRLane 能以较快的速度运行(即 278 FPS),同时获得 78.9% 的 F1 分数。源代码见:https://github.com/passerer/SRLane。
Introduction
车道检测是自动驾驶系统的核心部分,旨在准确描绘道路上每条车道的形状。它的发展得益于卷积神经网络(CNN)的繁荣(Pan 等人,2018 年;Li 等人,2019 年)。车道检测的主流解决方案大致可分为两类:基于关键点的方法(Qu 等人,2021 年;Wang 等人,2022 年)和基于提议(proposal)的方法(Feng 等人,2022 年a;Tabelini 等人,2021 年a)。基于关键点的方法将车道检测简化为两个步骤:离散关键点检测和关联。也就是说,首先定位车道上的关键点,然后通过局部描述符(local descriptors)启发式地集成到连续车道实例中。局部描述符是局部图像特征的紧凑表征,包括语义表征(如深度特征嵌入)(Ko 等人,2021b)和几何表征(如相邻关键点的空间偏移)(Qu 等人,2021)(见图 1(a))。尽管这些方法可以灵活地描述各种车道形状,但整合过程会使管道复杂化,并导致叠加误差。此外,这些方法在预测更多车道级属性(如车道类型)时也面临困难。
另外,基于建议(proposal)的方法依赖于建议来汇总相关特征,并直接建立全局几何模型。这里的 "提议 "指的是一组与类别无关的候选车道。将建议作为输入,通常会有一个分类器来区分正样本和负样本,并有一个定位器来预测形状。受益于端到端管道,这些方法的设计和实施都比较简单。然而,对高质量建议的需求使它们在效率和适应性之间进退两难。通常情况下,稀疏提议的计算效率高,但拟合能力有限,而密集提议的拟合能力更强,但计算成本更高(Qin、Zhang 和 Li,2022a)。一些基于锚点的方法(Li 等人,2019 年;Tabelini 等人,2021a)引入锚点作为参照物来建立提案(见图 1(b))。为了保证检测质量,他们预设了数十万个锚点来覆盖底层车道,这导致了高冗余度和复杂性,阻碍了他们在资源有限的硬件上的应用。为了在性能和推理速度之间进行权衡,一些方法(秦、王和李,2020 年)在不同的数据集上安排了不同数量的锚点,这涉及到更多费力的过程,而固有的问题仍未触及。
在本文中,我们试图结合这两种模式的特点,开发出一种高效、有效的车道检测器。正如(Qu 等人,2021 年)所证明的,局部车道标记比全局车道更容易预测,因为它们的几何变化和空间覆盖范围有限。这就提出了一个问题:我们能否利用廉价的局部描述符建立复杂的全局车道建议?我们根据经验观察到,前视图中的车道具有一定的几何一致性,例如,局部区域内的车道坡度变化有限。这意味着车道的关键点很可能位于车道段的延长线上或附近。因此,我们提出了 SRLane,即使用局部几何描述符快速勾勒(即大致描绘)车道形状,然后进行精炼以提高准确性。具体来说,我们的范例首先会预测一个局部方向图,其中每个点的值都表示最近车道段(closet lane segment)的大致方向。然后,我们沿着每个点的方向建立相应的建议(proposal)(见图 1(c))。因此,我们可以快速、准确地定位车道。例如,在 Tusimple 数据集上,草图车道(sketched lanes)的检测准确率可达 93%。
为适应曲率变化较大的车道,开发了车道分段关联模块Lane Segment Association Module (LSAM),以调整车道建议中的不匹配分段(non-fitting segments)(见图 1(d))。该模块是通过强调基于线段之间语义关系的前景线段特征来实现的。此外,我们还提出了针对车道检测的多级特征集成(multi-level feature integration)。它直接从不同层次的特征中采样多个特征,从而赋予车道一个整体视图。
这种 "Sketch-and-Refine "范式使我们能够高效和有效地检测车道。广泛的基准实验证明,我们的 SRLane 能以惊人的速度获得出色的性能。例如,SRLane 在 CULane 测试集上可以达到 278 FPS,F1 分数为 78.9%。我们希望 SRLane 可以作为基于提议(proposal-based)的方法的新基准,推动实时车道检测的发展。
Related Work
最初,车道检测研究主要集中在检测手工制作的低级特征和拟合样条线来定位车道(Borkar、Hayes 和 Smith,2009 年;Chiu 和 Lin,2005 年;Ghazali、Xiao 和 Ma,2012 年)。与深度学习方法相比,这些方法在复杂场景中的表现较差。深度学习在车道检测中的主流尝试可分为两类:基于关键点的方法和基于提议的方法。接下来,我们将简要介绍这两类方法的代表作。
Keypoint-based lane detection. 基于关键点的方法的核心区别在于如何进行关键点分组。PINet (Ko 等人,2021b)使用置信分支、偏移分支和嵌入分支对车道上的关键点进行分组。FOLOLane (Qu 等人,2021 年)部署了一个置信头和回归头。回归头以固定的垂直间隔估算每个像素到三个相邻关键点的水平偏移。车道实例通过关联相邻关键点而形成。GANet(Wang 等人,2022 年)也会预测所有可能的关键点,但会通过将偏移坐标添加到车道线起点来找到相应的车道。RCLane (Xu 等人,2022a)借鉴了中继链(Relay Chain)的理念,创建了一个传输地图,并以链模式依次恢复车道实例。
虽然我们提出的 SRLane 和基于关键点的方法一样使用了局部描述符,但它根植于基于提议的方法,摆脱了复杂的后聚类过程。
Methodology
Overall Pipeline
如图 2 所示,拟议的 SRLane 将车道检测过程分为两个阶段:车道草图(sketch )阶段,用于快速定位潜在车道;车道细化(refinement )阶段,用于获得更精确的结果。在草图阶段,SRLane 创建一个局部方向图来初始化车道建议(Proposal),作为下一阶段的输入。在细化阶段,建议(Proposal)的特征会在多个级别上动态采样,并由车道分段关联模块Lane Segment Association Module (LSAM)进行处理,以加强分段级交互。细化后的特征将输入分类和回归分支,以生成最终结果。
SRLane 中的所有参数都是以端到端的监督方式进行训练的。通过将细化阶段视为两阶段检测器(Ren 等人,2015 年)中的 RoI 头,SRLane 可以很容易地融入其他检测框架,用于多任务检测。在随后的章节中,我们将详细介绍这两个阶段。
Lane Sketch
为了在第一阶段提供良好的建议(Proposal)初始化,我们为车道草图设计了三种可能的方案: (a) 像(Tabelini 等人,2021a)那样预先定义线条锚点集合,这种方法不灵活,无法适应不同曲率的线条。更重要的是,锚点的初始状态与输入图像无关,这就偏离了车道草图的目的。(b) 插入中间车道建议网络(intermediate lane proposal network )生成建议(Proposal),其结构可参考(刘等人,2021 年)。然而,捕捉车道的不同形状和分布需要相当复杂的网络。此外,生成过程无法解读,这也是进一步分析和改进的障碍。(c) 使用局部描述符,这比较可取,因为局部模式相对简单且易于预测。基于关键点的方法长期以来一直在研究从局部描述符构建车道。与之不同的是,我们利用车道的局部连续性,省去了复杂的后聚类步骤,简化了整个检测流程。局部描述符有多种选择,如(Qu 等人,2021 年)中描述的三个相邻关键点的偏移量。为简单起见,我们使用点的坐标和局部方向来建立车道建议。
Local direction estimation. 给定图像,特征图可以从主干(backbone)中导出为 ,其中是下采样步长,是通道维度。我们进一步对进行编码,得到方向图 ,其中每个点的值代表最近车道的局部角度,范围在之间。我们认为,预测车道的整体角度并不可取,因为这需要全局感受野,而且如果曲率沿着车道变化,整体角度的定义就会模糊不清。相反,局部方向在语义上简单明了,甚至只需一个卷积层就能对其进行估计。
在训练阶段,我们对所有尺度的特征图进行方向监督,以丰富上下文特征的空间细节。每条注释的车道线都会被分成 段,每段都会为其相邻点提供地面实况值(ground-truth value)。的值由给出,以适应不同的感受野。在推理过程中,只计算分辨率最低的特征图的结果,并将其保留用于初始化车道建议,因此计算成本较低。
Global lane construction. 我们的目标是利用估计的局部几何描述符建立全局车道建议(Proposal)。对于方向图的第行和第列中的点,相应的建议可公式化为一条以角度通过的直线,如图 2 中上部分所示。根据(Tabelini 等人,2021a),车道由一系列车道点表示。给定一个固定的,可以通过以下式子推断出相应的线点:
这样,我们就可以得到车道建议。与基于关键点的方法(Qu 等人,2021 年;Xu 等人,2022a 年)通常采用的方法不同,我们没有估计二元分类图来过滤前景样本,因为当前点的分类结果不足以决定其提议(Proposal)是否属于前景。此外,值得注意的是,提议的数量可以通过对的插值进行缩放。尽管的大小不同,但得出的建议(Proposal)总是分布在整个图像平面上,每个建议(Proposal)都表示附近潜在车道的方向。因此,少量建议(如 40 个)就足以覆盖所有潜在车道,而不是其他研究中的数十万个建议(Li 等人,2019 年;Su 等人,2021 年;Tabelini 等人,2021a 年;Zheng 等人,2022a 年)。
Lane Refinement
为了适应复杂的车道形状,我们开发了一种可以自适应调整车道建议的细化头。它将车道建议的粗略位置作为输入,并动态整合多级车道特征。然后将收集到的车道特征投射到一维特征向量中。特征向量被分解成若干组,每组对应不同的车道段。之后,我们采用车道分段关联模块(LSAM)来增强车道特征,并将更新后的特征输入分类和回归分支以生成预测结果。
Multi-level feature integration. 在检测任务中,多层次的特征整合至关重要(Bochkovskiy、Wang 和 Liao,2020 年)。与矩形框表示的物体相比,车道线较细且延伸跨度大,因此需要更全面的多层次特征。然而,如何有效利用不同层次的特征仍然是一个挑战。在以往的研究中,人们开发了特征金字塔网络(FPN)(Lin 等人,2017a)及其变体(Liu 等人,2018)来混合低级和高级特征。尽管这些方法很有效,但却增加了复杂性。
为此,我们放弃了繁重的 FPN,转而直接并自适应地对多层次特征进行采样。如图 3 所示,我们对车道上个点的特征进行采样,并将第个点的采样坐标从扩展到,其中标量 代表更重要的特征尺度。采样过程以柔和的方式完成,采样特征是各尺度的高斯加权和:
这里是步幅为的特征图。如果位于特征图之外,则将填充零值。大意味着需要高级特征而抑制低级特征,反之亦然。是投影函数,是车道建议的投影特征。我们沿纵轴将样本点分为组,并将同一组的特征映射到的相应通道组。
与传统的采样策略不同,自适应尺度采样可以减少冗余特征,挖掘出更多有价值的信息。因此,多级线索并存的输出车道特征为接下来的分段关联模块奠定了坚实的基础。这也是分类和定位的理想选择,因为它需要高级语义信息和低级位置细节。
在实践中,我们使向量 成为可学习的,这就是所谓的嵌入。我们发现,的收敛性对初始状态并不敏感,这表明对底层采样模式的建模是成功的。
Lane segment association. 草图阶段提供了一组大致描述实际车道的车道建议(Proposal),但某些位置可能需要调整。为此,我们提出了一种用于分段级细化(segment-level refinement)的新型车道分段关联模块(LSAM)。给定个车道建议的特征 ,每个 代表整个车道特征。同时,也可以将其视为个车道段特征的有序集合:,其中。如图 4 所示,每个提议特征作为一个查询(query ),通过交叉关注机制自适应地从所有路段特征中收集信息。期望类前景提议(foreground-like proposal)可以从类前景片段(foreground-like segments)中收集提示,从而获得对车道变化的高容忍度。由于提议的数量较少,因此所提议的 LSAM 在计算上事实上是友好的。
虽然 LSAM 加强了语义相似(例如两个都类似前景)的实例之间的交流,但在没有明确监督的情况下,它可能会陷入次优过程。为了缓解这一问题,我们使用双向匹配地面实况(GT)bipartite matched ground truth (GT) 来监督 LSAM 中的注意力权重。给定任何一对提案,它们的第 组目标关注权重定义为:
其中,是的匹配 GT,测量两个车道段之间的几何距离。在注意力权重交叉熵损失的监督下,每个提议都会被迫关注其目标区段,并学习更好的特征表示。
Classification and regression. 将提议特征作为输入,分类分支预测提议为前景的概率,而回归分支则得出更精确的位置。车道的位置由一系列垂直间隔相等的车道点坐标描述,表示为,其中代表点的总数。对应的坐标由给出,其中是图像的高度。此外,回归分支还会预测最大和最小坐标值,以确定车道的端点。
Experiment
Datasets and Evaluation Metrics
实验在文献中三个流行的车道数据集上进行: Tusimple (TuSimple 2017)、CULane (Pan 等 2018) 和 Curvelanes (Xu 等 2020)。Tusimple 包含 3626 张用于训练的图像和 2782 张用于测试的图像,所有图像都是在高速公路场景中收集的。CULane 是最大的车道检测数据集之一,包括 88,880 帧、9,675 帧、34,680 帧,分别用于训练、验证和测试。CurveLanes 是最近发布的一个具有密集曲线车道的基准数据集,我们使用它的子集进行超参数调整和消融实验。
与(TuSimple 2017)和(Pan 等 2018)中使用的官方指标一致,我们使用 Tusimple 的准确率和 CULane 的 F1 作为主要评估指标。F1 是一个综合指标,结合了 true positive (TP), false positive (FP), and false negative (FN)真阳性(TP)、假阳性(FP)和假阴性(FN)。除了准确度,我们还报告了 Tusimple 的 F1、FP 和 FN 比率。
Implementation Details
Architecture. 我们采用标准 ResNet18(He 等人,2016 年)作为预训练骨干网,并使用后三个阶段的多尺度特征图。目前,无论输入分辨率如何,局部方向图(local direction map)的大小都调整为,这意味着提案数固定为 40。车道段组默认设置为 6。在当前实现中,模型中的所有算子都基于 PyTorch(Paszke 等人,2019 年)。
Loss. 训练损失包括用于方向估计的损失、用于注意力权重的交叉熵损失、用于车道分类的焦点损失(Lin 等人,2017b)以及用于车道回归的 iou 损失(Zheng 等人,2022a)。总体损失的计算公式为:
其中损失权重设置为 、、和 。方向损失只对一定范围内与地面实况(ground truth)相邻的点进行。车道回归损失在与地面实况(ground truth)匹配度最高的正样本上进行。
Training. 我们使用 AdamW(Loshchilov 和 Hutter,2017 年)作为优化器,并结合余弦学习率调度器。初始学习率设置为 ,线性热身( linear warm-up)迭代 800 次。批次大小设置为 40,图像大小调整为 800×320。用于训练的数据增强包括随机翻转、仿射变换、颜色抖动和 JPEG 压缩。所有模型均可在配备 12GB 内存的单 GPU 上进行训练。
Main Results
我们主要关注与前沿方法(Abualsaud 等 2021 年;Feng 等 2022 年a;Liu 等 2021 年;Qin、Zhang 和 Li 2022 年a;Qu 等 2021 年;Tabelini 等 2021 年a;Wang 等 2022 年;Xu 等 2022 年a;Zheng 等 2022 年a)的比较,这些方法归纳为两类:基于关键点的方法和基于提议的方法。为了进行公平比较,推理延迟是在我们配备 AMD EPYC 7232P CPU 和 NVIDIA Titan Xp GPU 的机器上测量的。
CULane. SRLane 在 CULane 数据集上的性能与其他方法的比较见表 1。我们可以看到,SRLane 运行速度极快,与速度相近的方法相比,SRLane 获得了更优越的结果,例如,与 LaneATT 相比,SRLane 的 F1 增益为 3.8%,与 B´ezierLane 相比,SRLane 的 F1 增益为 5.1%。在曲线场景中,基于关键点的检测器在基准测试中占主导地位,例如,GANet 实现了 75.92% 的 F1。值得注意的是,SRLane 在曲线集上获得了极具竞争力的 74.7% F1,缩小了与最先进的基于关键点的检测器之间的差距,并比之前基于提案的检测器的最高曲线得分高出 2.3%。这表明 SRLane 具有良好的曲线车道拟合能力。
Tusimple. 我们还在 Tusimple 数据集上进行了实验。如表 2 所示 如表 2 所示,我们的 SRLane 速度最快,是 CLRNet 的 2.2 倍,是 FOLOLane 的 11.1 倍。同时,SRLane 保持了较高的准确率,这证明了我们方法的优越性。
Visualization of detection results. 图 6 举例说明了我们方法的定性结果。可以看出,SRLane 能够更平滑地拟合车道曲线,尤其是靠近消失点的曲线段。此外,SRLane 还能适应不同的照明条件,如昏暗和眩目。
Parameters and MACs. 表3比较了 SRLane 与其他两个著名模型的参数和乘法累加运算(MAC): CLRNet (Zheng et al. 2022a) 和 UFLDv2 (Qin, Zhang, and Li 2022a)。所有模型的骨干都是 ResNet18,为了更清楚地进行比较,只显示了头部的数据。结果表明,SRLane 在这两方面都有明显优势,这也证明了其在受限车辆计算设备中的巨大实用价值。
Ablation Study
Proposal initialization. 我们首先验证了基于方向的建议初始化(direction-based proposal initialization)的必要性。我们使用与对应方案相同数量的线锚来初始化车道方案(proposal )。锚点设置与(Zheng 等 2022a)一致。如图 5 所示,提出的基于方向的初始化方法在使用 40 个建议(proposal )时取得了优异的性能,优于相应的基于锚的方法,后者需要更多的建议(proposal )才能弥补性能差距。这些结果表明,所提出的基于方向的初始化方法可以在提案稀少的情况下实现高性能。
Multi-level feature integration. 为了验证我们提出的特征采样策略的有效性,我们将单级特征采样方法设为基准。为了进行公平比较,我们在基线模型中加入了特征金字塔网络(FPN),以补偿多层次信息。如表 4 所示,使用单层次特征会导致性能下降(见第 1 行与第 2 行、第 3 行与第 4 行),这表明了自适应多层次特征采样的好处。更多相关信息请读者参阅附录。
Lane segment association module. 我们还在表 4 中验证了我们提出的车道分段关联模块(LSAM)的有效性。可以看出,LSAM 最多提高了 0.9% 的 F1(见第 2 行与第 4 行对比)。为了进一步验证 LSAM 的有效性,我们在图 7 中展示了注意力地图。LSAM 通过为感兴趣的片段(例如,图中红色虚线框内最接近前景的片段)分配更高的注意力值,成功地学习到了细化片段特征的方法。这些结果表明,LSAM 能够更好地拟合曲率变化较大的车道。
Conclusion
在本文中,我们针对二维车道检测任务提出了一种新方法,它能让我们准确高效地定位车道。这种方法是根据局部几何描述符粗略勾勒出车道的形状,并逐步加以完善。在不同数据集上进行的基准测试表明,我们的 SRLane 具有出色的速度、准确性和鲁棒性,可适用于各种场景。我们相信,这种设计可以应用于三维车道检测。不过,这超出了本文的研究范围。
图
图 1:车道检测方法示例。(a) 基于关键点的方法示例,其中局部关键点(local keypoints)根据其相互之间的偏移(橙色箭头)进行分组,以重建整个车道。(b) 基于锚点的方法示例,该方法使用预定义的线锚点(青色线)来匹配和预测车道。(c) 提出的范例首先为一组关键点勾勒出局部方向。然后它扩展估计的局部方向以建立车道建议(lane proposals)。(d) 通过提出的线段关联模块完善车道线段(即替换虚线线段以更好地符合地面实况)。
图 2:SRLane 的整体流程,可分解为两个阶段:车道草图和细化。在草图阶段,对来自主干网的最后一个特征图进行编码,以创建局部方向图,并在该方向图中初始化一组车道建议。在细化阶段,建议(proposals)的特征从多尺度特征图中进行自适应采样,然后由车道分段关联模块进行增强。之后,它们被输入分类和回归分支,产生最终结果。
图 3:多层次特征整合示意图。在采样之前,所有特征图首先由一个卷单积层转换为相同的通道维度。表示采样点的数量。采样后的特征最终被投影到通道为的一维特征向量中。
图 4:车道分段关联模块示意图。表示组的数量,表示车道建议的数量。FFN 是前馈网络(Carion 等,2020 年)。为简化起见,忽略批次维度。
图 5:不同提案数量下的性能比较。
图 6:我们的 SRLane 与其他车道检测方法的定性比较(以彩色显示最佳)。
图 7:红线提案相关的注意力权重。为了更直观,我们根据图段的位置将原始图段级别的注意力权重分散到图像平面上。左上方为原始图像。
表
表 1:CULane 测试集上的 F1 测量和推理延迟与最先进方法的比较。延迟单位为 "毫秒"。对于 "交叉 "类别,记录了误报的数量。上标"⊤"表示由于没有源代码,因此没有在相同条件下重新测量延迟,我们使用的是论文中报告的数据。最佳结果用粗体标出。
表 2:在 Tusimple 测试集上与最先进方法的比较。Acc 是准确率的缩写。标题行中的↓表示指标越低,性能越好,反之亦然。
表 3:模型头部参数和 MAC。MAC 的输入图像大小为 800 × 320。
表 4:提出的 SRLane 中各组成部分的作用。