张道芳 张儒良
摘 要:随着半自动辅助驾驶,全自动无人驾驶系统等人工智能技术的发展和普及,驾驶环境的检测和识别变得非常关键。文章采用语义分割的DeeplabV3+网络车道线对检测,不仅克服了传统检测方法的缺陷,而且在检测的性能和效果上要优于传统的检测方法。
关键词:车道线检测;深度学习;语义分割;DeeplabV3+
中图分类号:TP391 文献标志码:A 文章编号:2095-2945(2019)06-0014-03
1 概述
车道线检测是辅助驾驶系统和无人驾驶的重要组成部分,它们都是通过车道线检测的结果为无人驾驶的控制系统提供依据,车道线检测的研究有重要的研究价值和意义。因此,吸引了国内外众多学者对车道线检测问题进行研究。
叶美松[1]提出了一种车道线图像检测和识别算法,主要采用IPM视图转换、霍夫直线的检测、RANSAC算法和贝塞尔样条曲线拟合等方法,该算法在有短的、长的和明显弯曲的干扰因素的环境中都有很好的检测效果,但是对于存在高的立状干扰物的情况下存在误检。门光文[2]提出的车道线检测方法是先进行感兴趣区域的划分,再进行中值滤波,然后利用Canny算子提取车道线边缘信息,最后通过对传统霍夫变换添加约束条件,实现车道线的提取。该方法能检测直线车道线,但是对于曲线车道线检测效果不好。王晓锦[3]采用图像预处理技术先滤波,去除图像噪声,然后基于消失点的检测设定动态感兴趣区域ROI,最后提出利用极角极径约束的Hough变换进行基于分段直线模型的车道线检测,该方法对于过于弯曲的车道线检测效果不理想。隋靓等[4]提出一种由Hough变换与二次曲线模型相结合的高速公车道线识别算法。该算法首先对图像作感兴趣区域ROI划分; 再使用LOG算子在ROI边缘检测的基础上进行Hough变换检测直线;然后根据已检测出的直线再进一步动态划分ROI和直线检测;最后通过判断两直线段的方向变化趋势,根据判断的结果进行直线和二次曲线切换的车道线拟合。成剑[5]设计了改进的Otsu算法提高车道线识别度;针对噪声对车道线边缘识别的干扰问题,重点提出了分区域识别边缘角度,排除异常边缘线,并对去噪后的边缘线进行了补偿;车道线识别阶段,着重对概率Hough变换及RANSAC算法做了改进研究,提出了直线-抛物线型的车道线模型,并设计了模型区域分配的方法以解决曲线道路出现位置不定的问题,再利用最小二乘法求出车道线模型的参数。该算法在存在长条形噪声干扰的情况下检测效果不理想。
为了解决上诉问题,本文采用基于深度学习语义分割DeeplabV3+网络的车道线检测。将车道线数据集在DeeplabV3+网络中进行训练,学习并保存网络权重,利用保存下的權重描绘车道线。
2 DeeplabV3+网络结构
2.1 DeeplabV3+模型
DeeplabV3+模型结构是一个编码器-解码器结构。编码器旨在获得锐利的物体边界,其结构是由Xception 模型加空间金字塔池化模块(ASPP)构成。利用Xception 模型以少量参数提取丰富的特征。而空间金字塔池化模块(ASPP),通过池化不同分辨率的特征,以捕获丰富的上下文信息。解码器结构:先将编码器特征进行4倍的双线性插值上采样,在低级特征上作用1×1卷积以减少通道数,然后将上采样结果与具有相同空间分辨率的相应低级特征合并,再经过一些3×3的卷积以精炼特征,最后再进行4倍的双线性插值上采样,将分辨率恢复到原图的大小。DeeplabV3+模型结构如图1所示。
2.1.1 Xception 模型
Xception 模型由三个部分组成,入口流、中间流和出口流。入口流首先对图像作用32个通道的3×3且步长为2的卷积操作,再作用64个通道的3×3卷积,紧接着是三个结构相同的Block。第一个Block由四个部分组成:两次通道数为128的3×3深度可分离卷积、一次通道数为128且步长为2的深度可分离卷积和一次通道数为128的1×1卷积。其他两个Block的通道数分别为256和728。中间流由一个Block重复16次组成,该Block由三次通道数为728的3×3深度可分离卷积组成。出口流有两个Block,第一个Block由通道数为728的3×3深度可分离卷积、通道数为1024的3×3深度可分离卷积、通道数为1024且步长为2的3×3深度可分离卷积以及通道数为1024且步长为2的1×1卷积组成,第二个Block由两次通道数为1536的3×3深度可分离卷积和通道数为2048的3×3深度可分离卷积组成。Xception 模型结构如图2所示。
2.1.2 空间金字塔池化(ASPP)模块
DeeplabV3+模型的编码器中采用空间金字塔池化(ASPP)模块,通过池化不同分辨率的特征,捕获丰富的上下文信息。空间金字塔池化通过在多个空洞率、多个有效视野上用滤波器探测输入特征或执行池化操作,来编码多尺度的上下文信息。
DeeplabV3+模型的ASPP模块由五个部分aspp0、aspp1、aspp2、aspp3和aspp4组成。aspp0:由通道数为256的1×1的卷积加批标准化(Batch- Normalization)和ReLU函数激活组成;aspp1:由通道数为256且空洞率为6的3×3深度分离卷积加批标准化和ReLU函数激活组成;aspp2:由通道数为256且空洞率为12的3×3深度分离卷积加上批标准化和ReLU函数激活;aspp3:由通道数为256且空洞率为18的3×3深度分离卷积加批标准化和ReLU函数激活组成;aspp4:先使用全局池化(AveragePooling),再使用通道数为256的1×1的卷积加批标准化和ReLU函数激活,最后再进行4倍的双线性插值上采样,得到和ASPP其他部分一样的分辨率。
2.2 模型训练
2.2.1 训练数据集介绍
训练数据集一共有12764张图片和对应的标签图片,图片大小为80×160,数据集来源于GitHub/MLND-Capstone,标签使用绿颜色通道标注当前车道的可行使区域。标签的标定区域的下边界是图像的底部,左边界是当前车道的左车道线,右边界是当前车道的右车道线,上边界是离下边界35个像素的位置,因此标签标定区域(绿色区域)的高度与图片高度的比例是35:80。标签图像如图3所示。
2.2.2 模型训练
模型训练过程中将数据集随机分为两个部分:训练集和验证集,其中训练集的大小为数据集的90%,验证集的大小为数据集的10%。训练过程中设置的epoch=10,bach_size=4,总训练时间为316452s。训练误差和验证误差使用MSE,训练结束时训练误差收敛为0.0046,验证误差收敛为0.0045。表1为DeeplabV3+模型在车道线数据集下的训练误差和验证误差。
3 车道线检测
用保存的模型结构和权重来描绘车道。根据训練好的模型,输入道路图片,改变图片尺寸到训练图片的尺寸(80 160 3),在模型中预测车道,并用绿颜色画出与标签图片形状相同的图片,将用绿颜色绘制了车道的图片改变尺寸到原始道路图片的尺寸,然后将其与原始道路图片合并,最后在原图片中画出当前车道区域。车道线检测算法如图4所示。车道线检测结果如图5所示。
4 结束语
本文应用深度学习语义分割的DeeplabV3+网络检测车道线,从车道线检测结果可以看出,本文的方法可以有效的检测出车道线。
参考文献:
[1]叶美松.单目视觉的智能电动小车车道线识别与跟踪[D].西南交通大学,2017.
[2]门光文.基于车道偏离的防碰撞预警系统算法研究[D].辽宁工业大学,2017.
[3]王晓锦.基于单目视觉的结构化道路车道线识别和SAE算法的车道偏离检测研究[D].山东大学,2017.
[4]隋靓,党建武,王阳萍.基于分段切换模型的快速车道线检测[J].计算机应用与软件,2017,34(08):201-205.
[5]成剑.基于机器视觉的道路线识别算法研究[D].南京理工大学,2017.