基于深度学习的车道线检测方法综述
2021-11-28杨荣锦张秀峰龚莉娜牛选兵马天翼
杨荣锦,张秀峰,龚莉娜,牛选兵,王 伟,马天翼
(大连民族大学 机电工程学院,辽宁 大连 116605)
车道线检测是智能辅助驾驶系统和自动驾驶的重要组成部分。在实际的车道线检测任务中,需要面对各种复杂的道路场景,如车道线破损、光照影响、雨天、雾天等造成车道线被部分遮挡或完全遮挡。传统的车道线检测方法难以解决以上问题,随着深度学习在图像分类任务中取得的巨大进步,在车道线检测任务中基于深度学习的研究方法逐渐占据主导地位。车道线检测的实现大致由三部分组成:图像预处理、特征提取、车道线拟合,其中特征提取是车道线检测任务的核心部分。目前基于视觉的车道线检测任务的特征提取方法主要有两种,一种是利用车道线的颜色、梯度、纹理、视觉消失点等特征将车道线从图像中分离出来,这种方法依赖于人工设计的特征,是传统的车道线特征提取方法[1-9];另一种是利用自动学习特征的深度学习技术进行特征提取,与传统方法相比基于深度学习的提取特征方法检测精度高、鲁棒性好。因此,本文将主要综述基于深度学习的车道线检测方法。
目前综述性的车道线检测论文较少,文献[10]对车道线检测系统进行了说明,对边缘特征提取和车道线拟合两方面进行了总结,仅列举了部分基于语义分割的算法;文献[11]对车道线检测各个步骤的实现方法进行了详细的总结分析,由于涉及的范围较广,对每个步骤中使用的各类方法不能做到详细地描述。本文总结了近几年学者们的研究成果,在此基础上分析车道线检测算法目前存在的难点,并对其未来发展进行展望。
1 车道线检测技术的应用和发展
车道线检测的实现是将视觉传感器采集的车道图像信息作为输入,对输入信息进行处理,实时检测车道线位置,检测结果作为指导自动驾驶的决策信息。车道线检测任务主要应用于自动驾驶中的导航、定位、车道偏离预警等自动驾驶汽车的路径规划,对自动驾驶的发展具有重要影响。
国外对于车道线检测技术的研究起步较早,早在20世纪90年代车道线检测就成为辅助驾驶系统中必不可少的一部分。意大利帕尔马大学的学者提出的GOLD系统[12]实现了对车道线和障碍物的检测,采用逆透视变换的方法将车道线转换为平行的方式,然后使用模板匹配技术对车道线进行检测并确定车道线的位置。Feng You等[5]提出一种夜间检测车道线的算法,使用图像处理的方法对CCD相机采集的数字图像进行处理,采用多方向搜索方法消除车道线边界的噪声,利用自适应的霍夫变换检测车道线信息。算法在车道线夜间检测中具有较好的可靠性和鲁棒性。杜克大学的研究人员提出了一种基于深度神经网络的车道检测方法LaneNet[13],将车道检测分为两个阶段:车道边缘提取和车道线定位,算法大大降低了误检率,取得了很好的检测效果。
国内关于车道线检测的研究较晚,但发展迅速。2002年宁波大学蒋毅刚等[14]发表了关于车道标线检测和汽车前方道路估计的文章。此后,国内许多高校和科研机构也相继展开了对车道线检测的研究。2009年西北工业大学雷涛等[15]提出基于形态学结构元素建模的车道线检测算法,该算法简单、鲁棒性强,在多种复杂环境下都能够检测出车道线,但针对弯曲的车道检测效果不佳。文献[16-18]首先对图像进行灰度化预处理,在此基础上使用Canny、Sobel等算子进行边缘检测提取车道线边缘信息,最后使用Hough变换检测车道线。该方法对环境要求较高,仅在车道线清晰的条件下检测效果较好。2020年刘彬等[19]提出了基于改进Enet网络的车道线检测算法,该算法在标准路面检测的准确率达到了96.3%,在公开数据集上取得了实时性的检测结果,与传统算法相比该算法能够满足实际驾驶环境和实时性需求。车道线检测技术随着计算机视觉的进步,由最开始利用图像处理、边缘检测算子、Hough变换、IPM图霍夫变换,到现在的PointLaneNet、LaneNet、Enet、Spinnet,准确率有了大幅提升[20-22],在自动驾驶领域具有广阔的应用前景。
2 车道线特征提取方法
根据车道线提取的方式不同,车道线检测的特征提取方法分为两种:基于传统方法和基于深度学习方法。传统的车道线检测方法依赖于高度专业化、手工制作的特征和启发式的组合来识别车道线。特征提取根据图像的灰度梯度变化、颜色、纹理、视觉消失点等特征进行分析并设计特征。这些算法对光照、天气等变化较为敏感,当行驶环境发生明显变化时,车道线检测的效果不佳。随着计算机计算能力的提升,GPU的快速发展,深度学习技术在计算机视觉、图像处理等领域都有着广泛的应用。研究者提出将车道线检测看作分割问题进行研究,使用图像分割模型提取车道线特征。该模型从大量具有标注信息的图像中提取特征信息,依据这些信息推理出原始图像中对应的像素点标签,在这种端到端的训练下能够较好地提取车道线的语义信息并对各个像素分类。与边缘特征提取、阈值分割、分水岭等手工设计特征的传统方法相比,基于深度学习的图像分割方法能够提取更加丰富的车道线信息,在车道线检测技术中得到了广泛的应用[23-28]。
传统方法先对图像进行预处理,使用人工设计的特征提取方法和Hough变换、最小二乘法拟合车道线。基于深度学习方法主要有目标检测和图像分割,这两种方法都是利用卷积神经网络进行训练,自主检测车道线信息。但目标检测方法不能精确地表达车道线的边界信息。目前流行的车道线检测是基于图像分割的方法[29-32],该方法能够进行端到端的学习,对图像中的像素点进行分类,可较好地提取车道线的类别和位置信息。
2.1 传统车道线检测方法
传统的车道线检测方法先对图像进行平滑去噪等预处理获取感兴趣区域,然后对预处理后的图像使用人工设计的特征提取车道线的边缘信息,最后拟合提取的车道线特征得到车道线信息。车道线具有特征简单、与路面有明显梯度、灰度变化较大、多种线形和颜色等特点,因此,能够通过这些特点人工设计特征检测车道线。吴彬等[33]调整摄像头获取较好的视野,基于图像中的消失点检测和车道线位置信息设定动态ROI,然后结合形态学运算获取较好的边缘信息,能较好地避免其他车道的干扰。何旭光等[34]提出基于Hough变换的车道线检测算法,首先对道路图像平滑去噪,Canny算子边缘检测和自适应算法提取车道线特征信息,然后使用改进的Hough算法得到车道线信息,该方法在多种环境下检测效果良好,但在弯曲的车道线上表现不理想,鲁棒性差。马泉钧等[35]针对长距离车道线检测,结合霍夫变换和滑块法提取车道线,保障了车道线的完整性,但该算法在复杂环境下的检测效果有待提升。
使用人工设计的特征进行车道线检测的方法原理简单且相对成熟,依赖于车道边界的梯度信息,对特征明显的图像表现较好,在车道线磨损或被遮挡导致车道线不完整的情况下,车道线的检测效果会受到影响,在复杂环境下鲁棒性差。
2.2 基于深度学习的车道线检测
基于深度学习的方法与传统方法相比鲁棒性和泛化能力更好,主要有目标检测和图像分割两种。
2.2.1 目标检测
随着深度学习的迅速发展和公开数据集的增多,目标检测网络的检测精度得到了极大提升。R-CNN、Faster R-CNN、YOLO等网络在公开的数据集和实际应用中,检测精度和效率逐渐得到提升[36-39],目标检测引入自动驾驶领域获得了巨大的发展。崔文靓等[40]提出改进的YOLOv3算法对公路车道线进行检测,该方法在YOLOv3算法的基础上,特征提取部分选择Darknet-53网络结构,通过加深网络层数的方式提高特征提取的能力,同时为降低漏检风险,对YOLOv3进行简化处理,该方法实现了端到端的检测,平均准确率达到95%,但对倾斜车道线检测存在局限性,目标检测采用边界框将目标框选出来,在车道线边界信息的表达上不够精细,结合语义分割方法后效果会更好。
2.2.2 图像分割
图像分割是将图像中的各个像素标注所属的类别,把图像分割成几个具有一定语义类别的部分。基于图像分割的车道线检测能够对图像进行像素级的分类,与传统的方法相比检测效果比较理想,通过端到端的学习鲁棒性更好。
目前深度学习模型进行车道线检测仅局限于预测固定数量的车道线,对变化数量的车道线不能很好地应对。文献[13]将车道线检测看作一个实例分割问题,同时提出了LaneNet模型,该模型由语义分割模型和实例模型构成,语义分割模型将图像进行逐像素的二值分类,实例分割模型将图像按像素区域分成不同的车道线实例,然后对分割结果进行处理得到车道线的数量和类别,最终输出实例分割的车道线图像。
空间CNN[41](SCNN)将传统的逐层卷积推广到特征映射中的逐层卷积进行车道线检测,增强了像素之间的信息传递,特别适合车道线这种长距离连续形状的目标检测,该算法在TuSimple基准车道检测数据集上准确率达到了96.53%。文献[42]从节省计算资源的角度对SCNN进行改进,提出了稀疏空间卷积神经网络,稀疏空间CNN是由SCNN改进而来,是一个更轻量的模型,将SCNN特征映射内的逐层卷积进行分组卷积,提高了模型处理时间上的性能,但是计算精度较低。
文献[43]提出一种用于车道线检测的注意DNN(改进的大视野),该模型由两个并行的子模块组成,通道注意力模块和自注意力模块。自注意力在车道线被遮挡,局部上下文无法推断像素所属类别时,能够提供一个全局上下文搜索;通道注意力在推断像素所属类别时,提供一个根据通道重要性添加不同权重的方法。该方法在推断车道线分类时强调关键通道,并可在恶劣环境下进行车道线检测。
采用图像分割的方法进行车道线检测在检测结果上更加精细,处理耗时较少,算法的检测速度更快。但对训练的数据集要求较高,需要进行像素级的标注,工作量大。
3 车道线检测的难点
车道线具有明显的线性特征,但是同一目标的尺度变化明显,近宽远窄,复杂环境下车道线目标容易被遮挡,线型种类较多且不易区分。传统方法中常使用逆透视变换[44-45]的方法将拍摄的图像转换为鸟瞰图,从而解决车道线近宽远窄的问题。深度学习引入车道线检测中能够通过端到端的学习提取更丰富的车道线特征,泛化性和鲁棒性更好,但仍存在以下难点:
(1)车道线易被遮挡,汽车、阴影、道路破损等导致车道边界局部特征不明显,检测时易出现误检、漏检的情况。文献[46-47]从全局的角度搭建网络模型对车道线进行检测,模型可实现端到端的检测,能有效检测拥挤场景下的车道线,但被汽车完全遮挡的车道线依旧较难检测。宏明佳等[48]提出基于FCN的车道线检测算法,通过一系列卷积、池化及反卷积操作后,经过条件随机场处理,最终得到精细的检测结果,算法仅准确地识别了车道线的位置,不能识别车道线的颜色和虚实。
(2)线型种类多,在确定车道线位置信息的同时,较难有效区分黄、白、虚、实线。如文献[43]使用CNN对不同颜色的车道线(黄、白线)进行检测,只能处理较小的32×32图像。文献[49]采用Sobel算子对图像进行边缘检测与语义分割网络进行特征融合和跨连接,优化了车道线的边缘和细节,能够准确识别车道线的位置和类别,但在实时车道线检测中需要足够大的计算资源。修宇璇[50]提出了新的数据标注方式,在编码器和解码器之间增加跨连接结构,对不同的特征进行特征融合,能够在准确检测车道线位置的同时区分车道线的颜色和虚实,但对设备的计算资源有较高要求。
(3)基于图像分割的车道线检测算法较传统方法检测效果更好,但训练模型所需的训练数据要进行像素级的标注,标注难度大,工作量大。
4 结 语
深度学习的引入使得车道线检测的性能有了巨大的提升,加快了车道线检测和辅助驾驶技术的发展。但仍有一些未能解决的问题:深度学习模型可解释性较差,模型种类单一;训练所需的样本标注要求高,样本数据成本大。深度学习为车道线检测的鲁棒性和实时性带来了巨大的提升,相信在未来的研究中会开发出鲁棒性更优的车道线检测方法。