Abstract
车道是智能车辆视觉感知系统不可或缺的组成部分,在安全导航中起着举足轻重的作用。在车道检测任务中,兼顾准确性和实时性至关重要,但现有方法往往舍本逐末。为了解决这一权衡问题,我们引入了 CLRKDNet,这是一种兼顾检测准确性和实时性的精简模型。最先进的模型 CLRNet 在各种数据集上都表现出了卓越的性能,但由于其特征金字塔网络(FPN)和多层检测头架构,其计算开销很大。我们的方法简化了 FPN 结构和检测头,对它们进行了重新设计,将新颖的师生蒸馏过程与新引入的一系列蒸馏损失结合在一起。这种组合可将推理时间缩短 60%,同时保持与 CLRNet 相当的检测精度。这种准确性和速度之间的战略平衡使 CLRKDNet 成为自动驾驶应用中实时车道检测任务的可行解决方案。代码和模型请访问:https://github.com/weiqingq/CLRKDNet.
I. INTRODUCTION
车道检测 [28, 14] 是智能交通(包括自动驾驶和高级驾驶辅助系统 (ADAS))的一个重要方面。车道是道路交通中不可或缺的元素,它划定了车辆的行驶路径,促进了更安全、更顺畅的驾驶条件。检测方法一般分为两类:基于模型和基于特征。基于模型的方法利用预定义的车道模型,将车道识别解释为参数估计问题,这有助于降低对噪声的敏感性,并限制对广泛的局部图像区域的依赖。相比之下,基于特征的方法则根据边缘梯度、宽度、强度和颜色等特定特征,将单个图像点划分为车道或非车道。不过,这种策略需要有明显的车道边缘和强烈的颜色对比才能准确检测。这两种方法的步骤顺序相似:提取感兴趣区域 (ROI)、图像预处理、特征提取和车道拟合。
随着深度学习[7, 13]的出现,传统的车道检测方法在很大程度上已被更先进的端到端深度学习方法所取代。这些现代方法消除了人工特征工程的需要,提高了检测系统的鲁棒性和有效性。当代车道检测技术大致可分为四类:基于分割的方法、基于参数曲线的方法、基于关键点的方法和基于锚点的方法。基于分割的方法 [15, 30, 24] 将车道检测视为一项语义分割任务,而基于参数曲线的方法 [1, 21, 10] 则使用曲线参数对车道进行建模,并通过参数回归对其进行检测。基于关键点的方法 [18] 将车道检测作为一个关键点估计问题,然后进行整合。最后,基于锚点的方法 [20, 29, 16, 17, 9, 25] 采用线形锚点,从这些预定义的锚点回归采样点的偏移量。
尽管利用深度学习技术在车道检测方面取得了长足进步,但仍有进一步提高的机会。车道线通常会在图像中延伸很长的像素长度,并在局部尺度上表现出与路面不同的特征,这就强调了提取全局和局部特征以进行准确检测的必要性。Zheng 等人的论文[29]引入了跨层细化网络(CLRNet),同时利用高层语义和低层细节特征。它首先利用高级特征进行粗略定位,然后利用细节特征进行细化,以实现精确的车道定位。ROIGather 模块通过将 ROI 车道特征与整个特征图联系起来,进一步捕捉广泛的全局上下文信息,与以前的方法相比,大大提高了检测性能。然而,CLRNet 的复杂性,包括其特征金字塔网络(FPN)和多个检测头,增加了推理时间,阻碍了对自动驾驶汽车至关重要的实时性能。为此,我们开发了 CLRKDNet,该模型旨在缩短推理时间,同时保持准确性。CLRKDNet 简化了 FPN 架构,选择了精简的特征聚合网络,并减少了检测头的数量,从而消除了迭代改进过程。该模型使用 CLRNet 作为教师模型,结合了新颖的知识蒸馏程序,以提高精简学生模型的性能,并抵消检测精度的潜在下降。这种多层提炼包括中间特征层、先验嵌入和检测头对数,确保 CLRKDNet 在以更快速度运行的同时,达到与 CLRNet 相当的检测精度。更多详情,请参阅 “方法 ”部分 III。
我们在 CULane [15] 和 TuSimple [22] 数据集上进行了大量实验,验证了我们提出的方法的先进性,并报告了在这两个数据集上的最新结果。此外,全面的消融研究证实了我们框架中每个组件的功效。我们的主要贡献总结如下:
- 我们通过简化特征增强模块和减少 CLRNet 中的检测头数量,显著提高了计算效率,从而将推理速度提高了 60%。
- 我们引入了一种新颖的知识提炼技术,即我们的精简学生模型 CLRKDNet 可利用教师模型 CLRNet 的中间特征层、先验嵌入和最终检测头 logits 来增强其车道检测能力。
- 我们在各种车道检测数据集上进行了广泛的实验,以验证我们提出的方法 CLRKDNet 的有效性,并进行了全面的消融研究,以验证每个模块对模型性能的贡献。
II. RELATED WORK
A. Lane Detection
1) Segmentation-based Methods: 基于分割的方法将车道检测视为像素分类任务,将车道线区域从背景中分离出来。例如,SCNN [15] 利用具有信息传递机制的语义分割框架来改善车道检测中的空间关系,但其实时应用受到速度的限制。同样,RESA [30] 通过实时特征聚合模块提高了性能,但由于其像素级处理,对计算要求仍然很高。
2) Parametric Curve-based Methods: 这些方法使用曲线参数表示车道,然后与车道数据拟合。LSTR [10] 采用 Transformer 架构来捕捉细而长的车道特征和较宽的道路特征。PolyLaneNet [21] 和其他工作[1] 分别利用多项式曲线和贝塞尔曲线进行车道检测,推理速度快,但对参数误差敏感。
3) Keypoint-based Methods: 基于关键点的方法通过识别关键点然后将其聚类为车道实例来检测车道线。PINet [6] 和类似方法 [23, 18] 为此使用了先进的网络和聚类算法,但需要密集的后处理,从而增加了计算负荷。
4) Anchor-based Methods: 基于锚点的方法依靠预定义的线或行锚点来引导车道检测。Line-CNN [8] 和 LaneATT [20] 使用带有注意机制的行锚来提高准确性和效率。相反,基于行锚的方法(如 UFLD [16] 和 CondLaneNet [9])虽然简单快捷,但由于难以准确识别初始车道点,因此在复杂场景中可能难以发挥作用。CLRNet [29] 及其扩展工作 [4] 提出了一种跨层优化车道检测网络,该网络利用高层特征检测车道线,并利用低层特征调整车道线位置。
B. Knowledge Distillation
知识蒸馏是指将复杂、往往繁琐的模型中的见解转移到更紧凑、计算效率更高的模型中,从而提高较小模型的性能和可推广性。这项技术最初由 Hinton 等人于 2015 年提出[3]。多年来,它已发展成多种方法,包括采用软标签和量身定制的损失函数来完善学习过程。在计算机视觉领域,知识蒸馏大大提高了较小模型在物体检测、图像分类和分割等各种任务中的能力。具体到车道检测,Hou 等人提出了自我注意力蒸馏(SAD)[5],该方法采用自上而下和分层注意力蒸馏来增强表征学习和模型功效。值得注意的是,我们的蒸馏方法优于 SAD,在 CULane 数据集上获得的 F1 分数比 SAD 高出近 10 个百分点。
III. METHODS
A. CLRKDNet
1) Teacher Model: 我们的方法采用复杂的 CLRNet[29] 架构作为教师模型,其中集成了诸如 ResNet 或 DLA 等稳健的骨干网络。这种整合使骨干网络能够提取深度特征,然后由特征金字塔网络(FPN)进行处理,生成不同分辨率的多尺度特征图,包括输入图像大小的、