发布时间:2023-06-18 09:00
这是一篇ECCV2020的文章
文章:https://arxiv.org/abs/2004.11757
代码:GitHub - cfzd/Ultra-Fast-Lane-Detection: Ultra Fast Structure-aware Deep Lane Detection (ECCV 2020)
摘要:模型的方法把车道线检测认为是像素级的分割问题。受人类感知的灵感,车道线识别主要是基于文本信息和上下文信息去识别出严重的遮挡和苛刻的光照问题。本文提出了全新,简单,有效的快速和多变场景的车道线检测方法:1.得益于行选择方法,极大降低了计算量。2.使用全局特征的大感受野,可处理复杂场景。3.为车道线构造loss。大量实验在TuSImple和CULane数据集,表明本文算法在速度和准确率的sota。
1. 介绍
车道线检测有两类主要的方法:1. 传统图像处理方法, 2.深度分割方法。
作为自动驾驶的重要组成部分,车道线检测算法计算量繁重。要求车道线检测降低计算开销,更何况会有多个视角的图像作为输入。SAD方法,通过自蒸馏来解决这个问题。但是由于SAD是稠密预测,该方法的计算量也是昂贵的。
深度分割方法比卷积图像处理的方法具有更强的语义表示能力,逐渐成为主流。SCNN提出一个通过相邻像素信息的通过机制,极大提高深度分割的性能。也引入了更多的计算量。
也有一些车道线表示方法把车道线作为分割的二值特征而不是车道线线或者曲线。尽管深度分割方法已经成文车道线检测的主流方法,对于这类方法,这样表示使其明确利用先验信息变得困难,如车道线刚度和平滑度。
基于以上问题,提出本文方法,能够提高速度和解决无视觉线索的问题。本文提出结构化loss,去明确利用车道线的先验信息。本文使用全局特征,在预定义时选择车道线在图像上的行位置,而不是基于局部感受野去分割车道线的每个像素。极大的降低了计算量。如图2所示。
对于无视觉线索的问题,本文方法也实现了很好的性能。借助全局特征,本方法把整个图像作为感受野。视觉线索和不同位置的信息可以被学习和利用。车道线的表示就是不同行上位置的选择,因此可以直接利用车道线的属性,如刚性和平滑性,来优化选择的位置。
本文总结起来,共三部分:
—— 本文算法简单高效,速度极快且解决了无视觉线索的问题。
—— 提出结构化loss,可明确使用车道线先验信息。
—— 本文算法达到了sota,在准确率和速度上(数据集CULane)。本方法轻量级版本可达300+ FPS,4倍快于之前的sota算法。
2. 相关工作
传统算法:传统方法都是基于视觉信息来处理的。主要是思想是利用视觉线索进行图像处理,像HSI颜色模型、边沿提取算法。当视觉信息不足时,跟踪成为另外流行的后处理方法。
深度学习模型:VPGNet,SCNN,SAD
其他算法:序列预测,聚类,LSTM,Fast-Draw
3. 本文方法
这部分主要从:new formulation、lane structural losses、feature aggregation来讲解。
3.1 New formulation for lane detection
Definition of our formulation:为了处理速度和无视觉线索的问题,本文基于全局图像特征提出行选择的方法。本文把车道线被表示为一系列水平方向的位置,row anchor。位置以网格方式显示。每行anchor,位置被划分为很多cell。因此车道线检测就变成了寻找cells的问题。如图3所示。
论文中符号预定义,如表1:
车道线预测公式,函数f表示第i条车道线的第j行anchor的函数,P表示该位置的预测结果:
优化公式如下,Tij就是真值的one-hot编码。计算交叉熵损失。本文增加额外的一个维度来指向缺失的车道线,所以公式中维度为 w+1维,而不是w维。
How the formulation achieves fast speed:如图3所示,本文基于row anchor的方法比分割算法更加简单。假设图像尺寸为H x W,分割需要计算H x W x (C + 1),本文方法需要计算 C x h x (w + 1)。而h << H,w << W,所以本文计算量要低很多。计算量的降低也就意味着速度快了很多。
How the formulation handles the no-visual-clue problem:no-visual-clue就是在目标位置不存在信息。为了处理no-visual-clue问题,需利用其他位置的信息。例如车道线被轿车遮挡,利用其他车道线、道路形状、甚至轿车方向仍然可以定位到当前车道线。这就是解决没有视觉线索的关键。如图1所示。
具体无视觉线索的解决方法可以参考3.2部分。
3.2 车道线结构化loss
除了分类loss,本文进一步提出两个loss函数,为了建立车道线上的点和位置之间的关系。以此,结构信息的学习可以进一步增强。
4. 实验结果
这部分,通过大量实验表示我们算法的效果。下面部分主要集中在一下三个层面:1)实验设置。2)消融实验。3)两个主要车道线检测数据集的结果。
4.1 实验设置
数据集:TuSimple和CULane。两个数据集详细信息可参考表2。
评价指标:官方对着两个数据集的评估指标是不一样的。
TuSimple使用accuracy,计算方式如下:
Cclip 车道线上点预测准确的数量。Sclip是真值的总量。
CULane使用F1-measure,计算方式如下:
Precision = TP / (TP + FP), Recall = TP / (TP + FN),TP is the true positive, FP is the false positive, and F N is the false negative. Predictions with IoUs larger than 0.5 are consid- ered as true positives, Then the intersection-over-union (IoU) is computed between ground truth and predictions.
应用细节:TuSimple数据集网格数量被设置为100,CULane数据集网格数量被设置为150。(这块没太明白为啥这样设置???)。图像输入网络尺寸288*800,Adam,learning rate:4e-4,batch size 32,GPU:GTX 1080ti,
数据增强:旋转,水平垂直翻转,车道线扩展到图像边界,如图5所示。
4.2 消融实验
网格数量的效果:本文把图像列划分25,50,100,200个单元。结果如图6所示。本文选择100网格作为TuSimple数据集配置。
定位方法的有效性:本文使用相似回归头替换组分类头。使用四个实验设置:REG,REG Norm,CLS and CLS Exp.
从下表中可以看出本文所提算法的各部分效果,证明了本文new formulation,structural loss,Feature aggregation的有效性。
本文所提loss的效果和类似loss的效果对比。
4.3 结果
本文算法和其他算法在TuSimple数据集上的效果,运行时间对比。本文算法,在效果略差的情况下,速度确实当前最优算法SAD的两倍。
本文算法和其他算法在F1-measure和runtime上的比较,数据集CULane,IoU threshold为0.5。对于crossroad ,仅显示FP,所以越少越好。
本文算法在TuSimple和CULane数据上的实际效果如下图所示。