CN107146280B - 一种基于切分的点云建筑物重建方法 - Google Patents
一种基于切分的点云建筑物重建方法 Download PDFInfo
- Publication number
- CN107146280B CN107146280B CN201710320024.9A CN201710320024A CN107146280B CN 107146280 B CN107146280 B CN 107146280B CN 201710320024 A CN201710320024 A CN 201710320024A CN 107146280 B CN107146280 B CN 107146280B
- Authority
- CN
- China
- Prior art keywords
- plane
- point
- points
- point cloud
- window
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Abstract
本发明公开了一种基于切分的点云建筑物的重建方法,具体按照以下步骤实施:步骤1、利用区域增长以及基于距离的聚类算法对点云场景进行分割,并提取点云场景中构成建筑物的平面;步骤2、对步骤1提取的平面进行纵向切分,计算每个切片的长度,并依次比较每个切片与后续切片的高度差探测关键点,并依次连接关键点,完成平面的重建。步骤3、根据平面间的拓扑关系对建筑物初始重建模型进行优化;步骤4、利用墙面与窗户的拓扑关系,完成建筑物细节的重建。解决了现有技术中存在的由于三维物体点云数据量大以及点云数据不完整,导致建筑重建细节不足的问题。
Description
技术领域
本发明属于建筑物重建方法技术领域,涉及一种基于切分的点云建筑物重建方法。
背景技术
三维数字城市已经广泛地应用于虚拟旅游,城市规划、城市三维地图和数字娱乐等多个领域。城市场景的三维构建可以给予用户更加逼真的视觉体验,有助于其更加准确地理解城市地理信息。建筑物是城市场景中的重要组成物体,快速获得完整、精确的三维建筑物模型具有重要的意义。建筑物的重建也是计算机视觉与计算机图形学的一个重要研究领域。目前,已经有的建筑物的重建方法大致分为:基于形状拟合的建筑物重建方法、基于先验知识的建筑物重建方法。
1、基于形状拟合的建筑物重建方法
基于形状拟合的建筑物重建方法主要思想是通过提取构成建筑物的基本形状,并分析形状间的拓扑关系,通过形状拟合完成场景中建筑物的重建。
《Architectural modeling from sparsely scanned range data》(International Journal of Computer Vision)认为建筑物都是由平面组成的,首先利用区域增长的方法,对点云数据按照平面特征作聚类分析,然后计算相邻面之间的交线。由于有些结构在扫描中可能存在严重的缺漏,这个过程需要依赖用户少量的交互操作来修正。
《O-snap:Optimization-based snapping for modeling architecture》(ACMTransactions on Graphics)利用随机抽样一致性算法自动地提取平面,并记录平面间的局部邻接关系,形成初始的模型。用户通过简单的交互(如简单的二维勾勒)对初始模型进行修正,以得到准确和明确定义的建筑物模型。
2、基于先验知识的建筑物重建方法
基于先验知识的重建方法已经在建筑物重建方面取得了一些成果。建筑物的重要组成部分(墙、窗户、阳台或者门)各有特征,根据人类的先验知识分析建筑物中不同面片的几何特征(例如:位置、大小和方向等),完成建筑物中窗户、门洞等对象的识别与提取。
《Knowledge based reconstruction of building models from terrestriallaser scanning data》(ISPRS Journal of Photogrammetry and Remote Sensing)首先利用区域增长的方法对建筑物进行分割,然后通过分析不同面片的大小、位置、方向和拓扑关系等特征,基于先验知识提取建筑物的墙面、门和突起等立面细节,并基于点云三角网格化,提出基于洞(hole-based)的窗户提取方法。最后利用最小二乘拟合,凸壳拟合或凹多边形拟合完成多边形的重建。
《Model-based reconstruction and classification of facade parts in 3Dpoint clouds》(The International Archives of the Photogrammetry,RemoteSensing)也提出了一种基于知识的建筑物重建方法。该方法首先建立窗户、门和楼梯的真实数据模型库,同时记录了不同立面特征的形状参数及其概率密度函数。通过改进的随机抽样方法预测实际数据,并采用决策树计算实际数据与模型库数据之间的相似度,从而完成窗户和楼梯的提取与重建。
在真实的三维点云场景中,由于扫描过程中遮挡、噪声的干扰或者由于单侧扫描,建筑物的完整点云数据很难获得,导致已有的方法不适用于点云场景中建筑物的重建。
发明内容
本发明的目的是提供一种基于切分的点云建筑物的重建方法,有效地避免因数据缺失,导致重建结果不理想的缺陷。
本发明所采用的技术方案是,一种基于切分的点云建筑物的重建方法,具体按照以下步骤实施:
步骤1、利用区域增长的方法,将点云建筑物中具有相似法向量的点聚为一类,然后利用基于距离的点云聚类方法,将具有相似法向量的平面分开,完成点云建筑物平面簇的分割;
步骤2、对经过步骤1分割后得到的平面点云簇,计算每个平面点云簇的平面方程,在确定切分个数N后将每个平面沿纵向进行切分,计算每个切片的长度,通过比较每个切片与后续切片的高度差探测关键点。然后,依次连接关键点,完成平面的重建;
步骤3、根据平面间的拓扑关系对步骤2重建的初始建筑物模型进行优化;
步骤4、在步骤3的基础上,根据窗户边框与墙面的拓扑关系,通过构造墙面的最小包围盒,提取窗户的点云信息,并利用基于距离的聚类方法,对窗户点云进行分割,将每个窗户单独的提取出来。然后利用区域增长的方法根据窗框的宽度和高度对窗户进行分类,并利用模式匹配将不完整的窗户进行归类。最后,利用四边形对窗户进行表示,完成建筑物细节的重建。
本发明的特点还在于,步骤1具体按照以下步骤实施:
步骤1.2,计算
提取点云建筑物中F1<0.05的点,构成平面点集PN;
步骤1.3,利用区域增长的方法将平面点集PN中法向量相似的点进行聚类,具体为:根据步骤1.1中点p的法向量选择平面点集PN中任意一点作为种子点,依据步骤1.1计算该种子点的法向量,若该种子点的法向量与点p法向量相似且未被标记,则将该种子点与点p归为一类,并将种子点进行标记,遍历平面点集PN中的所有点,直到所有点被标记,将具有相似法向量的点归为一类,提取具有相似法向量的平面簇;
步骤1.4,根据距离对平行的平面簇进行分割,具体为:遍历具有相似法向量的点云数据,对于任意一点,利用k-d树找出点pi的k个近临点,筛选与它距离小于一定阈值γ的点集NN,γ=0.1;如果点pi是被遍历的第一个点,标记点集NN中所有的点label=1;如果点pi不是被遍历的第一个点,则遍历点集NN中的每一点是否已经被标记,如果点集NN中所有的点均未被标记,则label++,将点集NN中所有的点标记为label,如果点集NN中存在已经被标记的点,找出被标记的点中最小的标记值mLabel,将点集NN中所有的点标记为mLabel,重复步骤1.4,直到点云数据中所有点均被标记,完成点云建筑物平面簇的分割。
步骤2具体按照以下步骤实施:
步骤2.1,计算平面拟合方程,具体为:根据对应的点云簇计算对应平面的平面方程,计算平面方程I:A1x+B1y+C1z+D1=0的系数,利用最小特征值对应的特征向量来求解平面方程的系数A1、B1、C1和D1;
步骤2.2,将平面沿平行于z轴的方向进行切分,具体为:遍历每个平面中的每个点,计算每个平面的最大和最小的x,y值:Xmaxi,Ymaxi,Zmaxi,Xmini,Ymini,Zmini,如果(Xmaxi-Xmini)>(Ymaxi-Ymini),确定切分的个数N后,则将平面沿x轴方向进行切分,记录第i个切片最左端及最右端的x值,同时记录第i个切片两端最大和最小的z值,将第i个切片两端的x值,以及两端最大和最小的z值代入该平面的平面方程,即可获得该切片的四个端点坐标;如果(Xmaxi-Xmini)<(Ymaxi-Ymini),确定切分的个数N后,则将平面沿y轴方向进行切分,记录第i个切片最左端及最右端的y值,同时记录第i个切片两端最大和最小的z值,将第i个切片两端的y值,以及两端最大和最小的z值代入该平面的平面方程,即可获得该切片的四个端点坐标;
步骤2.3,在步骤2.2对平面切分的基础上,记录每个切片的高度差,如果前一个切片Si与后一个切片Si+1高度差大于(Zmaxi-Zmini)*α,α=0.1,表明切片Si右端的两个端点与切片Si+1左端的两个端点为关键点。依次比较每个切片与后续切片的高度差,两者相差大于(Zmaxi-Zmini)*α,α=0.1时,前一个切片右端的两个端点与后续切片的左端两个端点被记为关键点。同时,第一个切片左端的两个端点以及最后一个切片右端的两个端点为关键点,遍历被同一平面中的所有切片,依次连接关键点,完成该平面的重建。
步骤3具体按照以下步骤实施:
步骤3.1,确定构成建筑物的平面之间的拓扑关系,具体为:根据平面的临近关系,判断两平面是否相连;
步骤3.2,计算步骤3.1中相互连接的两平面的相交线方程,并优化重建结果,具体为:
对于平面I:A1x+B1y+C1z+D1=0,平面Π:A2x+B2y+C2z+D2=0,若两个平面相交,则交线的方向向量为:
(A1,B1,C1)×(A2,B2,C2)=(B1C2-B2C1,A2C1-A1C2,A1B2-A2B1),交线上某点的坐标为:
分别将公式(4)中的z赋值为两相交平面的最大和最小z值,即z=Zmaxi,z=Zmini,求出两平面相交的关键点坐标,然后分别更新两个平面的一侧端点坐标,优化相交平面的重建结果。另外,若平面底端的两个端点z值差距小于阈值β,β=0.5,则将平面的两个底端对齐。
步骤4具体按照以下步骤实施:
步骤4.1,窗户点云的提取与分割,具体为:根据每个平面的最大和最小x,y,z值:Xmaxi,Ymaxi,Zmaxi,Xmini,Ymini,Zmini,计算墙面的最小包围盒,将包含在墙面的最小包围盒内的点云簇提取出来,利用步骤1.4提出的基于距离的分割方法对窗户点云进行分割,将每个窗户分别提取出来,去除靠近墙面最高处和最低处的细小点云簇;
步骤4.2,窗户分类,具体为:首先,遍历根据步骤4.1提取的窗框点云簇,记录每个窗框的高度hi和宽度wi,将不完整的窗框提取出来,然后遍历剩余的窗框点云簇,利用区域增长的方法将具有相似宽度和高度的窗框归为一类,并将每类窗框中最大的宽度和高度值作为该类窗户Tn的长和宽,分别用fhn和fwn表示。
步骤4.3,对步骤4.2中不完整窗框归类,具体为:判断窗框不完整类型,判断公式为:
Fsim=λ*min(|wi-fwn|,|hi-fhn|)+(1-λ)*min(|ci-Cmn|,|ri-Rmn|) (5)
其中,wi和hi表示第i个不完整的窗框Wi的宽度和高度,fwn和fhn为经过步骤4.2分类后得到已有窗户结构Tn的宽度和高度,min(|wi-fwn|,|hi-fhn|)表示Wi和窗户结构Tn的结构相似性,Cmn为Tn第m列最左端的x或者y值,Rmn为Tn第m行最上端的z值,ci为窗框Wi最左端的x或者y值,ri为窗框Wi最上端的z值,min(|ci-Cmn|,|ri-Rmn|)表示不完整窗框Wi与已有窗户结构Tn之间的排列规整程度的高低,Fsim值越小,说明不完整窗框Wi和已有的窗户模式越相近,将不完整窗框Wi归为具有最小Fsim值的窗户模式;
步骤4.4,窗户位置确定,具体为:根据每一个窗框点云簇的左上角点坐标的y,z值对每个点云簇进行聚类,利用区域增长的方法将具有相似y值或z值的点聚为一类,得到的聚类数即为窗户的行数和列数,假设第i行的z值为Hi,第j列的左端的y值为Vj,拟合得到直线方程为:Z=Hi,Y=Vj,每一行的横向间隔为:Shi=Hi-Hi-1,纵向间隔为:Svj=Vj-Vj-1,横线和竖线相交,即可确定每个窗户的位置;
步骤4.5,窗户重建,具体为:根据步骤4.2得到每类窗框的长度fhn和宽度fwn,用四边形对窗户进行表示,将窗户模板重复地绘制到直线Z=Hi,Y=Vj相交处。
步骤2.1具体按照以下步骤实施:
步骤2.2.1,读取平面的数据,构造n×4维矩阵V,其中,
步骤2.2.2,求取矩阵V的转置矩阵VT;
步骤2.2.3,矩阵VT和V相乘得到矩阵U=VTV,矩阵U为4×4矩阵;
步骤2.2.4,利用SVD对矩阵U进行特征值分解,得到最小特征值对应的特征向量,即为平面方程参数A1,B1,C1,D1。
步骤3.1具体为,记两平面分别为Pi和Pj,遍历平面Pi中的每一个点,pi是平面Pi中的一点,利用k-d树找出pi的k个邻近点,如果邻近点中存在某点pk∈Pj,其距离|pipk|<τ,τ=0.1,则标记平面Pi和Pj相连接。
步骤2中确定切分个数N中的N为10-80。
本发明的有益效果是,本发明一种基于切分的点云建筑物重建方法,该方法通过比对前后切片的高度差提取关键点,不需要墙面边界点的提取与分类,有效地避免因数据缺失,导致重建结果不理想的缺陷。
附图说明
图1是本发明一种基于切分的点云建筑物重建方法的点云场景中建筑物的点云数据图;
图2是本发明一种基于切分的点云建筑物重建方法提取的建筑物点云不规则平面簇的示意图;
图3是本发明一种基于切分的点云建筑物重建方法沿坐标轴对不规则平面进行切分的示意图;
图4是本发明一种基于切分的点云建筑物重建方法完成不规则墙面的重建示意图;
图5是本发明一种基于切分的点云建筑物重建方法提取的建筑物点云规则平面簇的示意图;
图6是本发明一种基于切分的点云建筑物重建方法沿坐标轴对规则平面进行切分的示意图;
图7是本发明一种基于切分的点云建筑物重建方法完成规则墙面的重建示意图;
图8是本发明一种基于切分的点云建筑物重建方法的两相交平面示意图;
图9是本发明一种基于切分的点云建筑物重建方法优化相交平面的重建结果示意图;
图10是本发明一种基于切分的点云建筑物重建方法中由于平面底部数据缺失进行优化的示意图;
图11是本发明一种基于切分的点云建筑物重建方法中通过构造最小包围盒提取窗户点云数据图;
图12是本发明一种基于切分的点云建筑物重建方法利用y/z值拟合得到的直线示意图;
图13是本发明一种基于切分的点云建筑物重建方法的窗户重建结果示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
由于现代建筑物多是由平面组成,同一平面上的点具有相同的法向量。平行的平面间具有一定的距离。因此,利用每点的法向量以及点间的距离完成点云建筑物平面的分割。
一种基于切分的点云建筑物的重建方法,具体按照以下步骤实施:
步骤1、利用区域增长的方法,将点云建筑物中具有相似法向量的点聚为一类,然后利用基于距离的点云聚类方法,将具有相似法向量的平面分开,完成点云建筑物平面簇的分割;具体按照以下步骤实施:
步骤1.2,计算
当F1接近0时,表示点p的邻域点可以近似地拟合成平面,它的临近点中的噪声相对较小,因此,提取点云建筑物中F1<0.05的点,构成平面点集PN;
步骤1.3,利用区域增长的方法将平面点集PN中法向量相似的点进行聚类,具体为:根据步骤1.1中点p的法向量选择平面点集PN中任意一点作为种子点,依据步骤1.1计算该种子点的法向量,若该种子点的法向量与点p法向量相似且未被标记,则将该种子点与点p归为一类,并将该种子点进行标记,例如:点云场景中的任意一点q,根据步骤1.1计算点q的法向量若则将点p和点q归为一类,并将点q标记;遍历平面点集PN中的所有点,直到所有点被标记,将具有相似法向量的点归为一类,提取具有相似法向量的平面簇;
步骤1.4,根据距离对平行的平面簇进行分割,具体为:遍历具有相似法向量的点云数据,对于任意一点,利用k-d树找出点pi的30个近临点,筛选与它距离小于一定阈值γ的点集NN,γ=0.1;如果点pi是被遍历的第一个点,标记点集NN中所有的点label=1;如果点pi不是被遍历的第一个点,则遍历点集NN中的每一点是否已经被标记,如果点集NN中所有的点均未被标记,则label++,将点集NN中所有的点标记为label,如果点集NN中存在已经被标记的点,找出被标记的点中最小的标记值mLabel,将点集NN中所有的点标记为mLabel,重复步骤1.4,直到点云数据中所有点均被标记,完成点云建筑物平面簇的分割。
步骤2、对经过步骤1分割后得到的平面点云簇,计算每个平面点云簇的平面方程,在确定切分个数N后将每个平面沿纵向进行切分,计算每个切片的长度,通过比较每个切片与后续切片的高度差探测关键点。然后,依次连接关键点,完成平面的重建;具体按照以下步骤实施:
步骤2.1,计算平面拟合方程,具体为:根据对应的点云簇计算对应平面的平面方程,计算平面方程I:A1x+B1y+C1z+D1=0的系数,利用最小特征值对应的特征向量来求解平面方程的系数A1、B1、C1和D1;具体为:
步骤2.2.1,读取平面的数据,构造n×4维矩阵V,其中,
步骤2.2.2,求取矩阵V的转置矩阵VT;
步骤2.2.3,矩阵VT和V相乘得到矩阵U=VTV,矩阵U为4×4矩阵;
步骤2.2.4,利用SVD对矩阵U进行特征值分解,得到最小特征值对应的特征向量,即为平面方程参数A1,B1,C1,D1;
步骤2.2,将平面沿平行于z轴的方向进行切分,具体为:遍历每个平面中的每个点,计算每个平面的最大和最小的x,y,z值:Xmaxi,Ymaxi,Zmaxi,Xmini,Ymini,Zmini,如果(Xmaxi-Xmini)>(Ymaxi-Ymini),确定切分的个数N后,将平面沿x轴方向进行切分,记录第i个切片最左端及最右端的x值,同时记录第i个切片两端最大和最小的z值,将第i个切片两端的x值,以及两端最大和最小的z值代入该平面的平面方程,即可获得该切片的四个端点坐标;如果(Xmaxi-Xmini)<(Ymaxi-Ymini),确定切分的个数N后,则将平面沿y轴方向进行切分,记录第i个切片最左端及最右端的y值,同时记录第i个切片两端最大和最小的z值,将第i个切片两端的y值,以及两端最大和最小的z值代入该平面的平面方程,即可获得该切片的四个端点坐标;
步骤2.3,在步骤2.2对平面切分的基础上,记录每个切片的高度差,如果前一个切片Si与后一个切片Si+1高度差大于(Zmaxi-Zmini)*α,α=0.1,表明切片Si右端的两个端点与切片Si+1左端的两个端点为关键点。依次比较每个切片与后续切片的高度差,两者相差大于(Zmaxi-Zmini)*α,α=0.1时,前一个切片右端的两个端点与后续切片的左端两个端点被记为关键点。同时,第一个切片左端的两个端点以及最后一个切片右端的两个端点为关键点,遍历被同一平面切分的所有切片,依次连接关键点,完成该平面的重建。如图2所示,图2为根据步骤1提取的建筑物点云平面簇,它可以看作是两个四边形构成的。如图3所示,图3为沿坐标轴对平面进行切分,黑色框中的两个相邻切片高度差较大,所以左侧切片的右端端点D、C和右侧切片的左端端点E、F被记为关键点。另外,第一个切片的左端端点A、B与最后一个切片的右端端点H、G被记为关键点。依次连接关键点ABCD、EFGH,完成墙面的重建,如图4所示,为最终的重建结果。如图5-图7所示,图5为根据步骤1提取的建筑物点云平面簇,它是一个规则的四边形。图6为沿坐标轴对平面进行切分,切片大小相似。所以第一个切片的左端端点A、B与最后一个切片的右端端点C、D被记为关键点。图7为依次连接关键点ABCD完成墙面的重建。
步骤3、根据平面间的拓扑关系对步骤2重建的平面进行优化;具体按照以下步骤实施:
步骤3.1,确定构成建筑物的平面之间的拓扑关系,具体为:根据平面的临近关系,判断两平面是否相连;遍历平面Pi中的每一个点,pi是平面Pi中的一点,利用k-d树找出pi的k个邻近点,如果邻近点中存在某点pk∈Pj,其距离|pipk|<τ,τ=0.1,则标记平面Pi和Pj相连接;
步骤3.2,计算步骤3.1中相互连接的两平面的相交线方程,并优化重建结果,具体为:
对于平面I:A1x+B1y+C1z+D1=0,平面Π:A2x+B2y+C2z+D2=0,若两个平面相交,则交线的方向向量为:
(A1,B1,C1)×(A2,B2,C2)=(B1C2-B2C1,A2C1-A1C2,A1B2-A2B1),
交线上某点的坐标为:
图8为两平面相交示意图,分别将公式(4)中的z赋值为两相交平面的最大和最小z值Zmax1,Zmin1,Zmax2,Zmin2,求出两平面相交的关键点,如图9所示,然后分别更新两个平面的一侧端点坐标,优化相交平面的重建结果。
如图10所示,由于点云数据缺失,导致重建模型底端不一致,若平面底端的两个端点z值差距小于β,β=0.5,则将平面的两个底端对齐。
步骤4、在步骤3的基础上,根据窗户边框与墙面的拓扑关系,通过构造墙面的最小包围盒,提取窗户的点云信息,并利用基于距离的聚类方法,对窗户进行分割,将每个窗户单独的提取出来。然后利用区域增长的方法根据窗框的宽度和高度对窗户进行分类,并利用模式匹配将不完整的窗户进行归类。最后,利用四边形对窗户进行表示,完成建筑物细节的重建。具体按照以下步骤实施:
步骤4.1,窗户提取与分割,具体为:图11所示,为通过构造最小包围盒提取窗户点云,根据每个平面的最大和最小x,y,z值:Xmaxi,Ymaxi,Zmaxi,Xmini,Ymini,Zmini,计算墙面的最小包围盒,将包含在墙面的最小包围盒内的点云簇提取出来,利用步骤1.4提出的基于距离的分割方法对窗户点云进行分割,将每个窗户分别提取出来,去除靠近墙面最高处和最低处的细小点云簇,这主要是由于在现代建筑物中,窗户并不会紧挨着墙面的最高处或最低处。
步骤4.2,窗户分类,具体为:首先,遍历根据步骤4.1提取的窗框点云簇,记录每个窗框的高度hi和宽度wi,将不完整的窗框(窗框宽度或高度接近于0)提取出来,然后遍历剩余的窗框点云簇,利用区域增长的方法将具有相似宽度和高度的窗框归为一类,并将每类窗框中最大的宽度和高度值作为该类窗户Tn的长和宽,分别用fhn和fwn表示;
步骤4.3,对步骤4.2中不完整窗框归类,具体为:判断窗框不完整类型,判断公式为:
Fsim=λ*min(|wi-fwn|,|hi-fhn|)+(1-λ)*min(|ci-Cmn|,|ri-Rmn|) (5)
其中,wi和hi表示第i个不完整的窗框Wi的宽度和高度,fwn和fhn为经过步骤4.2分类后得到已有窗户结构Tn的宽度和高度,min(|wi-fwn|,|hi-fhn|)表示Wi和窗户结构Tn的结构相似性,Cmn为Tn第m列最左端的x或者y值,Rmn为Tn第m行最上端的z值,ci为窗框Wi最左端的x或者y值,ri为窗框Wi最上端的z值,min(|ci-Cmn|,|ri-Rmn|)表示不完整窗框Wi与已有窗户结构Tn之间的排列规整程度的高低,Fsim值越小,说明不完整窗框Wi和已有的窗户模式越相近,将不完整窗框Wi归为具有最小Fsim值的窗户模式;
步骤4.4,窗户位置确定,具体为:根据每一个窗框点云簇的左上角点坐标的y,z值对每个点云簇进行聚类,利用区域增长的方法将具有相似y值或z值的点聚为一类,得到的聚类数即为窗户的行数和列数,假设第i行的z值为Hi,第j列的左端的y值为Vj,拟合得到直线方程为:Z=Hi,Y=Vj,每一行的横向间隔为:Shi=Hi-Hi-1,纵向间隔为:Svj=Vj-Vj-1,横线和竖线相交,即可确定每个窗户的位置;如图12所示,图12中的横线为利用z值拟合得到的直线,竖线为利用y值拟合得到的直线。每一行的横向间隔为:Shi=Hi-Hi-1,纵向间隔为:Svj=Vj-Vj-1。横线和竖线相交,即可确定每个窗户的位置。
步骤4.5,窗户重建,具体为:根据步骤4.2得到每类窗框的长度fhn和宽度fwn,用四边形对窗户进行表示,将窗户模板重复地绘制到直线Z=Hi,Y=Vj相交处。此时应注意:绘制窗户的位置是否已经存在其它类型的窗户;绘制的窗户是否超过墙面的边界,如图13所示,为最终窗户的重建结果。
Claims (7)
1.一种基于切分的点云建筑物的重建方法,其特征在于,具体按照以下步骤实施:
步骤1、利用区域增长的方法,将点云建筑物中具有相似法向量的点聚为一类,然后利用基于距离的点云聚类方法,将具有相似法向量的平面分开,完成点云建筑物平面簇的分割;
步骤2、对经步骤1分割后的每个平面簇,根据该点云簇计算该平面的平面方程,在确定切分个数N后将每个平面沿纵向进行切分,计算每个切片的长度,通过比较每个切片与后续切片的高度差探测关键点;然后,依次连接关键点,完成平面的重建;具体按照以下步骤实施:
步骤2.1,计算平面拟合方程,具体为:根据对应的点云簇计算对应平面的平面方程,计算平面方程I:A1x+B1y+C1z+D1=0的系数,利用最小特征值对应的特征向量来求解平面方程的系数A1、B1、C1和D1;
步骤2.2,将平面沿平行于z轴的方向进行切分,具体为:遍历每个平面中的每个点,计算每个平面的最大和最小的x,y值:Xmaxi,Ymaxi,Zmaxi,Xmini,Ymini,Zmini,如果(Xmaxi-Xmini)>(Ymaxi-Ymini),确定切分的个数N后,则将平面沿x轴方向进行切分,记录第i个切片最左端及最右端的x值,同时记录第i个切片两端最大和最小的z值,将第i个切片两端的x值,以及两端最大和最小的z值代入该平面的平面方程,即可获得该切片的四个端点坐标;如果(Xmaxi-Xmini)<(Ymaxi-Ymini),确定切分的个数N后,则将平面沿y轴方向进行切分,记录第i个切片最左端及最右端的y值,同时记录第i个切片两端最大和最小的z值,将第i个切片两端的y值,以及两端最大和最小的z值代入该平面的平面方程,即可获得该切片的四个端点坐标;
步骤2.3,在步骤2.2对平面切分的基础上,记录每个切片的高度差,如果前一个切片Si与后一个切片Si+1高度差大于(Zmaxi-Zmini)*α,α=0.1,表明切片Si右端的两个端点与切片Si+1左端的两个端点为关键点,依次比较每个切片与后续切片的高度差,两者相差大于(Zmaxi-Zmini)*α,α=0.1,前一个切片右端的两个端点与后续切片的左端两个端点被记为关键点;同时,第一个切片左端的两个端点以及最后一个切片右端的两个端点为关键点,遍历被同一平面切分的所有切片,依次连接关键点,完成该平面的重建;
步骤3、根据平面间的拓扑关系对步骤2重建的初始建筑物模型进行优化;
步骤4、在步骤3的基础上,根据窗户边框与墙面的拓扑关系,通过构造墙面的最小包围盒,提取窗户的点云信息,并利用基于距离的聚类方法,对窗户进行分割,将每个窗户单独的提取出来;然后利用区域增长的方法根据窗框的宽度和高度对窗户进行分类,并利用模式匹配将不完整的窗户进行归类;最后,利用四边形对窗户进行表示,完成建筑物细节的重建。
2.根据权利要求1所述的一种基于切分的点云建筑物的重建方法,其特征在于,所述步骤1具体按照以下步骤实施:
步骤1.2,计算
提取点云建筑物中F1<0.05的点,构成平面点集PN;当F1接近0时,表示点p的邻近点近似地拟合成平面;
步骤1.3,利用区域增长的方法将平面点集PN中法向量相似的点进行聚类,具体为:根据步骤1.1中点p的法向量选择平面点集PN中任意一点作为种子点,依据步骤1.1计算该种子点的法向量,若该种子点的法向量与点p法向量相似且未被标记,则将该种子点与点p归为一类,并将种子点进行标记,遍历平面点集PN中的所有点,直到所有点被标记,将具有相似法向量的点归为一类,提取具有相似法向量的平面簇;
步骤1.4,根据距离对平行的平面簇进行分割,具体为:遍历具有相似法向量的点云数据,对于任意一点,利用k-d树找出点pi的k个近临点,筛选与它距离小于一定阈值γ的点集NN,γ=0.1;如果点pi是被遍历的第一个点,标记点集NN中所有的点label=1;如果点pi不是被遍历的第一个点,则遍历点集NN中的每一点是否已经被标记,如果点集NN中所有的点均未被标记,则label++,将点集NN中所有的点标记为label,如果点集NN中存在已经被标记的点,找出被标记的点中最小的标记值mLabel,将点集NN中所有的点标记为mLabel,重复步骤1.4,直到点云数据中所有点均被标记,完成点云建筑物平面簇的分割。
3.根据权利要求1所述的一种基于切分的点云建筑物的重建方法,其特征在于,所述步骤3具体按照以下步骤实施:
步骤3.1,确定构成建筑物的平面之间的拓扑关系,具体为:根据平面的临近关系,判断两平面是否相连;
步骤3.2,计算步骤3.1中相互连接的两平面的相交线方程,并优化重建结果,具体为:
对于平面I:A1x+B1y+C1z+D1=0,平面Π:A2x+B2y+C2z+D2=0,若两个平面相交,则交线的方向向量为:
(A1,B1,C1)×(A2,B2,C2)=(B1C2-B2C1,A2C1-A1C2,A1B2-A2B1),
交线上某点的坐标为:
分别将公式(4)中的z赋值为两相交平面的最大和最小z值,即z=Zmaxi,z=Zmini,求出两平面相交的关键点坐标,然后分别更新两个平面的一侧端点坐标,优化相交平面的重建结果,另外,若平面底端的两个端点z值差距小于阈值,则将平面的两个底端对齐,得到重建结果。
4.根据权利要求2所述的一种基于切分的点云建筑物的重建方法,其特征在于,所述步骤4具体按照以下步骤实施:
步骤4.1,窗户提取与分割,具体为:根据每个平面的最大和最小x,y,z值:Xmaxi,Ymaxi,Zmaxi,Xmini,Ymini,Zmini,计算墙面的最小包围盒,将包含在墙面的最小包围盒内的点云簇提取出来,利用步骤1.4提出的基于距离的分割方法对窗户点云进行分割,将每个窗户分别提取出来,去除靠近墙面最高处和最低处的细小点云簇;
步骤4.2,窗户分类,具体为:首先,遍历根据步骤4.1提取的窗框点云簇,记录每个窗框的高度hi和宽度wi,将不完整的窗框提取出来,然后遍历剩余的窗框点云簇,利用区域增长的方法将具有相似宽度和高度的窗框归为一类,并将每类窗框中最大的宽度和高度值作为该类窗户Tn的长和宽,分别用fhn和fwn表示;
步骤4.3对步骤4.2中不完整窗框归类,具体为:判断窗框不完整类型,判断公式为:
Fsim=λ*min(|wi-fwn|,|hi-fhn|)+(1-λ)*min(|ci-Cmn|,|ri-Rmn|) (5)
其中,wi和hi表示第i个不完整的窗框Wi的宽度和高度,fwn和fhn为经过步骤4.2分类后得到已有窗户结构Tn的宽度和高度,min(|wi-fwn|,|hi-fhn|)表示Wi和窗户结构Tn的结构相似性,Cmn为Tn第m列最左端的x或者y值,Rmn为Tn第m行最上端的z值,ci为窗框Wi最左端的x或者y值,ri为窗框Wi最上端的z值,min(|ci-Cmn|,|ri-Rmn|)表示不完整窗框Wi与已有窗户结构Tn之间的排列规整程度的高低,将不完整窗框Wi归为具有最小Fsim值的窗户模式;
步骤4.4,窗户位置确定,具体为:根据每一个窗框点云簇的左上角点坐标的y,z值对每个点云簇进行聚类,利用区域增长的方法将具有相似y值或z值的点聚为一类,得到的聚类数即为窗户的行数和列数,假设第i行的z值为Hi,第j列的左端的y值为Vj,拟合得到直线方程为:Z=Hi,Y=Vj,每一行的横向间隔为:Shi=Hi-Hi-1,纵向间隔为:Svj=Vj-Vj-1,横线和竖线相交,即可确定每个窗户的位置;
步骤4.5,窗户重建,具体为:根据步骤4.2得到每类窗框的长度fhn和宽度fwn,用四边形对窗户进行表示,将窗户模板重复地绘制到直线Z=Hi,Y=Vj相交处。
6.根据权利要求3所述的一种基于切分的点云建筑物的重建方法,其特征在于,所述步骤3.1具体为,记两平面分别为Pi和Pj,遍历平面Pi中的每一个点,pi是平面Pi中的一点,利用k-d树找出pi的k个邻近点,如果邻近点中存在某点pk∈Pj,其距离|pipk|<τ,则标记平面Pi和Pj相连接;其中,τ为两点间的距离阈值,τ=0.1。
7.根据权利要求1-6任意一项所述的一种基于切分的点云建筑物的重建方法,其特征在于,步骤2中所述确定切分个数N中的N为10-80。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320024.9A CN107146280B (zh) | 2017-05-09 | 2017-05-09 | 一种基于切分的点云建筑物重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320024.9A CN107146280B (zh) | 2017-05-09 | 2017-05-09 | 一种基于切分的点云建筑物重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107146280A CN107146280A (zh) | 2017-09-08 |
CN107146280B true CN107146280B (zh) | 2020-11-17 |
Family
ID=59778313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710320024.9A Active CN107146280B (zh) | 2017-05-09 | 2017-05-09 | 一种基于切分的点云建筑物重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107146280B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341843B (zh) * | 2017-07-13 | 2021-02-05 | 云南数云信息科技有限公司 | 基于真实色彩的海量点云动态显示方法和系统 |
CN108038908B (zh) * | 2017-11-21 | 2021-11-30 | 泰瑞数创科技(北京)有限公司 | 基于人工智能的空间对象识别及建模方法和系统 |
CN109992809B (zh) * | 2017-12-29 | 2023-03-10 | 深圳市优必选科技有限公司 | 一种建筑模型的构建方法、装置及存储装置 |
CN108133654B (zh) * | 2018-01-10 | 2019-12-13 | 河北农业大学 | 基于ar手机的棉花株型设计实验教学的方法 |
CN108921938B (zh) * | 2018-06-28 | 2020-06-19 | 西安交通大学 | 3d场景中基于最小费用最大流的层次结构构建方法 |
CN108847121A (zh) * | 2018-07-04 | 2018-11-20 | 深圳地平线机器人科技有限公司 | 构建高精度地图的方法和装置 |
CN109271654B (zh) * | 2018-07-19 | 2023-04-18 | 平安科技(深圳)有限公司 | 模型轮廓的切分方法及装置、存储介质、终端 |
CN109102535B (zh) * | 2018-07-27 | 2021-11-16 | 西安理工大学 | 一种基于构件提取的室内场景重建方法 |
CN109614857B (zh) * | 2018-10-31 | 2020-09-29 | 百度在线网络技术(北京)有限公司 | 基于点云的杆状物识别方法、装置、设备及存储介质 |
CN109949326B (zh) * | 2019-03-21 | 2020-09-08 | 苏州工业园区测绘地理信息有限公司 | 基于背包式三维激光点云数据的建筑物轮廓线提取方法 |
CN110070109B (zh) * | 2019-03-28 | 2021-02-26 | 东南大学 | 一种适用于建筑排列密集区的地物散乱点自动聚类的方法 |
TWI695340B (zh) * | 2019-05-27 | 2020-06-01 | 江俊昇 | 以2維設計介面進行建築規劃之方法 |
CN110275153B (zh) * | 2019-07-05 | 2021-04-27 | 上海大学 | 一种基于激光雷达的水面目标检测与跟踪方法 |
CN110910387B (zh) * | 2019-10-09 | 2022-03-04 | 西安理工大学 | 一种基于显著性分析的点云建筑物立面窗户提取方法 |
CN110910446A (zh) * | 2019-11-26 | 2020-03-24 | 北京拓维思科技有限公司 | 建筑物拆迁面积的确定方法和装置以及建筑物室内面积的确定方法和装置 |
CN111612806B (zh) * | 2020-01-10 | 2023-07-28 | 江西理工大学 | 一种建筑物立面窗户提取方法及装置 |
CN111581711B (zh) * | 2020-05-19 | 2023-10-03 | 北京数字绿土科技股份有限公司 | 杆塔建模方法、装置、终端设备及计算机可读存储介质 |
CN111986322B (zh) * | 2020-07-21 | 2023-12-22 | 西安理工大学 | 一种基于结构分析的点云室内场景布局重建方法 |
CN112085834B (zh) * | 2020-08-31 | 2024-04-09 | 西安理工大学 | 一种室内环境下的墙面重建方法 |
CN113158363B (zh) * | 2021-03-24 | 2022-07-26 | 秦皇岛燕大滨沅科技发展有限公司 | 一种基于3d建模的装船机智能防碰预警系统和方法 |
CN117332102B (zh) * | 2023-11-30 | 2024-02-06 | 陕西建一建设有限公司 | 一种基于bim的建筑数据优化存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050720A (zh) * | 2014-06-24 | 2014-09-17 | 中国科学院深圳先进技术研究院 | 点云曲面重建方法及系统 |
CN104392486A (zh) * | 2014-11-25 | 2015-03-04 | 西安理工大学 | 一种点云场景重建方法 |
CN105427317A (zh) * | 2015-11-25 | 2016-03-23 | 武汉大学 | 一种适用于多视角自动化配准多站地面激光点云数据的方法 |
CN105469061A (zh) * | 2015-08-04 | 2016-04-06 | 电子科技大学中山学院 | 地形特征线提取方法及装置 |
CN105740798A (zh) * | 2016-01-27 | 2016-07-06 | 西安理工大学 | 一种基于结构分析的点云场景物体识别方法 |
CN106600690A (zh) * | 2016-12-30 | 2017-04-26 | 厦门理工学院 | 基于点云数据的复杂建筑体三维建模方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI482043B (zh) * | 2013-01-11 | 2015-04-21 | Univ Nat Central | Housing roof search and establishment of roof structure |
-
2017
- 2017-05-09 CN CN201710320024.9A patent/CN107146280B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050720A (zh) * | 2014-06-24 | 2014-09-17 | 中国科学院深圳先进技术研究院 | 点云曲面重建方法及系统 |
CN104392486A (zh) * | 2014-11-25 | 2015-03-04 | 西安理工大学 | 一种点云场景重建方法 |
CN105469061A (zh) * | 2015-08-04 | 2016-04-06 | 电子科技大学中山学院 | 地形特征线提取方法及装置 |
CN105427317A (zh) * | 2015-11-25 | 2016-03-23 | 武汉大学 | 一种适用于多视角自动化配准多站地面激光点云数据的方法 |
CN105740798A (zh) * | 2016-01-27 | 2016-07-06 | 西安理工大学 | 一种基于结构分析的点云场景物体识别方法 |
CN106600690A (zh) * | 2016-12-30 | 2017-04-26 | 厦门理工学院 | 基于点云数据的复杂建筑体三维建模方法 |
Non-Patent Citations (2)
Title |
---|
"Segmentation of Architecture Shape Information from 3D Point Cloud";Xiaojuan NING等;《VRCAI 09 Proceedings of the 8th International Conference on Virtual Reality Continuum and its Applications in Industry》;20091215;第127-132页 * |
"Slicing Method for curved facade and window extraction from point clouds";S.M.Iman Zolanvari等;《ISPRS Journal of Photogrammetry and Remote Sensing》;20160715;第119卷;正文第334-346页摘要,第1-5节 * |
Also Published As
Publication number | Publication date |
---|---|
CN107146280A (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107146280B (zh) | 一种基于切分的点云建筑物重建方法 | |
CN112489212B (zh) | 一种基于多源遥感数据的建筑物智能化三维测图方法 | |
CN111915730B (zh) | 一种顾及语义从点云自动生成室内三维模型的方法及系统 | |
Ochmann et al. | Automatic reconstruction of parametric building models from indoor point clouds | |
Pu et al. | Extracting windows from terrestrial laser scanning | |
Zhou et al. | 2.5 d dual contouring: A robust approach to creating building models from aerial lidar point clouds | |
CN106023312A (zh) | 基于航空LiDAR数据的三维建筑物模型自动重建方法 | |
CN112070769A (zh) | 一种基于dbscan的分层点云分割方法 | |
CN110047036B (zh) | 基于极坐标格网的地面激光扫描数据建筑物立面提取方法 | |
CN110147775B (zh) | 利用细化空间分隔法从点云提取室内导航元素的方法 | |
CN111681300B (zh) | 轮廓素描线组成的目标区域获取方法 | |
CN111340822B (zh) | 一种多尺度自适应机载LiDAR点云建筑物单体化分割方法 | |
CN115564926B (zh) | 基于影像建筑物结构学习的三维面片模型构建方法 | |
CN108765478A (zh) | 一种建筑点云中分离单体建筑的密度聚类算法 | |
CN114119902A (zh) | 一种基于无人机倾斜三维模型的建筑物提取方法 | |
Wang et al. | A method for detecting windows from mobile LiDAR data | |
CN114742968A (zh) | 一种基于建筑物立面点云的立面图生成方法 | |
Thiemann et al. | 3D-symbolization using adaptive templates | |
CN113409332A (zh) | 一种基于三维点云的建筑物平面分割方法 | |
Keller et al. | Extracting and visualizing structural features in environmental point cloud LiDaR data sets | |
CN104077603A (zh) | 类地重力场环境下室外场景单目视觉空间识别方法 | |
Previtali et al. | Automatic façade segmentation for thermal retrofit | |
CN116385659A (zh) | 一种点云建筑物建模方法、系统、存储介质及电子设备 | |
CN116051771A (zh) | 一种基于无人机倾斜摄影模型的光伏bim屋顶自动建模方法 | |
CN114677388A (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 |