基于全卷积神经网络的车道线检测

2020-08-04 10:43王帅帅刘建国
数字制造科学 2020年2期
关键词:池化车道尺度

王帅帅,刘建国,纪 郭

(1.武汉理工大学 现代汽车零部件技术湖北省重点实验室,湖北 武汉 430070;2.武汉理工大学 汽车零部件技术湖北省协同创新中心,湖北 武汉 430070)

在智能辅助驾驶系统领域,车道线检测一直是智能辅助驾驶系统中重要的组成部分。车道线检测的效果对后续的车道保持系统和车道偏离预警系统等都有着至关重要的作用。基于传统图像处理方法的车道线检测,易受光照、障碍物遮挡、路面破损等自然因素的影响,导致车道线分割准确率下降,且不能提供场景的语义描述信息。常用的方法有Hough变换的方法[1],RGB颜色特征的方法[2]和卡方统计的方法[3],这些方法虽然在一定程度上提升了结构化路面的车道线识别精度,但对车道线的定位和边缘分割的精确度远不及目前很多结合深度学习的方法。由于神经网络天生具备拟合任意复杂函数的特点和强大的表征能力,所以可以做非常复杂的非线性映射并且可以实现图像的浅层以及深层的语义信息分割,因此结合深度学习的方法更加胜任复杂情景下的车道线检测任务。自2012年开始越来越多的研究人员将深度学习应用于图像处理,并取得了不错的效果。图像语义分割技术也从基于随机森林(random forest, RF)分类器的分割方法[4]转变为基于卷积神经网络的分割方法。从2015年提出的全卷积神经网络(fully convolutional network,FCN)[5]到2016年提出的Deeplab网络[6],再到2017年提出的large kernel matters[7]网络等研究,都在不断地刷新图像语义分割的记录,并且为今后深度学习的应用奠定了基础。车道线检测领域的学者们也从中获取灵感,提出一系列基于深度学习的车道线检测方法。文献[8]的VPGNet(vanishing point guided network)模型结合灭点信息对网络模型训练,针对雨天和较暗的天气取得了非常不错的车道线检测效果。文献[9] 的SCNN(spatial convolutional neural network)模型具有更加有效的空间关系学习,能有效找出连续的有效的车道线结构目标。文献[10]的LaneNet模型将车道线检测问题转化为实例分割问题。然而,这些方法没有考虑车道线像素点在图像中分布不均匀的问题,导致深度网络不能充分提取车道线特征,最终影响车道线检测精度。

基于以上分析,笔者借鉴目前主流的车道线检测技术和图像语义分割技术,提出一种多尺度(multi-scale)的FCN模型让深度网络能充分提取车道线特征,并采用加权损失函数解决车道线样本分布不均匀的问题,从而提升车道线的分割精度,使其更加适用于多场景的车道线检测任务。

1 相关研究

基于FCN模型的分割方法在图像语义分割领域得到广泛应用,近年来几乎所有的图像语义分割技术都是采用的FCN模型。FCN将传统基于区域识别方法的图像分割任务,提升为像素级别的端到端(end-to-end)的语义分割任务。FCN主要使用了3种技术:卷积化、上采样、跳跃结构。FCN的卷积化方法将CNN(convolutional neural networks)的全连接层换成卷积层,从而保留原始图像中的空间语义信息。上采样方法是根据输入图像的特征,反向输出语义分割图,起到图像还原的作用,从而实现end-to-end。跳跃结构旨在获取图像多尺度的信息,针对不同的池化层结果进行上采样,然后通过结合这些结果来优化输出。虽然通过跳跃结构融合图像的上下文信息的方法在一定程度上提升了分割效果,但FCN在进行解码时,上采样过程仅仅就是一个简单的反卷积操作,得到的特征图过于稀疏。在对各个像素进行分类时,也没有考虑到像素之间的关系,这就导致了在卷积与上采样过程中丢失了图像的上下文信息,最终使得结果分割效果不细致。因此如何在深度学习中保持图像的上下文信息和多尺度的特征提取成为图像语义分割研究的重点。文献[11]组合条件随机场的方法,就是在FCN的后端使用了条件随机场(conditional random fields, CRF)的方法,这是一种判别式概率无向图学习模型,由于条件随机场是计算全局最优输出节点的条件概率并且特征设计灵活,因此可以容纳任意的上下文信息。这种方法对同类特征和相似特征的分割有着很好的表现,可以获得边缘更加细致的分割结果,但其后端的条件随机场方法实现较为复杂,还会消耗额外的训练时间。文献[12]SegNet模型采用端到端的对称网络模型,对比于FCN利用双线性插值初始化的反卷积来进行上采样的方式,而SegNet的对称结构则是利用每次池化时都存下最大值的位置,在上采样时将值直接赋给相应的位置,其他位置的值置为零的方式。这种取最大值的方法虽然比起FCN模型提升了分类能力,但多次的最大值池化方式,会丢失图像中的空间边界关系。文献[13]U-Net模型形似与SegNet模型,其采用的是一个包含下采样和上采样的网络结构。下采样用来逐渐展现环境信息,而上采样的过程是结合下采样各层信息和上采样的输入信息来还原细节信息,并且逐步还原图像精度。但其输入图像和输出图像大小并不一致,每次卷积图像都会小一圈,因此下采样和上采样所还原的像素并不一致。

针对上述研究现状,笔者在前人的研究基础上,通过对FCN结构的特点分析,结合空间金字塔结构的多尺度特征提取的特点,提出一种新的多尺度全卷积神经网络(multi-scale fully convolutional network,MFCN)模型。

2 多尺度全卷积神经网络

MFCN模型是基于FCN的思想,借鉴SegNet模型的对称结构,提出的一种新的对称网络结构,使其更加适用于车道线分割与道路分割。MFCN模型的编码器部分,保留了VGG网络的主体结构,加入空间金字塔池化模块,并在原网络后添加5层反卷积网络作为解码器。每个编码器层对应一个解码器层,每个编码器层由数个卷积层和池化层组成。每个解码器层由上采样层和数个卷积层组成,最后使用Soft-max分类器进行分类,其结构如图1所示。

图1 MFCN结构模型

MFCN接受任意尺寸大小的图像作为输入,对称的网络结构在解码阶段能使特征图恢复到与原图一样的尺寸。同时为了更好地得到车道线的特征,以及充分利用图像的上下文信息,在编码阶段引入空间金字塔池化模块[14],再结合FCN的跳跃结构,将空间金字塔池化模块得到的多尺度特征图与倒数第二层解码器得到的特征图融合,再上采样到最后一层解码器,最终实现端到端的车道线分割。MFCN模型在SegNet对称网络结构的基础上做了两个方面的改进:①为了解决FCN因不能充分利用上下文信息的缺点,MFCN在Block3之前加入空间金字塔池化结构(spatial pyramid pooling structure,SPPS)并结合FCN的跳跃式结构与Block9的特征图融合,以此增强多尺度特征信息的提取。②针对车道线样本分布不均匀的问题,MFCN采用加权交叉熵损失函数,以此增强车道线的分割效果。工作流程如图2所示:

图2 MFCN工作流程图

2.1 空间金字塔池化结构

针对图像的上下文信息和多尺度特征提取问题,采用空间金字塔池化结构来增强网络的空间特征信息学习能力,其结构如图3所示。

这种多尺度表达的优点在于图像的局部特征可以用简单的形式在不同尺度上进行描述,多尺度特征图生成较快,且占用存储空间少,选用不同的池化尺度个数也会造成最终的分割结果。文中的SPPS选用了 4种不同大小的池化核(1×1,3×3,5×5,7×7)进行池化,得到四种不同尺度的特征图。同时为了保持全局特征的权重,以平行的方式对4种不同尺度的特征图分别进行(1×1)的卷积,将通道数压缩为原本的1/4,再上采样恢复成与输入特征图一样的大小,最后再将4种特征图级联起来作为后端的输入。同时为了高度保持上下文信息,借鉴FCN的跳跃结构,将SPPS的特征图与Block9的特征图融合以此增强模型对图像空间边界特征的提取能力。这种多尺度池化结构,将局部上下文信息与全局上下文信息结合,增强了图像中的空间特征信息,最终提升了边界的分割效果。

2.2 加权交叉熵损失函数

因为在车道线边缘的检测中真正属于车道线的像素相对太少,所以乘以相同的权重时,网络就会把所有的车道线像素都预测成负样本,不能正确分割车道线。MFCN模型为了提高对车道线的分割质量,采用加权交叉熵损失函数来解决样本分布不均匀的问题。在原本的交叉熵函数基础上增加一个权重,当对车道线分类时乘以一个较大的权重,当对道路背景分割时乘以一个较小的权重,但由于道路背景的像素总数比较多,因此总的损失也是符合实际情况。加权损失函数公式如下:

(1)

(2)

式中:w为权重;c为常数1.02;β为在总体样本中出现的概率;H(p,q)为交叉熵;p为期望输出概率;q为真实输出概率。

3 实验及评估标准

使用相同的训练集和测试集作为实验样本,在实验过程中使用Tensorflow深度学习框架对网络进行训练。采用Adam优化器对网络参数进行更新,Adam算法对超参数有很好的解释性,仅需要很少的微调就能够自动调整学习率。根据Adam算法在文献[15]良好的表现,笔者也将Adam算法中的β1、β2参数分别设置为0.9和0.99,初始学习率为0.000 75,Bach-size为2。

3.1 数据集的选取

目前关于道路真实场景的语义分割数据集有很多,例如Kitti数据集、Cityscapes数据集、Tusimple数据集等。这些数据集关注真实场景下的道路实景环境,包含多个城市不同场景、不同背景、不同季节的街景。Kitti和Cityscapes主要关注于多目标的检测,且目标变化较大。而Tusimple数据集针对车道线有着更加精细的标注。本文采用Tusimple数据集中3 000张带有精细标注的图像作为训练集,并从Kitti数据集和Cityscapes数据集中随机抽取了1 000张图像作为测试集。

3.2 实验平台

实验平台软硬件配置如表1所示。

表1 软硬件配置表

3.3 评估标准

针对整体道路场景分割效果,使用平均交并比(mean intersection over union, IOU)来评估网络分割性能。IOU为预测信息和标注信息的交集区域与其并集区域的比值,公式如下:

(3)

式中:Predicted为预测像素点数量;GroundTruth为标注像素点数量。

平均交并比为所有标签类IOU值的平均值。

针对车道线检测效果评估,采用车道线检测有效像素PredictedPixel相比原始车道线标注像素GroundPixel的方法,比值越大说明车道线检测准确率越精确。公式如下:

(4)

4 实验结果分析

4.1 SPPS有效性评估

虽然空间金字塔池化能够聚合不同区域的上下文信息,从而提高获取全局信息的能力,但当其池化尺度个数超过一定数量时,只会导致模型训练时间变长,而分割效果并不提升。因此笔者针对池化尺度个数对整体网络的性能影响做了测试,测试数据如表2所示。

表2 SPPS模块比较

由表2可知,选用4个池化尺度的空间金字塔结构时网络分割效果最优,同时比不带有SPPS的网络的Mean IOU提高了3.4%。但当池化尺度个数超过4个时Mean IOU出现下降,其原因是出现过拟合现象,模型泛化能力降低。实验结果表明SPPS结构在车道线检测的任务中能有效提升分割效果,并且在池化尺度个数为4时取得最优效果,分割效果如图4所示。

图4 SPPS分割效果对比图

4.2 加权交叉熵损失函数有效性评估

为了解决图像中样本分布不均匀的问题,使用了加权交叉熵损失函数来提高车道线的分割准确率,从而提高车道线检测精度。

图5为标准交叉熵损失函数情况下的车道线检测准确率。在网络迭代了10 000次以后,准确率仅仅只有82.34%。由于没有使用加权损失函数导致车道线像素点样本和道路背景像素点样本不均匀,这就导致在对像素点分类时无法正确分类,出现遮挡阴影时更会影响车道线的检测。

图5 标准交叉熵损失函数的车道线检测准确率

图6为使用加权交叉熵损失函数后的车道线检测准确率。在迭代8 000次后检测准确率达到了95.56%。其原因是在使用了加权交叉熵损失函数后,车道线分割的有效像素点得到放大,提高了车道线分割的准确率。对比两次实验结果证明加权损失函数能有效提升车道线检测精度。

图6 使用加权交叉熵损失函数后的车道线检测准确率

4.3 实验结果对比

表3针对同一实验样本给出了本文模型与其他模型的车道线检测准确率,Mean IOU和平均单幅图像处理耗时的对比。因为SPPS模块的引入导致额外计算耗时,所以平均耗时没有取得最短时间。但加权交叉熵损失函数的使用和SPPS模块的引入,使得本文模型取得了最高的车道线检测准确率和Mean IOU。

表3 车道线检测准确率比较

实验结果表明K-means聚类这种传统检测模型,其车道线检测准确率远不如其他结合深度学习的模型。FCN结合CRF条件随机场的方法虽然提升了检测准确率,但其处理单幅图像的平均耗时最长。SegNet模型对比于FCN结合随机条件场的方式,车道线检测准确率和平均耗时都有较大提升。MFCN模型对比于其他模型虽然平均耗时不是最短,但其在车道线检测和道路场景语义分割都有着最优表现。后期工作可以在保证车道线检测准确率和Mean IOU不下降的情况下,通过提升硬件设备或者设计更优的SPPS模块来减少平均耗时。

5 结论

笔者基于FCN,提出了一种融合上下文信息的多尺度分割网络结构对道路图像进行语义分割。通过加入SPPS提取图像的多尺度信息,从而使得整体轮廓信息与细节纹理结合,减少了空间特征信息的丢失,并在上采样过程中结合FCN的跳跃结构,融合SPPS的多尺度特征图来强化输出,使得边缘分割更加细致。除此之外笔者还利用加权交叉熵损失函数,解决车道线样本不均匀的问题,提升车道线检测精度。实验结果表明,利用本文的方法能够较为精准的对道路路面和车道线进行分割,分割效果也有提高,性能明显优于传统的K-means聚类的分割方法。

猜你喜欢
池化车道尺度
基于高斯函数的池化算法
基于OpenCV的直道车道线识别技术研究
卷积神经网络中的自适应加权池化
北斗+手机实现车道级导航应用
财产的五大尺度和五重应对
基于单片机的潮汐车道设计与实现
基于卷积神经网络和池化算法的表情识别研究
用于手写汉字识别的文本分割方法
斑马线前该如何礼让
宇宙的尺度