前言 现代的车道线检测的主要做法是将车道检测视为像素分割的问题,这样做很难解决具有挑战性的场景和速度问题。受到human perception的启发,即严重遮挡和极端光照条件下的车道识别主要基于背景信息和全局信息。 作者提出一种新颖、简单而有效的方式,旨在实现极快的速度和具有挑战性的场景。作者将车道检测的过程看作是一个使用全局特征的基于行的选择问题,在全局特征上使用一个大的接受域,这样可以处理具有挑战性的场景,在此基础上,作者还提出了一个结构损失模型来明确地建模车道的结构。 在两个车道检测基准数据集上的大量实验表明,该方法在速度和精度方面都达到了较好的性能。一个轻量级版本甚至可以达到300+帧每秒与相同的分辨率,比SOTA至少有4倍的速度。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
论文:Ultra Fast Structure-aware Deep Lane Detection
论文:https://arxiv.org/abs/2004.11757
代码:https://github.com/cfzd/Ultra-Fast-Lane-Detection
背景
车道检测是计算机视觉研究的一个基础问题,在ADAS和自动驾驶等领域有着广泛的应用。对于车道检测,主流的方法有两种,即传统的图像处理方法和深度分割方法。车道检测算法作为自动驾驶的基本组成部分,被大量执行。这需要非常低的计算成本的车道检测。此外,目前的自动驾驶解决方案通常配备多个相机输入,这通常需要较低的计算成本。车道检测的另一个关键问题是具有严重遮挡和极端光照条件的挑战性场景,如下图所示。
虽然深度分割方法在车道检测领域占主导地位,但这种表示方式使得这些方法难以明确利用车道的刚性和平滑度等先验信息。基于上述动机,作者提出了一种新的以极快速度和解决无视觉线索问题为目标的车道检测公式。同时,在此基础上,作者提出了一种结构损失来明确利用车道的先验信息。
location selecting的示意图如下图所示
传统的方法通常是基于视觉信息来解决车道检测问题。这些方法的主要思想是通过HSI颜色模型和边缘提取算法等基于视觉线索进行图像处理。当视觉信息不够强时(遇到车道线被遮挡的时候),跟踪是另一种流行的后处理方案。除跟踪外,还采用了马尔可夫和条件随机场作为后处理方法。
随着机器学习的发展,提出了一些采用模板匹配、支持向量机等算法的方法。随着深度学习的发展,一些基于深度学习的神经网络的的方法在车道检测方面显示出了优势。
这些方法通常使用相同的公式,将问题视为语义分割任务。例如VPGNet提出了一种基于消失点引导的多任务网络,用于车道和道路标线检测。为了更有效地利用视觉信息,SCNN在分割模块中使用了一种特殊的卷积运算。它通过处理切片特征,将不同维度的信息逐个相加,类似于递归神经网络。
一些工作试图探索实时应用的轻量化方法。自注意蒸馏(SAD)就是其中之一。它采用了一种注意力蒸馏机制,将高、低层次的注意力分别视为教师和学生。
除了主流的分割方法外,研究者还提出了序列预测和聚类等方法。例如,采用长短期记忆(LSTM)网络来处理车道的长线结构。同样的原理,Fast-Draw预测每个车道点的车道方向,并依次绘制出来。此外,车道检测问题被看作是聚类的二值段问题。不同于以往工作的二维视角,有研究者提出了一种基于三维公式的车道检测方法来解决非平坦地面问题。
本文主要贡献
1、作者提出了一种新颖、简单而有效的车道检测公式,以达到极高的速度和解决无视觉线索问题。与深度分割方法相比,作者的方法是选择车道的位置,而不是分割每个像素,并且可以在不同的维度上工作,速度非常快。此外,作者的方法使用全局特征进行预测,比分割公式有更大的接受域。这样,没有视觉线索的问题也可以得到解决。
2、作者提出了一种明确利用车道先验信息的结构损失。这是在深通道检测方法中首次明确优化此类信息。
3、在具有挑战性的CULane数据集上,该方法在精度和速度方面都达到了最先进的性能。作者的方法的轻量版本甚至可以达到300+ FPS,具有相当的性能和相同的分辨率,这至少比之SOTA的方法快4倍。
方法
1、新的车道检测公式
高速和无视觉线索问题对车道检测非常重要。因此,如何有效地处理这些问题是良好性能的关键,下表显示了使用的一些符号。
用于选择车道位置的分类器,在第i车道,第j行锚定,则车道预测可表示为
对应的优化方法为
其中LCE是交叉熵损失。作者使用一个额外的维度来表示车道,所以作者的公式由(w + 1)维组成,而不是w维分类。
作者的方法基于全局特征预测每个行锚上所有位置的概率分布。因此,可以根据概率分布来选择正确的位置(即根据车道线分布的全局信息,预测对于某一行锚中车道线的分布)。作者的方法分割的示意图如下图所示,可以看出,作者的提法比常用的分割方法要简单。
作者的公式以基于行的方式建立车道位置模型,这样有机会明确地建立不同行之间的关系。该方法可以弥补由低级像素化建模和高级车道长线结构造成的原有语义鸿沟。
2、车道结构损失
除了分类损失外,作者进一步提出了两个损失函数,用于建模车道点的位置关系。这样,结构信息的学习就可以得到鼓励。第一个是由车道是连续的这一事实推导出来的,也就是说,相邻行锚中的车道点应该彼此接近。在作者的公式中,车道的位置用分类向量表示。因此,连续性是通过约束分类向量在相邻行上的分布来实现的锚。这样,相似度损失函数为
另一个结构损失函数关注的是车道的形状。一般来说,大多数车道都是直的。即使是弯道,由于透视效果,大部分还是直线。在这篇工作中,作者使用二阶差分方程来约束车道的形状,对于直线的情况,它是零。为了考虑形状,需要计算每排锚上的车道位置。
二阶差分约束可表示为
整体损失
3、特征聚合
作者提出了一种辅助的特征聚合方法,对全局上下文和局部特征进行聚合。提出了一种利用多尺度特征建模局部特征的辅助分割任务。作者使用交叉熵作为辅助分割损失。这样,所提方法的整体损失可以写成
总体架构如下图所示
此方法只在训练阶段使用辅助分割任务,在测试阶段将其删除。这样,即使增加了额外的分割任务,也不会影响方法的运行速度。
实验
1、数据集
2、实验设置
作者在两个广泛使用的基准数据集上进行了实验:TuSimple车道线数据集和CULane车道线数据集。在高速公路照明条件稳定的情况下,采集了TuSimple数据集。CULane数据集包含城区正常、人群、曲线、眩光等9种不同场景。
评价指标:两个数据集的评价指标是不同的。对于TuSimple数据集,主要的评价指标是精确度,计算公式如下
CULane的评价指标为F1-measure,计算公式如下
3、数据增强
由于车道的固有结构,基于分类的网络容易过拟合训练集,在验证集上表现较差。为了防止这种现象,提高泛化能力,采用了一种由旋转、垂直和水平位移组成的增强方法。另外,为了保持车道结构,将车道扩展到图像边界。增强效果如下图所示。
4、实验结果
在TuSimple测试集上与其他方法进行了比较,运行时间倍数的计算是基于最慢的SCNN方法。
在CULane测试集的结果
在Tusimple和CULane数据集上可视化的效果
结论
作者将车道检测的过程看作是一个使用全局特征的基于行的选择问题,在全局特征上使用一个大的接受域,这样可以处理具有挑战性的场景,在此基础上,作者还提出了一个结构损失模型来明确地建模车道的结构,在两个车道检测基准数据集上的大量实验表明,该方法在速度和精度方面都达到了较好的性能。一个轻量级版本甚至可以达到300+帧每秒与相同的分辨率,比SOTA至少有4倍的速度。
CV技术指南创建了一个计算机视觉技术交流群和免费版的知识星球,目前星球内人数已经700+,主题数量达到200+。
知识星球内将会每天发布一些作业,用于引导大家去学一些东西,大家可根据作业来持续打卡学习。
CV技术群内每天都会发最近几天出来的顶会论文,大家可以选择感兴趣的论文去阅读,持续follow最新技术,若是看完后写个解读给我们投稿,还可以收到稿费。 另外,技术群内和本人朋友圈内也将发布各个期刊、会议的征稿通知,若有需要的请扫描加好友,并及时关注。
加群加星球方式:关注公众号CV技术指南,获取编辑微信,邀请加入。
公众号其它文章