专栏名称: 智驾实验室
欢迎关注“智驾实验室”!本公众号专注于自动驾驶领域,为您带来世界模型的最新研究,多模态大模型的深入解析,以及多模态大模型在自动驾驶领域的应用与落地。在这里,您可以了解到自动驾驶技术的最新动态,洞察行业趋势,与我们一起探索未来出行的无限可能。
目录
相关文章推荐
51好读  ›  专栏  ›  智驾实验室

CLRKDNet 优化 FPN 和检测 Head 架构,简化结构与师生蒸馏相结合 !

智驾实验室  · 公众号  ·  · 2024-08-28 08:00

正文

ADAS Laboratory




点击上方 蓝字 关注 智驾实验室

加入【 智驾实验室 】交流群, 获取更多内容和资料

车道线是智能车辆视觉感知系统的重要组成部分,在安全导航中发挥着关键作用。在车道线检测任务中,平衡准确性与实时性能至关重要,但现有方法常常为了一个而牺牲另一个。为了解决这种权衡,作者引入了CLRKDNet,这是一个精简的模型,能够在检测准确性和实时性能之间保持平衡。

最先进的模型CLRNet在各种数据集上展示了卓越的性能,但由于其特征金字塔网络(FPN)和多层检测Head架构,其计算开销很大。

作者的方法简化了FPN结构和检测Head,重新设计它们以融入一种新颖的师生蒸馏过程以及一系列新引入的蒸馏损失。这种组合使得推理时间最多减少60%,同时保持了与CLRNet相当检测准确性。

这种在准确性和速度之间的策略性平衡使得CLRKDNet成为自动驾驶应用中实时车道线检测任务的一个可行解决方案。

代码和模型可在https://github.com/weiqingq/CLRKDNet获取。

I Introduction

车道线检测[28, 14]是智能交通领域的一个关键方面,包括自动驾驶和高级驾驶辅助系统(ADAS)。车道是道路交通的基本要素,它划定了车辆路径,促进了更安全、更平稳的驾驶环境。

检测方法通常分为两类:基于模型和基于特征的方法。

基于模型的方法利用预定义的车道模型,将车道识别视为参数估计问题,这有助于降低对噪声的敏感性,并限制对广泛局部图像区域的依赖。

相比之下,基于特征的方法将单个图像点分类为车道或非车道,依赖于特定的特征,如边缘梯度、宽度、强度和颜色。然而,这种策略需要清晰的车道边缘和强烈的颜色对比才能准确检测。

这两种方法都遵循类似的步骤:感兴趣区域(ROI)提取、图像预处理、特征提取和车道拟合。

随着深度学习的出现,传统的车道线检测方法在很大程度上被更先进、端到端的深度学习方法所取代。这些现代方法消除了手动特征工程的必要性,并提高了检测系统的鲁棒性和有效性。

当代车道线检测技术可以大致分为四类:基于分割的、基于参数曲线的、基于关键点的和基于 Anchor 点的方法。基于分割的方法将车道线检测视为语义分割任务,而基于参数曲线的方法[1, 21, 10]使用曲线参数对车道进行建模,通过参数回归来检测车道。

基于关键点的方法[18]将车道线检测视为关键点估计问题,然后进行整合。

最后,基于 Anchor 点的方法使用线形 Anchor 点,回归这些预定义 Anchor 点上采样点的偏移量。

尽管使用深度学习方法在车道线检测方面取得了显著进展,但仍有机会进行进一步改进。车道线在图像中通常延伸很长的像素距离,并且在局部尺度上与路面有明显的区别,这强调了需要提取全局和局部特征以实现准确检测。在Zheng等人[29]的论文中,引入了跨层细化网络(CLRNet),利用了高级语义和低级详细特征。它首先使用高级特征进行粗略定位,然后使用详细特征进行精确的车道定位。ROIGather模块通过将ROI车道特征与整个特征图连接起来,捕获了更广泛的全局上下文信息,与以前的方法相比,显著提高了检测性能。

然而,CLRNet的复杂性,包括其特征金字塔网络(FPN)和多个检测Head,增加了推理时间,阻碍了自动驾驶车辆至关重要的实时性能。为此,作者开发了CLRKDNet模型,旨在减少推理时间同时保持准确性。

CLRKDNet简化了FPN架构,选择了一个简化的特征聚合网络,并减少了检测Head的数量,从而消除了迭代细化过程。这个模型使用CLRNet作为教师模型,采用一种新颖的知识蒸馏程序来增强简化后的学生模型的性能,并抵消检测准确度可能下降的影响。

这种多层次蒸馏包括中间特征层、先验嵌入和检测Head逻辑值,确保CLRKDNet在显著提高速度的同时,达到与CLRNet相当的检测准确度。更多细节请参见方法部分III。

作者通过在CULane[15]和TuSimple[22]数据集上进行的广泛实验来验证作者提出方法的改进,两个数据集上都报告了最先进的结果。此外,全面的消融研究证实了作者框架中每个组件的有效性。作者的主要贡献总结如下:

  • 通过简化CLRNet的特征增强模块和减少检测Head的数量,作者实现了显著的计算效率,推理速度提高了多达60%。
  • 作者引入了一种新颖的知识蒸馏技术,其中作者的简化学生模型CLRKDNet利用教师模型CLRNet的中间特征层、先验嵌入和最终的检测Head逻辑值,来增强其车道线检测能力。
  • 作者在多个车道线检测数据集上进行了广泛的实验,以验证作者提出的CLRKDNet方法的有效性,并进行了全面的消融研究,以验证每个模块对模型性能的贡献。

II Related Work

Lane Detection

Ii-A1 Segmentation-based Methods

基于分割的方法将车道线检测视为一个像素级的分类任务,将车道线区域与背景分开。例如,SCNN [15] 利用带有消息传递机制的语义分割框架来改善车道线检测中的空间关系,但其实时应用受到速度的限制。同样,RESA [30] 通过实时特征聚合模块提高性能,但由于其像素级处理,仍然在计算上要求较高。

Ii-A2 Parametric Curve-based Methods

这些方法使用曲线参数来表示车道,然后将其拟合到车道数据上。LSTR [10] 采用 Transformer 架构来捕捉既细长又宽阔的车道特征和道路特征。PolyLaneNet [21] 和其他研究 [1] 分别使用多项式和贝塞尔曲线进行车道线检测,虽然提供了快速的推理,但对参数不准确较为敏感。

Ii-A3 Keypoint-based Methods

基于关键点的检测方法通过识别关键点并将它们聚类成车道实例来检测车道线。PINet [6] 和类似的方法 [23, 18] 使用先进的网络和聚类算法为此目的,尽管这需要大量的后处理,这增加了计算负载。

Ii-A4 Anchor-based Methods

基于 Anchor 点的方法依赖于预定义的行或列 Anchor 点来引导车道线检测。Line-CNN [8] 和 LaneATT [20] 使用带有注意力机制的线 Anchor 点来提高准确性和效率。相反,像 UFLD [16] 和 CondLaneNet [9] 这样的基于列 Anchor 点的方法虽然简单快速,但在准确识别初始车道点时可能会遇到困难,尤其是在复杂场景中。CLRNet [29] 及其扩展工作 [4] 提出了一种跨层优化的车道线检测网络,该网络使用高层特征检测车道线,并使用低层特征调整车道线位置。

Knowledge Distillation

知识蒸馏涉及将一个复杂、通常笨重的模型的洞察转移到更紧凑、计算效率更高的模型中,从而提高小模型的性能和泛化能力。这种技术最初是由Hinton等人于2015年提出的[3]。多年来,它已经发展出了许多方法,包括采用软标签和定制损失函数来改进学习过程。在计算机视觉领域,知识蒸馏已经在各种任务中显著提升了小模型的能力,如目标检测、图像分类和分割。特别是在车道线检测中,Hou等人引入了自注意力蒸馏(SAD)[5],它采用自上而下和分层注意力蒸馏来增强表示学习和模型有效性。值得注意的是,作者的蒸馏方法优于SAD,在CULane数据集上的F1分数比它高出近10个百分点。

III Methods

CLRKDNet

Iii-A1 Teacher Model

作者的方法采用了先进的CLRNet[29]结构作为教师模型,该模型整合了健壮的 Backbone 网络,如ResNet或DLA。这种整合使得 Backbone 网络能够提取深层特征,随后由特征金字塔网络(FPN)处理,生成不同分辨率的多尺度特征图,包括输入图像尺寸的 。这种方法捕捉了全局内容和局部细节的全面表示。

CLRNet通过使用具有可学习参数 的先验配置来启动车道线检测,其中 定义了起始坐标,而 是与x轴的取向。符号 代表 个先验中的其中一个,其中 表示先验的总数。这些对于识别潜在车道路径至关重要的先验,通过在多个尺度上的卷积层和全连接层进行处理。

如图2所示,这种多层处理生成了用于先验调整的分类和回归输出。该模型经过三个细化周期,在这些周期中,这些调整重新校准先验,利用更高分辨率的特征图以提高准确性。在这个过程中,跨注意力机制整合了上下文信息,最终在多行水平上精确计算x坐标以描绘车道路径。

为了解决车道线检测的复杂性,CLRNet采用了一个综合的损失函数L,结合了用于先验细化的平滑-L1、用于分类的Focal Loss以及用于分割的交叉熵损失。此外,一种新颖的LineIoU损失特别增强了车道预测的交并比度量,提高了模型的精确度。

表示平滑-L1损失, 是用于先验分类的Focal Loss, 是一个辅助损失,有助于分割,而 是特别设计的用于车道线的IOU损失。在训练期间,这个损失函数的权重可以在第三节-D中找到。

Iii-A2 Student Model

CLRKDNet是高级CLRNet模型的简化版本,旨在满足实时自动驾驶应用的高要求,同时管理车道线检测性能。它利用了CLRNet的高级网络设计,包括其主干和检测Head机制,但在其架构中引入了重大优化以提高效率。

在特征增强部分,CLRNet通过FPN集成多尺度、语义丰富的特征,而作者的CLRKDNet部署了一个精简的特征聚合网络以减轻计算负担。如图2所示,这个网络专门用于压缩从主干提取的特征的通道尺寸,提高其表示质量,同时无需大量计算。这一创新不仅减少了权重参数的数量,还降低了计算占用,使得特征集成过程更加迅速。

作者的CLRKDNet的检测Head也针对效率进行了优化。与CLRNet的多个检测Head和需要密集计算资源进行迭代优化的可学习先验不同,作者的CLRKDNet采用了一个带有固定先验的单个检测Head。这个单一的检测Head利用一组静态先验,而无需进行成本高昂的迭代优化过程。单个检测Head的结构如图3所示。实验分析显示,这种简化使作者的CLRKDNet的推理速度提高了多达60%,而评估分数仅略有下降。

由于简化架构导致的检测性能下降,通过知识蒸馏进一步得到了补偿。作者提出的知识转移方法利用了教师模型CLRNet的中间层的蒸馏见解,以及检测Head的先验和最终输出。通过这种多阶段蒸馏过程,作者的CLRKDNet模型在计算成本的一小部分下,接近了CLRNet设定的基准。

Attention Map Distillation

Iii-B1 Activation Attention Transfer

在作者的车道线检测模型中,通过一种基于激活的注意力机制[27]进行知识蒸馏。对于卷积神经网络中的第 层,作者提取激活输出,表示为 ,其中 分别对应激活张量的通道数、高度和宽度。

为了将教师模型的知识蒸馏到学生模型中,作者从这些激活张量中生成空间注意力图。

这些图作为浓缩表示,突出了模型认为输入图像中最重要的区域。通过应用映射函数 来蒸馏这些图,其中每个 表示 在通道维度上的第 个切片,且

借鉴其他论文[5]的做法,作者选择 以加强对最显著特征的强调,从而以类似于教师模型的方式指导学生模型的关注点。

这种注意力图蒸馏的过程如图2所示。在整个训练阶段,学生模型的注意力图逐渐调整以匹配教师模型,使用损失函数最小化它们之间的差异。

Iii-B2 Attention Transfer Loss

作者在车道线检测模型中对注意力图的蒸馏进行了量化,通过一个特定的注意力转移损失函数来衡量学生模型和教师模型之间注意力图之间的差异。

对于集合 (代表每个教师-学生激活层对的索引)中的每一对索引为 的层,首先将学生模型 和教师模型 的注意力图转换为向量化形式,分别表示为 。这些向量化形式是通过将前面的章节中映射函数 应用于激活张量,并将得到的注意力图 Reshape 为向量而产生的。

其中 分别是学生模型和教师模型之间第 对注意力图的向量化形式。

表示 范数,用于归一化每个向量的注意力图,确保损失计算对注意力图的尺度不变,纯粹关注它们的模式。参数 设置为2,与在注意力图计算中使用的二次度映射函数 保持一致,这已经被经验证明可以促进有效的知识转移。

Knowledge Transfer on Detection Head

在关注图蒸馏过程之后,作者旨在进一步提高检测准确率并弥合模型之间的差距。为了实现这一点,作者对检测Head提出了双重蒸馏过程,采用先验嵌入蒸馏和逻辑蒸馏。

这些机制确保了CLRKDNet尽管其架构简化,仍能有效保持其教师模型CLRNet的复杂检测能力。先验嵌入蒸馏使学生的先验与教师的精致输出保持一致,而逻辑蒸馏则测量并最小化输出逻辑上的差异,指导CLRKDNet的预测紧密匹配CLRNet的预测。

Iii-C1 Prior Embedding Distillation

CLRNet和CLRKDNet都使用嵌入的先验知识来初始化其检测Head,这些先验知识定义了车道线的几何参数,包括相对于x轴的初始坐标 和方向

这些先验知识和由 Backbone 网络和特征融合网络生成的特征图指导ROI模块,为每个车道像素精确收集附近特征。这个收集过程将全局内容与丰富的语义信息相结合,确保了全面的检测能力。CLRNet在其检测Head的不同层中细化这些先验知识,逐步增强它们,而CLRKDNet直接使用一组先验知识进行检测输出。







请到「今天看啥」查看全文