本文主要是介绍ECCV2020 | 300+FPS!超快的结构感知车道检测新网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击上方蓝字,获得更多精彩内容
精彩内容
浙大提出:超快速结构感知的车道线检测网络 ,在速度和准确性方面综合表现出色!
轻量级版本速度高达300+ FPS!
论文链接:
https://arxiv.org/abs/2004.11757
代码刚开源:
https://github.com/cfzd/Ultra-Fast-Lane-Detection
作者团队:浙江大学(李玺团队)
1
摘要
从上图可以看出,车道线检测要面临很多的难题,比如车辆的遮挡、各种复杂光线的影响,甚至有时候根本看不到车道线。
车道线检测方法通常被视为像素分割的问题。受人类感知的启发,在严重遮挡和极端光照条件下对车道线的识别主要基于上下文和全局信息。基于这种观察,本文提出了一种新颖,简单而有效的方法,我们将车道线检测过程视为使用全局特征的基于行(row-based)的选择问题,使用全局特征在图像的预定义行中选择车道的位置,而不是基于局部接受域分割车道的每个像素,这大大降低了计算成本。在全局特征上使用较大的感受野,还可以处理具有挑战性的场景。
此外,基于该公式,还提出了结构损失,以对通道结构进行显式建模。在两个车道线检测基准数据集上的大量实验表明,这种方法可以在速度和准确性方面达到最先进的性能。轻量级版本甚至可以以相同的分辨率每秒获得300+帧,这至少比以前的最新方法快4倍。
2
创新及贡献
本文的主要贡献是提出一个车道线识别的新公式,根据该公式有了以下几方面的贡献:
提出了一种新颖、简单、有效的车道检测算法,该算法主要针对快速行驶和无视觉线索的问题。与深度分割方法相比,本文方法是选择车道的位置,而不是分割每个像素,并在不同的维度上工作,速度飞快。此外,使用全局特征进行预测,比分割公式具有更大的接受域。通过这种方式,没有视觉线索的问题也可以被广告掩盖。(参下图)
在此基础上,提出了一种利用车道先验信息的结构损失。据知,这是首次尝试在深车道检测方法中明确优化这类信息。
所提出的方法在具有挑战性的CU Lane数据集上,在准确性和速度方面都达到了最先进的性能。我们的方法的轻量级版本甚至可以达到300+ FPS,在相同的分辨率下,性能也相当,这至少比以前最先进的方法快4倍。
在右边的部分,详细显示了一行的选择。行锚是预定义的行位置,我们的公式定义为水平地选择每个行锚。在图像的右侧,引入了一个背景网格单元来表示该行中没有车道。
3
具体思路
3.1 车道检测新公式
本文提出将车道检测问题转化为基于全局图像特征的行选择方法。换句话说,是使用全局特性在每个预定义行上选择车道的正确位置。在本文构建的公式中,车道被描述为一系列位于预先定义的行上的水平位置,即,行锚。
为了表示位置,第一步是网格化。在每个行锚上,位置被划分为许多单元格。通过这种方式,车道的检测可以描述为在预定义的行锚上选择特定的单元格,如图3(a)所示。
假设最大车道数为C,行锚数为h,网格单元数为w,假设X为全局图像特征,fij为用于选择第i车道上车道位置的分类器,第j行锚。则车道预测可表示为:
假设Ti,j是正确位置的一个独热标签。则我们的公式优化为:
由式(1)可以看出,我们的方法是根据全局特征来预测每个行锚上所有位置的概率分布,然后根据概率分布来选择正确的位置。
如何解决高速度的问题:
通过图3可以看出,本文的公式比传统的分割要简单。
假设图像大小为H×W。一般来说,预定义的行锚和网格大小的数量远少于一个图像的大小,也就是说,h《h和w《w。这样,原始的分割需要进行h×w、 是C+1维的分类,而我们公式只需要解决C×h分类,是(w+1)维。通过这种方式,可以减少很大的计算规模,例如,使用的常见设置CULanedataset,理想的计算成本的方法是1.7×10^4的flops,一个用于分割的是9.2×10^5flops。计算成本大大降低,因此可以达到非常快的速度。
如何解决无视觉线索的问题:
从感受野的角度来看,本文公式具有整个图像的感受野,远远大于分割方法。背景信息和来自图像其他位置的信息可以用来解决无视觉线索的问题。从学习的角度来看,基于我们的公式,利用结构损失也可以学习到车道形状、方向等先验信息,参考3.2节。这样,无视觉线索的问题就可以在我们的公式中得到解决。
另一个显著的优点是,这种公式以基于行的方式对车道位置进行建模,使得有机会明确地建立不同行的关系。原有的由低水平的像素级建模和高水平的车道长线结构造成的语义鸿沟可以得到缓解。
3.2 车道线结构损失 structural-loss
第一个是由车道是连续的事实推导出来的,也就是说,相邻行锚的车道点应该相互靠近。在本文的公式中,车道的位置由一个分类向量表示。通过约束分类向量在相邻行锚上的分布来实现连续特性。这样,相似度损失函数可以为:
另一个结构损失函数关注车道的形状。为了考虑形状,需要计算每排锚上的车道位置。直观的想法是通过寻找最大响应峰,从分类预测中获得位置。在这项工作中,使用二阶差分方程来约束车道的形状,可以写成:
其中:
最终,整体结构损失可以表示为:
3.3 特征聚合 Feature aggregation
损失设计主要关注车道之间的相互关系。在本节中,我们提出了一种辅助的特征聚合方法,该方法主要关注全局上下文和局部特征的聚合。提出了一种利用多尺度特征对局部特征进行建模的辅助分割任务。这里使用交叉熵作为辅助分割损失。这样,我们方法的整体损失可以写成:
整个结构可以参考下图:
辅助分支显示在上半部分,只有在训练时才有效。特征提取器显示在蓝色框中。基于分类的预测和辅助分割任务分别显示在绿色和橙色框中。对每个行锚进行分组分类。
4
实验及结果
4.1 数据集
4.2 消融实验
分别使用25、50、100和200个单元格来分割图像,结果如下所示:
定位方法的有效性:
本文模型的有效性:
TUSimple数据集:
CULane数据集:
可视化效果:
请长按或扫描二维码关注本公众号
喜欢的话,请给我个在看吧!
这篇关于ECCV2020 | 300+FPS!超快的结构感知车道检测新网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!