郑帅锋,王山东,张陈意,王伦炜
(河海大学 地球科学与工程学院,南京 211100,中国)
在自动驾驶所使用的3维高精度地图中,道路标识线是极其重要的核心要素。在城市道路环境中,通常根据指导车辆交通的不同功能,在道路路面上采用高反射率的涂料绘制相应的文字、符号、图形、线条等[1]。而3维坐标和强度信息是车载激光雷达(light detection and ranging,LiDAR)点云数据的主要属性信息,地物的表面附带不同的材质,而这些材质的回波反射强度信息也表现得不同,因此可以参考这一特性提取点云标识线[2]。
近些年来,国内外学者以反射强度差异这一特性从车载LiDAR点云中提取标识线的方法有两类:一类是将3维信息压缩成2维信息,即将3维点云信息转换为2维影像,再分割提取道路标识线信息[3-7];另一类是直接利用点云反射强度进行提取[8-14]。
基于点云图像维度转换的方式,对3维点云扫描数据进行降维处理,保留其某一特性生成2维特征图像,并结合图像处理算法提取点云道路标识线。YAO等人[3]根据道路边界处的几何突变从扫描线中提取路面,并将路面点云反距离加权插值生成栅格图像进行道路标识线的精确提取,但此方法未考虑城市道路环境的影响。GUAN[5]与KUMAR[6]等人结合道路走向对特征图像进行分块、自适应阈值处理,实现标识线的提取,但此方法存在标识线图像3维信息缺失的问题。
基于点云反射强度提取道路标识线,ZEYBEK[8]利用Alpha shape算法提取3维和2维道路特征,结合点云反射强度获得标识线结果,并与手动数字化参考标记进行比较,但未考虑到标识线的磨损状态。YAN等人[9]对每一条扫描线点云进行基于移动窗口的强度中值滤波,利用标识线点云与路面点的反射强度差异,进行标识线点的提取。YU[10]与MA[13]等人同样对道路点云进行分块处理,对每一块点云进行强度阈值判断,但该类方法的场景受限于弯曲道路中。
综上所述,点云道路标识线的提取精度问题,与车道标识线磨损或断裂等状况相关,与复杂环境中其它要素的影响程度相关。针对上述问题,本文作者提出了一种改进的基于点云多元特征的城市道路标识线提取方法,通过结合点云的强度信息、点密度信息以及高程信息进行道路标识线的提取,更好地缓解了由车道标识线磨损断裂等情况对精度造成的影响;在不同场景条件下,利用标识线的几何信息和语义信息,结合临近点迭代(iterative closest point,ICP)模板匹配,提高算法的泛化性。
车载LiDAR数据以3维坐标及反射强度反映道路环境及部件材质。城市道路标识线采用特殊的材料制作,相比于周边要素,反射强度更强,而且没有突出的空间立体特征城市道路标准线附着于道路表面[12,15]。本文作者基于点云多元特征的地理参考图像,实现点云道路标识线自动化提取,技术路线如图1所示。由于原始点云数据存在着一些不规则分布的离群噪声点,首先基于半径滤波去除噪声点,并用布料模拟滤波算法滤除非地面点;其次将地面点数据进行格网化处理,去除非路面点的高强度点云和稀疏分布的高强度点云[16];然后通过投影生成点云的高程、强度、点密度特征地理参考图像,并基于多元特征图像提取道路标识线边缘范围;接着利用Ostu算法实现路面点云标识线精提取;最后根据标识线的边界框信息和ICP模型匹配方案实现标识线的细分类。
图1 技术路线Fig.1 Technical flow chart
分析道路标识线的强度特征[17]可知,道路表面的标识线通常使用特殊的高反射率的白色或黄色涂料,而路面普遍使用低反射率的混凝土或带卵石的沥青铺就而成,因此两者强度差异明显。考虑到实际城市道路因部分标识线磨损或断裂导致其反射率下降等情况,采用局部区域的强度阈值作为判断依据,结合点云的高程特征和点密度特征,生成2维地理参考图像,并进行图像增强[18],凸显道路标识线特征。
道路标识线位于道路表面,在局部邻域内高程变化很小,但在实际的复杂道路环境中,不可避免地存在一些与标识线强度相似的其它路面噪声点[19]。通过对地面点云格网化,根据格网高差大小将点云分离为路面点gcloud与非路面点ngcloud,去除非路面点的高强度点云和稀疏分布的高强度点云,并都投影到水平面XOY上进行栅格化处理,生成3个灰度地理参考图像(高程特征图像、强度特征图像和点密度图像)。
对于点密度特征图像,其特征值为去噪后的点密度值。对于高程特征图像,其特征值为ngcloud的平均Z值。在生成点云强度特征图像时,其格网特征值主要由落入格网内部点云的强度信息、与格网中心点的水平距离、点的个数决定,并根据每一个点的强度信息与离散分布情况来计算该点的内插权重。
位于(i,j)的格网强度特征值Fij的权值Wij,n受两个影响因素限制:第1个影响因素是Iij,n,即格网中最低强度值与格网内所有点之间的强度差异;第2个影响因素是Dij,n(n代表点号,0≤n≤Nij,Nij为格网(i,j)内的总点数),即格网中心点到格网内每一个点的水平距离。因此落入第(i,j)个格网中的点的权值定义为[19]:
(1)
式中:Wij,n,XY、Wij,n,I分别为格网中第n个点与第(i,j)个格网中心点在XOY上的水平距离及其强度的权重;α和β为这两部分的权重,且α+β=1;Imin(ij)、Imax(ij)分别为第(i,j)个格网中所有点的强度最小、最大值;G为网格的长度大小;Ip,max与Ip,min分别为整个点云集p的强度最大值和最小值。根据式(1)计算格网(i,j)的强度特征值[19]:
(2)
式中:Iij,n′为格网(i,j)中第n个点的强度值。
在0~255的灰度空间更能体现图像的对比度,然后将所有格网的强度特征值Fij进行归一化处理,得到点云强度地理参考图像。
在强度特征图像中,低反射强度的路面像素点较为灰暗,高反射强度的标识线像素点较为明亮,两者的灰度值差异明显[20]。Sobel算子可以更好地识别和提取标识线边缘像素以及非路面点中高程突变的像素,以此生成强度梯度图像和坡度梯度图像,并利用最大熵阈值分割法[20]对坡度梯度图像和点密度特征图像进行二值化,坡度二值化图像中像素值为0的像素点以及坡度二值化图像中像素值为1的像素点将被保留,并综合到点云强度梯度图像中去,最后对道路强度梯度图像进行二值化,得到道路标记边界像素,处理流程如图2所示。
图2 地理参考图像处理流程图Fig.2 Georeferenced image processing flow chart
通过计算图像中每一个灰度级m(0~255)出现的概率Pm以及相应的熵Hm=-PmlgPm,确定图像的最佳阈值。依次遍历每一级灰度值T,分别计算目标区域A的熵HA和背景区域B的熵HB以及图像的总熵H(T)[21]:
(3)
式中:PA和PB分别表示目标区域A和背景区域B中各灰度级出现的概率。最后总熵H(T)取最大值时所对应的灰度值作为最佳阈值,并基于该阈值进行图像二值化。
道路标识线拥有规则的形状和大小,其二值图像应完整独立,而现有二值图像的像素点各自独立,因此,采用种子填充法对二值图像进行连通区域分析[22],并滤除面积过小的噪声区域;同时,对标识线内部的黑色空洞进行填充,得到互相独立且分割完成的标识线连通区域。
由于道路标识线与路面噪声点两者的连通区域面积相差较大,需统计所有连通区域中小于面积阈值的连通区域并剔除。为尽可能保留标识线区域,防止一个标识线区域被当成多个小区域而误删,在进行几何区域分析时采用8邻接搜索方式。为去除道路标识线内部的黑色孔洞,对上述处理后的标识线二值图像取反,进行几何连通区域分析,除去小于面积阈值的连通区域。最后基于道路标识线边缘范围及其面积阈值实现小区域的去除和孔洞填充。
从第1.2节中点云特征图像的生成可知,图像中的所有像素点均与地面点云所处的相应格网相对应。投影反变换可快速提取点云道路标识线,而点云特征图像受到像素大小的影响,其分辨率相对较低,且当点云投影坐标系方向与道路标识线指向不一致时,得到的点云道路标识线其边缘呈锯齿状,含有大量的地面噪声点[23]。对此,利用Otsu算法[24]对每一个标识线点云进行强度滤波,保留强度较高的点,以此来消除道路标识线点云的锯齿效应,从而实现点云道路标识线的精提取。
首先,将投影得到的点云的强度归一化为0~255的灰度范围,然后利用Ostu算法最大化类间方差与类内方差之比,类间方差定义为[24]:
g=ω0ω1(μ0-μ1)2
(4)
式中:ω0和ω1分别为道路标识和路面出现的概率;μ0和μ1是相应的平均水平。
最后,通过遍历每块标识线点云计算出使类间方差g最大时的阈值T,此时T为最优阈值。
从道路标识线的几何特征和语义特征[15]来看,城市道路上单黄线、单白线、虚线、停止线、箭头方向线、文字等道路标识线在几何形状上均有相应的标准与规范,这一约束是道路标识线模板匹配的参考依据之一。
考虑到因标识线点云的磨损导致标识线的错误识别,需对标识线点云重新聚类。在不受边界点轮廓形状影响的情况下,利用Alpha shape算法[25]提取每一个标识线的边界点,提升提取边界点的效率,并依次统计其边界框的边长和对边比等信息,以此作为粗分类的准则,快速提取出道路边界、车道分界线等规则道路标记,并对剩余不规则标识线与模板中的每一个模型点云通过平移、旋转后进行ICP配准,估计目标与每一个模型的最佳重叠率,然后获取整体最佳重叠率。若整体最佳重叠率小于重叠阈值,则标记为未分类道路标记;否则,该道路标记的类别为获取整体最佳重叠率时的模型点云的类别。
将实验数据中几个典型的清晰完整的道路标识线边界点云保存为模型以进行配准,如图3所示。通过ICP配准算法对所有标识线边界点云与模板进行从粗到精的配准,并估计标识线点云与模型的重叠率,如果最高重叠率不超过60%,则目标被视为未识别标识线,反之则为重叠率最高的模型类别。
图3 模板点云图Fig.3 Template point cloud diagram
点云道路标识线自动提取及分类实验是基于Visual Studio 2017 C++集成开发。实验平台配置为2.20 GHz的Intel(R) Core(TM) i7-10870H处理器,32 GB的随机存取存储器(random access memory,RAM)。
实验数据主要采用澳大利亚某城市的复杂街区路段,如图4所示。该点云数据主要包含点的3维坐标信息与强度信息,全长约379 m,宽度约18 m,点云个数为79942109个。
图4 实验点云数据Fig.4 Experimental point cloud data
局部点云按照强度分层显示的效果如图5a所示。实验数据中道路表面起伏不大,整体较为平坦,道路宽度基本一致,中间为弯曲路段,并有十字路口、交叉路口等复杂地形,路面点与道路标识线有着明显的强度差异,完全满足实验提取的需要。如图5b所示,局部点云按照高程显示可以看出,道路两边的路坎近似垂直于路面,并与路面有一定的高度差异。
图5 点云局部渲染图Fig.5 Point cloud local rendering map
2.2.1 实验结果 提取的地面点云仍包含有一些栏杆或者车辆等与地面相交的部分非地面点,将地面点云格网化,根据格网内高差大小将点云分离为路面点和非路面点云,并将路面点和非路面点分别投影到格网中。经过多次实验,当格网间距为0.065 m时,提取效果最佳。
利用点云投影及栅格化处理得到点云多元特征图像,图6a和图6b分别是车载LiDAR点云和强度特征图像。由图6a和图6b可知,强度特征图像很好地保留了地面的强度信息,但对离散点云进行2维投影时,不可避免地会造成一定的精度损失。利用中值滤波对强度特征图像进行处理,极大地减少了椒盐噪声对于标识线提取的影响,滤波后的效果图如图6c所示。
图6 原始点云与强度特征图像对比图Fig.6 Comparison between original point cloud and intensity feature image
利用第1.3节中的算法对图像上的特征线边缘进行提取与强化,提取结果如图7所示。
图7 强度二值化Fig.7 Strength binarization
由图8可知,虽然基于强度特征图像利用边缘检测可以初步确定标识线的边缘位置,但仍有一些高强度稀疏路面噪声点需要剔除,边缘二值化可以较好地解决这一问题。
图8 道路标识线边缘检测局部图Fig.8 Local image of road marking line edge detection
在二值图像的像素点的离散性问题上,通过连通区域分析滤除面积过小的噪声区域,同时对标识线内部的黑色空洞进行填充,得到互相独立且分割完成的标识线连通区域,结果如图9所示。其中,图9a为符合要求的标识线连通区域,图9b为所有标识线连通区域随机赋色后的效果。
图9 连通区域分析与标记局部结果图Fig.9 Connected region analysis and marking local result graph
在强度二值化图像中进行连通域分析后,道路标识线基本被识别。此时将2维标识线投影反变换,得到标识线点云,并结合Ostu算法实现点云的精细化处理,最终道路标识线分割结果如图10所示。
图10 标识线点云提取效果图Fig.10 Rendering of marking line point cloud extraction
由于提取的标识线存在部分单一标识线被分割为多个标识线的现象,所以对标识线点云进行欧式聚类,经过多次实验,聚类半径为0.1 m更符合实际场景,利用Alpha shape对每一个聚类的标识线进行边界点的提取,并计算包围盒边长和对边比信息,以此作为粗分类的准则,快速提取出道路边界、车道分界线等规则道路标记,剩下不规则标识线通过模板匹配进一步分类,局部分类效果图如图11所示。
图11 标识线局部效果图Fig.11 Partial effect picture of marking line
实验数据中的标识线基本都被正确提取和分类,没有出现大面积的噪声点和部分标识线漏提的现象。但从图11来看,仍有一些标识线类别被误判,图11a和图11c中的标识线由于间隔距离太近,多个标识线被识别为同一个标识线点云,导致标识线类别的误判;图11b中的标识线一方面因为标识线局部被磨损,导致部分标识线点云的强度值较低,被视为地面点或者噪声点进行了剔除,使得被提取的剩余的标识线被识别为其它类别的标识线;另一方面则是由于采样点的稀疏,使得标识线在进行几何连通时,同一标识线被识别为多个标识线。
2.2.2 精度分析 为了进一步对道路标识线提取的结果进行评价,本文中采用人工判读的方式从标识线提取效率中计数每一类标识线的真正数(true positive,TP)、假负数(false negative,FN)、假正数(false positive,FP)。采用准确率指标(precision)、召回率指标(recall)以及综合评价指标F对道路标识线提取结果进行精度评价,结果如表1所示。
表1 标识线提取精度Table 1 Marking line extraction precision
由表1可知,基于多元点云特征的道路标识线提取算法所提出的每一类标识线的准确率均超过96%,召回率超过91%,综合评价指标超过94%,表明该算法对于城市道路上绝大部分的道路标识线进行提取时,能够取得较好的结果和精度。
为进一步分析本文中标识线分类结果,与YU等人[10]提及的道路标识线提取算法进行对比,结果如表2所示。由表2可知,基于多元点云特征的道路标识线提取算法对虚线和斑马线标识线的分类精度与YU等人[10]所提出的算法相近,但算法对单向转向箭头的分类效果相比于参考文献[10]中的方法取得了较大的提升,这是因为参考文献[10]中的方法在进行标识线细分类时所构建的空间语义结构较为单一,且只适用于线状标识线,但基于ICP配准进行模板匹配的方法不仅有一定的容错度,而且对存在结构差异的目标识别效果也更好。
表2 不同方法标识线分类对比精度Table 2 Classification and comparison accuracy of marking lines of different methods
针对如何从车载LiDAR点云中提取标识线的问题,综合利用道路标识线的强度、几何和语义等特征,设计了图像与点云相结合的处理算法,整体提升了道路各类标识线的提取精度,对城市数字化建设具有一定的参考意义。对于道路标识线的提取,结合点云的多元特征信息,能够更好地辅助标识线的提取,这对后续无人驾驶的研究有着推动作用;对于道路标识线的分类问题,基于ICP配准进行模板匹配的方法不仅有一定的容错度,对存在结构差异的目标识别效果也更好。结果表明,提取的短虚线、斑马线、箭头以及长虚线的准确率均高于96%,召回率均高于91%,精度准均高于89%,综合评价指标均高于94%。尽管通过实验和综合评估证明了所提出方法的可行性和优越性,但在道路标识线的自动提取方面仍有很大的改进空间。未来,将进一步研究深度学习在道路标识线提取上的应用。