吴玉婷 范淙坤 吴启超 罗森森 梁 鹏
(1.广东邮电职业技术学院,广东 广州 510630;2.广东技术师范大学,广东 广州 510665)
车道线是路面上的一种标记,用于指示车辆行驶的方向和限制车辆行驶区域。国内外车道线检测方法研究主要分为2 种方法:基于传统图像处理技术的方法和基于深度学习的方法。
基于传统图像处理技术的车道线检测方法如下:先对图像进行预处理,例如进行灰度处理、滤波、二值化等操作,然后通过提取边缘、霍夫变换等技术来检测车道线。基于深度学习的车道线检测方法利用深度学习网络进行特征提取和车道线检测。其中,基于行分类的方法将车道检测任务制定为多个行的分类任务,这种分而治之的策略[1]能够显著减少模型的大小和计算量,同时保持高精确度。行分类方法[2]很好地利用形状先验,在训练阶段通过每行的位置约束来实现对整体线形状的约束。
现有算法在识别车道线上依旧存在一个问题:只关注高层次特征,缺少对高层次特征和低层次特征的融合利用。车道线是一个细长的目标,其在图像中的特征通常不明显,而且易受噪声影响。因此,对车道线进行精确地识别不仅需要高层次特征,而且需要低层次特征中的局部定位信息。
基于多尺度信息融合的车道线检测方法主要分为3 个部分,分别是特征提取模块、多尺度信息融合模块和分类模块,如图1所示。特征提取模块使用残差网络对车道线图像进行多层次的特征提取,然后将特征提取模块的输出送入多尺度信息融合模块,最后将融合多层次语义信息和位置信息的特征输入分类模块,经过池化层、扁平化以及多层感知机等,完成车道线检测。
图1 网络结构图
特征提取模块由残差网络组成,用来提取不同层级的特征。在特征提取中使用残差网络作为主干网络主要有以下3个优点:1)解决梯度消失问题。残差网络通过引入残差块,改善了训练过程中的信息流动,使信息可以更直接地传递到网络的后续层次,解决梯度消失的问题,帮助优化算法更快地收敛,使模型可以更好地训练。2)提高模型的表达能力。由于残差网络的结构特点,使模型的表达能力更强大,可以更好地提取高级别的语义特征,因此这对图像分类等计算机视觉任务是非常重要的。3)减少参数数量。残差网络还具有较少的参数量和计算量,它能够更快地进行训练和推理,并适合在计算资源有限的情况下使用。
在特征提取部分中,首先,残差网络对输入数据的初步处理是由一个卷积层和一个最大池化层构成的。卷积层的卷积核大小为7×7,输出通道为64,步长为2,其次,卷积层结构是一个3×3 的最大池化层,步长也为2。Stage 1、2、3、4 分别表示由残差块连接而成的模块,不同模块的卷积层所设置的卷积核大小相同,卷积层输出通道数不同。卷积核大小都是3×3,卷积层输出通道数分别是64、128、256 和512。随着层数加深,输出通道数也以2 的幂次倍数进行增长,表示网络提取更深层次、更抽象的特征。ResNet-18 结构相对简单,每个模块只包括2 个残差块。
在特征融合部分,构建上下文信息融合模块,包括自顶向下和自底向上2 个模块,分别从不同方向对多尺度特征进行融合。4 个不同尺度的特征{S1,S2,S3,S4}作为特征融合模块的输入,主要目的是对不同分辨率下的特征进行聚合,增强整个特征层次的信息,缩短最下层与最上层特征之间的信息路径,增强对低层次信息的响应,提高网络的性能。如图2 所示,将残差网络每个阶段的最后一个残差块输出的结果为{S1,S2,S3,S4},再通过多尺度信息融合模块对特征提取模块的各层次输出进行双向特征增强,自上而下的模块输出结果为{P1,P2,P3,P4},自下而上的模块分别输出{N1,N2,N3,N4}。
图2 多尺度信息融合
图3 TuSimple 数据集中特征融合前后对比的可视化结果
首先,从上到下进行特征融合,对特征提取模块输出的{S1,S2,S3,S4}进行横向连接操作,即1×1 卷积重采样,在不改变输出图像大小的前提下,将输出通道数调整为64,减少冗余通道。然后按照从上到下的方向,对S4进行横向连接得到P4,再对P4进行2 倍上采样,并且和S3横向连接的结果进行相加合并;再将该层合并映射的特征进行2 倍上采样,类似地和S2横向连接的结果进行相加合并。以此类推,实现自上而下地特征融合过程。为减少上采样的混叠效应,在每个合并结果后附加1 个3×3 的卷积来生成最终的特征映射。假设输入图像的尺寸为W×H×3 的彩色图像,那么{S1,S2,S3,S4}各层次特征的尺寸分别为(W/2)×(H/2)×64、(W/4)×(H/4)×128、(W/8)×(H/8)×256、(W/16)×(H/16)×512。
Pi与Si之间的关系如公式(1)所示。
Ni与Pi之间的关系如公式(2)所示。
式中:conv(~)为3×3 卷积操作;l(~)为横向连接操作,即1×1 卷积操作;up(~)为上采样操作,即2 倍双线性插值上采样操作;Si为特征提取模块提取的第i层特征,Pi为第i层特征横向连接操作后的结果。
焦点损失函数在解决不平衡数据集分类问题的过程中表现良好。在传统的交叉熵损失函数中,每个类别的权重都是相同的,这说明在存在类别不平衡的情况下,网络更容易将多数类别(如背景)分类正确,而忽略少数类别(如车道线)。这会导致模型对少数类别的分类精度较低。焦点损失函数通过引入一个附加的可调参数,改变了交叉熵损失函数中易分类样本的权重,减少了易分类样本的权重,增加了困难样本的权重。这说明在存在类别不平衡的情况下,模型将更关注困难样本分类,从而提高少数类别的分类精度。这种调整样本权重的方法可以帮助模型更好地处理类别不平衡问题。首先,在每行图像上划分w个网格,待检测的车道线有C条,用X表示图像的全局特征,f表示第i条车道线在第j行的分类器(该分类器用来判断哪一行存在车道线以及该行存在车道线的图像块在图像的哪一列上),可以得到车道线的预测公式,如公式(3)所示。
假设Ti,j,:是正确位置对应的标签值,车道线分类损失用Lcls表示,焦点损失函数用Lfocal表示,则对应的损失函数如公式(4)所示。
除车道线分类损失Lcls外,为了更好地利用车道线的位置关系,使邻近车道线点更接近,进一步采用原方法中的相似性损失,如公式(5)所示。
模型总损失函数为分类损失和结构化损失2 个部分的总和,如公式(6)所示。
试验使用的框架都是PyTorch,硬件配置环境为Ubuntu操作系统,使用的CPU 为Intel i7-8700,主频为3.2GHz,GPU 为Nvidia GeForce GTX 1080Ti,显存容量为11GB。
TuSimple 数据集和CULane 数据集中的图像尺寸分别是1280×720 和1640×590,综合考虑硬件设备的限制以及其他方法中对图像大小的设置,将TuSimple 数据集和CULane 数据集中的图像进行一定程度地缩放,将Tusimple 数据集和CULane数据集的图像统一缩小为800×288。再对试验用到的数据集数据进行归一化,消除奇异样本的影响,加快梯度下降求最优解的速度。训练集、测试集和验证集的比例为8 ∶1 ∶1。
将TuSimple 和CULane 数据集中的IoU 阈值设置为0.5,IoU 大于0.5 的预测结果认为是真阳例(TP),用类似的方法计算假阳例(FP)、真阴例(TN)和假阴例(FN)。接着,精确率(Precision)可以被计算为真阳例与真阳例以及假阳例之和的比值,表示所有被预测“阳”的样本中实际为“阳”的样本的比例;召回率(Recall)表示为“阳”的样本中被预测为“阳”的概率,最终根据精确率(Precision)和召回率(Recall)进行计算,得到系数F1,如公式(7)所示。
表1 和表2 展示了该文方法与其他对比方法在TuSimple测试数据集和CULane 测试数据集中的试验结果,特征提取网络选择ResNet34 试验选取的对比方法是Res34-Seg、ELGAN 和PolyLaneNet 这三个车道线检测方法,Res34-Seg 是基于ResNet34 主干网络的车道线分割方法[3],EL-GAN 是用于车道线分割的嵌入损失GAN 网络,PolyLaneNet 是基于深度多项式回归的车道估计识别方法,这三种方法都具有代表性。表1 和表2 的F1、Precision和Recall可以看出,与其他对比方法相比,通过融合上下文多尺度信息,该文方法在性能指标都优于其他方法,并提升了处理速度。此外,该方法的最高准确率达到95.97%,比其他对比方法要好。在所有进行比较的方法中,该方法在处理速度、实时性方面的表现也优于其他方法。
表1 不同方法在TuSimple 数据集中的结果比对
表2 不同方法在CULane 数据集中的结果比对
表3 是鲁棒性试验,给出了不同方法在CULane 上各个环境下的检测效果,左边第一列表示试验用到的方法,其他列表示CULane 中不同的车道线场景类别,最后一列Total代表所有场景下的总体指标。从表3 的结果可以看出,该文提出的方法通过融合车道线在不同尺度的特征信息,提取车道线特征,在总体指标和各个环境下的指标都比其他方法要好,这间接说明了所提方法的鲁棒性。
表3 在CULane 数据集不同分类的结果比对(单位:%)
针对车道线检测任务中行分类方法在推理过程中所存在的缺乏足够的上下文信息以及车道线定位存在偏移等问题,提出一种融合上下文多尺度信息的车道线检测方法。该方法先通过行分类方法在数据处理阶段将输入图像划分为图像块,利用路径增强网络从上至下以及由下至上的对特征图进行双向融合,对主干网络输出的特征图进行位置信息和语义信息的增强。为减少计算量、提高推理速度,选用融合上下文多尺度信息后的最高层特征图进行车道线位置推理计算,完成车道线的识别及定位。