基于方向一致损失的轻量车道线检测*

2022-07-13 01:04陆智臣吴丽君陈志聪林培杰程树英
网络安全与数据管理 2022年6期
关键词:主干车道卷积

陆智臣,吴丽君,陈志聪,林培杰,程树英

(福州大学 物理与信息工程学院,福建 福州350108)

0 引言

近年来,自动驾驶技术得到了快速发展。车道检测是自动驾驶和辅助驾驶中的一项关键技术,在运动规划中起着重要的作用。传统的车道检测方法,如霍夫变换 Li[1]、齐美彬等[2],在较为理想的场景下可以检测出车道线,但容易受到其他物体的干扰。为了提高在有遮挡、不清晰场景下的检测精度,Son 等[3]使用卡尔曼滤波器的跟踪算法做车道检测中,文献[4]还进一步使用了随机样本一致性算法来消除一些非车道特征区域。该方法在轻微遮挡时可以有效提升检测精度,但在严重遮挡的情况下检测效果仍然较差。

深度学习发展迅速,在车道检测领域中得到广泛应用。现有基于深度学习的车道线检测根据其检测思路不同,可分为基于分割、分类、回归以及利用时域信息的车道线检测方法。其中,Neven[5]、Chen[6]将车道先检测作为一种分割任务,提出使用实例分割的方法来检测车道线,其精度较高且可以同时检测多个车道线,但基于分割的方法要对图像中每个像素进行分类,计算量较大。为了减小计算量,Hou 等[7]提出了自我蒸馏的方法减小网络参数量,通过计算高层特征的注意力特征图来反馈给浅层网络,以提高浅层网络的特征提取能力,可达到较深网络的精度,但本质上还是一种基于分割的方法,计算量仍然较大。为了让网络计算速度更快,Qin 等[8]提出基于逐行分类的方法做车道线检测,将分割任务的逐像素点分类变为了逐个anchor 分类,推理速度相比于分割的方法快。但在主干网络使用的ResNet-18 中有特征堆叠,导致网络推断速度仍然受限。不同于其他物体,车道线具有纵向跨度大的结构特性,为了利用上下文信息,Pan 等[9]提出了SCNN 的网络结构,通过从多个方向提取特征图像素之间的相关性,增加主干网络的感受野,提升车道线的分割效果。但SCNN 结构会计算特征图在各个不同方向上像素间相关性,计算复杂度大,实时性差。此外,因为车道线可视为一个三次多项式构成的曲线,所以Tabelini 等[10]提出了PloyNet 回归计算三次多项式的系数。由于只要回归出多项式的系数,因此该方法检测速度比分割的方法速度快,但如果多项式的常数量有偏差时就会导致整条车道线出现偏移。也有工作利用时域信息去检测车道线,Ko 等[11]提出可在主干网络之后加入Conv-LSTM,通过提取主干网络输出特征图的时域信息,提高检测精度,但由于Conv-LSTM 计算量太大,因此会导致实时性不够。

除此之外,现有的车道线检测也对所采用的损失函数进行优化。在UFAST[8]中,如果仅通过分类损失来训练网络,只能保证检测出的车道点的位置分布与数据集中标记的车道点的空间分布大体一致,但无法保证车道线的光滑性(这是因为没有考虑到车道线的结构特性),因此,该工作进一步提出了两种结构损失函数,即相似损失(L1 损失)与形状损失(L2 损失),去约束相邻车道点之间的横坐标之差,以实现光滑的车道线检测。但由于该约束的目标是最小化相邻车道点之间的横坐标,因此对弯道场景的检测效果不够理想,容易将弯道检测成直道。

综上所述,现有轻量型车道线检测网络的感受野较小,迫切需要寻找一种高效的方法来提高网络感受野;对于弯道的情况,需要设计合理的结构损失函数,以合理地对弯道情况进行约束;车道线检测对实时性要求较高,因此仍需轻量化主干网络,以进一步提升网络的实时性。

针对感受野不够大的问题,本文在主干网络中引入了自注意力机制[12],以提取图像全局特征。针对车道线检测算法采用的结构损失函数适用于直线的情况,本文提出方向一致损失,即可通过车道点偏转角的二阶差分的符号来约束曲线的光滑性,使其适用于弯道场景。为解决车道线样本分布不均、分类困难的问题,本工作使用了Focal Loss[13]和OHEM Loss[14]。最后,为了提升模型实时性,本文的主干网络采用了RepVGG[15]。RepVGG 在训练阶段,吸收了Resnet[16]与Inception[17]的特点,在VGG[18]网络的每个stage 的3×3 卷积基础上加入了1×1 卷积和恒等映射,以提高检测精度。在推理阶段,将多路结构模型转换为单路结构模型,即可无损地吸收所有1×1 卷积和恒等映射单个3×3 卷积。因此,推理阶段网络参数大大降低。

1 基于自注意力机制和方向一致损失的轻量车道线检测方法

本节将介绍本文的网络框架以及本文所提出的改进方法,包括自注意力机制、方向一致损失函数、自适应权重。

1.1 网络框架的介绍

本文使用多任务的思想设计网络,主干网络为RepVGG 与自注意力机制相融合的网络(详细介绍见1.2 节)。主干网络输出的特征图分别输入到分类分支与分割分支,整体网络结构如图1 所示。其中,分类分支将主干网络输出的特征图经过全连接层输出分类张量后,将其重构为4 通道的特征图,每个通道包含j 行Row Anchor,每个Row Anchor 有l 个元素(不同数据集l 与j 的取值不同),Row Anchor中l-1 个元素对应Row Anchor 的每个patch 为车道线的概率,最后一个元素代表该Row Anchor 不存在车道,其图解如图2 所示。然后对每行Row Anchor中的l-1 个元素求期望,即可计算出车道点的横坐标,如式(1)、式(2)所示,式中的probi,j,l是网络输出的特征图Pi,j,l经过softmax 归一化后的概率值,w为对Row Anchor 求期望后回归的车道点横坐标,其中i 为特征图的通道数,j 为特征图的高度,l 为特征图的宽度。

图1 网络框架

图2 网络输出特征图与输入图片对应关系图解

因为车道线的纵坐标在数据集中是固定的一组数值,所以纵坐标不需要网络进行计算,通过上述方式即可计算出每个车道点的坐标。而辅助任务分支是将主干网络中stage2 与stage3 输出的特征图做上采样后,按通道方向与stage2 输出的特征图堆叠,以聚合多尺度的特征,再通过卷积层输出分割后的特征图。当训练好网络后,去除辅助分支使其不参与网络推断,所以该检测网络推断的速度快。

1.2 主干网络的改进

本文使用RepVGG 和自注意力机制相融合的网络作为主干网络。其中RepVGG 由22 层组成,每一层 包 含1 个3×3 卷 积、1 个1×1 卷 积、1 个 恒 等 映射、1 层BN 层 以 及1 层 激 活 函 数。RepVGG 在 训 练时并行使用3×3 卷积、1×1 卷积和恒等映射来提取不同尺度的特征,提高网络精度。训练完成后,使用结构重参数化将1×1 卷积和恒等映射转换成3×3卷积,即将1×1 卷积周围补零变为3×3 卷积,而恒等映射为所有元素值为1 的1×1 卷积替换后,以上述补零的方式将其变为3×3 卷积。最后,根据卷积的可加性,将变换后的1×1 卷积、恒等映射与3×3卷积相加输出一个3×3 卷积,以使多路网络模型变为仅由3×3 卷积组成单路网络,图解如图3 所示。而对于每个分支的BN 层,可以将BN 层转化为带有bias 的卷积层。

图3 训练网络转化为推理网络的图解(左边是训练网络,右边是推理网络)

通过用结构重参数化网络,卷积核数量下降了,也减小了计算量与内存读写量,因此网络的推断速度更快。

自注意力机制能获取全局特征以加大网络的感受野,其原理为:通过对特征图同时做三次线性变换以获取特征图的query、key 与value,然后通过query 与key 进行点积计算即可算出相关性,最后通过softmax 计算每个元素的自注意力权重,如式(3)所示:

其 中Q 为query,K 为key,V 为value,dk为key 的 维度大小。

所以,本文在第四个stage 后加入自注意力机制,以提升主干网络的全局特征提取能力,提升网络对细长结构车道线的检测效果,且不加入过多计算量。

1.3 方向一致损失

正如引言所述,目前的车道线检测使用的损失容易将弯道约束成趋于直线的车道线,所以本文提出了方向一致损失函数优化该问题。

首先,定义方向向量,为同一条车道线中两个相邻的车道点从上到下的方向构成的向量。车道线上的M 个车道点构成了M-1 个方向向量,如图4所示。方向一致损失函数基于光滑车道线为一个三次多项式函数的假设,且其三阶导处处同号。所以在同一条车道线上,其方向向量的倾斜角兹的二阶差分同号。判断每条车道线上是否光滑,只需计算每个方向向量偏转角的二阶差分是否同号。

图4 车道点偏转方向图解

计算方法如下,首先分别计算每条车道线上的方向向量的倾斜角 兹j,如式(4)所示。其中j 为车道点索引,h 为车道点纵坐标。

根据以上假设,当车道点偏转方向是一致时,该车道线相邻的方向向量之间的倾斜角兹j 的二阶差分 驻渍符号相同,如图4(a)所示。而车道点偏转方向不一致时,相邻方向向量之间的倾斜角兹j 的二阶差分 驻渍符号不同,如图4(b)所示,计算公式如式(5)、式(6)所 示。其 中 驻兹j,j+1代 表 第j 个 倾 斜 角 与第j+1 个 倾 斜 角 的 变 化 量,驻渍k为 驻兹j,j+1的 变 化 量一阶差分。

当 驻渍k·驻渍k+1大于零时,驻渍k·驻渍k+1同 号,说 明 车道线方向一致,反之方向不一致。最后,根据同号性设计方向一致损失,如式(7)~式(9)所示。

其中u 为阶跃函数,C 为输入图片的车道线数量,h为固定的行数。

为保证相邻车道点的偏转角度不会过大,本文又优化了方向一致损失,将方向向量的二阶差分驻渍控制在10°以内,保证了检测出来的车道线更光滑,式如(10)、(11)所示。

其 中 驻渍k为 驻兹j,j+1的 一 阶 差 分。

最后给出总损失函数,如式(12)所示,其中Lfocal

为Focal Loss,Lseg为OHEM Loss,它为分割分支的损失,琢为0.5。

2 实验

本节详细介绍了实验设置、对比实验和数据集上的结果。

2.1 实验设置

(1)数据集

为评估模型的效果,本文在Tusimple 和CULane数据集上做了广泛的实验。Tusimple 数据集是用行车记录仪收集高速路上的车道场景,它具有车道线清晰、车辆少、场景亮度好的特点,所以是一种易处理的数据集。其训练集由3 626 个视频剪辑组成,每个视频剪辑为1 s 内拍摄的图片(共计20 张),选其中1 张参与训练,所以训练集包含3 626 张图片。测试集包含2 944 个视频剪辑,共抽取2 782 张图片作为测试数据。而CULane 数据集是用行车记录仪收集了城市中的道路场景,它的特点是车道线被遮挡严重、无车道线、场景亮度低等困难场景,因此是目前车道线检测的数据集中有挑战性的数据集。其训练集有88 880 帧图片,测试集有34 680 帧图片,测试集细分为正常和8 个挑战类别。

(2)度量指标

根据历来车道线检测设置,Tusimple 使用准确度作为度量指标,计算公式为:

其中Cclip为检测正确车道点的数量,Sclip为每片的车道点标注的总数。而CULane 数据集使用F1-measure作为度量指标,计算公式为:

(3)训练设置

本实验基于Ubuntu18.04 LTS 64 位操作系统,使用框架PyTorch 以及CUDA10.1 和cuDNN7 搭建环境,显卡为NVDIA GTX2080Ti。在训练时将输入的图片降采样到288×800。对于Tusimple 数据集,其行anchor 设置为100,使用Adam 去训练模型,学习率设置为2×10-4,学习率衰减方式为cosine,其训练总轮数为120。对于CULane 数据集,其行anchor 设置为200,使用SGD 去训练模型,学习率设置为0.01,学习率衰减方式为多步长衰减,其训练总轮数为60。

2.2 消融实验

在本节中,baseline 为主干网络无自注意力机制的ResNet-18 组成的网络,且未使用方向一致损失训练的网络。

首先,对本文提出的每个改进点进行评估,结果如表1 所示。使用RepVGG 后准确率几乎没提升,但速度比baseline 快102.5 FPS。在使用自注意力机制后,提升了主干网络提取特征的能力,模型准确率提高了0.4%,虽然实时性降低但仍比baseline快75.5 FPS。然后在训练过程中加入了本文设计的方向一致损失函数,准确率进一步提升了0.72%,达到了95.92%。

为了直观比较在Tusimple 数据集下使用与不使用方向一致损失的区别,本文展示其对比图(如图5所示),单纯使用分类损失只能保证检测出的车道点的位置分布接近真实车道线,但无法保证其精度。但加入方向一致性损失后,检测效果明显提高。

2.3 不同模型对比

在本节中,展示了在Tusimple 与CULane 数据集上本论文的模型与其他模型性能上比较。

表1 在Tusimple 数据集上用提出的改进点实验

图5 使用与不使用方向一致损失的结果比较(第一行为未使用训练的结果,第二行为使用训练后的结果)

对Tusimple 数据集,使用了7 种模型与本文的模型进行准确率与运行时间上的比较,包括LaneNet[5]、Res18-Seg、Res34-Seg[6]、SAD[7]、UFAST[8]、SCNN[9]和EL-GAN[13],其中运行时间为执行100 次的平均运行时间,结果如表2 所示。在Tusimple 数据集上,本文设计的网络的推断速度是最快的,准确度与实时性都高于UFAST,虽然精度不如SAD,但它的运行速度是SAD 的5.58 倍。

表2 在Tusimple 测试集上与其他模型的比较

对CULane 数据集,在IoU(交并比)为0.5 的条件下,与6 种模型进行了比较,包括Seg[6]、SAD、UFAST、SCNN、FastDraw[19]和LaneATT[20]。在实验中比较网络的F1-measure 和推断速度。结果如表3 所示,本文的模型在推断速度方面达到了最佳性能,且在有箭头的场景下精度是所有模型中最高的,达到了84.3%。与UFAST 相比,弯道的检测精度高于2.5%,总检测精度高于其2.3%。虽然与LaneATT[20]相比本文的网络精度低于4.43%,但其推断速度慢158 FPS。

表3 在CULane 测试集上比较不同模型各场景F1 分数(%)、总F1 分数(%)及其实时性(FPS)

最后,本文展示在Tusimple 和CULane 数据集上的可视化结果。如图6 所示,本文的模型在夜间、拥堵等挑战场景检测效果好,在车道遮挡以及光线弱时依仍可有较好的检测效果。如图7 所示,本文模型在弯道、直道场景检测效果好,可拟合出准确的车道线,直观地证明了方向一致损失的有效性。

图6 CULane 数据集的标注与本文模型推断结果对比(第一列为本文模型推断结果,第二列绿色点为CULane 数据集的标注)

图7 Tusimple 数据集 的标注与本文模型推断结果对比(第一行为Tusimple 数据集标注,第二行为本文网络在Tusimple 数据集推断结果)

3 结论

针对现有轻量型车道线检测网络模型存在的问题,本文提出一种基于方向一致损失的轻量型车道线检测网络模型。首先,设计了一种方向一致损失,以提高网络弯道的检测精度。其次,在RepVGG主干网络中加入自注意力机制,在提升实时性的同时,加大了网络感受野。实验结果表明,本文提出的算法取得了较好的效果,在精度与实时性之间达到了平衡,精度在轻量型网络中表现优异,同时其平均速度达到408 FPS,最高可达到420 FPS,达到了目前前沿的推断速度。

猜你喜欢
主干车道卷积
基于OpenCV的直道车道线识别技术研究
抓主干,简化简单句
北斗+手机实现车道级导航应用
矮砧密植苹果园动态修剪效果好
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
从滤波器理解卷积
基于单片机的潮汐车道设计与实现
寓美于物理力学主干知识的复习