CN111275724B - 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 - Google Patents
一种基于八叉树和边界优化的机载点云屋顶平面分割方法 Download PDFInfo
- Publication number
- CN111275724B CN111275724B CN202010121064.2A CN202010121064A CN111275724B CN 111275724 B CN111275724 B CN 111275724B CN 202010121064 A CN202010121064 A CN 202010121064A CN 111275724 B CN111275724 B CN 111275724B
- Authority
- CN
- China
- Prior art keywords
- plane
- point
- points
- boundary
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/231—Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种基于八叉树和边界优化的机载点云屋顶平面分割方法,进行基于八叉树的多尺度初始平面片提取,包括根据八叉树的数据结构将无序列点云根据空间位置迭代地划分为不同尺度的平面片,并从中选择出具有平面性的平面片,作为数据预处理所得初始平面片;通过分层聚类将初始平面片根据相邻关系和参数相似性进行聚合形成初始平面;基将没有归入平面片的点,通过区域生长合并到初始平面中;基于能量最优化的平面边界点重分类,包括通过能量函数将平面边界点重分类问题转换为能量最优化问题,优化区域生长所得平面边界,得到最终平面分割结果。本发明解决在点云平面分割中区域生长的种子点鲁棒性差和边界不准确的问题,得到最优的平面分割结果。
Description
技术领域
本发明属于机载LiDAR点云数据处理技术领域,特别是涉及一种基于八叉树和边界优化的机载点云屋顶平面分割方法。
背景技术
点云数据因其可以直接获得建筑的三维信息、细节丰富等特点,逐渐成为构建三维建筑模型的主要数据,而屋顶平面分割是机载激光雷达数据构建精确三维建筑模型的关键问题之一,可以提高三维重建的速度和效率。目前三维点云平面分割常用的方法有三种,基于随机抽样一致性算法(RANdom Sample Consensus,RANSAC)、基于霍夫变换的算法、区域生长法,另外基于这三种方法也出现了很多改进算法。
基于随机抽样一致性算法:是一种模型参数估计的迭代方法,可以将其应用到点云的平面检测,该算法不断地随机在空间中选择三点拟合平面,并计算所有点中与该平面距离小于阈值的点的数量,最终选择小于阈值的点的数量最多的平面作为结果。该方法可以解决外点密度和分布变化带来的模型估计不稳定问题,并且采用随机子集对估计到的模型进行评价,减少了运算量,在保持形状模型检测精度的同时提高了计算速度,但是容易产生假平面。
基于霍夫变换的方法:首先对参数空间(霍夫空间)离散化得到一系列子空间,即累加器,根据数据点然后对每个累加器投票,对票数进行统计,峰值累加器所对应的图像空间中的平面即为检测到的最佳平面。然而累加器的设计存在共同的缺陷,即累加器的大小不一致和峰值可辨性差,导致检测到的平面模型不准确,而且此方法计算量大,消耗占据较大的存储空间。
区域生长法:是根据同一物体区域内点参数相似的性质来聚集点的方法。首先任意选择一点或区域作为种子点,从种子点的邻域范围内开始计算,将相邻的具有同样性质的点或其它区域归并到目前的区域中从而逐步增长区域,直至没有可以归并的点或其它小区域为止。区域生长方法是一种比较普遍的方法,在没有先验知识可以利用时,能取得最佳的性能,可以用来分割比较复杂的图像,但是,区域生长算法是一种迭代的方法,它的空间和时间开销都比较大。
传统的区域生长方法存在两个问题:一方面是很难选择比较鲁棒的种子点,另一个方面生成的平面边界可能会出现锯齿状等不平滑现象。为了解决这两个问题,本发明提出一种基于多尺度八叉树的层次聚类和边界点能量最优化算法从无组织的机载激光雷达点云中分割屋顶平面方法,最终可以得到边界光滑、准确的高质量屋顶平面。
发明内容
为了解决屋顶平面提取不准确的问题,本发明提供了一种基于八叉树和边界优化的机载点云屋顶平面分割方法。
本发明技术方案提供一种基于八叉树和边界优化的机载点云屋顶平面分割方法,包括以下步骤,
步骤1,基于八叉树的多尺度初始平面片提取,包括根据八叉树的数据结构将无序列点云根据空间位置迭代地划分为不同尺度的平面片,并从中选择出具有平面性的平面片,作为数据预处理所得初始平面片;
步骤2,基于分层聚类进行平面片合并,包括通过分层聚类将步骤1得到的初始平面片根据相邻关系和参数相似性进行聚合形成初始平面;
步骤3,基于区域生长的非平面点分类,包括将在步骤1中没有归入平面片的点,通过区域生长合并到步骤2得到的初始平面中;
步骤4,基于能量最优化的平面边界点重分类,包括通过能量函数将平面边界点重分类问题转换为能量最优化问题,优化步骤3区域生长所得平面边界,得到最终平面分割结果。
而且,步骤1的实现包括以下子步骤,
步骤1.1,读取待处理的无序列点云数据原始文件,依次存储每个点的空间坐标值,得到原始点云点集;
步骤1.2,根据原始点云坐标极值点的位置确定点云数据坐标值的范围,构建能够包含所有点云区域的最小长方体的顶点位置坐标和尺寸;
步骤1.3,根据最小长方体的大小切分成若干小立方体,构建保存具有平面性面片参数的集合Prough;
步骤1.4,根据步骤1.1所得原始点云点集,将被同一正方体Bi包围的点云看作同一点集组成的面片,计算该面片的参数;实现如下,
步骤1.4.1,使用主成分分析法计算点集的参数,包括法向量、中心点、特征值,点到拟合平面的残差值;
步骤1.4.2,根据步骤1.4.1得到的参数,采用最小二乘的方法将这些点拟合为一个面Pi,并计算点集内每个点到面Pi的距离,同时求得最大距离dmax;
步骤1.5,判断得到的Pi是否具有平面性,将dmax与预设的阈值Td进行比较,
若dmax<Td,则Pi具有平面性,将Pi具添加到集合Prough中;
若dmax>Td或=Td,则进一步判断,如果包围该点集的正方体Bi边长大于相应阈值,则将包围该点集的正方体Bi的边长平分产生8个小正方体,这8个正方体的边长是Bi边长的一半,回到步骤1.4进行计算;否则结束对当前正方体的处理,对下一个正方体Bi进行处理;
步骤1.6,在完成基于八叉树多尺度面片提取后,重新计算集合Prough内所有面片的参数。
而且,步骤2的实现包括以下子步骤,
步骤2.1,对空间所有点分别建立KD-Tree,通过KNN算法找到每个点距离最近的15个点作为该点的相邻点;
步骤2.3,通过点的相邻关系构建面片之间的相邻关系,实现方式为,对于面片pi∈Prough中包含的所有点f={x1,.....xk},k为该面片包含点的数量,对于f中某个点xs,设根据步骤2.1所得相应相邻点集为H={y1,.....y15},根据步骤2.2得到的点所属面片序号集K计算确定H中每一个点的所属面片,
若xs的相邻点yt也属于pi,则继续去计算下一个相邻点;
若xs的相邻点yt不属于任何平面片,则继续去计算下一个相邻点;
若xs的相邻点yt属于pj,pj∈Prough,pi≠pj,即K(yt)=pj,则认为pi和pj具有相邻关系;
其中,t=1,2,…,15;
步骤2.4,用图结构存储步骤2.3所得面片之间的相邻关系;
步骤2.5,在得到面片相邻关系的图结构后,使用分层聚类合并面片得到初始平面;
步骤2.6,对所有面片完成一次合并后,如果最小合并均方误差小于等于预定义的阈值Tm,则更新已经合并的面片集合,直到步骤2.2到步骤2.5对面片集再次进行聚类,如果最小合并均方误差大于阈值Tm,则终止层次聚类,输出得到的初始平面。
而且,步骤3的实现包括以下子步骤,
步骤3.1,根据面片序号集合K,筛选出不包含在初始平面中的点,构建非平面点集L;
步骤3.2,将步骤2得到的初始平面根据所包含的点的数量从大到小进行排序;
步骤3.3,根据步骤3.2对初始平面进行的排序,按顺序依次对每一个初始平面进行区域生长的操作,直到将所有的初始平面对非平面点都进行区域生长操作;对任一个初始平面进行区域生长的操作,实现方式为,将初始平面作为种子点,对于每一个初始面片所包含的点进行区域生长,将非平面点集L中的点符合条件的点添加到初始平面中;
步骤3.4,为了避免出现过分割的问题而产生假平面,在完成步骤3.3后重复步骤2,对得到的初始平面再一次进行层次聚类。
而且,步骤4的实现包括以下子步骤,
步骤4.1,设置平面边界点重分类问题的能量函数,实现如下,
设有集合A=(Ax1,.....AxN),其中N为点的数量,当每一个点xn的相应参数Axn=J,表示xn点属于平面PJ;其中,J为步骤3所得平面的序号,n=1,2,…,N;
设置以下能量函数将平面边界点重分类问题转换为能量最优问题,
其中,A*表示优化结果,Λ表示所有符合条件的平面分割结果集合;E(A)为能量方程,由两部分组成:
(1)D(A)为基于点到平面的距离构建的距离项,用来保证不会产生距离平面很远的平面点;
(2)G(A)为根据边界点的平滑性构建的边界项,用来优化屋顶平面边界的平滑性,
E(A)=D(A)+λG(A)
其中λ是权重因子,用来平衡D(A)和G(A)对能量函数E(A)的影响;
步骤4.2,通过边界点重分类构建的能量函数的最优化提高平面质量,包括将步骤3区域生长得到的平面作为当前的初始平面,在每一次迭代中更新一个点的所属平面使能量函数增大,直到能量函数取得最大值,得到最佳的平面分割结果集合A*;
步骤4.3,将最终平面分割结果A*存储,得到平面分类。
本发明提出的机载点云屋顶平面分割新方法,基于分层聚类的方法合并面片,以及设计新的能量函数进行平面优化相对于传统区域生长方法,本发明提出的方法可以很好地解决区域生长的种子点鲁棒性差和边界不准确的问题,具有重要的市场价值。
附图说明
图1是本发明实施例的流程图。
具体实施方式
下面结合附图和实施例对本发明技术方案进行进一步的说明。
参见图1,本发明实施例所采用的技术方案提供了一种基于八叉树和边界优化的机载点云屋顶平面分割方法。包括以下步骤:
步骤1,基于八叉树的多尺度初始平面片提取。根据八叉树的数据结构将无序列点云根据空间位置迭代地划分为不同尺度的平面片,并从中选择出具有平面性的平面片,作为数据预处理所得初始平面片,为后续的处理做准备。
实施例具体包括以下子步骤:
步骤1.1,读取待处理的无序列点云数据原始文件,依次存储每个点的空间坐标值,得到原始点云点集。
步骤1.2,根据原始点云坐标极值点的位置确定点云数据坐标值的范围,构建能够包含所有点云区域的最小长方体的顶点位置坐标和尺寸,长方体的坐标要求为整数。
步骤1.3,根据该长方体的大小将其切分成若干个大小为M×M(M=2m)的小立方体,记为Bi,其中m≥1,就可以得到正方体的集合B={Bi},构建保存具有平面性面片参数的集合Prough。具体实施时,本领域技术人员可以预先设置m的取值,i为小立方体的标号。
步骤1.4,根据步骤1.1所得原始点云点集,将被同一正方体Bi包围的点云看作同一点集组成的面片,计算该面片的参数。
步骤1.4.1,对于每一个点集,使用主成分分析法(PCA)计算该点集的参数,包括法向量、中心点、特征值、点到拟合平面的残差值。
步骤1.4.2,对于每一个点集,根据步骤1.4.1得到的参数,采用最小二乘的方法将这些点拟合为一个面Pi,并计算点集内每个点到面Pi的距离,同时求得其中最大距离dmax。
步骤1.5,判断得到的初始面片Pi是否具有平面性,将dmax与给定的阈值Td进行比较,具体实施时,本领域技术人员可以预先设置Td的取值,实施例中Td取0.1米。
后续步骤判断平面性也可按此进行处理,即计算点集内点到拟合面的最大距离,与给定的阈值Td进行比较。
若dmax<Td,则面Pi具有平面性,将该面片添加到集合Prough中;
若dmax>Td或=Td,则进一步判断,如果包围该点集的正方体Bi边长大于相应预设阈值(例如实施例取1米),则将包围该点集的正方体Bi的边长平分产生8个小正方体,这8个正方体的边长是Bi边长的一半,回到步骤1.4进行计算。否则结束对当前正方体的处理。
具体实施时,可以分别对于每一个Bi重复执行步骤1.4和步骤1.5,也可以依次取一个正方体Bi进行处理,直到正方体Bi的边长小于相应预设阈值(实施例为1米)停止进一步划分,如果此时正方体内点集仍然不具有平面性,则跳过这些点,对下一个正方体内的点进行计算,直到将空间内所有正方体都完成计算。
步骤1.6,在完成基于八叉树多尺度面片提取后,重新计算面片集合Prough内所有面片的参数。
步骤2,基于分层聚类进行平面片合并。通过分层聚类将步骤1得到的初始面片根据相邻关系和参数相似性进行聚合形成初始平面。实施例的分层聚类具体包括以下子步骤:
步骤2.1,对空间所有点分别建立KD-Tree,通过KNN算法找到每个点距离最近的15个点作为该点的相邻点。KD-Tree树是每个节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两个半空间。KNN算法为K近邻算法,为现有技术,本发明不予赘述。
步骤2.3,通过点的相邻关系构建面片之间的相邻关系。对于面片pi∈Prough中包含的所有点f={x1,.....xk},k为该面片包含点的数量,对于f中某个点xs,根据步骤2.1它的相邻点集为H={y1,.....y15},根据步骤2.2得到的点所属面片序号集K计算确定H中每一个点的所属面片,
若xs的相邻点yt也属于pf,即K(yt)=pf,则继续去计算下一个相邻点;
若xs的相邻点yt不属于任何平面片,即K(yt)=-1,则继续去计算下一个相邻点;
若xs的相邻点yt属于pj,pj∈Prough,pi≠pj,即K(yt)=pj,则认为pi和pj具有相邻关系。
其中,t=1,2,…,15。
步骤2.4,用图结构来存储面片之间的相邻关系。构建图结构G=(V,E),其中,V代表图结构的节点,即表示通过步骤1提取出来的具有平面性的面片;E代表图结构的边,即用来表示相邻面片的连接关系,将步骤2.3得到面片之间的相邻关系储存到图结构G中,如节点vp表示面片Pp,边e(p,q)表示面片Pp和Pq具有相邻关系。
步骤2.5,在得到面片相邻关系的图结构G=(V,E)后,使用分层聚类算法合并面片得到初始平面。具体实现如下:
步骤2.5.1,首先计算每个初始面片的均方误差。
步骤2.5.2,按照均方误差从小到大的顺序对面片进行合并。先计算均方误差较小的面片与其相邻面片是否能合并,再计算均方误差较大的面片与相邻面片是否能合并。
判断面片与其相邻面片是否能合并的实现方式为,对于具有相邻关系的面片,如果合并后仍然满足平面性的要求则将这两个面片合并,并且计算合并后的点相对于新的拟合平面的最小的均方误差。
步骤2.6,对所有面片完成一次合并后,如果最小合并均方误差小于等于预定义的阈值Tm,则更新已经合并的面片集合,重复步骤2.2到步骤2.5对面片集再次进行聚类,直到最小合并均方误差大于阈值Tm,则终止层次聚类,完成了面片的合并得到当前执行步骤2最终的初始平面,具体实施时Tm需要可根据数据集的实际情况预设取值,如Tm=0.02。
步骤3,基于区域生长算法的非平面点分类。在完成步骤2后,还存在很多点在步骤1时没有归入面片的点,因此这些点没有所属的平面,即在所属面片序号集合K中K(yi)=-1。通过区域生长算法将这些点合并到步骤2得到的初始平面中,实施例具体包括以下子步骤:
步骤3.1,根据所属面片序号集合K,筛选出不包含在初始平面中的点,即K(yi)=-1的点,构建非平面点集L。
步骤3.2,将步骤2得到的初始平面根据所包含的点的数量从大到小进行排序,以便后续依次进行区域生长。
步骤3.3,根据步骤3.2对初始平面进行的排序,按顺序依次对每一个初始平面进行区域生长的操作,直到将所有的初始平面对非平面点都进行区域生长操作。对任一个初始平面进行区域生长的操作,实现方式为,将初始平面作为种子点,对于每一个初始面片所包含的点进行区域生长,将非平面点集L中的点符合条件的点添加到初始平面中。具体实现如下:
步骤3.3.1,对于初始平面PI包含的点集F={x1,.....xkk},kk为PI包含点的数量,设xss是F中的一个点,对于点xss,根据步骤2.1得到它的相邻点集为H={x1,.....x15}。
步骤3.3.2,如果H中存在点xl∈L,计算xl到初始平面PI的距离,如果距离小于阈值Tadd,则将xl加入到PI中,实施例中设置Tadd=2Td=0.2米。
步骤3.4,为了避免出现过分割的问题而产生假平面,在完成步骤3.3后重复步骤2,对得到的初始平面再一次进行层次聚类,可以将产生的假平面合并到较大的平面中。
步骤4,基于能量最优化的平面边界点重分类。区域生长得到的平面边界可能会出现锯齿状等其他不平滑的情况,影响平面分割的精度和结果,为了优化平面边界,本发明提出设计能量函数将平面边界点重分类问题转换为能量最优化问题。实施例具体包括以下子步骤:
步骤4.1,设置平面边界点重分类问题的能量函数。设有集合A=(Ax1,.....AxN),其中N为点的数量,当每一个点xn的相应参数Axn=J,表示xn点属于平面PJ。其中,J为步骤3所得平面的序号。其中,n=1,2,…,N。设置能量函数将平面边界点重分类问题转换为能量最优问题。其中A*表示优化结果,Λ表示所有符合条件的平面分割结果集合。
E(A)为能量方程,它由两部分组成:
(3)D(A)为基于点到平面的距离构建的距离项,用来保证不会产生距离平面很远的平面点;
(4)G(A)为根据边界点的平滑性构建的边界项,用来优化屋顶平面边界的平滑性。
E(A)=D(A)+λG(A)
其中λ是权重因子,用来平衡D(A)和G(A)对能量函数E(A)的影响,经过实验测试,当λ=5得到的效果最好,因此实施例优选设置λ=5。
步骤4.1.1,设置距离项D(A)具体内容。理想情况下平面点应该在平面上,所以如果一个点距离平面距离很远则它不应该被认为是该平面的点,D(A)的存在希望最小化所有点到它所属平面的距离和来提高平面质量:
其中,d(xn,PJ)表示点xn到所属平面P,的距离。距离项是距离和取负值,这样距离项实现最大值就是点到所属平面和的最小值。距离项的存在可以减少分割错误。
步骤4.1.2,设置边界项G(A)具体内容。G(A)是用来评估平面边界的平滑程度,一般来说平面和平面的边界线是直线,但由于在区域生长过程中会出现欠分割和过分割现象,导致面的边界处不平滑,比如会产生锯齿状边界。边界项可以用来减少平面边界的不平滑,使得平面分割结果更好。
对于点xn的初始标签Axn=J,定义Nn表示xn的邻域点(包括最多15个距离最近的点),|Nn|表示邻域点Nn的数量,定义xn邻域内的局部平滑项:
其中η(Axm,J)表示邻域点xm和xn是否属于相同平面。
若邻域点xm和xn和都属于平面PJ,即Axm=J,则η(Axm,J)=1。
若邻域点xm和xn不属于相同平面,即Axm≠J,则η(Axm,J)=0。
在计算所有邻域点η(Axm,J)局部平滑项和之后除以邻域点的数量|Nn|,因此g(xn)的值满足0≤g(xn)≤1,边界项G(A)就是每个点的局部平滑项的累加得到:
当Nn里的点属于相同的面时,即一个点的相邻点和这个点都属于同一个面,g(xn)=1得到最大值。边界处点的相邻点Nn一般不会全部属于相同的平面,因此如果存在一个点的相邻点和这个点不属于相同平面,则这个点被标记为边界点。
步骤4.1.3,能量项E(A)取最大值时平面分割效果最好,因此G(A)的值越大表示平面边界处的平滑性越好,增大G(A)值的有两两种方式:
一方面可以减少边界点的数量,非边界点的g(xn)=1,边界点的g(xn)=0,因此减少边界点的数量可以增大G(A)的值。
另一方面可以减少点的邻域点中不属于相同平面的点的数量来增大g(xn)的值从而增大G(A)的值,
以上两种增加G(A)都可以用来消除锯齿状边界,提高平面边界的平滑性,也可以减少假平面的数量,减少过分割的情况。
步骤4.2,通过边界点重分类构建的能量函数的最优化提高平面质量。将步骤3区域生长得到的平面作为当前的初始平面,通过步骤4.1构建能量函数,并将能量函数最大化,在每一次迭代中更新一个点的所属平面使能量函数增大,直到能量函数取得最大值,得到最佳的平面分割结果集合A*。
d(xn)=-d(xn,PJ)
其中d(xn,PJ)表示点xn到平面PJ的距离,参见步骤4.1.1,g(xm)的计算参见步骤4.1.2,和计算g(xn)的方式一致。
步骤4.2.4,通过以下算式评估移动是否提高能量函数值从而提高平面质量:
其中,λ是权重因子,和步骤4.1一致。
步骤4.2.5,如果移动是有效的就将点归属平面序号的集合更新,即A=A*。
步骤4.2.6,选择下一个边界点,重复步骤4.2.1-步骤4.2.5,直到所有的边界点都被计算过,得到最优的点归属平面序号的集合A*。
步骤4.3,将最终平面分割结果A*存储,用点的不同的颜色表示不同的平面分类。
具体实施时,本发明所提供方法可基于软件技术实现自动运行流程。运行方法流程的装置也应当在本发明的保护范围内。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (4)
1.一种基于八叉树和边界优化的机载点云屋顶平面分割方法,其特征在于:包括以下步骤,
步骤1,基于八叉树的多尺度初始平面片提取,包括根据八叉树的数据结构将无序列点云根据空间位置迭代地划分为不同尺度的平面片,并从中选择出具有平面性的平面片,作为数据预处理所得初始平面片;
步骤2,基于分层聚类进行平面片合并,包括通过分层聚类将步骤1得到的初始平面片根据相邻关系和参数相似性进行聚合形成初始平面;
步骤3,基于区域生长的非平面点分类,包括将在步骤1中没有归入平面片的点,通过区域生长合并到步骤2得到的初始平面中;
步骤4,基于能量最优化的平面边界点重分类,包括通过能量函数将平面边界点重分类问题转换为能量最优化问题,优化步骤3区域生长所得平面边界,得到最终平面分割结果;
步骤4的实现包括以下子步骤,
步骤4.1,设置平面边界点重分类问题的能量函数,实现如下,
设有集合A=(Ax1,……AxN),其中N为点的数量,当每一个点xn的相应参数Axn=J,表示xn点属于平面PJ;其中,J为步骤3所得平面的序号,n=1,2,…,N;
设置以下能量函数将平面边界点重分类问题转换为能量最优问题,
其中,A*表示优化结果,Λ表示所有符合条件的平面分割结果集合;E(A)为能量方程,由两部分组成:
(1)D(A)为基于点到平面的距离构建的距离项,用来保证不会产生距离平面很远的平面点;
(2)G(A)为根据边界点的平滑性构建的边界项,用来优化屋顶平面边界的平滑性,
E(A)=D(A)+λG(A)
其中λ是权重因子,用来平衡D(A)和G(A)对能量函数E(A)的影响;
步骤4.2,通过边界点重分类构建的能量函数的最优化提高平面质量,包括将步骤3区域生长得到的平面作为当前的初始平面,在每一次迭代中更新一个点的所属平面使能量函数增大,直到能量函数取得最大值,得到最佳的平面分割结果集合A*;
步骤4.3,将最终平面分割结果A*存储,得到平面分类。
2.根据权利要求1所述基于八叉树和边界优化的机载点云屋顶平面分割方法,其特征在于:步骤1的实现包括以下子步骤,
步骤1.1,读取待处理的无序列点云数据原始文件,依次存储每个点的空间坐标值,得到原始点云点集;
步骤1.2,根据原始点云坐标极值点的位置确定点云数据坐标值的范围,构建能够包含所有点云区域的最小长方体的顶点位置坐标和尺寸;
步骤1.3,根据最小长方体的大小切分成若干小立方体,构建保存具有平面性面片参数的集合Prough;
步骤1.4,根据步骤1.1所得原始点云点集,将被同一正方体Bi包围的点云看作同一点集组成的面片,计算该面片的参数;实现如下,
步骤1.4.1,使用主成分分析法计算点集的参数,包括法向量、中心点、特征值,点到拟合平面的残差值;
步骤1.4.2,根据步骤1.4.1得到的参数,采用最小二乘的方法将这些点拟合为一个面Pi,并计算点集内每个点到面Pi的距离,同时求得最大距离dmax;
步骤1.5,判断得到的Pi是否具有平面性,将dmax与预设的阈值Td进行比较,
若dmax<Td,则Pi具有平面性,将Pi具添加到集合Prough中;
若dmax>Td或=Td,则进一步判断,如果包围该点集的正方体Bi边长大于相应阈值,则将包围该点集的正方体Bi的边长平分产生8个小正方体,这8个正方体的边长是Bi边长的一半,回到步骤1.4进行计算;否则结束对当前正方体的处理,对下一个正方体Bi进行处理;
步骤1.6,在完成基于八叉树多尺度面片提取后,重新计算集合Prough内所有面片的参数。
3.根据权利要求2所述基于八叉树和边界优化的机载点云屋顶平面分割方法,其特征在于:步骤2的实现包括以下子步骤,
步骤2.1,对空间所有点分别建立KD-Tree,通过KNN算法找到每个点距离最近的15个点作为该点的相邻点;
步骤2.3,通过点的相邻关系构建面片之间的相邻关系,实现方式为,对于面片pi∈Prough中包含的所有点f={x1,……xk},k为该面片包含点的数量,对于f中某个点xs,设根据步骤2.1所得相应相邻点集为H={y1,……y15},根据步骤2.2得到的点所属面片序号集K计算确定H中每一个点的所属面片,
若xs的相邻点yt也属于pi,则继续去计算下一个相邻点;
若xs的相邻点yt不属于任何平面片,则继续去计算下一个相邻点;
若xs的相邻点yt属于pj,pj∈Prough,pi≠pj,即K(yt)=pj,则认为pi和pj具有相邻关系;
其中,t=1,2,…,15;
步骤2.4,用图结构存储步骤2.3所得面片之间的相邻关系;
步骤2.5,在得到面片相邻关系的图结构后,使用分层聚类合并面片得到初始平面;
步骤2.6,对所有面片完成一次合并后,如果最小合并均方误差小于等于预定义的阈值Tm,则更新已经合并的面片集合,直到步骤2.2到步骤2.5对面片集再次进行聚类,如果最小合并均方误差大于阈值Tm,则终止层次聚类,输出得到的初始平面。
4.根据权利要求3所述基于八叉树和边界优化的机载点云屋顶平面分割方法,其特征在于:步骤3的实现包括以下子步骤,
步骤3.1,根据面片序号集合K,筛选出不包含在初始平面中的点,构建非平面点集L;
步骤3.2,将步骤2得到的初始平面根据所包含的点的数量从大到小进行排序;
步骤3.3,根据步骤3.2对初始平面进行的排序,按顺序依次对每一个初始平面进行区域生长的操作,直到将所有的初始平面对非平面点都进行区域生长操作;对任一个初始平面进行区域生长的操作,实现方式为,将初始平面作为种子点,对于每一个初始面片所包含的点进行区域生长,将非平面点集L中的点符合条件的点添加到初始平面中;
步骤3.4,为了避免出现过分割的问题而产生假平面,在完成步骤3.3后重复步骤2,对得到的初始平面再一次进行层次聚类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010121064.2A CN111275724B (zh) | 2020-02-26 | 2020-02-26 | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010121064.2A CN111275724B (zh) | 2020-02-26 | 2020-02-26 | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111275724A CN111275724A (zh) | 2020-06-12 |
CN111275724B true CN111275724B (zh) | 2022-06-07 |
Family
ID=71002339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010121064.2A Active CN111275724B (zh) | 2020-02-26 | 2020-02-26 | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111275724B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184616A (zh) * | 2020-07-23 | 2021-01-05 | 哈尔滨岛田大鹏工业股份有限公司 | 一种基于八叉树的有源三维点云模型缺陷识别方法 |
CN112070787B (zh) * | 2020-08-10 | 2022-06-07 | 武汉大学 | 基于对立推理理论的航空三维点云平面分割方法 |
CN112036012B (zh) * | 2020-08-11 | 2022-03-29 | 华中科技大学 | 一种基于区域生长的刀具对毛坯的布尔运算方法 |
CN113188549A (zh) * | 2021-05-14 | 2021-07-30 | 安徽酷哇机器人有限公司 | 快速建立高精地图的方法和系统 |
CN113838069B (zh) * | 2021-09-27 | 2024-02-06 | 杭州景吾智能科技有限公司 | 基于平面度约束的点云分割方法和系统 |
CN114332366B (zh) * | 2021-12-24 | 2024-06-28 | 巫溪县金灿实业发展有限责任公司 | 数字城市单体房屋点云立面3d特征提取方法 |
CN116128886A (zh) * | 2023-04-18 | 2023-05-16 | 深圳市其域创新科技有限公司 | 一种点云数据分割方法、装置、电子设备及存储介质 |
CN116664775B (zh) * | 2023-06-02 | 2024-08-02 | 中国电建集团昆明勘测设计研究院有限公司 | 基于八叉树迭代的边界散乱点云有序化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036544A (zh) * | 2014-06-25 | 2014-09-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
CN110378909A (zh) * | 2019-06-24 | 2019-10-25 | 南京林业大学 | 基于Faster R-CNN的面向激光点云的单木分割方法 |
CN110458805A (zh) * | 2019-03-26 | 2019-11-15 | 华为技术有限公司 | 一种平面检测方法、计算设备以及电路系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10841496B2 (en) * | 2017-10-19 | 2020-11-17 | DeepMap Inc. | Lidar to camera calibration based on edge detection |
US20200027266A1 (en) * | 2018-07-17 | 2020-01-23 | Uti Limited Partnership | Building contour generation from point clouds |
-
2020
- 2020-02-26 CN CN202010121064.2A patent/CN111275724B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036544A (zh) * | 2014-06-25 | 2014-09-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
CN110458805A (zh) * | 2019-03-26 | 2019-11-15 | 华为技术有限公司 | 一种平面检测方法、计算设备以及电路系统 |
CN110378909A (zh) * | 2019-06-24 | 2019-10-25 | 南京林业大学 | 基于Faster R-CNN的面向激光点云的单木分割方法 |
Non-Patent Citations (2)
Title |
---|
Hyperspectral Tissue Image Segmentation Using Semi-Supervised NMF and Hierarchical Clustering;Neeraj Kumar 等;《IEEE》;20181126;第1304-1313页 * |
基于区域聚类分割的点云特征线提取;王晓辉 等;《光学学报》;20181130;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111275724A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111275724B (zh) | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 | |
CN110110802B (zh) | 基于高阶条件随机场的机载激光点云分类方法 | |
CN108830931B (zh) | 一种基于动态网格k邻域搜索的激光点云精简方法 | |
Shi et al. | Adaptive simplification of point cloud using k-means clustering | |
CN110443810B (zh) | 基于快速邻接体素查询的点云平面分割方法 | |
CN106327506B (zh) | 一种基于概率分区合并的三维模型分割方法 | |
CN110796667B (zh) | 基于改进小波聚类的彩色图像分割方法 | |
CN102938161B (zh) | 一种基于Mean Shift的三维形状自动分割方法 | |
CN110599506B (zh) | 一种复杂异形曲面机器人三维测量的点云分割方法 | |
Lu et al. | A hybrid conditional random field for estimating the underlying ground surface from airborne LiDAR data | |
CN113781667B (zh) | 三维结构简化重建方法、装置、计算机设备和存储介质 | |
CN103020637B (zh) | 一种基于K-plane算法的建筑物顶面点云数据分割方法 | |
CN115222625A (zh) | 一种基于多尺度噪声的激光雷达点云去噪方法 | |
Wang et al. | A new point cloud simplification method with feature and integrity preservation by partition strategy | |
CN110807781A (zh) | 一种保留细节与边界特征的点云精简方法 | |
Kumar et al. | Curve and surface reconstruction from points: an approach based on self-organizing maps | |
CN109345536B (zh) | 一种图像超像素分割方法及其装置 | |
CN113221065A (zh) | 数据密度估计及回归方法、相应装置、电子设备、介质 | |
CN102663681B (zh) | 基于排序k-均值算法的灰度图像分割方法 | |
CN109658477A (zh) | 一种基于lidar数据的dem生成算法 | |
CN108154511B (zh) | 基于子模字典学习的sar图像分割方法 | |
CN110930413A (zh) | 一种基于弱监督多核分类优化合并的图像分割方法 | |
CN108846845A (zh) | 基于缩略图与分层模糊聚类的sar图像分割方法 | |
CN115797551A (zh) | 基于两步无监督聚类算法的激光点云数据自动建模方法 | |
CN113744389B (zh) | 一种面向复杂零件曲面特征保留的点云精简方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |