论文: https://arxiv.org/abs/2004.11757
代码:https://github.com/cfzd/Ultra-Fast-Lane-Detection
文献提出了一种新的车道线检测公式,旨在极快的速度和解决无视觉线索的问题。自动驾驶的快速发展,仍存在一些问题。自动驾驶过程中,车道检测需大量的执行,故需低成本的车道检测;另一个问题就是具有严重遮挡和极端关照条件的场景对应于车道检测的影响,那么在这种情况下,需要对车道线进行更高层次的语义分析。基于以上动机,提出了一种新颖、简单、有效的车道检测公式,以求达到极快的速度,并解决了无视觉线索的问题。方法是选择车道的位置,而不是对每个像素进行分割,并且工作在不同的维度上,这是非常快的。此外,使用全局特征进行预测,通过这种方式,也可以解决无视觉线索的问题。基于所提出的公式,我们提出了一种明确利用车道先验信息的结构损失。
该文章主要介绍了方法中的新的公式和车道结构损失,此外还描述了一种高层语义和底层视觉信息的特征聚合方法。
总的来说将车道线逐行检测进行分类时,将传统分割的300*800的检测点缩减成18*200,减少了计算的量。
公式中,车道被表示为预定义行处的一系列水平位置,即,行锚。为了表示位置,第一步是网格化。在每个行锚上,位置被划分为许多单元格。以这种方式,通道的检测可以被描述为在预定义的行锚上选择某些单元。公式是选择行上的位置(网格),而分割是对每个像素进行分类。用于分类的维度也不同,用红色标记。公式的计算成本是C×h×(w+1),而分割的计算成本是H×W×(C+1),所提出的公式显著降低了计算成本。此外,该方法使用全局特征作为输入,具有比分割更大的感受野,从而解决了无视觉线索的问题。如图1所示。
图1 公式与常规分割的说明
需要注意的是,根据图2所示,训练时引入分割的分支,即既做分支也做检测;预测时,去掉分割的分支。
图2 整体架构
像车道的形状和方向这样的先验信息可以基于公式使用结构损失来学习,用来处理车道检测中无视觉线索问题。除了分类损失,还提出了两个损失函数,旨在建模车道点的位置关系。第一个是基于车道是连续的这一事实,也就是说,相邻行锚点中的车道点应该彼此靠近。另一个结构损失函数关注车道的形状。一般来说,大部分车道都是直的。即使是曲线车道,由于透视效果,大部分仍然是直线。这项工作中,作者使用二阶差分方程来约束车道的形状。总的损失函数为:
其中,λ是损失系数,
Pi,j表示第j行锚的预测,||.||1为L1范式。
Loci,j表示第i车道线的位置,即第j行锚。
在特征聚合部分,该方法在全局上下文和局部特征上执行,提出了一种利用多尺度特征的辅助分割任务来建模局部特征。需要注意的是,该方法旨在训练阶段中使用辅助分割任务,在测试阶段将会被删除。这样运行速度就不会受到影响。
作者使用Resnet-34主干的模型可以达到最先进的精度和速度。我们方法的轻量级Resnet-18版本甚至可以在相同分辨率下实现322.5 FPS的性能。