1.一种顾及地形特征的LiDAR点云聚类简化方法,其特征在于,包括如下步骤:步骤1.以LiDAR地面点云为原始点云数据,使用K‑means算法将原始点云数据划分为多个初始点云簇;依据点云簇地形复杂度将每个初始点云簇进一步细分成多个点云子簇;
步骤2.首先依据各点云子簇内地形特征线位置信息特点,查找每个点云子簇内地形特征点,并将查找到的地形特征点作为点云子簇代表点;
若点云子簇内不存在地形特征点,则使用点云子簇质心点作为点云子簇代表点;
步骤3.考虑到聚类简化方法导致的原始点云边界收缩问题,利用基于二维道格拉斯‑普克方法,识别原始点云数据中的边界特征点;
最终地面简化点云包括各点云子簇代表点以及边界特征点;
所述步骤1具体为:
步骤1.1.初始点云簇划分;
利用K‑means算法划分原始点云数据,依据公式(1)确定初始点云簇个数kfirst;
kfirst=[m*tscale] (1)
式中,[·]为向上取整符号,m为简化点云个数,tscale为点云簇细分比例,tscale∈(0,1);
步骤1.2.地形复杂度计算;
使用地形位置指数TPI描述地形复杂度,TPI如公式(2)所示;
式中,|·|为绝对值符号,Z0表示当前格网的高程值,Zi表示与当前格网邻近的第i个格网的高程值,i∈1,2,···,8;
步骤1.3.地形复杂度赋值点云簇;
将每个初始点云簇所在的TPI网格点中的最大值赋予该初始点云簇;
步骤1.4.点云簇细分;
根据每个点云簇的地形复杂度即TPI值在所有点云簇中的占比,确定该初始点云簇进一步细分的个数,并借助K‑means完成点云簇的划分;
第k个初始点云簇进一步细分个数Ck的计算公式为:
式中,TPIk为第k个簇的TPI指数,[·]为向上取整符号。
2.根据权利要求1所述的顾及地形特征的LiDAR点云聚类简化方法,其特征在于,所述步骤2具体为:步骤2.1.对于山脊和山谷地形特征,通过对比各点云子簇内法向量差异,判断点云子簇内是否存在法向量突变特征,识别位于山脊和山谷处的法向突变地形特征点;
步骤2.2.在高程变化剧烈的地形处,相邻点云间高程不连续,利用相邻点云子簇间邻接边缘点的高程差异,识别位于高程突变区的断裂地形特征点;
步骤2.3.若点云子簇不存在步骤2.1中的法向突变地形特征点以及步骤2.2中的断裂地形特征点,则使用当前点云子簇的质心点作为点云子簇代表点。
3.根据权利要求2所述的顾及地形特征的LiDAR点云聚类简化方法,其特征在于,所述步骤2.1中,法向量突变区地形特征点识别的具体步骤为:先计算点云子簇内所有点的法向信息,再利用K‑means方法依据法向量将点云子簇分割为两簇,并计算两簇所代表曲面的法向夹角θC;
若θC小于或等于预设法向夹角阈值θth,点云子簇内法向量相似,不存在法向量突变;
若θC大于预设法向夹角阈值θth,则将两簇的邻接点标记为候选特征点,并将所有候选特征点中距离该点云子簇质心最近的点作为该点云子簇的法向突变地形特征点。
4.根据权利要求2所述的顾及地形特征的LiDAR点云聚类简化方法,其特征在于,所述步骤2.2中,高程突变区地形特征点识别的具体步骤如下:I.以点云子簇质心为节点,利用图结构描述所有点云子簇邻接关系;
II.利用α‑shape方法找到每个点云子簇的边缘点集;
III.根据点云子簇间的邻近关系,逐点搜索点云子簇边缘点与其近邻点云子簇边缘点集的最近点,最终点云子簇的每个边缘点Pcb均匹配一个邻近点云子簇的边缘点Pnb;
IV.计算Pnb与Pcb两点间的高程差值di;
若高程差值di均小于预设高程差阈值fb,则点云子簇与其近邻点云子簇不存在高程突变;否则,将di最大值所对应的边缘点Pcb作为该点云子簇的断裂地形特征点。
5.根据权利要求1所述的顾及地形特征的LiDAR点云聚类简化方法,其特征在于,所述步骤3具体为:步骤3.1.提取原始点云数据的边界点集{Pj|j=1,…,n};其中,Pj表示第j个边界点,n表示边界点云总个数;
从边界点集中选择其中任意一边界点作为原点,沿逆时针方向将所有边界点集按其相邻关系排序,并依据公式(4)将三维边界点集转换为二维坐标;
其中,(xj,yj,zj)表示三维边界点集中第j个边界点的三维坐标;
(xj+1,yj+1,zj+1)表示三维边界点集中其按相邻关系排序后的第j+1个边界点的三维坐标;
Xj为第j个边界点在二维坐标中横坐标的位置,(Xj+1,Yj+1)表示第j+1个边界点在二维坐标中的位置;(X1,Y1)表示为第1个边界点在二维坐标中的位置,(X1,Y1)=(0,0);
步骤3.2.将二维坐标的边界点集标记为{Pj'|j=1,…,n};
取二维坐标边界点集中的边界点P0'和Pend'作为基线点,基线点P0'和Pend'连线作为基线,计算所有边界点Pi'与基线的垂距,找出垂距中最大值dmax;
其中,P0'的二维坐标为(X1,Y1);Pend'的二维坐标为(Xj+1,Yj+1);
若最大值dmax小于预设高差dth,则将所有中间的边界点云删除,仅保留基线两端点;若最大值dmax大于或等于预设高差dth,则将dmax对应边界点标记为新基线点;
步骤3.3.利用新基线点与基线点P0'和Pend'将二维坐标的边界点集划分为两组边界点集,对新划分的边界点集重复步骤3.2,判定边界点集内是否存在新基线点;
若存在新基线点则继续划分边界点集,否则保留边界点集的基线点;
最终,直到所有边界点集内的最大值dmax均小于预设高差dth,即所有边界点集均无需继续划分,则保留所有基线点所对应的三维边界点云;
将保留的三维边界点云作为原始点云数据的边界特征点。