基于MFD-FCN的车道线检测方法
2022-07-02朱子锐
何 宏,刘 敖,邱 佳,朱子锐
(湖南工程学院 计算机与通信学院,湘潭 411104)
0 引言
随着社会发展与科技进步,智能驾驶[1]行业得到了社会各方面的关注,而车道线检测是智能驾驶必不可少的一部分.车道线检测过程包含视觉传感器采集图像[2]、图像预处理[3]、图像分割和结果输出等.实现车道线检测的方法依照算法类型可归为两类:传统的车道线检测方法和基于深度学习的车道线检测方法.对比传统方法和深度学习方法[4]:传统方法以车道线拟合为主,利用人工标注,结合霍夫变换[5]和卡尔曼滤波器[6]实现车道线检测,这些方法简单快速,但易受环境影响,鲁棒性差.随着21 世纪深度学习兴起,人们开始使用神经网络进行车道线的识别:Neven 等提出一种基于CNN 的LaneNet 网络车道线实例分割方法,结合聚类算法实现对车道线的分割[7-8];邓天民等[9]提出一种改进SegNet 的车道线检测算法,摒弃传统聚类过程,利用二值化图像结合连通域约束对车道特征点进行分类.FCN 图像分割方法[10]同样是目前的一种主流算法,该算法将CNN 最后的输出层修改为卷积层,构建出全卷积神经网络.这种端到端的网络可以接收任意尺寸的图像,通过卷积和上采样对图像进行分割,相比传统方法而言,该算法鲁棒性更强,分割效果更好.
但FCN 的车道线检测实验结果表明:FCN 在光线昏暗、车辆遮挡等复杂环境下,对车道线的检测存在漏检情况,且分割不够细腻.针对此问题,本文基于FCN 结构基础,分别针对编码和解码部分进行需求性的改进.在编码部分构建了混合的残差神经网络[11],获取多分辨率特征信息以满足分割需求.该模型随着网络深入,逐渐并行生成分辨率子网络,并持续保持高分辨率特征图,以此构造多尺度网络结构[12].编码过程中各子网络之间相互交换信息,进行多尺度融合,实现精细特征提取.解码方面,为实现车道线图像的细腻分割,本文设计了多尺度特征密集融合模块MSFDF module,该模块通过在解码过程中多次融合低分辨率特征图,实现强化特征表现,以达到更优的分割效果.
1 模型设计
1.1 传统全卷积网络FCN
2015 年,加州大学伯克利分校的Long 等人在经典分类网络的基础上提出了全卷积神经网络FCN,这种端到端的网络可实现图像的语义分割,且显著提升了分割的计算效率和预测性能.FCN 简单轻便,如图1 所示,但FCN 在复杂场景的分割效果还不够理想:其一,FCN 的编码结构是单一的卷积神经网络,仅通过卷积,池化操作降低图像分辨率,而没有保留高分辨率图像,这就会导致部分信息永久性丢失,从而导致整体精确度不高;其二,本文发现FCN 的解码部分采用高倍上采样,特征图尺寸的骤然提升会导致图像丢失过多信息,影响最终的分割效果.这些不足会在智能车、智能驾驶等应用领域产生重大影响,更有可能带来无法估量的损失.
图1 FCN车道线检测结果
通过研究传统FCN 网络结构,本文分别从编码、解码两部分加以改进,构造出一种多尺度特征融合的图像分割网络MFD-FCN.
1.2 多尺度特征编码器
模型编码器主要作用于图像特征提取,FCN 编码采用多层卷积提取图像特征,这样的编码器结构简单,且每次卷积都会丢失部分信息,从而导致特征缺失,检测结果不够准确.本文通过改进FCN 编码结构,构建一种多分辨率并行的主干网络[12],网络结构如图2 所示,主干网络包含4 个阶段,主体为四个并行子网,分辨率以2 为倍数等比例降低.第一阶段包含5 个单元,前4 个单元每个分辨率进行4次填充为1 的3×3 卷积,每个卷积后加一层BN(Batch Normalization)和一层ReLU 激活函数,最后通过一个交换单元,即非填充3×3 卷积将特征图大小减小为1/2,生成新的并行子网.第二、三、四阶段与第一阶段类似,不同之处在于交换单元部分跨分辨率操作需要多个非填充3×3 卷积降低分辨率.
图2 FCN与MFD-FCN对比图
该网络将高低分辨率子网络并行连接,使网络加深的同时持续保持高分辨率特征图.在每个STAGE 模块结点,交换单元将相似类别及相同深度的分辨率特征图进行交互,高分辨率特征图通过3×3 卷积降低尺寸和匹配通道数,低分辨率特征图通过1×1 卷积匹配通道数,通过双线性插值提高分辨率,并将同尺寸同通道特征图像素相加融合.相比反卷积,双线性插值无须训练,速度更快.前馈过程中高低分辨率重复地进行多尺度融合,以此提升特征图的表示效果.由此,原始图像中的信息能够得到更好地表达.
1.3 多尺度特征密集融合模块(MSFDF module)
关于网络的解码部分,不同于传统FCN 直接通过高倍反卷积恢复原图尺寸,本文参考一种跳级结构的上采样方法[10],在解码部分设计了一种多尺度特征密集融合模块MSFDF module 将深层预测与浅层预测结合.如图3 所示,模块中各级别分辨率特征图fi先通过1×1 卷积统一通道数,再与i-1 个低级别分辨率特征图相加融合,得到新的同级别分辨率特征图.最终的分辨率特征图进行上采样和reshape,得到结果 Mask 图 .
图3 MSFDF模块结构图
以下为模块中各步骤操作表达式:
式(1)中,fi是指主干网络的层次特征输出图,为图 3 中的 f1至 f4,G 采用 1×1 卷积实现通道统一,θi为反卷积输出特征图像.
式(2)为各级特征图融合公式,H 表示对特征图像进行上采样操作,因为仅融合低级特征,所有j取1 到i-1,统一图像尺寸后相加融合得到τi.
式(3)中Φ 代指特征元素相加融合,将反卷积输出特征θi与融合输出特征τi进行Φ操作得到第i级输出特征图Fi,本文模块有四级输出,即F1,F2,F3,F4.
式(2)中的上采样实际是对特征图进行2i-j倍反卷积操作来统一特征图尺寸,反卷积输出尺寸计算公式如下:
其中o 表示反卷积输出图像尺寸,i 表示反卷积输入图像尺寸,p 为填充(padding)大小,s 为步长(strides)大小,k 为反卷积核尺寸.
该模块将网络中各分辨率子网络的输出结果统一通道,分级上采样,各级分辨率特征图相交融合,防止了因特征图大幅度尺寸变化和维度的骤然提升而导致的图像信息丢失.后续实验验证了MSFDF 有助于网络对车道线图像分割更加细腻,由此可见该模块对MFD-FCN 的重要性.
2 实验设计
本文借用了深度学习相关理论知识和传统图像处理方法完成算法实现.实验阶段,本文使用PaddlePaddle 框架和OpenCV 库函数,通过CUDA7.0 与 CUDNN7.6,采用 python3.7 语言实现算法内容.硬件方面,所用GPU 为V100,配置32 G 运行内存,100 G 存储硬盘.
2.1 数据集
本文使用 CULane 数据集[13].CULane 数据集是一个大规模、用于车道线检测学术研究并具有挑战性的数据集.数据集分为88880 个训练集,9675 个验证集和34680 个测试集,图片尺寸为1640×580.相比一般车道线数据集,CULane 数据集数据量更多,场景更复杂,更能体现模型性能.
为了提升模型的鲁棒性和泛化能力,本文对已有数据进行了数据增广,手段包含镜像、旋转、对比度,如图4 所示,同时为了满足网络尺寸要求,通过reshape 操作缩小了图片尺寸,由 1640×580 缩小为1024×512.由于本文主要研究如何改进网络架构,所以简化训练目标,通过二值化标签图来提取车道线特征如图4 所示,仅实现二分类.为了更加直观,将车道线的像素值提升为255,即背景值为0,车道线值为255.
图4 数据增广策略生成图
2.2 分类器、损失函数与优化目标
本文使用Softmax 分类器对图像像素点进行分类,通过预测像素点为正负样本的概率判断该点为车道线或背景. Softmax 计算公式如式(5),其中C为类别个数,f 为输入向量,fy表示向量f 在类别y 上最终结果会是介于0 到1 的一个数.
本文在损失计算部分使用交叉熵损失函数(Cross Entropy Loss Function).本文研究问题是二分类问题,在二分情况下,模型最后预测结果只有0,1 两种情况.交叉熵损失函数公式如下:
式(6)为训练单批次总损失计算公式,其中L表示所有样本训练损失之和.式(7)是计算单个样本损失,其中Li为第i 个样本的训练损失,y˙表示预测正确的概率,1-y˙表示预测错误概率,y 为样本标签值.
3 算法实验结果
针对本文提出的基于深度学习的车道线检测方法,对大量数据进行了实验,并记录了模型在CULane 数据集上实验的结果.
3.1 LOSS评估
图 5 为 MFD-FCN 与 FCN 在 CULane 数 据 集上训练的损失下降对比图,由图可知,MFD-FCN较FCN,收敛速度更快,下降幅度更大,收敛后损失值更低,FCN 训练结束损失收敛至0.0786,本文模型训练结束损失收敛至0.0378.数据说明MFDFCN 能在短时间内训练出更好的效果,模型对数据拟合度更高.
图5 LOSS对比图
3.2 MIoU以及ACC评估
针对 MIoU 和 ACC 指标,对 MFD-FCN 和 FCN进行训练数据对比,实验过程如图6 所示.ACC 计算方式为计算判断正确像素点数与全部像素点数之比,由于道路图片中背景较车道线占更大比例,数据正负样本差异大,且本文将图片二值化,仅判别车道线与背景,而不是将每条车道线看作一个实体,进一步简化实验,所以两种算法针对该指标都有较高分数.而MIoU 是通过计算预测结果与标签的交并比得到分数,就MIoU 指标而言,MFD-FCN在整个训练过程中都比FCN 分数高,且MFDFCN 收敛更快,提升幅度更大,这说明MFD-FCN较FCN 有更好的性能.
图6 MIoU/ACC对比图
表1 显示了改进的MFD-FCN 与原始的FCN在损失和MIoU 指标的对比,可看出,训练结束时,MFD-FCN 的 MIoU 比 FCN 提升了 8%,LOSS 比FCN 低了4.5%,这说明改进网络比原始FCN 检测更精准,分割更细腻,也从侧面体现改进的主干网络和MSFDF 模块对模型性能提升有很大帮助.
表1 模型MIoU/LOSS结果对比表
3.3 图片展示
为体现本文算法模型的鲁棒性,本文收集了不同情况下算法对车道线的检测效果.图7 所示为MFD-FCN 与 FCN 在 CULane 数 据 集 上 不 同 场 景的检测结果图像.
图7 多种场景训练效果图
对比三组不同情景的车道线检测图像:在光线充足,视野开阔的检测场景,MFD-FCN 与FCN 都有较好的车道线检测效果,检测位置准确,输出图像清晰;在光线不足的情况下,MFD-FCN 可以检测到微弱光线处的车道线,且此部分车道线预测完整,而FCN 检测不全;在车道线被遮挡时,FCN 会忽略被遮挡部分的车道线,而MFD-FCN 能通过部分未遮挡车道线预测车道线的位置.
综上所述,MFD-FCN 较FCN 分割更细腻,有更强的鲁棒性.证实了多分辨率子网络并行网络结构和MSFDF 模块有利于细节特征提取和强化特征表达.
4 结论
车道线检测是智能驾驶主要任务之一,为使智能驾驶系统对车道线的检测更加精准,本文提出一种基于FCN 改进的图像分割网络MFD-FCN.首先,该网络在编码器部分采用多分辨率子网络并行结构,保持高分辨率特征图标准,进行重复多尺度融合.另外,在解码器部分加入特征密集融合模块MSFDF module,对多尺度特征进行处理,在采样过程中进行多尺度特征密集融合和车道线检测.与FCN 相比,MFD-FCN 具有更高的 MIoU 值和更细致的分割效果.本文算法在鲁棒性和分割效果上有一定的提升,但在昏暗光线和车道线被遮挡的情景下,模型对车道线的检测仍有欠缺.后续,我们将针对该问题做进一步的研究.