1. 引言
车道线检测是计算机视觉领域一个重要问题。被广泛应用于自动驾驶和路径规划等领域。主流的车道线检测方法有两种,传统的图像处理方法和深度分割方法最近,由于深度学习的发展得到了广泛关注。SCNN [1] 通过提出相邻像素之间的消息传递机制显著提高了深度分割方法的性能。但是像素级通信需要更多的计算成本 [2]。引入了生成对抗网络,提升了模型在弱光条件下的车道线检测的鲁棒性 [3]。提出了一个轻量级的车道线检测网络,通过引入空洞卷积金字塔提升了模型预测的精度。尽管深度分割的车道线检测方法在精度上有了大幅度的提升,但是基于深度分割的车道线检测仍然存在着巨大的挑战。
车道线检测作为自动驾驶的子任务对实时性的要求非常高。尽管现在图形显卡的计算力有了大幅度的提升可以满足大多数视觉任务的运算需求,但是大量的运算同时也会带来很高的能量消耗。在汽车行驶过程中车道线检测算法需要持续进行运算,所以如果单次运算的能量消耗过高这会严重影响车辆的续航能力。因此在确保精度的同时我们还要降低模型的运算量,以达到低耗能实时运算的目的。为了实现低耗能实时运算的需求,我们提出了一个轻量化的车道线检测,并且为了解决卷积神经所带来的特征间依赖降低和特征离散问题,提出了一个融合自注意模块,通过融合空间注意力和通道注意力实现模型更有导向性地进行迭代。
2. 相关工作
随着深度学习的发展,基于深度神经网络的方法在车道检测方面表现出优越性。基于深度学习的车道线方法一般将车道线任务视为一个语义分割任务。例如,VPGNet [4] 提出了一个由消失点引导的多任务网络,用于车道和道路标记检测。除了主流的分割公式外,还提出了其他公式,如序列预测和聚类。Fast-Draw [5] 预测每个车道点的车道方向,并依次绘制出来。在 [6] 中,车道检测的问题被视为聚类二进制段 [7]。将自注意力机制引入了车道线检测模型一次提升模型性能。但是 [7] 他只关注了空间上自注意机制。而忽略了通道自注意力机制,因此在本文中我们在模型中引入了空间自注意力机制和通道自注意力机制来关注这两个维度的信息。
3. 算法实现
本论文主要提出了一个轻量化的实时车道线检测模型,具体网络模型如图1所示。
在本文中我们选用Resnet34 [8] 作为基础网络,Resnet34有着参数量少、运算速度快等优点。本文使用Resnet作为编码器,在解码阶段会将特征图进行压缩,并将其拉成一个特征块,然后分别用两个卷积对特征块进行处理,最后把处理后的特征块展开得出最终预测结果。
图1中的红色模块是我们引入的双头自注意机制模块 [9],其结构如图2所示。双头自注意力机制主要分成两部分:1) 空间自注意力模块(图2上);2) 通道自注意模块(图2下)。图2中,对于输入的大小为C*H*W特征图,空间注意力模块把空间上的每个点都可看作一个长度为C的向量,并通过1 × 1的卷积对特征图进行压缩得到长度为C/8代表key的向量。接着用同样的方法得到长度为C/8代表query的向量。将key和query相乘可以得到大小为(H*W)*(H*W)的相似矩阵。相似矩阵可以理解成空间上每个点与其他点之间所包含信息的相似度。对于空间上每个点的得到的大小为H*W的相似向量我们通过softmax使得其总和大小为1,处理后的(H*W)*(H*W)的矩阵可以看作通过注意力机制得到的权重。将这个权重与提取的value特征图相乘,再和原来的特征图相加得到最终的结果。对大小为C*H*W输入特征图,通道自注意力模块直接通过重塑输入特征图得到key,query向量相乘后得到通道与通道之间的相似度。由于每个通道和自己的相似度是最大的,所以每一行要减去这个最大的相似值。然后使用softmax对每一行进行处理,使其总和为1,得到注意力权重。将这个权重与原特征图相乘,再整体乘上一个可学习的系数gamma即可得到最终输出。最后我们将两个从自注意力模块输出的特征图进行融合得到最终的融合特征图。为了使模型更加轻量化,在解码阶段我们对特征图进行压缩,并将其拉成一个大小为1*1*1800的特征块,然后分别用两个1*1的卷积对特征块进行处理。最后把处理过的特征块展开得到最终预测结果。在损失函数方面我们遵循 [10] 提出的分类损失函数。
4. 实验
在这一章节我们将详细介绍我们的实验细节。首先我们将介绍相关数据集,而后我们将介绍实验环境和相关超参数的设置。最后我们将展示我们的实验效果还有我们和一些先进方法的方法的比较。
4.1. 数据集
CULane是由香港中文大学提出的用于行车道检测学术研究的大规模数据集。它由安装在六辆车上的摄像机收集。收集了超过55小时的视频,并提取了133,235帧。其中88,880帧被分训练集,9675帧被分为验证集,34,680帧被分为测试集。
4.2. 实验室环境和超参设置
使用Adam [11] 来训练我们的模型。batch size设置为32,数据集的训练epoch总数设置为50,学习率为0.0004。所有模型均使用pytorch [12] 和Tesla V100进行训练和测试。
4.3. 评价指标
为了对算法的检测精度进行评价,本文将每个车道线视作一条宽30像素的线,通过计算真实标签与预测结果之间的交并比(IoU)。在本中我们将阈值设置为0.5,IoU大于阈值的预测结果被视作真阳性(TP)。最后我们用𝐹1分数来对模型性能进行评价,F1分数定义为:
(1)
F1分数(F1 Score)为统计学中用来权衡二分类模型精确度的指标。它同时顾及了分类模型的精确率和召回率。F1分数可以看作是模型精确率和召回率的一种调和平均,F1分数(F1 Score)又叫做平衡F分数(balanced F Score),他被定义为精确率(precision)和召回率(Recall)的调和平均数。用精确率和召回率的指标来评价二分类模型的分析结果。
4.4. 实验效果展示和对比
在这部分我们对本文的算法和其他先进算法进行对比以证明本文算法的有效性,对比结果如表1所示。

Table 1. Performance comparison results of the algorithm in this paper and other algorithms
表1. 本文算法与其他算法的性能对比结果
从表1可知我们的算法在各种环境下进行车道线检测都能取得优秀的效果。并且在相对于其他 [1] [2] [13] 的算法,我们的算法在运行效率上取得了最佳的效果。这是由于我们的框架非常的轻量化的网络框架保证了模型的运行效率,同时我们又引入多维度的自注意机制来提升模型的预测精度。由于自注意力机制会产生较大的运算量,但由于我们在将特征输入自注意力模块之前就先把特征通道进行了压缩,从而有效地缓解自注意机制的高计算量的问题。为了更有效地证明我们算法的有效性,我们对预测效果进行了可视化,可视化结果如图3所示。由可视化结果可知我们的模型的真实预测效果十分好。

Figure 3. Visualize lane line detection results
图3. 可视化车道线检测结果
5. 结论
本文提出了一种轻量化的实时车道线检测算法。为了提高模型的速度,我们在模型中没有采用任何多尺度特征融合模块,而是使用了极其轻量的模型结构。同时提出了一个多维度的自注意力模块来提升模型预测精度。由于我们在将特征输入自注意力模块前先对特征进行了压缩,因此我们的自注意力模块并不会引入过多的计算量。实验证明,我们的算法很好地实现了实时性,并取得了优秀的检测效果。
NOTES
*通讯作者。