APP下载

基于非对称卷积的多车道线检测方法

2024-02-22郭心悦韩星宇范自柱

计算机工程与设计 2024年2期
关键词:非对称分支车道

郭心悦,韩星宇,习 超,王 辉,范自柱,2

(1.华东交通大学 理学院,江西 南昌 330013;2.华东交通大学 江西省先进控制与优化重点实验室,江西 南昌 330013)

0 引 言

全自动汽车是计算机视觉领域的重点研究对象,其目标是通过使用传感器和控制模块来了解汽车周围的环境。基于摄像头的车道线检测则是环境感知的重要一项,它要求汽车在车道内正确地定位自己,是车道保持辅助和车道偏离预警系统的基础。对于车道线检测,目前有两种主流方法:传统的图像处理方法[1]和基于深度学习的方法[2,3]。

在传统方法中,主要是通过边缘检测、滤波等方式分割出车道线区域,然后与霍夫变换[4]、粒子或卡尔曼滤波器[5,6]相结合。但这类算法依赖于手工提取特征,并在确定了车道后,采用后处理技术过滤错误检测,将片段分组在一起形成最终车道。这样做会导致工作量大且鲁棒性较差。

近年来,随着卷积神经网络[7-9]的发展,车道线检测的研究重点转向了基于深度学习的方法。Pan等[10]提出了一种相邻像素之间的消息传递机制,这种方法虽然比传统的图像分割方法具有更强的语义表征能力,但是速度很慢,阻碍了它在实际场景中的适用性。Hou等[11]提出了一种自注意力蒸馏模块,允许模型从自身学习并获得实质性的改进,不需要任何额外的监督或标签,且基于信息蒸馏的方法可以更好地聚合文本信息。该方法允许使用更轻量级的骨干网络,但由于其具有基于分割的密集预测特性,故计算代价大。

本文综合了上述算法的优缺点,受Lanenet[12]车道线检测算法的启发,提出了一种新的多车道线检测算法。该算法主要分为两个步骤,首先利用多尺度Retinex算法[13]对输入图片进行图像增强,再送入双边多尺度融合网络进行车道线检测。网络结构具有双分支、多任务、非平衡的特点,整合了不同层次特征图的语义信息和位置信息,减少了边缘信息的丢失。同时提出的非对称卷积金字塔模块,可以用于统一特征图的大小,增加图像大小的多样性,减少计算量。

1 基于非对称卷积的车道线检测模型

1.1 模型简介

为了减少光照对车道线检测产生的影响,及针对现有的车道线检测算法网络加深所带来的计算量大、耗时长的问题,本文对Lanenet车道线检测算法做出了以下改进:在网络前端加入多尺度图像增强操作,能够保持图像的高保真度、颜色恒常性,实现色彩增强和对图像的动态压缩,以减少光照、阴影等对车道检测的影响。又由于车道线细长型的外观结构和不确定性的外观状态,使得需要强大的高低层次特征融合来同时获取全局的空间结构关系和细节处的位置信息。因此,本文保留原本二值分割与实例分割相结合的思想,设计了一种带残差模块的双边多尺度融合网络(bilateral multi-scale fusion network,BMFNet)代替原来体积小、结构相对简单的ENet语义分割网络。BMFNet采用非对称的网络结构分别对两个分支进行语义分割和实例分割,两个分支处于并列关系。车道线语义分割分支是一个二分类问题,输出二值化分割图,仅包含两个类,即车道类和背景类。而实例分割分支则更关注车道的高级语义信息,需要继续对输入图片上的每一个像素分类,因此,网络层次更深,网络结构更复杂。在实例分割分支阶段,本文针对性地提出了非对称卷积金字塔模块(asymmetric convolution pyramid,ACP)减少上下文语义信息丢失的同时降低计算量,并通过引入聚类损失函数,从而进一步将分割后的车道线像素分解为不同的车道线实例,最后再进行车道线拟合,输出结果。系统整体架构如图1所示。

图1 系统整体架构

本文将图像增强算法与双边多尺度融合网络模型相结合,保证对图片特征提取的全面性,提高了检测的准确率及鲁棒性,使该检测方法可以更有效地应用于车道线检测的各种实际场景中。模型的细节描述如下文所示。

1.2 图像增强

人眼所观察到的图像I(x,y) 包括亮度信息L(x,y) 和反射信息R(x,y)。 基于Retinex图像增强的核心思想是从观测图像I(x,y) 中估计出光照L(x,y), 分解得到反射分量R(x,y), 以消除或减少光照不均对图片的影响,尽可能多地保留包含对象本质信息的反射图像,改善图像的视觉效果。因此,Retinex图像增强算法主要是对R(x,y) 增强。原理如图2所示。

图2 Retinex原理

本文使用多尺度的Retinex算法(multi-scale Retinex,MSR)来实现色彩增强、局部动态范围压缩和全局动态范围压缩。MSR公式请参见文献[13]。其主要流程分为如下几个步骤:

(1)读取原始图像,将图片中的颜色信息进行提取并分类,对每类颜色的每个像素的灰度值由整数值转换为浮点数,并转换到对数域。

(2)对log图像的每个尺度进行高斯模糊,得到模糊后的图像L(x,y)。

(3)用原图和模糊之后的log图像做差分,得到R(x,y)。

(4)对每个尺度的结果R(x,y) 进行加权平均。

1.3 车道线检测网络

1.3.1 语义分割分支

原Lanenet算法采用的是ENet分割网络,但ENet采用强下采样会导致部分空间信息的丢失,如边缘形状等,降低精确率。并且强下采样需要强上采样才能恢复原来的分辨率,这意味着需要更大的模型复杂度。考虑到ENet的缺点,本文提出了一种带残差模块的双边多尺度融合网络,BMFNet在语义分割分支的网络结构如图3所示。

图3 语义分割分支网络结构

语义分割分支包括特征提取过程、桥接过程和图像还原过程3个阶段。在特征提取过程中,首先对图像进行卷积改变图像的通道数为起始通道数,再经过一个残差模块,保持通道数不变。然后进行一次下采样,通道数翻倍,此步骤执行4次。在桥接过程中,对特征提取过程中最后一步下采样得到的特征图,送入一个残差模块层,特征图通道数不改变。图像还原过程采用跳跃连接结构,融合特征提取过程中的细节特征,将浅层特征与深层特征进行融合,具体操作为:首先将桥接层输出的特征图用stride为2,卷积核为4的反卷积进行上采样,再与特征提取过程中残差卷积后大小相同的特征图进行融合,融合后特征图的通道数减半。此步骤执行4次,得到最终大小与输入图像相同,通道数和起始通道数相同的特征图,再进行一次卷积操作,改变通道数。该分支最后输出的结果是仅包含车道类和背景类的二值化分割图。

BMFNet设计了两种残差模块,残差模块结构如图4所示,编码器前两层使用图中的残差模块(a),第三到第五层使用残差模块(b)。这样做是出于以下考虑:

图4 残差模块

(1)在正向卷积时,卷积核参数的随机性、激活函数的抑制作用等会丢失一些细节信息,只能提取到图像的部分特征。网络层次越深,原始图像信息丢失的就越严重。加入shortcut结构,相当于在每个block中加入了上一层图像的全部信息,保留了更多的原始信息,起到了减损作用。除此之外,残差结构使得网络需要学习的知识变少,更容易学习。

(2)使用多个3×3大小的卷积核比使用一个大尺寸的卷积核的优势在于:每个3×3的卷积层中都包含relu激活函数,增加了网络的非线性,使得决策函数更加具有判别性。

(3)特征具有层次性,浅层网络提取的特征和输入数据距离较近,包含更多像素点的信息,且感受野较小,特征图每个像素点对应的感受野重叠区域小。然而随着下采样或卷积次数增加,感受野逐渐增大,感受野之间的重叠区域也不断增大。此时像素点代表一个区域的信息,包含更多深层抽象信息,相对不够细粒度,因此就需要更深层的残差模块,以此得到更深层次的特征图。

1.3.2 实例分割分支

在进行图像分割时,池化操作可以扩大感受野,但会降低空间分辨率。而通过对标准的卷积映射里注入空洞、增加扩张率(dilation rate)这一超参数,可以在扩大感受野的同时不丢失分辨率,且保持像素的相对空间位置不变。但也存在着不足,当仅仅重复叠加多个 dilation rate=2的3×3的卷积核时,就会导致边缘信息丢失,这对逐像素的预测任务和小物体的分割来说是不利的。Ding等[14]提出了非对称卷积,利用卷积的可加性验证了用3个并行的1×d,d×1,d×d卷积来代替原始的d×d卷积是可行的,而且可以减少参数量。因此,本文结合了二者的优点,设计了一个非对称卷积金字塔模块。ACP模块由5个分支组成,前4个分支的第一层都是一个1×1的卷积,第二层分别是1×3,3×1,3×3的非对称普通卷积,第三层由普通卷积改为dilation rate分别为6,12,18的空洞卷积;第五个分支是图像级的特征,首先使用全局平均池化,再经过1×1卷积,然后用双线性插值上采样至输入分支前图像的大小,最后将5个分支的特征进行融合叠加,送入1×1卷积层。这样做可以在一个高分辨率的特征图上生成新的特征图,并且在相同参数量的情况下尽可能地表达上一个特征图中的全部信息。ACP模块具体结构如图5所示。

图5 非对称卷积金字塔网络结构

在实例分割分支中,特征提取过程与语义分割分支保持一致。又由于非对称卷积用在靠近输入层会影响精度,应用在较深的层,且为了捕捉车道线更高级的语义信息、提高算法的运行速度,本网络设计在桥接过程中,即BMFNet实例分割分支编码部分的第五层加入ACP模块。具体操作为:先把特征提取过程中最后一步下采样得到的特征图,送入一个残差模块层,再经过ACP模块。模块带有多个不同dilation rate的空洞卷积,产生不同的感受野,用来获取多尺度上下文信息,同时在金字塔结构内加入非对称卷积,来显式地增强标准正方形的卷积核的表征能力。非对称卷积可以融合到正方形卷积核中,不需要引入额外的参数,还能有效降低一定计算量,兼顾了车道线检测的速度与精度。BMFNet在实例分割分支的网络结构如图6所示。

图6 实例分割分支网络结构

图像还原过程同样采用跳跃连接结构,充分利用了实例分割过程中提取的大量中间特征信息,具体操作为:对特征提取过程的每一层先经过一个1×1卷积,再与桥接层输出特征图的反卷积结果进行融合,融合后特征图的通道数减半。

此步骤执行4次,得到最终大小与输入图像相同,通道数和起始通道数相同的特征图。该分支最后输出的结果是对每一个像素进行了分类的实例分割图像,比语义分割分支拥有更多的图片信息,得到的是一个像素级的实例分割图。

1.3.3 损失函数

基于归属于同一车道的像素点距离近,不同车道的像素点距离远的基本思想,利用聚类损失函数建模车道像素点之间的位置关系,并得到各条车道线。

(1)

一旦网络收敛,同一车道的像素点将被聚集在一起(如图1所示),使每个聚类之间的距离超过δd, 每个聚类的半径小于δv。 通过引入该损失函数,可以在忽略背景像素的情况下,为实例分割分支中的每个像素分配一个车道值,这样能够有效减轻车道线变化的问题,有利于可变车道的处理。

2 实验结果分析

2.1 实验数据集

本文在图森(TuSimple)数据集上测试所提模型的实时性和准确率。TuSimple数据集由图森公司发布,采集自美国圣地亚哥,是一个为自动驾驶算法研发测试打造的专用数据集。相对于其它车道线检测数据集,图森数据集更加注重实用性,符合真实道路场景,同时包括了不同天气下车道线遮挡、残缺或不存在等复杂情况,应用最为广泛,也是车道检测工作中最权威、最具影响力的数据集之一。

图森数据集具有以下特点:

(1)包括在良好和中等天气条件下的直线道路、曲线道路、破损道路、分叉道路、外部设施干扰道路以及阴影遮挡道路等情况的3626张训练图片和2782张测试图片。

(2)是针对结构化道路的高速公路场景,适用于多车道线检测,记录了白天不同时间段下,2车道、3车道、4车道、5车道上的不同交通状况。

(3)所有图像均为1280×720像素,训练数据图片注释采用的是json格式,用离散的x、y表示出车道线的精确位置。

2.2 评价指标

对于车道线检测任务通常采用3个评价指标来分析实验结果,分别是准确率指标(Acc)、假阳性指标(false positive,FP)和假阴性指标(false negative,FN)。其中准确率是计算每张预测图像中正确车道线点数和真实车道点数之间的占比情况,具体公式如下

(2)

其中,Cim表示预测结果正确的车道线像素点数,Sim表示标签数据中真实的车道线像素点数。若存在标签真实值和预测点之间的差值小于某个阈值时,则视该预测结果是正确的,否则,视该预测结果是错误的。此外,FP和FN也是TuSimple数据集性能评价当中常用的指标,具体计算公式如下

(3)

(4)

其中,Fpred表示模型预测错误的车道数;Npred表示模型预测的所有车道线总数;Mpred表示遗漏、未被预测的车道线数;Ngt表示标签中真实的车道线总数。所以FP、FN分别又称之为误检率和漏检率。

除了上述3个基本的车道线检测评价指标之外,我们在训练中引入语义分割任务的标准度量——平均交并比(mean intersection over union,mIOU)来对我们的模型进行有效性评估,mIOU计算的是真实值和预测值之间的交集和并集的数量之比,由于其简洁和代表性强的特点成为最常用的度量标准之一,具体公式如下

(5)

其中,pij表示真实值为i, 被预测为j的数量;pii为真实的数量;K+1为包括背景类的总类别个数。此外,mIOU还可以写成另一种形式,即

(6)

2.3 实验参数设置

本文实验代码基于Python3.7,使用Tensorflow深度学习框架,其它实验运行的环境配置见表1。

表1 实验环境配置

模型训练采用交叉熵损失函数,初始学习率为0.001,学习率策略为Poly,训练动量设置为0.9,批量训练数量为32,权重衰减为0.000 05,输入图片大小为512×256像素。

网络训练过程中模型的损失值(loss)与平均交并比(mIOU)的变化趋势如图7所示。从图中可以看出,本文设计的算法在Tusimple数据集中,随着模型训练次数的增加,损失值在前几次迭代中减小迅速,之后仍有波动,但起伏较小,总体缓慢下降,最终损失值在3左右变动;mIOU值开始增长较快,之后呈缓慢增长趋势,总体来说变化曲线较为平滑,最终达到60%时停止训练,迭代次数为165次。

图7 网络训练损失值和均交并比变化趋势

2.4 实验对比

本文使用了8种车道线检测方法进行比较,包括SCNN[10]、R-18-SAD[11]、R-34-SAD[11]、ENet-SAD[11]、Lanenet[12]、Res18-Seg[15]、Res34-Seg[15]、EL-GAN[16]。其中文献[15]分别使用了Resnet-18和Resnet-34作为骨干模型,文献[11]分别使用了Resnet-18、Resnet-34和ENet作为骨干模型。实验比较了各算法的准确率、误检率、漏检率和检测速度,其中检测速度取一百次运行的平均时间作为参考指标。将实验结果按照准确率从低到高排序,数据对比结果见表2。

表2 Tusimple数据集上各算法结果对比

从表2中可以看出,与其它车道线检测算法相比,本文所提出的方法拥有最高的准确率、最低的误检率和较低的漏检率,且各算法之间漏检率差距不大,均在0.01到0.05之间。运行时间方面,将SCNN算法作为参考对象,由于本文提取了丰富的上下文信息,加深了网络结构,虽然与别的算法相比,速度优势不明显,但比SCNN算法也快了1.8倍,一定程度提升了网络的时效性。特别地,与Lanenet算法相比,本文算法的准确率提升了约2%,误检率降低了约5%,漏检率仅相差约0.02%。通过实验对比表明,本文对Lanenet算法的改进是有效的,且该算法在Tusimple数据集上拥有更好的表现。

除此之外,本文还进行了可视化实验,不同程度车道线阴影遮挡情况的可视化结果如图8所示。图8(a)为原始数据集中的图像,图8(b)为数据增强后得到的图像,图8(c)为经过语义分割分支后得到的二值化分割图,图8(d)为经过实例分割分支后得到的实例分割图,图8(e)为聚类两个分支后得到的车道线图像,图8(f)为车道线拟合之后的输出图像。从图上可以看出,本文所使用的MSR算法可以很好地减轻光照、遮挡带来的图片亮度不均匀的影响,改善了图像的视觉效果。设计的双边多尺度融合网络可以在车道线破损、遮挡、阴影情况下有效检测直道及弯道。

图8 测试数据的可视化效果

3 结束语

本文提出了一种结合图像增强技术与改进的Lanenet算法的车道线检测方法。采用多尺度的Retinex算法来保持输入图像的高保真度、颜色恒常性;设计带残差模块的双边多尺度融合网络同时利用低层特征和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果;通过将非对称卷积与空洞卷积相结合,提出新的非对称卷积金字塔模块,用非对称卷积替换标准卷积,利用并行的不同扩张率的空洞卷积和一个图像级特征层进行特征融合,模拟感受野的多种尺度视角并重新生成人眼视觉系统中感受野尺寸和中心的关系。实验结果表明,本文提出的车道线检测方法可以减少光照、阴影等对车道检测的影响,兼顾速度与精度。在TuSimple数据集上,与Lanenet算法相比准确率提高了2%以上,误检率降低了5%以上。后续的工作可以针对于抗遮挡、夜间及弱光条件下的车道线检测问题再展开进一步的研究。

猜你喜欢

非对称分支车道
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
巧分支与枝
非对称Orlicz差体
一类拟齐次多项式中心的极限环分支
点数不超过20的旗传递非对称2-设计
低速ETC/MTC混合式收费车道的设计与实现
非对称负载下矩阵变换器改进型PI重复控制
生成分支q-矩阵的零流出性