朱二巧
(山东省国土测绘院,济南 250013)
斑马线是城市管理与建设的重要基础设施,斑马线的自动识别与提取在城市基础地理信息更新中具有重要意义,可大幅提高数据更新效率,为智慧城市的管理奠定基础[1]。同时,随着无人驾驶技术的发展,道路标线的自动识别与提取已成为刚需,因此,斑马线角点的定位与识别就变得至关重要。车载移动激光扫描系统作为一种新的空间数据采集技术,高度集成了卫星定位接收机、激光扫描仪、惯性测量单元、工业相机等传感器,具有实时、动态、主动、高精度和高密度等特点,能够快速采集大面积的三维空间数据[2],为获取道路坑槽信息提供了高精度的数据源。
国内外对于道路标线的检测正在实现由人工测量到车载移动测量的转变。这种转变大大减少了外业工作强度,可以在不影响行车安全的情况下快速获取海量路面点云数据,为公路养护管理提供数据支撑。
目前斑马线的提取与识别方法可以分为3类:一是图像检测法[3-4],此类方法结合数字图像处理技术分离出斑马线像元,从而对斑马线进行定位,但受制于图像自身的分辨率,且精度不高;二是点云检测法[5-7],此类方法主要根据斑马线点云自身形态特征实现提取,提取效果较好,但是需要大量人工干预,自动化程度不高;三是机器学习法[8-10],该方法基于现有的机器学习与人工智能算法自动检测出所有符合斑马线特征的区域,检测速度较快但是极易受到周围其他地物干扰,影响提取结果,很难适应实际道路环境下的斑马线的检测。针对现有的点云检测方法的不足,本文提出了一种基于点云扫描线的斑马线角点精细提取算法,可快速准确地提取斑马线角点坐标。
激光点云数据是一种高精度、高密度的离散数据,本文提出应用点云扫描线实现斑马线边缘点的提取,结合随机抽样一致性算法(random sample consensus,RANSAC)分别对斑马线的2条长边与短边进行直线拟合,进而提取出斑马线的4个角点坐标。算法流程如图1所示。
图1 算法流程图
人机交互提取的目标点云内包含斑马线点云与非斑马线点云。为排除非斑马线点云对提取结果的影响,同时提高数据处理效率,本文把数字图像处理领域内的大津算法[11](OTSU)引入到点云数据处理中,计算最优点云回波反射强度二值化分割阈值,区分斑马线点云与非斑马线点云。
不同的车载三维激光扫描系统所获取的点云强度值存在差异,将所有点云的回波反射强度值归一化至0~255强度区间内,归一化计算如式(1)所示。
(1)
式中:Ki表示第i个点云的归一化强度值;Ii表示第i个点云的原始强度值;Imax表示点云回波反射强度最大值;Imin表示点云回波反射强度最小值。
遍历255个归一化强度区间所对应的强度值t,并将其作为临时分割阈值把点云分成2个部分。点云集合内归一化强度值小于t的点云个数记作N0,归一化强度值大于t的点云个数记作N1,根据OTSU算法原理分别计算上述2部分点云集合所占的比例ω0、ω1以及平均归一化强度值δ1、δ2,在此基础上根据式(2)、式(3)计算类间方差g。
δ=ω0·δ0+ω1·δ1
(2)
g=ω0·(δ-δ0)2+ω1·(δ-δ1)2
(3)
当且仅当类间方差g取得最大值时,其对应的临时分割阈值t即为所求最优二值化分割阈值T。实际情况下,斑马线为人工刷制的油漆,其点云的强度值普遍偏大,故对于目标点云集合而言,当某个点云的回波反射强度值大于T时,则认为是斑马线点云;反之,认为是非斑马线点云。
遍历所有扫描线的id索引,对同一条扫描线上点云按照其X坐标或者Y坐标值升序排序。如图2所示,在排序的同时记录下同一条扫描线上相距最远的2个斑马线点云P1(x1,y1,z1)和P2(x2,y2,z2)的坐标,以计算二者的水平距离d。若当前扫描线上不存在或仅有一个斑马线点云时,其对应的水平距离d为0。
图2 水平距离计算
扫描线遍历结束后得到水平距离d的取值范围:[dmin,dmax],将上述区间等距划分为若干小区间,统计落入各个小区间内的扫描线条数。如图3所示,对数据进行直方图统计分析,生成“扫描线条数-水平距离”频率分布直方图。不难发现,d值在某个小区间内形成紧密聚类,获取位于该区间内所有扫描线的id索引,这些扫描线上首尾两端处的斑马线点云理论上分布于斑马线长边附近。若直接对目标点进行直线拟合,极易受到周围噪声点干扰,影响后续斑马线长边提取效果。为避免上述情况,此处使用迭代RANSAC直线拟合算法进行处理。假设原始点集为Pi{p1,p2,…,pm},经过第一次拟合后计算所有点到拟合直线的距离hi,保留hi小于阈值的点Pj{p1,p2,…,pn}(n 图3 频率分布直方图 创建扫描线移动判别窗口以遍历所有扫描线,设置相应的判别条件从而获取斑马线首尾边缘处的扫描线,并对目标扫描线上的点云进行直线拟合,得到扫描线直线方程。 如图4所示,以斑马线长边为约束,创建一个包含k条(5≤k≤8)相邻扫描线的移动判别窗口,窗口以k条扫描线为步长并沿着扫描线索引id增大的方向移动。在移动过程中,记录窗口内扫描线被2条斑马线长边所截取部分的点云总数n以及其中属于斑马线点云的个数m(m (4) 图4 移动窗口法示意图 当扫描线被长边所截取部分的斑马线点云增多时,ω值变大且无限趋近于1;反之,ω值变小且无限趋近于0。当且仅当百分比ω的最大值与最小值之差近似为1时,表明该判别窗口已经移动至斑马线的短边边缘处。如图5所示,随着判定窗口内扫描线编号id的增大,其对应的百分比ω值在整体上呈单调递增或单调递减的变化趋势,故此处采用三次多项式曲线拟合算法对t个离散点进行拟合,得到拟合曲线函数f(x),如式(5)所示。 f(x)=a0+a1x+a2x2+a3x3 (5) 计算f(x)的二阶导函数f″(x),并令f″(x)=0得到函数拐点横坐标x0,对x0取整即可获取斑马线短边边缘处的扫描线索引id,如式(6)所示。 (6) 移动判别窗口遍历结束之后,理论上可以检索得到2条短边边缘处的扫描线,对这2条目标扫描线上点云采用RANSAC算法进行直线拟合得到直线方程L1、L2。 图5 三次多项式曲线拟合结果 图6 斑马线角点计算 为验证本文算法的准确性,选取了实际道路某一路段点云作为实验数据,同时以实地人工测量所得的斑马线角点坐标作为真实值进行对比分析,分别计算二者之间的点位中误差σ与距离均方根误差DRMS,定量分析本文算法的准确性。实验数据如图7所示。 图7 实验数据 图8为从实验数据中以红色虚线框为界裁切的待处理点云,其中包含了一部分非斑马线点云,斑马线轮廓清晰完整,可较为精确提取4个角点坐标。仅对当前目标点云数据进行处理。图9(a)为斑马线点云提取图。从图中可以看出,根据OTSU算法计算的点云强度二值化分割阈值可以很好地区分斑马线点云与非斑马线点云,一定程度上克服了人工设定二值化分割阈值造成分离结果不稳健的问题。图9(b)中的红色虚线SL1、SL2为本算法提取的2条斑马线长边。结合直方图统计分析可剔除无效的扫描线,保留了位于斑马线长边之上的点云,对其进行RANSAC直线拟合可成功定位斑马线长边。图9(c)中的红色虚线L1、L2为本算法提取的斑马线短边边缘处扫描线。原始点云中斑马线短边边界不明显,难以直接提取,本文算法基于移动判别窗口来分析斑马线点云在相邻扫描线上的分布特征,通过设定相应的判别条件,从而有效提取斑马线短边边缘处扫描线。图9(d)为上述目标点云中提取的斑马线角点结果图。从提取图可以看出,本算法提取的斑马线角点与实际角点几乎重合,可较为全面地反映出斑马线角点的真实坐标。通过结合所获取目标直线的几何特征进行二次判定,可适应多种行车环境下的斑马线角点提取,适用于实际道路复杂多变的情况。 图8 原始斑马线点云 图9 斑马线角点提取流程 图10为利用本文算法在实验区域内提取的10个斑马线角点。以点位中误差与距离均方根误差为指标验证斑马线角点提取质量,分别将人工提取结果与本文算法提取结果进行对比分析,分析结果如表1所示。 图10 斑马线角点提取结果图 表1 斑马线角点提取结果对比 从表1可以看出,大部分经人工测量与本文算法提取的斑马线角点点位中误差在4 cm之内,整体的距离均方根误差也达到了3.7 cm。针对不同规格的斑马线,利用本文方法同样可以精确提取出角点坐标,这是因为点云数据具有高精度的特征,通过扫描线分析实现斑马线边界直线的确定进而提取角点坐标的方法具有良好的适应性。对于第6组角点,点位中误差偏大,这是由于该斑马线磨损程度较为严重,部分油漆已经缺失无法分辨,造成角点提取错误。 本文以车载激光扫描点云数据为研究对象,针对城市道路上的斑马线,充分挖掘点云自身属性特征与三维空间分布特征,提出一种基于点云扫描线的斑马线角点精细提取算法。算法对OTSU大津法加以改进,引入到点云数据处理中,计算最优点云回波反射强度二值化分割阈值,实现斑马线点云与非斑马线点云的有效分离,克服了人工设定分割阈值造成分离结果不稳健的问题。同时以点云扫描线为基本研究单位,结合频率分布直方图进行统计分析,剔除了无效的扫描线,最终保留了位于斑马线长边之上的点云对其进行直线拟合,成功定位斑马线长边,有效克服了噪声点云干扰的问题。实际道路的情况复杂多变,车载激光扫描仪在作业过程中产生的扫描线不一定完全垂直于斑马线前进方向,结合所获取目标直线的几何特征进行二次判定,可适应多种行车环境下的斑马线角点提取。实验结果表明,本文算法能够准确确定斑马线角点坐标,提取结果与人工测量结果具有高度一致性。1.3 斑马线短边边缘处扫描线获取
1.4 斑马线角点坐标提取
2 实验分析
3 结束语