APP下载

带语义分割的轻量化车道线检测算法

2021-08-24陈正斌叶东毅

小型微型计算机系统 2021年9期
关键词:像素点车道轻量化

陈正斌,叶东毅

(福州大学 数学与计算机科学学院,福州 350108)

1 引 言

随着高精度光学传感器和电子传感器,以及计算机视觉和深度学习算法的迅猛发展,对实时驾驶场景的设想也逐步成为现实.来自学术界和工业界的诸多研究团队针对无人驾驶系统或高级辅助驾驶系统(ADAS)的算法研究已经投入了大量资源[1].为了摆脱复杂驾驶环境对于汽车驾驶安全的问题,智能驾驶系统基于实时交通信息协助驾驶员进行决策[2].其中,在环境感知的各种研究主题中,实时高效的车道线检测技术对于车道线偏离预警系统(LDWS)和车道保持系统(LKS)都至关重要,能够显著提高汽车行驶的安全性[3,4].

传统的车道线检测方法[5-9]依赖于高度专业化的特征选择和启发式方法组合.其中,常用的特征包括:颜色[10]、结构张量[11]、边缘检测[12]等,这些特征可以与霍夫变换[13]、粒子或卡尔曼滤波器[14,15]结合,在确定车道线后,采用后处理的技术筛选出误检的部分,并将车道线特征点进行分组确定最后的车道.这类基于特征和启发式的方法具有较快的运行速度,可以运行在计算资源有限的嵌入式设备中[16],但是由于道路场景变化,该类方法的鲁棒性较差,遇到光照变化、外界遮挡或者车道线破损的情况,易出现误识别或无法识别的问题.

近些年来,越来越多的研究者采用深度学习算法替代传统手工制作的特征检测器实现精度更高的车道线检测.Kim和Lee[17]将卷积神经网络(CNN)与RANSAC[18]算法结合起来,以检测从图像边缘开始的车道线,但该方法中的CNN主要是用于复杂道路场景中的图像增强而非直接用于车道线检测.文献[19]展示了在高速公路场景中如何成功将现有的CNN模型用于车道线检测和分类任务中.Li等人[20]展示了多任务网络如何在恶劣天气和低照度条件下同时处理车道线和道路目标的检测和识别.Neven等人[21]提出了一种端到端的车道线检测算法,简化算法的处理复杂度.

通过以上分析,尽管深度学习车道线检测算法在鲁棒性上要高于传统图像处理算法,但是由于算法的参数规模较大,导致检测算法存在实时性不足的问题,尤其是在计算资源有限的车载嵌入式设备中.所以在本文的车道线检测算法评估中将计算成本作为总体性能的关键指标之一[22].

基于上述分析,本文研究的车道线检测问题是辅助驾驶系统乃至自动驾驶中环境感知的一个重要组成部分,对于自动驾驶系统的行车安全具有重要的意义.为了满足在计算资源有限的车载嵌入式设备中对复杂驾驶场景中的车道线进行实时、精确检测的需求,本文提出了一种带语义分割的轻量化车道线检测算法(简称SegLaneNet).该算法充分利用语义分割过程中提取的大量的中间特征信息[23],通过简化并联的空洞卷积支路,增加跳跃连接结构,提出新的空洞空间金字塔池化模块(ASPP-tiny);定义模型的多尺度输入、融合跳跃连接中的浅层特征与深层特征、融合并联的不同采样率的空洞卷积特征;对自编码器中的上采样与下采样卷积进行剪枝操作.最后在TuSimple数据上进行实验验证本文提出的算法在实时性和准确性的优势.

2 相关工作

图像语义分割是计算机视觉任务中图像理解的重要环节之一,再学术界的影响日益凸显,现已成为学术界的重要研究课题之一,在自动驾驶、医学图像诊断等领域均有应用[24].随着深度学习的发展,越来越多的研究者致力于在提高算法精度的同时提高算法的运行速度.首先,He等人[25]提出的残差网络结构(ResNet)解决了深度神经网络难以训练的问题,在图像处理领域取得突破性的进展;其次,Long等人[26]提出的基于全卷积神经网络(Fully Convolutional Networks for semantic segmentation,FCN)的图像分割技术,在像素级的图像语义分割领域为研究人员提供了一种全新的思路和探索的方向,使得语义分割的精度得到提高;再有,为了解决深度神经网络在特征提取阶段为增大感受野而减小特征图尺寸时存在信息丢失的问题,Yu等人[27]提出了空洞卷积的结构能够在保证感受野不变的前提下,同时又能够提高对于图像语义分割的辨识度以及运算速度.

2.1 空洞空间金字塔池化(ASPP)

池化层作为卷积神经网络的基础结构,主要用于减少网络计算参数,保持特征图的尺度不变性,并增加特征图的感受野大小[28].通常情况在中等规模的网络中,使用最大或者平均池化的方式,例如VGG[29]和GoogLeNet[30]等网络.而在大规模的网络中常使用带步长的卷积方式增大特征图的感受野,例如ResNet和DenseNet[31]等网络.由于以上两种方法都是对特征图进行下采样操作,会造成特征图的上下文语义信息丢失,从而降低算法的准确率,所以He等人[32]提出将空间金字塔池化(Spatial Pyramid Pooling,SPP)应用到卷积神经网络中,通过获取特征图的多层金字塔信息,再将这些信息拼接用于全连接层的计算.实验结果证明SPP-Net 能够提高1%-2%的准确率,且算法总开销与未采用SPP算法相差无几.在SPP的基础上Chen等人[33]引入空洞卷积,提出了空洞空间金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)模块使特征映射更精确,能捕获长跨度的上下文语义信息,同时还能够实现不同采样率的空洞卷积并行处理加快运算速度.如图1所示为并行的ASPP模块在图像特征提取网络的应用.

图1 图像特征提取网络中的ASPP模块示意图

2.2 U-Net图像语义分割网络

U-Net是 Ronneberger 等人[34]在2015年参加ISBI(IEEE International Symposium on Biomedical Imaging)竞赛时提出的一种图像分割网络.该网络是基于FCN图像分割技术,类U型的结构实现自编码的过程,在上采样过程中采用了融合多尺度特征的方式,能够较好地保留图像的细节特征,同时其网络结构小,不但可以适应训练集规模小的应用(例如:医学领域),而且网络训练和预测的速度都比较快.

如图2所示,U-Net语义分割网络具有以下特点:

图2 U-Net图像语义分割网络结构

1)基于全卷积神经网络(FCN)的图像分割技术,类U型的结构实现自编码的过程,实现像素级的图像语义分割;

2)采用跳跃连接结构将浅层的图像特征与深层的语义特征进行拼接,获得更加丰富的多尺度特性信息.

3 本文算法研究

针对现有的车道线检测算法在计算资源有限的车载嵌入式设备中存在实时性差、精度不高的问题,本文在像素级语义分割网络U-Net的基础上,提出了一种带语义分割的轻量化车道线检测算法(简称SegLaneNet),该算法采用轻量化的全卷积语义分割网络结构实现像素级的车道线检测,引入改进后的空洞空间金字塔池化(简称ASPP-tiny)模块减少上下文语义信息的丢失,同时采用多种多尺度特征融合的方法提高轻量化模型的算法准确率.

3.1 改进的空洞空间金字塔池化

计算资源有限的车载嵌入式设备中对算法的实时性要求极高.为了在提高算法准确性的同时加快算法的运行速度,本文在空洞空间金字塔池化(ASPP)模块的基础上对该结构进行轻量化处理提出了ASPP-tiny模块.将此模块引入到全卷积语义分割网络中减少上下文语义信息的丢失,以提高轻量化检测算法的性能.

如图3所示,ASPP-tiny模块引入残差模块的跳跃连接结构,移除图像特征池化分支,简化空洞卷积操作,选用空洞卷积采样率分别为2、4和8的卷积层,其对应的感受野尺寸为7×7、15×15和31×31.轻量化后的ASPP-tiny模块能够减少网络的计算参数从而达到算法加速的目的,同时空洞空间金字塔池化减少上下文语义信息的丢失,并且引入残差模块的跳层连接还能有效提高算法的收敛速度和准确率.

图3 ASPP-tiny模块网络结构图

3.2 融合多尺度特征的车道线检测算法

本文在像素级语义分割网络U-Net的基础上,简化特征提取的下采样与特征解码的上采样卷积操作,充分利用语义分割过程中提取的大量的中间特征信息,提出了一种带语义分割的轻量化车道线检测算法(简称SegLaneNet).SegLaneNet 算法基于FCN技术实现像素级的语义分割,以ResNet Block作为特征提取的基础模块提高模型的收敛速度,采用多种多尺度特征融合的方法提高轻量化算法的准确率,并在跳层连接上增加ASPP-tiny模块减少上下文语义信息的丢失、提高算法的运行速度.算法简化了U-Net的结构,以轻量化的结构满足在车载嵌入式平台实时检测的需求.具体的SegLaneNet算法结构如图4所示.

图4 SegLaneNet网络结构图

作为轻量化的算法,SegLaneNet采用多尺度特征融合的方法提高算法的检测准确率,其中的多尺度特征融合的操作包括:

1)采用多尺度的图像输入:采用3个分辨率的图像作为网络的输入;

2)串行多尺度特征融合:采用跳跃连接结构,将浅层特性与深层特征进行融合;

3)并行多尺度特征融合:在改进后的空洞空间金字塔池化(ASPP-tiny)中,融合3个并行分支的特征信息.

其中,多尺度输入的图像尺寸分别为256×512像素、128×256像素和64×128像素,输出尺寸为256×512像素.算法的操作流程为:首先在多尺度输入上使用3×3的卷积核进行特征预提取,接着通过ResNet Block进行深度编码,使用大小为3×3,步长为2的卷积核进行下采样卷积操作,随后对多尺度的特性信息进行融合,对融合后的特征图使用ASPP-tiny模块扩大其感受野并进行深度特征提取,最后使用反卷积操作进行特征解码,恢复特征图并输出像素级语义分割后的结果.

4 实验分析

本文采用图森(TuSimple)(1)https://github.com/TuSimple/tusimple-benchmark/tree/master/doc/lane_detection#tusimple-lane-detection-challenge/车道线检测挑战数据集训练SegLaneNet算法并测试算法的实时性和准确率,其中TuSimple数据集由自动驾驶公司图森发布,是第一个提供针对车道线检测基准的数据集,其主要包括:直线道路、曲线道路、光线良好道路、破损道路、外部设施干扰道路以及阴影遮挡道路等情况的3626张训练图像和2782张测试图像,包括在白天不同时间采集的公路图像数据.

为了进一步验证算法在复杂的城市街景道路中的检测性能,通过增加实验室采集数据并采用数据扩增技术进行扩大数据规模,包括:水平镜像、对比度增强方法,最后生成一个拥有10904张训练图像,4737张测试图像的车道线检测数据集用于算法实验评估.

4.1 评价指标

实验采用的准确率指标为计算预测图像中正确车道线像素点数在标签图像中的占比,具体公式如下:

(1)

其中,Cim是预测图像中正确车道线的像素点数,Sim是标签图像中真正车道线的像素点数.需要通过以下步骤获得:首先计算预测图像中车道线像素点与标签图像中在同Y轴高度的所有车道线像素点在X轴方向上的差值;然后若预测图像上某像素点存在差值小于阈值的情况则认为该点预测正确的,否则预测错误;最后遍历所有预测像素点即可确定预测正确的像素点数.本文还进行假阳性(FP)、假阴性(FN)分析,FP表示预测图像中预测错误的车道线像素点占所有预测像素点的比例;FN为标签图像中未被预测的像素点占标签图像中所有像素点的比例.公式如下:

(2)

(3)

其中,Fpred是预测图像中预测错误的车道线像素点数,Npred为预测图像中所有预测的车道线像素点数,Mpred为标签图像中未被预测的车道线像素点数,Ngt为标签图像中所有的车道线像素点数.

4.2 实验参数设置

本文的SegLaneNet算法使用Tensorflow[35]架构实现,实验采用交叉熵损失函数,训练选用动量为0.9的动量优化器,设置初始学习率为0.005,每100个epochs后衰减2次,并且权重衰减为0.0005.设置实验输入图像大小为512×256像素,并采用双线性插值进行下采样获得其余两个尺度的图像数据.实验服务器的配置参数如下:Intel(R)Xeon(R)Gold 6132 CPU @ 2.60GHz处理器、128 GB内存、16 GB NVIDIA RTS-2080 GPU、Ubuntu 16.04.3操作系统,测试嵌入式设备为带有NVIDIA Pascal架构GPU的NVIDIA Jetson TX2(2)https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-tx2/.

4.3 网络训练

网络训练Sim设置迭代次数为80000次,每一个批次输入8张图像进行训练.按照设置好的实验参数,将预处理好的训练集输入网络中进行模型的训练,通过对模型参数的80000次迭代更新,最后保存训练好的网络模型用于测试.如图5所示,网络训练过程中记录模型的准确率与损失值的变化趋势图,分别见图5(a)、图5(b).由图5所示,模型训练在迭代10000次左右开始收敛,用时约30分钟.此后准确率在0.96左右变动,损失值在0.1左右变动.最终完成80000次训练,总时间约为4个小时.

图5 网络训练准确率与损失值变化趋势图

4.4 实验结果分析

首先,对本文提出的ASPP-tiny模块进行实验评估,本文设置带有ASPP-tiny模块和无ASPP-tiny模块的对比实验,实验结果如表1所示.通过表1的实验结果表明,本文提出的ASPP-tiny模块能够很好的保留特征图的上下文信息,在轻量型网络结构中有利于提高算法的准确率.

表1 ASPP-tiny模块测试结果

更进一步,如图6所示ASPP-tiny模块对算法的性能有所提高.图6(a)为输入图像;图6(b)为无ASPP-tiny模块的车道线输出图像,尽管输出结果能够区分车道线轮廓,但存在分割不连续以及存在误识别的问题;图6(c)为带有ASPP-tiny模块的车道线输出图像,输出的车道线连续且存在的干扰较少,检测准确率较高.特别在输入图像中车道线位置存在严重干扰时也能够精准的分割;图6(d)为带有ASPP-tiny模块的SegLaneNet算法在输入图像上拟合的车道线示意图;图6(e)为输入图像对应的标签图,由图6对比可知SegLaneNet检测的车道线与原图车道线基本重合.

图6 ASPP-tiny实验对比图

接着,在TuSimple 测试数据集上将本文提出的SegLaneNet算法与现有车道线检测算法及Baseline算法进行对比,实验结果如表2所示,其中文献[37]与Baseline未提供算法运行帧率.与Baseline相比,本文算法在测试集上的准确率提高了约2%,FP减少了3%以上,FN减少了约2%.与现有的算法对比,SegLaneNet在检测准确率、FP和FN指标上较为接近,但是算法运行帧率上要远高于其他算法,达到165FPS.

表2 TuSimple测试数据集对比实验结果

如图7为SegLaneNet与文献[21]在TuSimple数据集上的实验对比,其中图7(a)为输入图像,图7(b)为文献[21]的输出结果,图7(c)为SegLaneNet的输出结果,图7(d)为SegLaneNet在输入图像上拟合的车道线示意图,图7(e)为输入图像对应的标签图.对比图7(b)与图7(c)可知,在车道线存在明显干扰时,图7(b)中存在误识别的情况,而本文算法可以准确识别出正确的车道线,如图7(c)所示.因此,本文的SegLaneNet检测准确率要高于文献[21]而误检率(FP)指标低于文献[21].

图7 SegLaneNet实验对比图

然后,将本文提出的SegLaneNet在实验室采集的道路图像上进行效果测试.通过安装在车辆上的行车记录仪采集的图像数据,该数据为国内城市街景道路,具有场景复杂、非车道线干扰多(车辆、阴影、护栏、积水等)、车道线不明显等特点.如图8所示为实验结果展示图,图8(a)为原始输入图像,图8(b)为SegLaneNet分割输出图像,图8(c)为分割输出拟合车道线输出图像.由图8可知,SegLaneNet算法在复杂的城市街景道路也具有较好的效果,达到车道线检测的目的.

图8 国内城市街景道路测试效果图

更进一步,如表3所示为算法权重文件大小的数据对比,本文的SegLaneNet相较于其他算法拥有更加轻量化的模型,其权重大小约为文献[21]的1/4,而各项性能指标都要优于文献[21].

表3 不同算法的权重文件大小

最后,将本文提出的SegLaneNet算法分别在不同设备上进行运算速度测试,测试设备包括:NVIDIA RTX 2080 GPU服务器、Intel(R)Core(TM)i5-8400 CPU台式机、NVIDIA Jetson TX2嵌入式设备,实验结果如表4所示.由实验结果可知,本文的算法在GPU服务器上运行帧率达到165FPS,在嵌入式设备中运行帧率达到16FPS,能够满足嵌入式设备实时检测的要求.

表4 不同设备实验对比图

5 结 论

本文研究的车道线检测问题是辅助驾驶系统乃至自动驾驶中环境感知的一个重要组成部分,对于自动驾驶系统的行车安全具有重要的意义.提出的一种带语义分割的轻量化车道线检测算法SegLaneNet,首先通过简化并联的空洞卷积支路,增加跳跃连接结构,提出新的空洞空间金字塔池化模块(ASPP-tiny),该模块采用并行的不同采样率的空洞卷积进行特征提取与融合以减少上下文语义信息的丢失;接着定义模型的多尺度输入、融合跳跃连接中的浅层特征与深层特征、融合并联的不同采样率的空洞卷积特征;再有对自编码器中的上采样与下采样卷积进行剪枝操作;最后由图森(TuSimple)数据集上的对比实验可知,与Baseline相比本文的SegLaneNet算法在测试集上的准确率提高了约2%,假正例(FP)减少了3%以上,假负例(FN)减少了约2%,在GPU服务器上运行速度达165帧/秒(FPS),同时在嵌入式设备中运算速度达到16帧/秒(FPS).测试结果表明带语义分割的轻量化车道线检测算法能够满足车载嵌入式设备实时、准确的车道线检测工作.同时,本文提出的基于嵌入式平台的轻量化深度学习算法模型对于深度学习算法在车道线检测的应用落地提供一种新的可行的技术解决方案.

猜你喜欢

像素点车道轻量化
智慧收费机器人在高速公路车道上的应用
基于ABAQUS的某轻卡车蓄电池支架轻量化
重卡车架轻量化设计
基于OpenCV的直道车道线识别技术研究
北斗+手机实现车道级导航应用
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
一种X射线图像白点噪声去除算法
基于灰度直方图的单一图像噪声类型识别研究
基于canvas的前端数据加密