现代的车道检测方法主要把车道检测作为像素分割的问题,很难解决具有挑战性的场景和速度问题。受人类感知的启发,严重遮挡和极端光照条件下的车道识别主要基于背景信息和全局信息。基于这一观察,我们提出了一种新颖、简单而有效的公式,旨在实现极快的速度和具有挑战性的场景。具体地说,我们将车道检测的过程看作是一个使用全局特征的基于行的选择问题。在基于行选择的帮助下,我们的公式可以显著降低计算成本。在全局特征上使用一个大的接受域,我们也可以处理具有挑战性的场景。此外,在此基础上,我们还提出了一个结构损失模型来明确地建模车道的结构。在两个车道检测基准数据集上的大量实验表明,该方法在速度和精度方面都达到了较好的性能。一个轻量级版本甚至可以达到300+帧每秒与相同的分辨率,至少4倍的速度比以前的最先进的方法。我们的代码可以在https://github.com/cfzd/Ultra-Fast-Lane-Detection上找到。
车道检测是计算机视觉研究的一个基础问题,在ADAS和自动驾驶等领域有着广泛的应用。对于车道检测,主流的方法有两种,一种是传统图像处理方法,另一种是深度分割方法。近年来,深度分割方法由于具有较强的代表性和学习能力而在该领域取得了巨大的成功。还有一些重要的、有挑战性的问题需要解决。车道检测算法作为自动驾驶的基本组成部分,被大量执行。这需要非常低的计算成本的车道检测。此外,目前的自动驾驶解决方案通常配备多个相机输入,这通常需要较低的计算成本为每一个相机输入。这样,一个更快的管道对车道检测至关重要。为此,提出了用自蒸馏的方法来解决这一问题。基于分割的分割算法具有密集预测的特点,计算成本较高。车道检测的另一个问题是无线索问题,即具有严重遮挡和极端光照条件的挑战性场景对应着车道检测的另一个关键问题。在这种情况下,车道检测迫切需要对车道进行更高层次的语义分析。深度分割方法自然具有比传统图像处理方法更强的语义表示能力,成为主流。此外,SCNN通过提出相邻像素之间的消息传递机制解决了这个问题,显著提高了深度分割方法的性能。由于密集的像素通信,这种消息传递需要更多的计算成本。同时,也存在以分割的二值特征表示车道而不是直线或曲线的现象。虽然深度分割方法在车道检测领域占主导地位,但这种表示方式使得这些方法难以明确利用车道的刚性和平滑度等先验信息。基于上述动机,我们提出了一种新的以极快速度和解决无视觉线索问题为目标的车道检测公式。同时,在此基础上,我们提出了一种结构损失来明确利用车道的先验信息。具体地说,我们提出的方法是利用全局特征在图像的预定义行中选择车道的位置,而不是基于局部接受域分割车道的每个像素,这大大降低了计算成本。
对于无线索问题,我们的方法也可以取得很好的性能,因为我们的公式是进行基于全局特征的行选择的过程。该方法利用全局特征,获得了整幅图像的接受域。与基于有限接受域的分割相比,不同位置的视觉线索和信息可以被学习和利用。通过这种方式,我们的新方法可以同时解决速度和无线索问题。此外,基于该算法,车道不是用分割地图来表示,而是用不同行上的选定位置来表示。因此,我们可以通过优化所选位置的关系,即结构损失,直接利用车道的刚性、光滑性等特性。本工作的贡献可以概括为三个部分:
传统的方法通常是基于视觉信息来解决车道检测问题。这些方法的主要思想是通过HSI颜色模型[25]和边缘提取算法等基于视觉线索进行图像处理。当视觉信息不够强时(遇到车道线被遮挡的时候),跟踪是另一种流行的后处理方案。除跟踪外,还采用了马尔可夫和条件随机场作为后处理方法。随着机器学习的发展,提出了一些采用模板匹配、支持向量机等算法的方法。
随着深度学习的发展,一些基于深度神经网络的方法在车道检测方面显示出了优势。这些方法通常使用相同的公式,将问题视为语义分割任务。例如VPGNet提出了一种基于消失点引导的多任务网络,用于车道和道路标线检测。为了更有效地利用视觉信息,SCNN在分割模块中使用了一种特殊的卷积运算。它通过处理切片特征,将不同维度的信息逐个相加,类似于递归神经网络。一些工作试图探索实时应用的轻量化方法。自注意蒸馏(SAD)就是其中之一。它采用了一种注意力蒸馏机制,将高、低层次的注意力分别视为教师和学生。
除了主流的分割方法外,还提出了序列预测和聚类等方法。在[18]中,采用长短期记忆(LSTM)网络来处理车道的长线结构。同样的原理,Fast-Draw[24]预测每个车道点的车道方向,并依次绘制出来。在[10]中,车道检测问题被看作是聚类的二值段问题。[30]中提出的方法也使用了一种聚类方法来检测车道。不同于以往工作的二维视角,提出了一种基于三维公式[4]的车道检测方法来解决非平坦地面问题。
在这一节中,我们描述了我们方法的细节,包括新的公式和车道结构损失。此外,还提出了一种面向高级语义和低级视觉信息的特征聚合方法。
如引言部分所述,高速和无视觉线索问题对车道检测非常重要。因此,如何有效地处理这些问题是良好性能的关键。在这一节中,我们将通过处理速度和无线索问题来展示我们的公式的推导。为了更好地说明,表1显示了下面使用的一些符号。
用于选择车道位置的分类器,在第i车道,第j行锚定。则车道预测可表示为:
其中,Pi,j,:是(w + 1)维向量,表示为第i道,第j行锚选择(w + 1)网格单元格的概率。假设Ti,j,:是正确位置的单热点标签。那么,我们配方的优化对应于:
其中LCE是交叉熵损失。我们使用一个额外的维度来表示没有巷,所以我们的公式由(w + 1)维组成,而不是w维分类,如下图最右边的那一列框
由Eq. 1可以看出,我们的方法基于全局特征预测每个行锚上所有位置的概率分布。因此,可以根据概率分布来选择正确的位置(即根据车道线分布的全局信息,预测对于某一行锚中车道线的分布)。
我们的公式和分割的区别如下图所示。可以看出,我们的提法比常用的分段方法简单多了。假设图像大小为H × w。一般情况下,预定义的行锚个数和网格大小远小于图像大小.这样,原来的分割公式需要进行(C + 1)维的H × W分类,而我们的公式只需要解决(W + 1)维的C × H分类问题。这样可以大大减少计算规模,因为我们的公式的计算成本是C×h×(w+1),而分割的计算成本是H ×W ×(C +1)。例如,使用CULane数据集[22]的公共设置,我们方法的理想计算成本为1.7 × 104次计算,用于分割的计算成本为1.15×106calculations。计算成本大大降低,我们的公式可以达到极快的速度。
为了处理无视觉线索问题,利用来自其他位置的信息是很重要的,因为无视觉线索意味着目标位置没有信息。例如,一条车道被一辆汽车挡住了,但我们仍然可以通过来自其他车道、道路形。
从接受域的角度来看,我们的公式具有整个图像的接受域,比分割方法要大得多。来自图像其他位置的上下文信息和消息可以用来解决无视觉线索问题。从学习的角度来看,根据我们的公式,也可以使用结构损失来学习车道的形状和方向等先验信息,如3.2节所示。这样,在我们的公式中就可以处理无线索问题了。
另一个显著的好处是,这种公式以基于行的方式建立车道位置模型,这使我们有机会明确地建立不同行之间的关系。该方法可以弥补由低级像素化建模和高级车道长线结构造成的原有语义鸿沟。
除了分类损失外,我们进一步提出了两个损失函数,用于建模车道点的位置关系。这样,结构信息的学习就可以得到鼓励。第一个是由车道是连续的这一事实推导出来的,也就是说,相邻行锚中的车道点应该彼此接近。在我们的公式中,车道的位置用分类向量表示。因此,连续性是通过约束分类向量在相邻行上的分布来实现的锚。这样,相似度损失函数为
另一个结构损失函数关注的是车道的形状。一般来说,大多数车道都是直的。即使是弯道,由于透视效果,大部分还是直线。在这篇工作中,我们使用二阶差分方程来约束车道的形状,对于直线的情况,它是零。为了考虑形状,需要计算每排锚上的车道位置。直观的思想是通过寻找最大响应峰来从分类预测中获得位置。对于任意车道索引i和行锚索引j,位置Loci, j可以表示为:
其中k是表示位置索引的整数。需要注意的是,我们不计算背景网格单元,位置索引k的范围仅为1到w,而不是w + 1。
然而,argmax函数是不可微的,不能用于进一步的约束。此外,在分类制定中,类没有明显的顺序,不同的行锚之间很难建立关系。为了解决这个问题,我们建议使用预测的期望作为位置的近似。我们使用softmax函数来获得不同位置的概率:
二阶差分约束可表示为:
其中Loci,jis在第i条车道上的位置,第j行锚定。我们用二阶差分而不是一阶差分的原因是一阶差分在大多数情况下不是零。因此,网络需要额外的参数来学习车道位置的一阶差分分布。而且二阶差分的约束相对于一阶差分的约束要弱一些,因此当车道不是直线时影响较小。最后,整体结构损失可为:
其中λ为损耗系数。
在3.2节中,损失设计主要集中在车道的内部关系上。在本节中,我们提出了一种辅助的特征聚合方法,对全局上下文和局部特征进行聚合。提出了一种利用多尺度特征建模局部特征的辅助分割任务。我们使用交叉熵作为辅助分割损失。这样,我们方法的整体损失可以写成:
其中Lsegis的分割损失系数,α和β为损失系数。总体架构如图4所示。需要注意的是,我们的方法只在训练阶段使用辅助分割任务,在测试阶段将其删除。这样,即使我们增加了额外的分割任务,也不会影响我们方法的运行速度。这和没有辅助分割任务的网络是一样的
在本节中,我们将通过大量的实验来证明我们方法的有效性。接下来的部分主要集中在三个方面:1)实验设置。2)我们方法的消融研究。3)两个主要车道检测数据集的结果
数据集。为了评价我们的方法,我们在两个广泛使用的基准数据集上进行了实验:TuSimple车道线数据集和CULane车道线数据集。在高速公路照明条件稳定的情况下,采集了TuSimple数据集。CULane数据集包含城区正常、人群、曲线、眩光、夜间、无线、阴影、箭头等9种不同场景。数据集的详细信息如表2所示。评价指标。两个数据集的官方评价指标是不同的。
对于TuSimple数据集,主要的评价指标是精确度,计算公式如下:
公式的意思是预测正确的点除以地面真实车道线的总数
其中,Cclipis预测正确的巷点的数量,和Sclipis地面真理的总数在每个剪辑。对于CULane的评价指标,每条lane被视为一条30像素宽的线。然后计算地面真实值与预测值之间的交并(IoU)。iou大于0.5的预测被认为是真正的。以F1-measure为评价指标,公式如下:
数据增加。由于车道的固有结构,基于分类的网络容易过拟合训练集,在验证集上表现较差。为了防止这种现象,提高泛化能力,采用了一种由旋转、垂直和水平位移组成的增强方法。另外,为了保持车道结构,将车道扩展到图像边界。增强效果如图5所示。
在TuSimple测试集上与其他方法进行了比较。运行时间倍数的计算是基于最慢的SCNN方法。
在CULane测试集的结果