冉妮妮
(贵州省地质矿产勘查开发局一○六地质大队,贵州遵义 563000)
高精度、高现势性的道路三维信息对于智能城市建设、交通管理与道路维护具有重要意义。作为一种新型的空间三维数据采集手段,移动车载激光扫描技术可在不与观测目标接触的情况下,动态、实时、快速地获取观测目标的三维位置信息与纹理信息,利用移动车载激光扫描技术采集到的高密度、高真实性的点云数据可以为道路三维信息的获取提供数据支撑。
目前,国内外基于移动车辆激光扫描点云数据的道路信息提取方法主要分为两种:一是从点云投影得到的特征图像中提取道路信息;二是从离散点云中直接提取道路信息。从特征图像中提取道路信息主要是基于道路面与邻域之间的高程差异,对原始点云数据进行转换生成特征图像,再将图像提取地物的算法引入道路面信息提取中[1]。这种方法的缺陷在于离散点云与格网之间的转换会造成精度的损失。本文基于道路路面点法向量的分布特征,提出一种点云法向量相似度的道路点云提取算法,并对算法提取路面点云的有效性与准确性进行了检验。
城市道路环境复杂,道路面、汽车、行人及道路两侧交通附属设施,如电线杆、路灯、行道树等非地面目标点云会严重干扰点云局部法向量计算的准确性,从而降低道路提取的准确度与效率。因此,将原始点云数据中的非地面点滤除是提取道路的关键步骤之一。
本文将使用文献[2]中提出的点云滤波算法,该算法是一种基于布料模拟的滤波算法(CSF)。该算法滤波速度快且所需参数较少,是一种稳健性较强的地形滤波算法,适用于点云数据量庞大的车载点云滤波。布料模拟滤波算法的滤波过程与简单的物理过程模拟类似,假设地形表面上覆盖着一块虚拟布料,如果此布料足够柔软,那么就可以用此布料的形状表征数字表面模型(DSM)。假设该布料有一定硬度,那么将原始地形翻转,此时可以用布料的形状表征数字高程模型(DEM)。图1为CSF算法示意图。
图1 CSF算法示意图Fig.1 Schematic diagram of CSF algorithm
2.2.1k邻域搜索
道路车载点云数据中各离散点之间没有几何拓扑信息,因此,想要实现快速近邻查找,首先要在离散点之间构建几何拓扑关系。KD-tree是一种数据结构,本质是带有约束条件的二分查找树,由Bentley于1975年提出[3]。KD-tree主要用于分割k维数据空间,从而实现多维空间数据的范围搜索(FDN)和近邻搜索(KNN)[4]。
2.2.2 法向量估算
通过局部邻域拟合的切平面法向量表示点云场景所有激光点的法向量,估算出各激光脚点的局部法向量及曲率值,将法向量相似度作为路面点云提取的约束条件。
图2为Hoppe等人使用局部切平面拟合方法对激光点进行局部法向量估算原理示意图[5]。
图2 法线估计原理Fig.2 Principle of normal estimation
首先,假设点云场景任意激光点坐标为pi={xi,yi,zi},使用邻域查找方法搜索得到激光点k个邻域点;其次,通过距离最小二乘准则计算得到激光点的局部拟合平面P,其中P可表示为[6]:
(1)
式中:argmin表示在目标函数最小时的变量值,d表示坐标原点与P之间的距离,n表示P的法向量。
计算得到激光点所有邻域点的三维质心都位于P上,同时法向量满足nTn=1,表明n为单位向量。将主成分分析应用于激光点的法向量求解中,此时可通过k个邻域点构建协方差阵C,此协方差阵最小特征值对应的特征向量就是激光点的法向量。
(2)
C·vi=λi·vi,i∈{0,1,2}
(3)
式(2)、式(3)中:i表示解算邻域协方差阵得到的特征值,vi表示特征值i对应的特征向量,p表示邻域的三维质心,k表示激光点pi所有邻域点个数。
激光点3个方向上的变化程度可以用特征值的大小表示,故激光点pi的曲率Ki可近似表示为:
(4)
城市结构化道路路面点云法向量与路缘石、道路边缘处点云法向量存在明显差异,路面点云法向量分布较为集中,且总体竖直向上。故可采用区域生长算法,将路面点云法向量方向相似性作为约束条件,对路面点云进行分割。
由于传统区域生长法选取种子点的方法较为随机,因此,可能会导致路面点云分割效率低下或者过分分割等问题。针对此问题,以路面提取目标为对象,改进种子点的选择准则。图3为城市结构化道路的空间特征,可以看到结构化道路面点较人行道、道路两侧地物点更低且路面更为平坦。因此,首先通过原始点云间的高程差异进行高程升序排列,其次将曲率最小的激光点作为种子点。算法的具体流程为:
图3 城市典型道路场景点云Fig.3 Point cloud of typical urban road scene
1)通过原始点云之间的高程差异进行高程升序排列,计算得到所有激光点的曲率Ki与法向量ni,选择曲率最小的激光点作为种子点。
2)搜索当前激光点的邻域点,计算所有邻域点的法向量以及邻域点法向量与当前激光点法向量的夹角Si,同时计算得到所有邻域点的曲率值。
3)设置平滑阈值Sθ与曲率阈值Kt,若当前点与邻域点的法向量夹角Si
完成上述分割流程后,除路面以外,可能还会聚类得到一些近似平面点群区域。但是道路路面点云区域与其他平面点群区域的区别在于路面点云区域平均高程较低且是最大连通区域。因此,可以通过设置阈值参数区分出路面点云与非路面点云。
通过移动车载激光扫描技术采集得到城镇环境中两段比较典型的城市结构化道路。图4(a)为路段1点云数据,路段1数据长度约为300 m,共包含3 758 943个激光点,主要为平直道路,道路宽度较为规则,坡度较大。图4(b)为路段2点云数据,路段2数据长度为150 m,共包含1 895 341个激光点,主要为弯曲道路,道路宽度存在局部不一致。
图4 原始车载点云数据Fig.4 Original vehicle point cloud data
两段道路数据中都包含路灯、行道树等典型道路附属设施。
对原始点云数据进行滤波处理,利用开源数据软件Cloud Compare中布料模拟滤波算法进行滤波运算。路段1道路坡度较大,设置硬度参数为2、距离阈值为0.5 m、大格网分辨率为1.5 m、迭代次数为150次。路段2道路较为平坦,与路段1设置参数的区别在于硬度参数,此路段将硬度参数设置为1,其余参数与路段1参数设置相同。
图5为两段点云数据经滤波后得到的结果,滤波后的点云数据包括道路两侧人行道区域以及道路面区域,同时可见车辆被滤波后留下的空洞区域。
图5 滤波后点云数据Fig.5 Point cloud data after filtering
使用本文提出的方法,在VS2017环境中使用C++语言编程对滤波后的点云数据进行处理运算,得到道路面点云数据。其中点云邻域查找使用的方式为KNN,设置查找点数量参数以及区域生长邻域搜索参数为30,两段道路点云数据的曲率阈值Kt均设置为0.04,将路段1点云数据的法向量夹角阈值Sθ设置为8°,将路段2点云数据的法向量夹角阈值Sθ设置为5°。
如图6所示为两段点云数据的最终道路面提取结果。
图6 路段道路面点云提取结果Fig.6 Extraction results of road surface point cloud in sections
为了定量评价本文方法道路的精度,将检测质量q、完整性r、准确性p作为本文道路提取的定量评价指标。3种评价指标的计算公式为[7]:
q=TP/(TP+FP+FN)
(5)
r=TP/(TP+FN)
(6)
p=TP/(TP+FP)
(7)
式中:FN表示未被提取得到的道路点数量,FP表示提取的非路面点数量,TP表示正确提取得到的路面点数量,手工从原始点云中将道路面点云取出作为参考数据。
表1所示为本文试验提取道路面结果精度统计,由表1可知,本试验提取道路面结果的检测质量q、完整性r、准确性p均在94%以上。其中,由于路面车辆等障碍物遮挡导致路面局部边缘处存在少量缺失。试验结果表明,本文方法可对城市结构化道路路面进行有效提取,受道路形状及宽度的影响较小。
表1 提取结果精度统计Tab.1 Precisionstatisticsofextractionresults数据源q/%r/%p/%路段195.1695.8297.75路段294.3895.6396.42
本文根据城市结构化道路点云的法向量分布特征,提出了结构化道路面点云提取方法。为了对本文提出方法的可靠性进行检验,使用两段城市道路点云数据进行算法试验,对道路面点云提取结果进行目视评价及定量分析。试验结果表明,本文提出的算法在城市结构化道路面点云提取中具有较好的适用性。但是本文没有对行人、车辆等遮挡造成的路面局部边缘缺失进行修补,这将是下一步重点研究方向。