(Lane Detection-2)Ultra Fast Structure-aware Deep Lane Detection

一种速度很快的Lane Detection 检测方法 

代码:https://github.com/cfzd/Ultra-Fast-Lane-Detection。

当前问题(截止文章pubilc之前):

车道线检测的一个问题被称为“无视觉线索问题”,如图1所示。在严重遮挡和极端光照条件下的复杂场景中,这是车道线检测的另一关键问题。在这种情况下,车道线检测急需对车道进行更高层次的语义分析。但有两个问题:

(1)深度分割方法相较于传统图像处理方法,天然具备更强的语义表示能力,因而成为主流方法。但由于像素级别的密集通信,这种消息传递机制需要更高的计算成本

(2)车道线被表示为分割后的二进制特征,而非线条或曲线。尽管深度分割方法主导了车道线检测领域,但这种表示方式使得这些方法难以显式地利用车道线的先验信息,如车道的刚性和光滑性。

解决方法:

(1)通过使用全局特征在图像预定义的行(row)中选择车道线位置,而不是基于局部感受野分割每个像素,从而大幅降低了计算成本。位置选择的示意图如图2所示。

(2)基于全局特征在行级别进行选择。借助全局特征,我们的方法具备整个图像的感受野。与基于有限感受野的分割相比,来自不同位置的视觉线索和消息能够被学习和利用。

(3)基于所提出的方法,车道线被表示为在不同行上选择的位置,而不是分割图。因此,我们可以通过优化所选位置之间的关系(即结构损失),直接利用车道线的刚性和光滑性等特性。

Method

如图(a)所示,假设(a)中蓝色代表特征提取后的深层次特征(h*w*c),那么其h和w远小于图片原来的尺寸H 和 W,利用c(通道信息)代表不同车道线,利用h代表预选anchor行的数量,利用w代表每行中格子的数量。例如:

这种方法相较于常用的分割方法,计算量显著减小:

分割方法:H*W*(C+1)

row-based方法:C*h*(w+1) 其中h、w远小于 H、W

例如,使用常见的 CULane 数据集的设置,我们方法的理想计算成本是   次计算,而分割方法的计算成本是计算。计算成本显著降低,我们的方法能够实现极快的速度。 

如何处理无视觉线索问题
为了应对无视觉线索问题,利用其他位置的信息非常重要,因为无视觉线索意味着目标位置没有信息。例如,车道线被一辆车遮挡,但我们仍然可以通过其他车道线的信息、道路形状甚至车辆方向来定位车道线。因此,利用其他位置的信息是解决无视觉线索问题的关键,如图1所示。

从感受野的角度来看,我们的公式具有整个图像的感受野,这比分割方法要大得多。图像中其他位置的上下文信息和信息可以被用来解决无视觉线索问题。从学习的角度来看,像车道线的形状和方向等先验信息也可以通过我们公式中的结构损失来学习,如第3.2节所述。这样,我们的公式可以处理无视觉线索问题。

另一个显著的好处是,这种公式以行级的方式建模车道线位置,这使我们有机会显式地建立不同行之间的关系。原始的语义差距,即由低级的像素级建模和高级的长车道线结构造成的差距,可以被弥合。

 Lane structural loss

除了分类损失,我们进一步提出了两个损失函数,旨在建模车道点的位置关系。通过这种方式,可以鼓励结构信息的学习。

第一个损失函数源自车道线的连续性,即相邻行锚点中的车道点应该彼此接近。在我们的公式中,车道线的位置由分类向量表示。因此,连续性属性是通过约束相邻行锚点上的分类向量的分布来实现的。这样,相似性损失函数可以表示为:

 也就是在同一个车道线中,两个相邻行的相同列索引的网格处的概率值应该是相近的,这样便保证了车道线的连续性

另一个结构损失函数关注于车道线的形状。一般来说,大多数车道线是直的。即使是弯曲的车道线,由于透视效果,大部分也仍然是直的。在这项工作中,我们使用二阶差分方程来约束车道线的形状,对于直线车道线,其值为零。(这一方法其实是不准确的,因为后续的研究表明,再出现路面高度变化时,车道线即使在透视效果下,也不是直的)

具体而言:使用 softmax 函数来获取不同位置的概率:

位置的期望值可以表示为:

二阶差分约束可以写为:

 我们使用二阶差分而不是一阶差分的原因是,一阶差分在大多数情况下不为零。因此,网络需要额外的参数来学习车道位置一阶差分的分布。此外,二阶差分的约束相对于一阶差分约束较弱,因此在车道线不是直线的情况下对结果的影响较小

该定位方法的优点有两个。首先,期望值函数是可微分的。其次,这种操作通过离散随机变量恢复了连续位置。 

 最后,总体结构损失可以表示为:

Feature aggregation 

在上节中,损失设计主要关注车道线内部关系。在本节中,我们提出了一种辅助特征聚合方法,该方法在全局上下文和局部特征上进行。我们提出了一种利用多尺度特征的辅助分割任务来建模局部特征。我们使用交叉熵作为我们的辅助分割损失。这样,我们的方法的总体损失可以表示为:

需要注意的是,我们的方法仅在训练阶段使用辅助分割任务,在测试阶段会将其移除。这样,即使我们添加了额外的分割任务,我们的方法的运行速度也不会受到影响,其运行速度与没有辅助分割任务的网络相同。

Experiment

1. 训练要根据不同数据集预先设置anchor的范围。具体来说,Tusimple 数据集的图像高度为 720 像素,行锚点范围从 160 到 710,步长为 10。CULane 数据集的行锚点范围从 260 到 530,步长与 Tusimple 相同。CULane 数据集的图像高度为 540 像素。在 Tusimple 数据集中,格网单元数设置为 100,在 CULane 数据集中设置为 150。

2.数据增强。由于车道线的固有结构,基于分类的网络可能会很容易过拟合训练集,并在验证集上表现不佳。为了防止这种现象并提高泛化能力,采用了一种由旋转、垂直和水平平移组成的增强方法。此外,为了保留车道线的结构,车道线被扩展到图像的边界。增强结果可以见图 5。

3.网格单元数量的影响。如第 3.1 节所述,我们使用网格和选择来建立车道线结构信息与基于分类的公式之间的关系。为了进一步验证我们的方法,我们尝试使用不同数量的网格单元来观察其对方法的影响。我们将图像分为 25、50、100 和 200 个网格单元。结果见图 6。

随着网格单元数量的增加,我们可以看到 top1、top2 和 top3 分类准确率逐渐下降。这是因为更多的网格单元需要更细粒度、更困难的分类。然而,评估准确率并不是严格单调的。尽管较少的网格单元意味着更高的分类准确率,但定位误差会更大,因为网格单元太大,无法精确表示位置。在本研究中,我们选择了 100 作为 Tusimple 数据集上的网格单元数量。

Result

从表 5 中可以看出,我们的方法在性能上与最先进的方法相当,同时运行速度极快。我们的方法与 SCNN 之间的最大运行时间差距是我们的方法推断速度快 41.7 倍。即便与第二快的网络 SAD 相比,我们的方法仍然快了 2 倍以上。

在 Tusimple 和 CULane 数据集上的可视化。前两行是 Tusimple 数据集的结果,其余行是 CULane 数据集的结果。从左到右,结果依次为图像、预测和标签。在图像中,预测结果用蓝色标记,真实标签用红色标记。由于我们的方法仅在预定义的行锚上进行预测,因此图像和标签在垂直方向上的尺度不一致。 

结论

毋庸置疑,这种方法实现较快的检测速度,通过在深层次特征处理,利用分类网络,使用row-based的方法,实现了检测速度的提升,另外利用struct-loss 兼顾了车道线的平滑和联系。

但现如今来看,是有较多问题的:

1. 使用row-based方法,精度有限,因为无法预测网格中的车道线的精确位置;

2. 需要预先设置超参数,例如anchor位置,数量。

3. 忽略了高度信息,没有解决在高度变化这种case

4. 默认车道线是直的,因此设计的损失函数也是利用二次差分约束,显然这种假设是不准确的。

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要复现"ultra fast structure-aware deep lane detection"代码,首先需要了解该算法的原理和网络结构。该算法是一种深度学习方法,用于车道线检测。其核心思想是结合结构感知机制和快速推理策略,以实现高效、准确的车道线检测。 为了复现该算法,需要完成以下步骤: 1. 数据集准备:收集车道线数据集并进行相应的标注。可以使用公开数据集,如CULane或TuSimple等,或者自己采集数据集。数据集应包含车道线图像以及对应的标注信息。 2. 网络结构构建:根据论文中提到的网络结构,构建模型。根据论文中的说明,可以选择使用FCN、UNet等结构。确保灵活地调整网络的深度和宽度,以适应不同的数据集和性能要求。 3. 损失函数定义:根据论文中的介绍,选择适当的损失函数,如二分类交叉熵损失函数等,以最小化预测标注和真实标注之间的差异。 4. 数据预处理:对输入图像进行预处理,如图像归一化、resize等,以适应网络的输入要求。 5. 模型训练:使用准备好的数据集和网络结构,进行模型的训练。设置合适的超参数,如学习率、批大小等。通过迭代优化网络参数,使模型逐渐学习到车道线的特征。 6. 模型评估:使用测试集对模型进行评估,计算准确率、召回率、F1得分等指标,以评估模型的性能。 7. 代码测试:使用测试集对复现的代码进行测试,观察模型的预测结果。可进行可视化展示,比较模型的预测结果与真实标注的差距。 8. 优化和改进:根据测试结果和需要,对网络结构、超参数等进行调整和优化,进一步提升模型性能。 通过以上步骤,就可以较为全面地复现"ultra fast structure-aware deep lane detection"代码,从而实现高效、准确的车道线检测算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值