吕可晶,严 虹
(1.中国科学院地理科学与资源研究所 资源与环境信息系统国家重点实验室,北京 100101;2.中国科学院大学 资源与环境学院,北京 100049)
随着无人驾驶的兴起,以及其他基于位置的新型服务和行业的出现,使得地图的服务对象不再仅仅是人类,而是逐渐向机器过渡,这对地图的精度、内容结构和计算模式等都提出了新的要求[1]。高精度地图作为实现无人驾驶中的重要环节,包含了丰富的动态信息,可以为无人驾驶提供精准的定位、辅助环境感知,同时提高无人驾驶的安全性[2]。相比于传统的导航电子地图,高精度地图不仅要求亚米级的高精度绝对坐标,而且要能准确描绘道路形状、车道线、车道中心线和交通标志等道路交通信息元素,具备高精度(高地图数据精度)、高丰富度(高地图数据类型)、高实时性(高地图更新频率)等特点[3]。车道线是自动驾驶高精度地图的重要组成部分,指示并约束车辆在车道中行驶,车道线检测成为高精度地图生产的重要环节之一。
目前,高精度地图的车道线检测多是采用车载单/多目摄像机传感器获取车道线信息,这类车道检测方法分为两类,一种是基于特征方法,通过分析图像的颜色、梯度以及边缘等低层次特征提取车道线[4-6]。如:周宏宇等[7]使用Haar特征提取车道线特征,选择AdaBoost分类器实现了较高的检测精度;易世春等[8]利用图像梯度对道路有效边缘特征进行提取、聚类和分类形成车道线;另一种则利用卷积神经网络强大的特征提取能力进行车道线检测[9-10]。如Huval等[11]基于卷积神经网络进行车道线的检测;Neven等[12]设计了LaneNet和H-Net分支网络模型,预测转换矩阵H,并使用转换矩阵H透视变换到鸟瞰视图,对属于同一车道线的像素点进行聚类,实现了多条车道线端到端的检测。
但是这些基于车载影像的检测方法存在以下问题:1)地面摄像头的成像范围有限,单次检测覆盖范围过小,大规模检测时效率较低,不适合大规模的高精度地图制作;2)地面成像视角,使检测的车道线需要经过透视变换获得俯视图生成完整的高精度地图,透视变换会引入投影误差,当多张俯视图拼接时误差累计传递难以控制;3)地面影像采集设备依赖GPS和惯性导航设备获取坐标信息,定位信号的丢失会造成局部车道线位置信息丢失;4)地面数据采集车成本高、部署不便,高精度地图的每次更新都需要将采集设备发送到任务区,经济性不高,更新不灵活。
高分辨率遥感影像是地图绘制的重要数据源,利用高分辨率影像提取道路信息[13-16],一直以来都是比较热门的研究课题,但受限于遥感影像的空间分辨率(大多为米级以上),难以提取车道级信息(需要厘米级),此外遥感影像更新周期也不够灵活。相较于卫星遥感影像,无人机可以灵活获取厘米级精度的高分辨率影像,同时与车载摄像头相比,无人机具有成像视角和成像高度的优势,可以获得大范围的俯视影像,是绘制更新高精度地图的理想数据源。但是由于无人机影像中非道路区域背景复杂,车道线目标狭小难以直接检测,目前基于航拍影像提取车道的研究很少,现有如:Azimi等[17]提出了一种Aerial LaneNet网络,基于全卷积网络直接从无人机影像检测车道线;Jin等[18]通过离散小波变换对无人机影像将分辨率处理,使用传统的阈值分割识别道路区域,过滤非车道区域的特征。
综上所述,基于车载影像检测车道线的方法不适用大规模高精度地图制作和更新,而卫星遥感影像方法受限于空间分辨率和更新周期,无法快速灵活获得车道级的信息。目前少量的基于无人机影像数据的车道检测研究,也存在以下问题:1)针对航拍影像的车道线检测数据集相对缺失,航拍影像中车道线目标较小容易造成样本不均衡,且航拍道路影像中道路路面具有相似性,难以产生差异性的样本集[19],这直接影响深度学习方法的训练和检测效果;2)现有基于航拍影像提取车道线的研究,多使用传统方法识别道路区域,难以有效去除非道路区域噪声干扰。
针对这些问题,笔者提出了新的基于U-Net网络和图像视觉特征的解决方案。使用U-Net网络对无人机影像语义分割获取道路区域,再结合影像的视觉特征在道路区域内进一步检测车道线,实现基于无人机航拍影像的车道线提取。本方法的优点是:1)以无人机影像作为数据源,具有影像成像范围广和无须透视变换的特点,避免了地面摄像头影像成像范围小,多次透视变换拼接误差累积的问题;2)采用深度学习U-Net网络识别道路区域,更好地解决非道路区域背景噪声影响;3)在道路区域内利用车道线颜色和结构特性检测车道线,不需要额外高质量的训练数据集。本研究中提出的车道线检测方法可以帮助高精度地图实现低成本、高效、灵活的绘制与更新。
本文中基于无人机影像提取车道线的方法分为:道路区域识别、车道线特征提取和道路区域内的车道线检测,如图1所示。道路区域识别通过构建U-Net网络模型,并对其训练用以分割无人机航拍影像,识别出道路区域作为掩膜。道路区域内的车道线提取依赖于无人机影像的视觉特征,通过颜色空间变换提取图像颜色特征,使用Sobel算子提取车道线边缘方向的梯度,并借助道路区域掩膜过滤掉非道路背景噪声,使用Otsu算法对车道线颜色特征和梯度特征分割,获得二值化车道线特征图。车道线检测基于形态学滤波后的二值化特征图,使用滑动窗口算法实现车道线的定位并采用多项式拟合。
图1 基于无人机影像提取车道线方法流程Fig. 1 Flow chart of lane line extraction based on UAV image
U-Net网络[20]建立在FCN网络基础之上,最初用来做医学图像的处理目前也已广泛应用到遥感地物提取方面。U-Net网络是一种U型编码器——解码器结构,与CNN等大多数网络类似,U-Net网络主要由输入层、隐藏层、输出层构成。编码阶段图2左侧与VGG网络类似,主要由简单的卷积、池化下采样构成。采用的是3×3和1×1的卷积核进行卷积操作,其中3×3用于提取特征,1×1用于改变维度。将用于下采样的最大池化层尺寸设置为2×2,获得包括输入的图像总计5个尺度。在解码阶段图2右侧进行上采样和多尺度特征融合,逐步恢复空间维度并修复物体的细节信息。U-Net网络使用转置卷积卷积完成上采样,将编码阶段各个尺度的特征信息进行拷贝,分别叠加到解码阶段相对应的特征图中实现多尺度特征融合。对比于FCN的跃级结构不同,U-Net网络特征融合的方式在channel维度进行拼接形成更厚的高维度特征,从而减少下采样过程中的信息损失,为特征图增加细节信息提高分割的精度。
随着网络层数的加深,激活函数输入值的分布在训练过程中会逐渐偏移,使得反向传播时低层的神经网络梯度消失。针对梯度消失问题,使用批标准化(batch normalization,BN),固定每层神经网络的输入分布,以此解决梯度弥散问题。
图2 U-Net网络模型结构Fig. 2 Structure of U-Net
我国对于车道线的线型、线宽、颜色等有明确的规定,相对于路面环境车道线的颜色特性和结构特性明显,根据这些特征即可实现车道线的检测和定位,使用梯度特征和颜色特征进行车道线检测。
2.2.1 颜色特征
低空无人机影像多采用RGB颜色模式,颜色空间是一种心理物理色的颜色系统,难以模拟人类对颜色的视觉感知,且不易分割和计算。根据《道路交通标志和标线》[21]规定,我国的车道线为白色和黄色两种,在HSL颜色空间中白色和黄色的饱和度明显高于路面环境颜色,因此HSL颜色空间更适合分离车道线。HSL空间以S分量表示饱和度,白色和黄色在的值远大于路面颜色,根据S分量可以从路面区域中分离出车道线。
2.2.2 梯度特征
车道线相比于周围路面环境有着明显的梯度、灰度等边缘特征。常用的等边缘提取算法如Canny算法,提取车道线特征的同时,也会提取图像中其他方向无关的边缘梯度特征引入噪音。相对于Canny算子,Sobel算子可以单独计算横向或者纵向的梯度,通过横向和纵向的梯度获得像素的梯度方向,因此使用Sobel算子来提取道路的边缘梯度特征。Sobel算子求图像方向梯度的过程可以理解为求图像的x、y方向的一阶偏导数,为了简化计算往往使用离散差分算子来求得近似的梯度,如图3所示。
图3 Sobel算子Fig. 3 Sobel operator
(1)
式中:Gx,Gy分别表示沿x和y方向的方向梯度,θ表示梯度方向。
2.2.3 特征提取
路面背景下车道线视觉特征明显,因此使用阈值法分别从增强后的颜色和梯度特征图中提取车道线特征。阈值法的关键是选择一个合适的阈值,针对不同影像阈值多有差别,Otsu算法可以通过最大化自动设置最佳阈值。
(2)
Gx∪SHSL,
(3)
式中:Gx表示图像的横向梯度二值矩阵,SHSL表示HSL颜色空间S分量的阈值二值矩阵。
基于车道线的颜色和梯度特征,采用滑动窗口算法来进一步检测车道线,算法流程如图4所示。首先,设定诸如滑动窗口尺寸、窗口内最少非零像素点数等参数,根据滑窗高度以及航拍影像的尺寸,计算出滑动窗口个数n。分别以各车道线的大致位置作为初始滑窗的下边界中点,保存窗口内的所有非零像素点的坐标,统计该窗口内的非零像素点个数并于阈值,若大于阈值计算滑窗内所有非零像素点的横坐标均值,作为下一个滑窗的下边线中点,该滑窗的上边界纵坐标始终作为下一个滑窗的下边界纵坐标,循环直至滑窗个数达到n完成该条车道线的滑窗检测。完成滑窗检测后,根据存储的滑窗中非零像素点的坐标,进行多项式拟合分别提出各条车道线实例。
图4 滑动窗口算法流程图Fig. 4 Flow chart of sliding window algorithm
训练数据包括来源于2015 CCF大赛的航拍数据和笔者自采的湖北某地航拍数据,共256幅。前者共标注了5类物体,分别是背景(标记为0)、植被(标记为1)、道路(标记为2)、建筑(标记为3)、水体(标记为4),这里对该数据标签进行修改,仅分为道路和非道路两类。所有数据的尺寸被统一调整为512×512,构成整个数据集,并按照7:2:1的比例划分训练数据、验证数据和测试数据。
选用二元交叉熵损失函数(binary cross entropy,BCE),将批大小(Batchsize)设置为4,将初始学习率设为0.001,采用Polynomial学习率下降方法和Adam优化算法,并设置迭代次数(Epoch)为100,通过最小化二元交叉熵损失函数训练U-Net网络,损失函数值的下降过程如图5所示。尽管U-Net网络在较小的数据集上就能表现出强大的分割性能,但是作为深度学习网络,网络的性能极大地依赖于训练数据集。因此,在训练时通过随机翻转、旋转、截取、模糊,以及随机变换亮度、对比度、饱和度、色调等手段对数据集增强。使用训练好的网络模型对航拍影像进行语义分割。
图5 损失函数下降过程Fig. 5 Loss function diagram
道路区域识别本质是图像语义分割,可以使用混淆矩阵来定量的评价分割的精度,因此采用准确率P、召回率R以及交并比IoU作为基础的评价指标。这些评价指标定义如下:
(4)
式中:NTP表示被正确分割为道路区域像素点的个数,NFP表示非道路区域像素但被分割为道路区域的像素个数,NFN表示道路区域像素但被分割为非道路区域的像素个数,分割结果见表1和图6。
表1 U-Net网络道路区域识别评价
图6 道路区域识别效果Fig. 6 Result of road area recognition
通过颜色空间变换将原始航拍影像变换为HSL颜色空间,HSL即色相、饱和度、亮度,该颜色空间使用一个圆锥空间模型来描述,可以很好地反映色调、亮度和饱和度的变化,并且可以更好地定义和描述一种颜色,十分适合处理饱和度变化明显的图像。如图7所示在道路区域中,黄色和白色的车道线相对于路面颜色饱和度差异明显,因此选用HSL中的S通道提取车道线的颜色特征。
图7 HSL颜色空间各通道颜色特征Fig. 7 Color characteristics of each channel in color space HSL
车道线的结构性特征使得车道线边缘梯度突变往往发生在某一特定方向,求取该方向的梯度能够有效提取出车道边缘特征,也避免了引入其他方向的边缘噪声。该方向可以通过统计梯度方向的众数获得,对图像施加该角度的旋转变换,使得车道线与图像横向边缘垂直,计算变换之后的横向梯度间接获得车道线在该方向上的梯度边缘特征,如图8所示。
图8 车道线梯度特征Fig. 8 Gradient characteristics of lane
对上述特征分别进行ROI掩膜处理过滤非道路区域噪音,并使用Otsu算法进行阈值分割获得二值化的车道线颜色和梯度,联合车道线颜色梯度特征,并使用形态学滤波的方法对特征图进行处理,消除二值图像中的小目标(如毛刺和孤立点),填充凹陷弥合孔洞和裂缝,获得如图9所示的二值化后的车道线特征。
图9 Otsu算法二值化的车道线特征Fig. 9 Binary lane feature by Otsu
滑动窗口算法需要确定车道线的起始位置以及车道线的数目,将表示车道线颜色和梯度特征的二值图像按一定角度旋转变换,使得车道线垂直于特征图的横向边缘,统计特征图每列非零像元个数绘制特征直方图(图10(a)),根据车道线之间像素距离确定特征直方图的局部最大值,以此确定车道线的数目和车道线在图像中的初始位置,并使用滑动窗口算法准确地检测车道线像素,如图10(b)所示,并采用多项式拟合滑窗内的非零像素,拟合结果如图11所示。
图10 车道线特征直方图及滑动窗口检测车道线Fig. 10 Histogram of lane line and result of sliding window algorithm
图11 车道线检测拟合效果图Fig. 11 Reuslt of lane line detection
目前评估车道线检测的方法主要通过统计检测到的车道线条数与真实车道线条数的比例来计算准确率和召回率。准确率为检测到的车道线中真实车道线的比例,召回率为检测正确的车道线占全部真实车道线的比例。据文献[22],针对车载摄像头影像,Hough变换检测方法的准确率和召回率为63.47%和59.04%,LaneNet的准确率和召回率为92.81%和93.19%。在检测效率方面,按照摄像头平均成像帧率30 fps,车辆行驶速度60 km/h换算,Hough变换检测方法的检测效率为4.6 m/s,LaneNet方法的检测效率为10.4 m/s。
在实验中,根据无人机俯视影像的特点,将车道线的宽度定义为10个像素建立车道线缓冲区,检测的车道线与实际车道线的缓冲区有重叠则认为检测正确,以检测到的车道线长度与真实车道线完全重合的长度比例来计算准确率和召回率。参照上文公式(4),其中TP表示被正确识别的车道线长度,FP表示错误识别为车道线的长度,FN表示真实车道线中未被识别的长度。经实验计算精确率为79.01%,召回率为83.12%。而在检测效率方面,单幅影像检测的道路长度达到了百米以上,检测效率为25.2 m/s。因此如表2所示,相比其他方法,本方法具有明显的效率优势。
同时,本检测方法在单次检测结果的基础上,还可以经过质量检查调整滑窗和拟合参数,进行二次修正,最终能够达到100%拟合实际车道线的效果。
表2 实验结果对比
选用无人机影像作为数据源,充分利用无人机影像空间分辨率高、成像范围广和无须透视变换的优点。针对无人机影像的特点,避开了采用单一深度学习直接检测车道线的方法,而是提出了新的深度学习和图像视觉特征相结合的车道线提取方案:使用U-Net网络对航拍影像分割获取道路区域,计算道路区域内车道线的梯度和颜色特征,并使用Otsu算法进行阈值分割,借助特征直方图使用滑动窗口和多项式拟合检测拟合车道线。通过实验测试,本方法在保证一定精度前提下,实现了远高于地面影像的检测效率,在一定程度上可以帮助高精度地图低成本、高效、灵活地获取与更新车道线信息。未来将进一步针对路面标线模糊、阴影遮挡、路面车辆等问题进行优化研究。