CN104036544A - 一种基于机载LiDAR数据的建筑物屋顶重建方法 - Google Patents
一种基于机载LiDAR数据的建筑物屋顶重建方法 Download PDFInfo
- Publication number
- CN104036544A CN104036544A CN201410293086.1A CN201410293086A CN104036544A CN 104036544 A CN104036544 A CN 104036544A CN 201410293086 A CN201410293086 A CN 201410293086A CN 104036544 A CN104036544 A CN 104036544A
- Authority
- CN
- China
- Prior art keywords
- point
- outline
- dough sheet
- roof
- search
- 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.)
- Granted
Links
Abstract
本发明公开了一种基于机载LiDAR数据的建筑物屋顶重建方法,包括步骤:一、LiDAR点云数据获取;二、LiDAR点云数据处理,过程如下:201、建筑物屋顶面片分割,从建筑物屋顶分割出多个屋顶面片;202、建筑物屋面点云数据获取;203、建筑物屋面及各屋顶面片的外轮廓点提取,同时还需提取建筑物屋面的外边界线;204、屋顶面片矢量边界获取,过程如下:建立搜索信息集合、邻域搜索、外轮廓点类别确定和矢量边界确定;205、建筑物屋顶矢量模型获取:多个屋顶面片的矢量边界确定后,便获得建筑物屋顶的矢量模型。本发明方法步骤简单、设计合理且实现方便、使用效果好,能简便、快速且高质量完成建筑物屋顶的重建过程。
Description
技术领域
本发明涉及一种建筑物屋顶建模方法,尤其是涉及一种基于机载LiDAR数据的建筑物屋顶重建方法。
背景技术
三维建筑模型被广泛地应用在城市和区域规划、交通规划、人口估计和预测、污染分析及能量预算等数字城市领域。传统的三维建模方法主要采用摄影测量等测绘手段进行城市建模,需要在立体像对中进行量测,所提取的三维模型存在精度低、质量差等问题,而且具有劳动强度大、成本高、周期长等缺点。
目前基于机载Lidar数据的建模技术已经有了长足的发展,通过数据滤波处理分离地面点云,然后针对建筑物点云进行处理获得矢量模型,主要的方法包括模型驱动法和数据驱动法两种。其中,模型驱动法通过对点云数据进行处理后,与事先建立的建筑物模型库进行匹配,将匹配结果最好的模型单元作为建筑物形状进行重建。采用模型驱动法生成的建筑物模型规则化程度较高,并且在数据获取当中由于局部遮挡造成的部分信息损失也能够很好的弥补。例如Weiner利用数学形态学方法和数据本身的集合特征从精细DEM模型中提取建筑物区域,然后通过模型单元实现对建筑物的重建;Car Nardinocchi于2001年使用房屋结构重建分解了的建筑物形状,通过定义一些常见的长方体、人字体等形状,每个结构的大小可以通过设置参数进行改变,通过真实建筑物点云数据与模型库中形状的匹配重建建筑物模型。但现有模型驱动法的三维重建方法都存在以下问题:
第一、模型库不完备:复杂建筑物的建筑物风格难以估计,很难利用模型库种的简单集合模型组合成真正真实的建筑物模型;
第二、建筑物本身难以分解:算法针对点云数据类型,很难通过空间的集合分析将复杂建筑物进行分解;
第三、模型单元在选择时,参数的匹配难以定性:不同点云数据密度不同,数据库中间模型的形状也存在一定的重复,很难通过参数决定模型单元的选择。
数据驱动法是直接对数据进行处理,通过分析建筑物点云数据特征,唯一的确定建筑物形状。数据的类型可能不单包括点云数据,也可能包括其他数据类型。2012年06月27日公开的公开号为CN102521884A的发明专利申请文件中公开了一种基于LiDAR数据与正射影像的3维屋顶重建方法,就是利用lidar数据与正射影像提取房屋屋脊线从而重建模型的数据驱动法。这种方法一般需要通过分割的方法获取建筑物各个屋顶的面片,并建立起拓扑关系,然后通过面片相交获得屋脊线,最后将建筑物进行重建。例如,Rabbani等利用平面拟合残差近视平面曲率,将法向量和平面拟合残差作为平滑约束条件进行区域生长;Palenichka等采用尺度自适应的区域增长算法对Lidar距离影像进行多尺度分割。但上述数据驱动法的三维重建方法都存在以下问题:
第一、对数据要求复杂:如公开号为CN102521884A的发明专利申请文件中所公开的基于LiDAR数据与正射影像的3维屋顶重建方法,就需要lidar点云数据和相对应的正射影像两种数据,这样就提高了建筑物重建的门坎,正射影像本身存在畸变且不同的数据间匹配处理都会带来一定的误差;
第二、当点云密度低、噪声大甚至点云缺失的情况下,无法正确提取特征直线,从而造成合并的错误;
第三、由于采用面面相交求交点的方法,所以当建筑物为多面(4个或以上)相交于一点时,只能保证三个面的正确性,而其它面在相交点处形成阶跃;
第四、过于依赖分割的结果,在合并的过程中抛开了原始点云数据,无法判断错误的分割结果;
第五、最终得到的是整个建筑的模型矢量,而不是各平面的模型矢量,因而当拓扑关系出现错误时,矢量模型难以纠正。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于机载LiDAR数据的建筑物屋顶重建方法,其方法步骤简单、设计合理且实现方便、使用效果好,能简便、快速且高质量完成建筑物屋顶的重建过程。
为解决上述技术问题,本发明采用的技术方案是:一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于该方法包括以下步骤:
步骤一、LiDAR点云数据获取:采用机载LiDAR测量系统获取待测区域的点云数据,并将所获取的点云数据传送至数据处理设备;所述点云数据中包括待测区域内多个建筑物屋顶的点云数据,每个建筑物屋顶的点云数据均包括该建筑物屋顶的多个测点及各测点的三维坐标;
步骤二、LiDAR点云数据处理:采用所述数据处理设备分别对多个建筑物的点云数据进行处理,并获取各建筑物屋顶的矢量模型;多个建筑物的点云数据处理过程均相同;对待测区域内的任一个建筑物的点云数据进行处理时,过程如下:
步骤201、建筑物屋顶面片分割:采用区域生长方法对当前所处理建筑物屋顶的点云数据进行处理,从当前所处理建筑物屋顶分割出多个屋顶面片,并获得多个屋顶面片的点云数据;之后,根据各屋顶面片的点云数据,且采用最小二乘法对各屋面面片分别进行平面拟合,获得各屋顶面片所在平面的平面方程;同时,对多个屋顶面片进行编号,并对多个屋顶面片的相邻关系分别进行记录,每个屋顶面片的相邻关系均包括与该屋顶面片相邻的屋顶面片的数量以及各相邻屋顶面片的布设位置;
多个所述屋顶面片均为平面,每个屋顶面片的点云数据均包括位于该屋顶面片上的多个测点及各测点的三维坐标;多个所述屋顶面片的数量为N'个,N'为正整数且N'≥2;
步骤202、建筑物屋面点云数据获取:根据步骤201中所记录的多个屋顶面片的相邻关系,将多个屋顶面片的点云数据组合形成当前所处理建筑物屋面的点云数据;
步骤203、建筑物屋面及各屋顶面片的外轮廓点提取:调用外轮廓点提取模块,从步骤202中所获取的当前所处理建筑物屋面的点云数据中提取出当前所处理建筑物屋面的多个外轮廓点,并获得当前所处理建筑物屋面的外轮廓点集合A';同时,分别从步骤201中各屋顶面片的点云数据中提取出各屋顶面片的多个外轮廓点,并获得各屋顶面片的外轮廓点集合;
步骤204、屋顶面片矢量边界获取:结合步骤201中多个屋顶面片的点云数据和相邻关系以及步骤203中各屋顶面片的外轮廓点集合,获取多个屋顶面片的矢量边界;多个屋顶面片的矢量边界获取方法均相同,对任一个屋顶面片Si的矢量边界进行获取时,过程如下:
步骤2041、建立搜索信息集合:将多个所述屋顶面片中除屋顶面片S'i'之外的N'-1个屋顶面片的点云数据,组合成搜索信息集合Ji';搜索信息集合Ji'中包括N'-1个子集合,N'-1个子集合分别为N'-1个屋顶面片的点云数据;其中,i'为屋顶面片的编号,i'为正整数且i'=1、2、…、N';
步骤2042、邻域搜索:对屋顶面片S'i'的外轮廓点集合中的各外轮廓点分别进行邻域搜索,获得屋顶面片S'i'的邻域搜索信息,所述邻域搜索信息中包括屋顶面片S'i'的所有外轮廓点的邻域搜索点及各邻域搜索点的三维坐标;
对屋顶面片S'i'的外轮廓点集合中任一个外轮廓点Ci'j'进行邻域搜索时,从步骤201中所建立的搜索信息集合S'i中找出与外轮廓点Ci'j'距离最近的测点,所找出的测点为外轮廓点Ci'j'的邻域搜索点,记作C'i'j';
其中,j'为正整数且j'=1、2、…、M',M'为屋顶面片S'i'的外轮廓点集合中外轮廓点的总数量;
步骤2043、外轮廓点类别确定:先根据屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标,沿逆时针方向或顺时针方向,由先至后对屋顶面片S'i'的外轮廓点集合中的所有外轮廓点由先至后进行排序,再按照排序结果,由先至后对所述外轮廓点集合中各外轮廓点的邻域搜索点进行处理,并得出各外轮廓点的类别,过程如下:
步骤Ⅰ、邻域搜索点所属屋顶面片编号确定:根据步骤2041中N'-1个所述子集合,判断邻域搜索点C'i'j'所属的子集合;并根据所属的子集合,确定邻域搜索点C'i'j'所属的屋顶面片,记录邻域搜索点C'i'j'所属屋顶面片的编号k',k'为正整数,k'=1、2、…、N'且k'≠i';
步骤Ⅱ、外轮廓点类别确定:根据当前所处理建筑物屋面的外轮廓点集合A',判断外轮廓点Ci'j'是否属于外轮廓点集合A':当外轮廓点Ci'j'属于外轮廓点集合A'时,外轮廓点Ci'j'的类别为外边界线且其类别编号为U;否则,根据外轮廓点Ci'j'和邻域搜索点C'i'j'的三维坐标,得出外轮廓点Ci'j'和邻域搜索点C'i'j'的高程差Δhij:当Δhij≤Δh0时,外轮廓点Ci'j'的类别为屋脊线且其类别编号记作Tk';当Δhij>Δh0时,外轮廓点Ci'j'的类别为阶跃线且其类别编号记作Wk';其中,Δh0=0.2m~0.4m;
步骤Ⅲ、按照步骤Ⅰ至步骤Ⅱ中所述的方法,对下一个外轮廓点的类别进行确定;
步骤Ⅳ、多次重复步骤Ⅲ,直至完成屋顶面片S'i'的外轮廓点集合中所有外轮廓点的类别确定过程;
步骤2044、矢量边界确定:根据步骤2043中所确定屋顶面片Si的外轮廓点集合中各外轮廓点的类别,并结合屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标和步骤201中所记录的屋顶面片S'i'的相邻关系,对屋顶面片S'i'的矢量边界进行确定;
步骤2045、多次重复步骤2041至步骤2044,直至完成多个屋顶面片的矢量边界确定过程;
步骤205、建筑物屋顶矢量模型获取:待步骤204中多个屋顶面片的矢量边界确定后,便获得当前所处理建筑物屋顶的矢量模型。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤201中进行建筑物屋顶面片分割时,先将当前所处理建筑物屋顶的点云数据构建kd树,再从当前所处理建筑物屋顶的点云数据中随机选取一个测点作为种子点,并采用K邻近搜索算法搜索出多个邻近点,搜索出的多个邻近点与所述种子点组成邻近点集;之后,计算出所述邻近点集的法向量,并按照计算出的法向量进行区域生长,便分割出一个屋顶面片,且将所分割出的屋顶面片中的所有测点均从当前所处理建筑物屋顶的点云数据中删除;然后,按照对当前所处理建筑物屋顶的点云数据中剩余的点云数据再次进行屋顶面片分割,直至分割出所有屋顶面片;
其中,对所述邻近点集的法向量进行计算时,先对所述邻近点集中所有测点的法向量进行计算;之后,将所述邻近点集中所有测点的法向量叠加后,获得所述邻近点集的法向量;
所述邻近点集中所包含测点的数量为D'个,D'个测点由先至后分别为Clj1、Clj2、…、CljD',其中Clj1又记作Clj(D'+1);D'个测点中任一个测点Cljd'的法向量为(Nd'.X,Nd'.Y,Nd'.Z),Nd'.X=(Cljd'.z+Clj(d'+1).z)×(Cljd'.y-Clj(d'+1).y),Nd'.Y=(Cljd'i.x+Clj(d'+1).x)×(Cljd'.z-Clj(d'+1).z),Nd'.Z=(Cljd'.y+Clj(d'+1).y)×(Cljd'.x-Clj(d'+1).x);其中,测点Cljd'的三维坐标为(Cljd'.x,Cljd'.y,Cljd'.z),测点Clj(d'+1)的三维坐标为(Clj(d'+1).x,Clj(d'+1).y,Clj(d'+1).z)。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤2042中对外轮廓点Ci'j'进行邻域搜索时,以外轮廓点Ci'j'为中心且以0.5m~1.5m为搜索半径进行搜索。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤204中进行屋顶面片矢量边界获取之前,还需根据步骤203中所获取的当前所处理建筑物屋面的外轮廓点集合,调用外边界线提取模块,提取出当前所处理建筑物屋面的外边界线。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤Ⅱ中当Δhij>Δh0时,还需对外轮廓点Ci'j'和邻域搜索点C'i'j'的高程进行比较,并建立阶跃线类别集合Wk',且将外轮廓点Ci'j'和邻域搜索点C'i'j'中高程高的点放入阶跃线类别集合Wk'中;
步骤Ⅲ中对下一个外轮廓点的类别进行确定时,当当前所确定外轮廓点和其邻域搜索点的高程差>Δh0时,还需对当前所确定外轮廓点和其邻域搜索点的高程进行比较:当阶跃线类别集合Wm'已建立时,将当前所确定外轮廓点和其邻域搜索点中高程高的点放入集合Wm'中;否则,需建立阶跃线类别集合Wm',并将当前所确定外轮廓点和其邻域搜索点中高程高的点放入集合Wm'中;其中,m'为当前所确定外轮廓点的邻域搜索点所属屋顶面片的编号,m'为正整数,m'=1、2、…、N'且m'≠i'。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤2044中进行矢量边界确定之前,还需根据屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标,沿逆时针方向或顺时针方向,由先至后对屋顶面片S'i'的外轮廓点集合中的所有外轮廓点进行排序,并根据外轮廓点的排序结果,对步骤2043中得出的所有外轮廓点的类别编号进行排序,获得屋顶面片S'i'的外轮廓点类别编号序列;
排序完成后,屋顶面片S'i'中相邻两个外轮廓点的类别编号相邻;所述外轮廓点类别编号序列中,多个外轮廓点的类别编号由先至后分别记作Li'1、Li'2、…、Li'M'。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤Ⅱ中类别编号Tk'中,T表示类别为屋脊线,k'表示在外轮廓点Ci'j'的位置处屋顶面片S'i'与编号为k'的屋顶面片相交;
类别编号记作Wk'中,W表示类别为阶跃线,k'表示在外轮廓点Ci'j'的位置处屋顶面片S'i'与编号为k'的屋顶面片之间形成高低面;
步骤2044中进行矢量边界确定时,由先至后对步骤2043中所述外轮廓点类别编号序列中相邻两个类别编号分别进行矢量边界点提取处理,过程如下:
步骤ⅰ、对类别编号Li'1和Li'2进行矢量边界点提取处理:先判断Li1和Li2是否相同:当Li1=Li2时,完成矢量边界点提取过程;否则,获取与类别编号Li'1和Li'2对应的矢量边界点,过程如下:
当Li'1=Tg'且Li'2=Th'时,先计算出屋顶面片S'i'与编号为g'的屋顶面片之间的相交直线段lg'和屋顶面片S'i'与编号为h'的屋顶面片之间的相交直线段lh',再计算出直线段lg'和lh'的交点Cg'h',交点Cg'h'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1和Li'2中一个编号为Ta'且另一编号为U时,先计算出屋顶面片S'i'与编号为a'的屋顶面片之间的相交直线段la',再结合屋顶面片S'i'的相邻关系,计算出直线段la'与当前所处理建筑物屋面的外边界线之间的交点Ca',Ca'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1和Li'2中一个编号为Wb'且另一编号为U时,先根据阶跃线类别集合Wb'中所有点的三维坐标,采用最小二乘法拟合出集合Wk'中所有点所处的直线lb',再结合屋顶面片S'i'的相邻关系,计算出直线lb'与当前所处理建筑物屋面的外边界线之间的交点Cb',Cb'位于屋顶面片S'i'与编号为b'的屋顶面片的交界线上,Cb'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1和Li'2中一个编号为Te'且另一编号为Wf'时,先计算出屋顶面片S'i'与编号为e'的屋顶面片之间的相交直线段le';同时,根据阶跃线类别集合Wf'中所有点的三维坐标,采用最小二乘法拟合出集合Wf'中所有点所处的直线lf',再结合屋顶面片S'i'的相邻关系,计算出直线段le'与直线lf'之间的交点Ce'f',Ce'f'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1=Wp'且Li'2=Wq'时,根据阶跃线类别集合Wp'中所有点的三维坐标,采用最小二乘法拟合出集合Wp'中所有点所处的直线lp';同时,根据阶跃线类别集合Wq'中所有点的三维坐标,采用最小二乘法拟合出集合Wq'中所有点所处的直线lq',再计算出直线lp'和lq'的交点Cp'q',交点Cp'q'为与类别编号Li'1和Li'2对应的矢量边界点;
其中,g'、h'、a'、b'和e'均为屋顶面片的编号;
步骤ⅱ、对类别编号Li't'和Li'(t'+1)进行矢量边界点提取处理:按照步骤ⅰ中所述的方法,对类别编号Li't'和Li'(t'+1)进行矢量边界点提取处理;其中,t'为正整数且t'=1、2、…、M';其中,Li'1又记作Li'(M'+1);
步骤ⅲ、多次重复步骤ⅱ,直至完成所述外轮廓点类别编号序列中任意相邻两个类别编号的矢量边界点提取处理过程;
步骤ⅳ、将步骤ⅰ至步骤ⅲ中所提取的所有矢量边界点,按照提取的先后顺序由先至后连接,获得屋顶面片S'i'的矢量边界。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤203中所述外轮廓点集合A'中包括当前所处理建筑物屋面的多个外轮廓点及各外轮廓点的三维坐标,各屋顶面片的外轮廓点集合中包括该屋顶面片上的多个外轮廓点及各外轮廓点的三维坐标;
步骤203中对当前所处理建筑物屋面的外轮廓点进行提取时,从当前所处理建筑物屋面的二维数据集中,提取多个外轮廓点,并形成外轮廓点集合A″;所述外轮廓点集合A″中外轮廓点的数量为N个,所述外轮廓点集合A″中包含N个外轮廓点的二维数据,N个所述外轮廓点连接形成当前所处理建筑物屋面的外轮廓线;之后,根据步骤202中当前所处理建筑物屋面的点云数据,获取外轮廓点集合A″中各外轮廓点的三维坐标;
当前所处理建筑物屋面的二维数据集包括当前所处理建筑物的点云数据中多个测点在X-Y平面直角坐标系上的二维坐标;
步骤203中对各屋顶面片的外轮廓点进行提取时,所有屋顶面片的外轮廓点提取方法均与当前所处理建筑物屋面的外轮廓点的提取方法相同;其中,对屋顶面片S'i'的外轮廓点进行提取时,从屋顶面片S'i'的二维数据集中,提取M'个外轮廓点,并形成外轮廓点集合B″;所述外轮廓点集合B″中外轮廓点的数量为M'个,所述外轮廓点集合B″中包含M'个外轮廓点的二维数据;之后,根据步骤201中屋顶面片S'i'的点云数据,获取外轮廓点集合B″中各外轮廓点的三维坐标;
屋顶面片S'i'的二维数据集包括屋顶面片S'i'的点云数据中多个测点在X-Y平面直角坐标系上的二维坐标;
对当前所处理建筑物屋面的外边界线进行提取时,过程如下:
步骤2031、特征点提取:采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取,并从所述外轮廓点集合A″提取出S个特征点,S个特征点分别记作S1、S2、…、SS;
步骤2032、最小二乘法直线拟合及初始边界线获取:对S个特征点中相邻两个特征点所在的直线分别进行拟合,并获得S条拟合直线;S条拟合直线相交形成的封闭曲线为当前所处理建筑物的初始边界线,所述初始边界线由多个直线段连接而成;
对S个特征点中相邻两个特征点Sa和Sb进行直线拟合时,先将特征点Sa和Sb以及步骤201中所述外轮廓点集合中特征点Sa和Sb之间的所有外轮廓点组成直线点集,再利用最小二乘法对所述直线点集进行直线拟合,获得特征点Sa和Sb所在的拟合直线;其中,a和b均为正整数且a≠b,a=1、2、…、S,b=1、2、…、S;
步骤2033、建筑物主方向及副方向确定:先对步骤2032中所述初始边界线中的多个直线段的方向向量进行确定,再对多个直线段的方向向量的权重分别进行计算,并将权重最大的直线段的方向向量作为当前所处理建筑物的主方向,将当前所处理建筑物的主方向的正交向量作为当前所处理建筑物的副方向;
步骤2034、初始边界线规则化:对步骤2032中所述初始边界线中的多个直线段分别进行规则化处理;
对所述初始边界线中任一个直线段进行规则化处理时,过程如下:
步骤2034-1、规则化方向确定:根据步骤2033中所确定的主方向和副方向以及当前所处理直线段的方向向量,对当前所处理直线段的规则化方向进行确定:当当前所处理直线段的方向向量更靠近主方向时,以主方向作为规则化方向;反之,当当前所处理直线段的方向向量更靠近副方向时,以副方向作为规则化方向;
步骤2034-2、是否需进行规则化判断:计算当前所处理直线段在步骤2034-1中所确定规则化方向上的投影长度L,并根据投影长度L对当前所处理直线段是否需进行规则化进行判断:当投影长度L≤L0时,进入步骤2034-3;否则,无需进行规则化处理,将当前所处理直线段所在的直线作为其规则化直线;其中,L0=50cm~1m。
步骤2034-3、规则化处理:以当前所处理直线段的中点为起点,且以步骤2034-1中所确定的规则化方向为方向向量,生成当前所处理直线段的规则化直线;
步骤2035、规则化边界线获取:步骤2034中所述初始边界线中的多个直线段均规则化处理完成后,多个直线段的规则化直线相交形成的封闭曲线为当前所处理建筑物的规划化边界线。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:步骤2031中采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取后,所提取的特征点数量为M个,其中M为正整数且M≥S;M个特征点组成特征点集合,S个特征点分别记作S1、S2、…、SM,特征点S1又记作特征点SM+1;
特征点提取完成后,还需对所提取的M个特征点分别进行判定;其中,对M个特征点中任一个特征点Sh进行判定时,判断特征点Sh与直线Sh-1Sh+1之间的距离dh是否大于d0:当dh>d0时,在所述特征点集合中保留特征点Sh;否则,从所述特征点集合中删除特征点Sh,并将特征点Sh标记为非特征点;
直线Sh-1Sh+1为特征点Sh-1和Sh+1所在的直线,特征点Sh-1和Sh+1为与特征点Sh相邻的两个特征点;其中,h为正整数且h=1、2、…、M;
对M个特征点分别进行判定后,所述特征点集合中特征点的数量为S个。
上述一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征是:所述外轮廓点集合A''中的N个所述外轮廓点,分别记作A0、A1、A2、…、AN-1;
步骤203中对当前所处理建筑物屋面的外轮廓点进行提取时,过程如下:
步骤2011、构建kd树:将当前所处理建筑物屋面的点云数据中,多个测点在X-Y平面直角坐标系上的二维坐标构建kd树;
步骤2012、邻域搜索:利用步骤2011中所构建的kd树在X-Y平面上进行邻域搜索,找出当前所处理建筑物屋面的所有外轮廓点,X-Y平面为X-Y平面直角坐标系所在的水平面;邻域搜索过程如下:
步骤20121、第一次搜索:以极值点A0作为本次搜索的搜索点O1且以X坐标轴的负半轴作为基准向量进行邻域搜索,并在当前搜索点O1的邻域内找出旋转角度最小的测点,所找出的测点为第一次搜索出的外轮廓点A1;
当前搜索点的邻域内任一测点Ci的旋转角度为由基准向量逆时针旋转至向量的旋转角度;极值点A0为当前所处理建筑物的点云数据中X轴坐标值最大、X轴坐标值最小、Y轴坐标值最大或Y轴坐标值最小的测点;
步骤20122、第j次搜索:以第j-1次搜索出的外轮廓点Aj-1作为本次搜索的搜索点Oj且以向量为基准向量进行邻域搜索,并按照步骤20121中所述的方法,在当前搜索点Oj的邻域内找出旋转角度最小的测点,所找出的测点为第j次搜索出的外轮廓点Aj;
其中,j为正整数且j≥2;当j=2时,Aj-2=A0;当j>2时,Aj-2为第j-2次搜索出的外轮廓点;
步骤20123、多次重复步骤20122,直至搜索出的外轮廓点为A0时,完成邻域搜索过程;
步骤2012中进行邻域搜索过程中,将极值点A0和各次搜索到的外轮廓点均标记为已用点;
步骤20123中,多次重复步骤20122且完成第n次搜索后,获得第n次搜索出的外轮廓点An,并将外轮廓点An标记为已用点;之后,按照步骤20122中所述的方法,将An作为搜索点,进行第n+1次搜索,且当第n+1次搜索过程中搜索到的外轮廓点为标记的已用点时,将外轮廓点An标记为不可用点;然后,按照An-1、An-2、…、A1顺序,由先至后对标记为有用点的外轮廓点进行回滚搜索,过程如下:
步骤Ⅰ-1、第一次回滚搜索:对第(n-1)次搜索出的外轮廓点An-1进行回滚搜索,过程如下:
步骤Ⅰ-11、第一次邻域搜索:按照步骤20121中所述的方法,以外轮廓点An-1作为本次搜索的搜索点O11且以向量为基准向量进行邻域搜索;
步骤Ⅰ-12、第一次邻域搜索结果处理:步骤Ⅰ-11中搜索完成后,当在当前搜索点O11的邻域测点集合S'(n-1)中不能找出旋转角度最小的测点时,将外轮廓点An-1标记为不可用点,并进入步骤Ⅱ-1,进行下一次回滚搜索;
反之,当在邻域测点集合S'(n-1)中找出旋转角度最小的测点时,将所找出的测点作为回滚搜索过程中第一次搜索出的外轮廓点A11,且将外轮廓点A11标记为已用点,并判断外轮廓点A11是否为极值点A0:当外轮廓点A11为极值点A0时,完成回滚搜索过程;否则,进入步骤Ⅰ-13,进行下一次邻域搜索;
步骤2012中进行邻域搜索过程中,第(n-1)次搜索时,当前搜索点On-1的邻域内所有测点组成邻域测点集合S(n-1);所述邻域测点集合S(n-1)中的所有未标记的测点组成邻域测点集合S'(n-1);
步骤Ⅰ-13、第k次邻域搜索:以回滚搜索过程中第(k-1)次搜索出的外轮廓点A1(k-1)作为本次搜索的搜索点O1k且以向量为基准向量进行邻域搜索,并按照步骤20121中所述的方法,在当前搜索点O1k的邻域内找出旋转角度最小的测点,所找出的测点为回滚搜索过程中第k次搜索出的外轮廓点A1k;
其中,k为正整数且k≥2;当k=2时,A1(k-2)=O11,A1(k-1)=A11;当j>2时,A1(k-2)为回滚搜索过程中第(k-2)次搜索出的外轮廓点;
步骤Ⅰ-14、第k次邻域搜索结果处理:步骤Ⅰ-13中搜索完成后,判断第k次搜索出的外轮廓点A1k是否为极值点A0:当外轮廓点A1k为极值点A0时,完成回滚搜索过程;否则,返回步骤Ⅰ-13,进行下一次邻域搜索;
步骤Ⅱ-1、第h次回滚搜索:按照步骤Ⅰ-1中所述的方法,对步骤2012中第(n-h+1)次搜索出的外轮廓点An-h+1进行回滚搜索,直至完成回滚搜索过程;其中,h为正整数且h≥2;
步骤2012中完成回滚搜索过程后,当前状态下所有标记为已用点的测点组成步骤201中所述外轮廓点集合,并且所有标记为已用点的测点总数量为N个。
本发明与现有技术相比具有以下优点:
1、方法步骤简单、设计合理且实现方便。
2、使用操作简便且易于掌握,具体过程如下:首先,对滤波处理后的建筑物屋顶点云数据建立kd树,利用法向量将建筑物屋顶分割成多个屋顶面片,再根据屋顶面片的点云集合最小二乘法计算各屋顶面片的平面方程;之后,再根据多个屋顶面片的点云集合,用邻域搜索追踪的方法得到各屋顶面片的外轮廓点云及建筑物屋顶的外轮廓点云,对建筑物屋顶的外轮廓点云采用最小二乘法拟合直线得出原始的外边界,再通过确定建筑的主方向规则化建筑物屋顶的外边界线;随后,对各屋顶面片的外轮廓点云进行建筑物内的拓扑搜索,并根据不同的搜索结果对各外轮廓点进行分类(屋脊线、阶跃线和外边界线);随后,将连续的同一类型的搜索点归入一个集合中,面片的外轮廓点云转化为连续的类别编号序列,再根据别编号序列的先后顺序做相应的矢量边界点提取处理,便得到各屋顶面片的矢量边界,从而获得建筑物屋顶的矢量模型。
3、建筑物屋面外边界线提取方法简单、设计合理且使用效果好,具体过程如下:首先,对滤波处理后的建筑物点云数据建立kd树,利用邻域搜索加逆时针旋转查找旋转角度最小的外部点,得到建筑物外轮廓点云;其次,根据外轮廓点云集合,用道格拉斯-普克算法提取拐点点云,拐点通过二次判定去除误差点;之后,对连续拐点间的点最小二乘拟合直线,连接相邻直线交点得到原始的外边界;然后,以外边界线段的方向向量为基准,计算出所有外边界线段与基准方向基准的角度,角度小于阈值时基准向量叠加外边界线段的方向向量,否则叠加外边界线段的方向向量的正交向量,这样通过计算,权重向量长度最长的向量的方向为建筑物的主方向,垂直方向为副方向;计算原始外边界与主方向或副方向的投影长度,小于长度阈值则按主方向或副方向规则化外边界线。所采用的外边界线提取方法不借助传统遥感图像处理方法,避免了从点云内插成二值图像过程中带来的误差。并且,在不构建三角网结构的基础上,直接分析点云的三维空间信息,降低了计算过程的复杂度和占用的空间,计算过程中只分析了一部分符合空间结构的点云,无需对所有点云数据进行分析、处理,因而处理效率高、速度快。
边界点搜索过程(即建筑物外轮廓点提取过程)中加入了回滚搜索方式,当认为某一外轮廓点提取错误时,会回滚到上一个外轮廓点重新搜索,增强了算法的鲁棒性。与传统回滚方式不同,在回滚过程中会标记检测错误的点,在后面的分析中不再考虑,这样保证了提取过程一定会得到唯一确定的结果。同时,改进了传统道格拉斯-普克拐点提取的方法,在二次判断检查的过程中,剔除了错误的拐点。同时,利用最小二乘法保证了拐点间的点也被考虑进边界提取的过程中,因而本发明为一种多种提取方式组合的组合式外边界提取方法,这种组合式提取方法最大程度地保证了边界点云的特征。在不构建三角网的基础上,直接分析点云空间坐标,提取建筑物外轮廓点云,生成矢量边界线。另外,采用的主方向提取方法,利用长度作为权重,保证在最小程度改变外边界方向的前提下,规则化矢量边界,使生成的矢量边界线能最大程度地与点云套合。综上,本发明利用点云数据集合,解决了无法精确、快速提取建筑物外边界的问题,不需要构建三角网或者内插格网,运行效率高、速度快、占用空间小,并且得到的外边界矢量规则化程度高,符合建筑建模需求。
4、本发明在屋顶面片分割的基础上,基于屋顶面片外轮廓点云,逐一重建建筑物屋顶的多面结构,其结合分割得到的结果以及合并时外轮廓邻域内的信息,保留点云数据信息,还原建筑物矢量模型。相比于其他数据驱动类的方法,本发明的主要优势在于三维重建得到的建筑物模型正确性和完整性较高。相比于整体建筑特征提取,再计算合并的方法,将建筑物屋顶的整体重建变为了屋顶面片的重建,实现方便。同一条屋脊线在不同面片中进行了两次计算,最大程度地保留了细节的特征和面片间的拓扑关系。同时,考虑到了LiDAR数据的高程特征,利用高点的坐标处理阶跃线,同时根据房屋主方向规则化阶跃线,因而兼顾了模型精度和规则化程度。本发明不需要其他辅助数据的支持,具有较高的自动化程度和重建精度。对于具有复杂结构的建筑物重建,得到更理想的矢量模型结果,为复杂结构建筑物的重建提供了一种新的方法。
5、使用效果好,本发明在利用机载LiDAR数据,提出了一种顾及多面片拓扑关系的建筑物三维建模的方法。针对多面片建筑物的特点延伸的按照屋脊线、阶跃线和边界线分类的处理面片的矢量边界,而不是传统的提取建筑物内的特征线;并提出了不同类别矢量线间的处理方法,保证了模型在分割的基础上,最大程度地还原点云的三维空间特征。
由于LiDAR点云数据数据本身易获取且成本低,可快速对现实城市中各种房屋类型的建筑要素精确定位、准确提取三维坐标信息。本发明在此基础上提出了一种快速高效的三维建模方案,完全自动化的重建三维建筑模型。在数据组织上不需要构建三角网或栅格化处理点云,直接利用kd树分析点云的三维空间结构,节省了资源空间,大量减少了工作量,提高了方法的运行速度,降低了建模成本。
综上所述,本发明方法步骤简单、设计合理且实现方便、使用效果好,能简便、快速完成建筑物屋顶的重建过程,并且所建模型的精确度高,其利用LiDAR点云数据的空间结构,解决了复杂建筑物模型三维重建的问题,具有运行效率高、速度快等特点,得到的模型最大程度保留了点云细节,精确度高、鲁棒性强。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的方法流程框图。
图2为所获取建筑物屋面的点云图。
图3为采用本发明所获取建筑物屋面外边界线的点云图。
图4为采用本发明获取的建筑物屋顶的矢量模型图。
图5为对本发明获取的建筑物屋顶矢量模型进行渲染后的模型图。
具体实施方式
如图1所示的一种基于机载LiDAR数据的建筑物屋顶重建方法,包括以下步骤:
步骤一、LiDAR点云数据获取:采用机载LiDAR测量系统获取待测区域的点云数据,并将所获取的点云数据传送至数据处理设备;所述点云数据中包括待测区域内多个建筑物屋顶的点云数据,每个建筑物屋顶的点云数据均包括该建筑物屋顶的多个测点及各测点的三维坐标。
本实施例中,进行LiDAR点云数据处理之前;先通过设置高程阈值对所获取的点云数据进行滤波,去除所述点云数据中需处理建筑物之外的其它地物的点云数据。同时,还需对滤波后的点云数据进行分类,找出待测区域内各建筑物的点云数据。
本实施例中,如图2所示,所获取的点云数据为一个住宅区的点云数据,点云密度为30点/m2,平均点间距约20cm。
步骤二、LiDAR点云数据处理:采用所述数据处理设备分别对多个建筑物的点云数据进行处理,并获取各建筑物屋顶的矢量模型;多个建筑物的点云数据处理过程均相同;对待测区域内的任一个建筑物的点云数据进行处理时,过程如下:
步骤201、建筑物屋顶面片分割:采用区域生长方法对当前所处理建筑物屋顶的点云数据进行处理,从当前所处理建筑物屋顶分割出多个屋顶面片,并获得多个屋顶面片的点云数据;之后,根据各屋顶面片的点云数据,且采用最小二乘法对各屋面面片分别进行平面拟合,获得各屋顶面片所在平面的平面方程;同时,对多个屋顶面片进行编号,并对多个屋顶面片的相邻关系分别进行记录,每个屋顶面片的相邻关系均包括与该屋顶面片相邻的屋顶面片的数量以及各相邻屋顶面片的布设位置。
多个所述屋顶面片均为平面,每个屋顶面片的点云数据均包括位于该屋顶面片上的多个测点及各测点的三维坐标;多个所述屋顶面片的数量为N'个,N'为正整数且N'≥2。
本实施例中,步骤201中进行建筑物屋顶面片分割时,先将当前所处理建筑物屋顶的点云数据构建kd树,再从当前所处理建筑物屋顶的点云数据中随机选取一个测点作为种子点,并采用K邻近搜索算法搜索出多个邻近点,搜索出的多个邻近点与所述种子点组成邻近点集;之后,计算出所述邻近点集的法向量,并按照计算出的法向量进行区域生长,便分割出一个屋顶面片,且将所分割出的屋顶面片中的所有测点均从当前所处理建筑物屋顶的点云数据中删除;然后,按照对当前所处理建筑物屋顶的点云数据中剩余的点云数据再次进行屋顶面片分割,直至分割出所有屋顶面片。此处,所构建的kd树为三维kd树。
其中,对所述邻近点集的法向量进行计算时,先对所述邻近点集中所有测点的法向量进行计算;之后,将所述邻近点集中所有测点的法向量叠加后,获得所述邻近点集的法向量。
本实施例中,采用K邻近搜索算法搜索出邻近点的数量为15个~20个。,
所述邻近点集中所包含测点的数量为D'个,D'个测点由先至后分别为Clj1、Clj2、…、CljD',其中Clj1又记作Clj(D'+1);D'个测点中任一个测点Cljd'的法向量为(Nd'.X,Nd'.Y,Nd'.Z),Nd'.X=(Cljd'.z+Clj(d'+1).z)×(Cljd'.y-Clj(d'+1).y),Nd'.Y=(Cljd'i.x+Clj(d'+1).x)×(Cljd'.z-Clj(d'+1).z),Nd'.Z=(Cljd'.y+Clj(d'+1).y)×(Cljd'.x-Clj(d'+1).x);其中,测点Cljd'的三维坐标为(Cljd'.x,Cljd'.y,Cljd'.z),测点Clj(d'+1)的三维坐标为(Clj(d'+1).x,Clj(d'+1).y,Clj(d'+1).z)。
本实施例中,根据各屋顶面片的点云数据,且采用最小二乘法对各屋面面片分别进行平面拟合时,所用的平面模型为A1×x+B1×y+C1×z=n1。
步骤202、建筑物屋面点云数据获取:根据步骤201中所记录的多个屋顶面片的相邻关系,将多个屋顶面片的点云数据组合形成当前所处理建筑物屋面的点云数据。
步骤203、建筑物屋面及各屋顶面片的外轮廓点提取:调用外轮廓点提取模块,从步骤202中所获取的当前所处理建筑物屋面的点云数据中提取出当前所处理建筑物屋面的多个外轮廓点,并获得当前所处理建筑物屋面的外轮廓点集合A'。同时,分别从步骤201中各屋顶面片的点云数据中提取出各屋顶面片的多个外轮廓点,并获得各屋顶面片的外轮廓点集合。
步骤204、屋顶面片矢量边界获取:结合步骤201中多个屋顶面片的点云数据和相邻关系以及步骤203中各屋顶面片的外轮廓点集合,获取多个屋顶面片的矢量边界;多个屋顶面片的矢量边界获取方法均相同,对任一个屋顶面片Si的矢量边界进行获取时,过程如下:
步骤2041、建立搜索信息集合:将多个所述屋顶面片中除屋顶面片S'i'之外的N'-1个屋顶面片的点云数据,组合成搜索信息集合Ji';搜索信息集合Ji'中包括N'-1个子集合,N'-1个子集合分别为N'-1个屋顶面片的点云数据;其中,i'为屋顶面片的编号,i'为正整数且i'=1、2、…、N'。
步骤2042、邻域搜索:对屋顶面片S'i'的外轮廓点集合中的各外轮廓点分别进行邻域搜索,获得屋顶面片S'i'的邻域搜索信息,所述邻域搜索信息中包括屋顶面片S'i'的所有外轮廓点的邻域搜索点及各邻域搜索点的三维坐标。
对屋顶面片S'i'的外轮廓点集合中任一个外轮廓点Ci'j'进行邻域搜索时,从步骤201中所建立的搜索信息集合S'i中找出与外轮廓点Ci'j'距离最近的测点,所找出的测点为外轮廓点Ci'j'的邻域搜索点,记作C'i'j'。
其中,j'为正整数且j'=1、2、…、M',M'为屋顶面片S'i'的外轮廓点集合中外轮廓点的总数量。
步骤2043、外轮廓点类别确定:先根据屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标,沿逆时针方向或顺时针方向,由先至后对屋顶面片S'i'的外轮廓点集合中的所有外轮廓点由先至后进行排序,再按照排序结果,由先至后对所述外轮廓点集合中各外轮廓点的邻域搜索点进行处理,并得出各外轮廓点的类别,过程如下:
步骤Ⅰ、邻域搜索点所属屋顶面片编号确定:根据步骤2041中N'-1个所述子集合,判断邻域搜索点C'i'j'所属的子集合;并根据所属的子集合,确定邻域搜索点C'i'j'所属的屋顶面片,记录邻域搜索点C'i'j'所属屋顶面片的编号k',k'为正整数,k'=1、2、…、N'且k'≠i'。
步骤Ⅱ、外轮廓点类别确定:根据当前所处理建筑物屋面的外轮廓点集合A',判断外轮廓点Ci'j'是否属于外轮廓点集合A':当外轮廓点Ci'j'属于外轮廓点集合A'时,外轮廓点Ci'j'的类别为外边界线且其类别编号为U;否则,根据外轮廓点Ci'j'和邻域搜索点C'i'j'的三维坐标,得出外轮廓点Ci'j'和邻域搜索点C'i'j'的高程差Δhij:当Δhij≤Δh0时,外轮廓点Ci'j'的类别为屋脊线且其类别编号记作Tk';当Δhij>Δh0时,外轮廓点Ci'j'的类别为阶跃线且其类别编号记作Wk';其中,Δh0=0.2m~0.4m。
步骤Ⅱ中,当外轮廓点Ci'j'的类别为屋脊线时,说明屋顶面片S'i'在外轮廓点Ci'j'的位置处与编号为k'的屋顶面片相交;当外轮廓点Ci'j'的类别为阶跃线时,说明屋顶面片S'i'与编号为k'的屋顶面片在外轮廓点Ci'j'的位置处阶跃形成高低面;当外轮廓点Ci'j'的类别为外边界线时,说明屋顶面片S'i'的外轮廓点Ci'j'为当前所处理建筑物屋面的外边界点。
步骤Ⅲ、按照步骤Ⅰ至步骤Ⅱ中所述的方法,对下一个外轮廓点的类别进行确定。
步骤Ⅳ、多次重复步骤Ⅲ,直至完成屋顶面片S'i'的外轮廓点集合中所有外轮廓点的类别确定过程。
本实施例中,对步骤Ⅱ中外轮廓点类别进行确定时,当外轮廓点Ci'j'的类别为外边界线且其类别编号为U时,建立边界线类别集合U,并将邻域搜索点C'i'j'放入集合U中;当外轮廓点Ci'j'的类别为屋脊线且其类别编号记作Tk'时,建立屋脊线类别集合Tk',并将邻域搜索点C'i'j'放入集合Tk'中;步骤Ⅲ中对下一个外轮廓点的类别进行确定时,当当前所确定外轮廓点和其邻域搜索点的高程差≤Δh0且阶跃线类别集合Tm'已建立时,将当前所确定外轮廓点的邻域搜索点放入集合Tm'中;否则,需建立屋脊线类别集合Tm',并将当前所确定外轮廓点的邻域搜索点放入集合Tm'中;其中,m'为当前所确定外轮廓点的邻域搜索点所属屋顶面片的编号,m'为正整数,m'=1、2、…、N'且m'≠i'。也就是说,将连续的相同类别编号的点放入到同一集合中。
另外,步骤2042进行邻域搜索过程中,未查找到邻域搜索点时,则将外轮廓点Ci'j'放入集合K',步骤2043中进行外轮廓点类别确定和步骤2044中进行矢量边界确定时,无需考虑放入集合K'中的外轮廓点。
步骤2044、矢量边界确定:根据步骤2043中所确定屋顶面片Si的外轮廓点集合中各外轮廓点的类别,并结合屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标和步骤201中所记录的屋顶面片S'i'的相邻关系,对屋顶面片S'i'的矢量边界进行确定。
步骤2045、多次重复步骤2041至步骤2044,直至完成多个屋顶面片的矢量边界确定过程。
步骤205、建筑物屋顶矢量模型获取:待步骤204中多个屋顶面片的矢量边界确定后,便获得当前所处理建筑物屋顶的矢量模型,详见图4。对图4中的矢量模型进行渲染后,获得的模型详见图5。
本实施例中,步骤204中进行屋顶面片矢量边界获取之前,还需根据步骤203中所获取的当前所处理建筑物屋面的外轮廓点集合,调用外边界线提取模块,提取出当前所处理建筑物屋面的外边界线。
本实施例中,步骤203中所述外轮廓点集合A'中包括当前所处理建筑物屋面的多个外轮廓点及各外轮廓点的三维坐标,各屋顶面片的外轮廓点集合中包括该屋顶面片上的多个外轮廓点及各外轮廓点的三维坐标。
本实施例中,步骤203中对当前所处理建筑物屋面的外轮廓点进行提取时,从当前所处理建筑物屋面的二维数据集中,提取多个外轮廓点,并形成外轮廓点集合A″;所述外轮廓点集合A″中外轮廓点的数量为N个,所述外轮廓点集合A″中包含N个外轮廓点的二维数据,N个所述外轮廓点连接形成当前所处理建筑物屋面的外轮廓线;之后,根据步骤202中当前所处理建筑物屋面的点云数据,获取外轮廓点集合A″中各外轮廓点的三维坐标。
当前所处理建筑物屋面的二维数据集包括当前所处理建筑物的点云数据中多个测点在X-Y平面直角坐标系上的二维坐标。
步骤203中对各屋顶面片的外轮廓点进行提取时,所有屋顶面片的外轮廓点提取方法均与当前所处理建筑物屋面的外轮廓点的提取方法相同;其中,对屋顶面片S'i'的外轮廓点进行提取时,从屋顶面片S'i'的二维数据集中,提取M'个外轮廓点,并形成外轮廓点集合B″;所述外轮廓点集合B″中外轮廓点的数量为M'个,所述外轮廓点集合B″中包含M'个外轮廓点的二维数据;之后,根据步骤201中屋顶面片S'i'的点云数据,获取外轮廓点集合B″中各外轮廓点的三维坐标。
屋顶面片S'i'的二维数据集包括屋顶面片S'i'的点云数据中多个测点在X-Y平面直角坐标系上的二维坐标。
本实施例中,所述外轮廓点集合A″中的N个所述外轮廓点,分别记作A0、A1、A2、…、AN-1。
步骤203中对当前所处理建筑物屋面的外轮廓点进行提取时,过程如下:
步骤2011、构建kd树:将当前所处理建筑物屋面的点云数据中,多个测点在X-Y平面直角坐标系上的二维坐标构建kd树。
此时,所构建的kd树是基于整个建筑物屋面点云数据的二维坐标构建的数据结构,该数据结构根据输入的单个二维坐标能快速搜索到邻近的点集及距离,是一种二维平面的搜索机制。
步骤2012、邻域搜索:利用步骤2011中所构建的kd树在X-Y平面上进行邻域搜索,找出当前所处理建筑物屋面的所有外轮廓点,X-Y平面为X-Y平面直角坐标系所在的水平面;邻域搜索过程如下:
步骤20121、第一次搜索:以极值点A0作为本次搜索的搜索点O1且以X坐标轴的负半轴作为基准向量进行邻域搜索,并在当前搜索点O1的邻域内找出旋转角度最小的测点,所找出的测点为第一次搜索出的外轮廓点A1。
当前搜索点的邻域内任一测点Ci的旋转角度为由基准向量逆时针旋转至向量的旋转角度;极值点A0为当前所处理建筑物的点云数据中X轴坐标值最大、X轴坐标值最小、Y轴坐标值最大或Y轴坐标值最小的测点。
步骤20122、第j次搜索:以第j-1次搜索出的外轮廓点Aj-1作为本次搜索的搜索点Oj且以向量为基准向量进行邻域搜索,并按照步骤20121中所述的方法,在当前搜索点Oj的邻域内找出旋转角度最小的测点,所找出的测点为第j次搜索出的外轮廓点Aj。
其中,j为正整数且j≥2;当j=2时,Aj-2=A0;当j>2时,Aj-2为第j-2次搜索出的外轮廓点。
步骤20123、多次重复步骤20122,直至搜索出的外轮廓点为A0时,完成邻域搜索过程。
综上,对建筑物屋面外轮廓点进行提取时,先构建当前所处理建筑物屋面的二分查找树(即kd树);再以极值点A0作为搜索点,以水平负方向作为基准方向,利用所构建的kd树逆时针搜索邻近点云,两测点间的方向与基准方向的逆时针旋转角度最小的测点作为第二个外轮廓点;之后,继续以第二个外轮廓点作为搜索点,与上一个外轮廓点之间的方向向量作为基准方向,搜索第三个外轮廓点;如此不断重复,直到搜回到起始点(极值点A0),这样形成由建筑物屋面的多个外轮廓点组成的闭合线段,即建筑物屋面的外轮廓线。
步骤20121和步骤20122中进行搜索时,当前搜索点的邻域均为以当前搜索点为中心且以R为搜索半径的圆形区域;其中,R=2d~3d,d为步骤一中所述点云数据的点间距。本实施例中,R=50cm,实际使用时,可以根据u具体需要,对R的取值大小进行相应调整。
本实施例中,步骤20121中当前搜索点O1的邻域内任一测点Ci的旋转角度记作∠aCi,测点Ci的二维坐标为(XCi,YCi);第一次搜索时的基准向量为T1,且T1=(-1,0);对∠aCi进行计算时,先根据公式aCi=XCi×(-1)+YCi×0=-XCi,计算得出aCi:当aCi≥0时,根据公式∠aCi=arccos(aCi),计算得出∠aCi;当aCi<0时,根据公式∠aCi=90°-arccos(aCi),计算得出∠aCi。
步骤20122中当前搜索点Oj的邻域内任一测点Cp的旋转角度记作∠aCp,测点Cp的二维坐标为(XCp,YCp),第j次搜索时的基准向量记作(Xj,Yj);对∠aCp进行计算时,先根据公式aCp=XCp×Xj+YCi×Yj,计算得出aCp:当aCp≥0时,根据公式∠aCp=arccos(aCp),计算得出∠aCi;当aCp<0时,根据公式∠aCp=90°-arccos(aCp),计算得出∠aCi。
本实施例中,步骤2012中进行邻域搜索过程中,将极值点A0和各次搜索到的外轮廓点均标记为已用点。
步骤20123中,多次重复步骤20122且完成第n次搜索后,获得第n次搜索出的外轮廓点An,并将外轮廓点An标记为已用点;之后,按照步骤20122中所述的方法,将An作为搜索点,进行第n+1次搜索,且当第n+1次搜索过程中搜索到的外轮廓点为标记的已用点时,将外轮廓点An标记为不可用点;然后,按照An-1、An-2、…、A1顺序,由先至后对标记为有用点的外轮廓点进行回滚搜索,过程如下:
步骤Ⅰ-1、第一次回滚搜索:对第(n-1)次搜索出的外轮廓点An-1进行回滚搜索,过程如下:
步骤Ⅰ-11、第一次邻域搜索:按照步骤20121中所述的方法,以外轮廓点An-1作为本次搜索的搜索点O11且以向量为基准向量进行邻域搜索;
步骤Ⅰ-12、第一次邻域搜索结果处理:步骤Ⅰ-11中搜索完成后,当在当前搜索点O11的邻域测点集合S'(n-1)中不能找出旋转角度最小的测点时,将外轮廓点An-1标记为不可用点,并进入步骤Ⅱ-1,进行下一次回滚搜索;
反之,当在邻域测点集合S'(n-1)中找出旋转角度最小的测点时,将所找出的测点作为回滚搜索过程中第一次搜索出的外轮廓点A11,且将外轮廓点A11标记为已用点,并判断外轮廓点A11是否为极值点A0:当外轮廓点A11为极值点A0时,完成回滚搜索过程;否则,进入步骤Ⅰ-13,进行下一次邻域搜索;
步骤2012中进行邻域搜索过程中,第(n-1)次搜索时,当前搜索点On-1的邻域内所有测点组成邻域测点集合S(n-1);所述邻域测点集合S(n-1)中的所有未标记的测点组成邻域测点集合S'(n-1);
步骤Ⅰ-13、第k次邻域搜索:以回滚搜索过程中第(k-1)次搜索出的外轮廓点A1(k-1)作为本次搜索的搜索点O1k且以向量为基准向量进行邻域搜索,并按照步骤20121中所述的方法,在当前搜索点O1k的邻域内找出旋转角度最小的测点,所找出的测点为回滚搜索过程中第k次搜索出的外轮廓点A1k;
其中,k为正整数且k≥2;当k=2时,A1(k-2)=O11,A1(k-1)=A11;当j>2时,A1(k-2)为回滚搜索过程中第(k-2)次搜索出的外轮廓点;
步骤Ⅰ-14、第k次邻域搜索结果处理:步骤Ⅰ-13中搜索完成后,判断第k次搜索出的外轮廓点A1k是否为极值点A0:当外轮廓点A1k为极值点A0时,完成回滚搜索过程;否则,返回步骤Ⅰ-13,进行下一次邻域搜索;
步骤Ⅱ-1、第h次回滚搜索:按照步骤Ⅰ-1中所述的方法,对步骤2012中第(n-h+1)次搜索出的外轮廓点An-h+1进行回滚搜索,直至完成回滚搜索过程;其中,h为正整数且h≥2;
步骤2012中完成回滚搜索过程后,当前状态下所有标记为已用点的测点组成所述外轮廓点集合A″,并且所有标记为已用点的测点总数量为N个。
综上所述,进行建筑物屋面外轮廓点提取时,增设回滚搜索机制,因而能有效确保所提取外边界线的准确性和可操作性。
本实施例中,步骤2012中进行邻域搜索过程中,将极值点A0和各次搜索到的外轮廓点由先至后放入外轮廓点集合堆栈中,并将放入所述外轮廓点集合堆栈中的极值点A0和所有外轮廓点均标记为已用点。
步骤20123中,将外轮廓点An标记为不可用点的同时,还需将外轮廓点An从所述外轮廓点集合堆栈中弹出。
步骤Ⅰ-12中将外轮廓点A11标记为已用点的同时,还需将外轮廓点A11放入所述外轮廓点集合堆栈中。
步骤Ⅰ-13中将外轮廓点A1k标记为已用点的同时,还需将外轮廓点A1k所述外轮廓点集合堆栈中。
步骤2012中完成回滚搜索过程后,当前状态下所述外轮廓点集合堆栈内的所有测点组成所述外轮廓点集合。
本实施例中,对当前所处理建筑物屋面的外边界线进行提取时,过程如下:
步骤2031、特征点提取:采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取,并从所述外轮廓点集合A″提取出S个特征点,S个特征点分别记作S1、S2、…、SS;
本实施例中,获得当前所处理建筑物屋面的外轮廓线后,所获得N个外轮廓点A0、A1、A2、…、AN-1沿逆时针方向由前至后进行排列;之后,将外轮廓点A0和AN-1分别作为起始点和终止点,将步骤201中所得到的外轮廓线分割成一条折线段,之后再采用道格拉斯-普扑克算法对该折线段进行特征点提取,所提取的特征点为突变的测点,即拐点。
本实施例中,步骤2031中采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取时,过程如下:
步骤20311、特征点指定:将所述外轮廓点集合A″中N个所述外轮廓点中任意相邻两个外轮廓点AD和AF指定为特征点,并将外轮廓点AD和AF均标记为特征点;其中D和F均为正整数且D≠F,D=1、2、…、N,F=1、2、…、N。
本实施例中,AD=A0,AF=AN-1。
步骤20312、中间特征点获取:将外轮廓点AD和AF作为一个特征点对,从所述外轮廓点集合A''找出一个与特征点对AD与AF所在的直线ADAF的距离最远且未标记的外轮廓点,并将所找出的外轮廓点作为特征点对AD与AF的中间特征点,记作AE,且将外轮廓点AE标记为特征点。
步骤20313、特征点对获取:以步骤20312中获取的中间特征点AE重新组建特征点对。
以中间特征点AE重新组建特征点对时,将中间特征点AE分别与特征点AD和AF组成两个特征点对,两个特征点对分别为特征点对AD与AE和特征点对AE与AF。
步骤20314、中间特征点获取及判断处理:对步骤20313中组成的两个特征点对分别进行中间特征点获取及判断处理,且两个特征点对的中间特征点获取及判断处理方法均相同。
其中,对一个特征点对进行中间特征点获取及判断时,从所述外轮廓点集合A''中找出一个与当前所处理特征点对所在的直线的距离最远且未标记的外轮廓点,并判断所找出的外轮廓点与当前所处理特征点对所在直线的距离d是否大于d0:当d>d0时,将所找出的外轮廓点作为当前所处理特征点对的中间特征点,并将该中间特征点标记为特征点,并进入步骤20315;否则,完成当前所处理特征点对的特征点提取过程。
其中,d0=30cm~50cm。
步骤20315、特征点对获取与中间特征点获取及判断处理:先按照步骤20313中所述的特征点对获取方法,以步骤20314中所获取的中间特征点重新组建特征点对;之后,按照步骤20314中所述的方法,对本步骤中所组建的所有特征点对分别进行中间特征点获取及判断处理。
步骤20316、多次重复步骤20315,直至完成所组建的所有特征点对的特征点提取过程。
本实施例中,步骤20314中对所找出的外轮廓点与当前所处理特征点对所在直线的距离d进行计算时,根据公式 其中所找出的外轮廓点的二维坐标为(An.X,An.y),当前所处理特征点对的两个特征点的二维坐标分别为(At.X,At.y)和(Af.X,Af.y),其中L'1=Af.y-At.y,L'2=At.x-Af.x,L'3=Af.x×At.y-At.x×Af.y。
本实施例中,步骤2031中采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取后,所提取的特征点数量为M个,其中M为正整数且M≥S;M个特征点组成特征点集合,S个特征点分别记作S1、S2、…、SM,特征点S1又记作特征点SM+1。
特征点提取完成后,还需对所提取的M个特征点分别进行判定;其中,对M个特征点中任一个特征点Sh进行判定时,判断特征点Sh与直线Sh-1Sh+1之间的距离dh是否大于d0:当dh>d0时,在所述特征点集合中保留特征点Sh;否则,从所述特征点集合中删除特征点Sh,并将特征点Sh标记为非特征点。
直线Sh-1Sh+1为特征点Sh-1和Sh+1所在的直线,特征点Sh-1和Sh+1为与特征点Sh相邻的两个特征点;其中,h为正整数且h=1、2、…、M。
对M个特征点分别进行判定后,所述特征点集合中特征点的数量为S个。
综上,步骤2031中进行特征点提取时,先从外轮廓点集合中的第一个外轮廓点和最后一个外轮廓点作为特征点对,使外轮廓线形成一条折线段;之后,分别计算特征点对中的两个特征点之间的所有外轮廓点到两个特征点连线的距离,将距离最大且大于d0外轮廓点作为中间特征点,并将中间特征点分别与特征点对中的两个特征点组成两个特征点对;然后,对组成的特征点对再进行中间特征点获取,当中间特征点到特征点对中两个特征点连线的距离小于d0时结束。
由于道格拉斯-普扑克算法存在一定的限制性,主要原因在于外轮廓点集合中的第一个外轮廓点和最后一个外轮廓点(即指定的特征点)要求都不能为拐点,因而提取出的特征点并不都是拐点,因而需对提取出的特征点进行二次确认,即判定。实际进行判定时,根据所判断特征点的前后相邻两个特征点进行验证。
步骤2032、最小二乘法直线拟合及初始边界线获取:对S个特征点中相邻两个特征点所在的直线分别进行拟合,并获得S条拟合直线;S条拟合直线相交形成的封闭曲线为当前所处理建筑物的初始边界线,所述初始边界线由多个直线段连接而成。
对S个特征点中相邻两个特征点Sa和Sb进行直线拟合时,先将特征点Sa和Sb以及步骤201中所述外轮廓点集合中特征点Sa和Sb之间的所有外轮廓点组成直线点集,再利用最小二乘法对所述直线点集进行直线拟合,获得特征点Sa和Sb所在的拟合直线;其中,a和b均为正整数且a≠b,a=1、2、…、S,b=1、2、…、S。
本实施例中,步骤2032中对相邻两个特征点Sa和Sb进行直线拟合时,先将所述直线点集中所有测点的X轴坐标值组成X轴坐标集合,并将所述直线点集中所有测点的X轴坐标值组成Y轴坐标集合;之后,计算X轴坐标集合中多个X轴坐标值的方差,记作σX;同时,计算Y轴坐标集合中多个Y轴坐标值的方差,记作σY;然后,根据计算得出的σX和σY,选取拟合用的直线模型:当σX≥σY时,所选取的直线模型为y=kx+b;否则,当σX<σY时,所选取的直线模型为x=ky+b;最后,根据所述直线点集中所有测点的二维坐标,并利用所选取的直线模型进行直线拟合。
本实施例中,采用直线模型y=kx+b进行直线拟合时,k=[n*Σ(xg×yg)-Σxg×Σyg]/[n×Σyg 2-Σyg×Σyg],式中n为所述直线点集中的测点总数量,Σ(xg×yg)为所述直线点集中所有测点的X轴与Y轴坐标值的乘积之和,Σxg为所述直线点集中所有测点的X轴坐标值之和,Σyg为所述直线点集中所有测点的Y轴坐标值之和,Σyg 2为所述直线点集中所有测点的Y轴坐标值的平方之和。
步骤2033、建筑物主方向及副方向确定:先对步骤2032中所述初始边界线中的多个直线段的方向向量进行确定,再对多个直线段的方向向量的权重分别进行计算,并将权重最大的直线段的方向向量作为当前所处理建筑物的主方向,将当前所处理建筑物的主方向的正交向量作为当前所处理建筑物的副方向。
本实施例中,对步骤2032中所述初始边界线中的多个直线段的方向向量进行确定时,沿逆时针方向由先至后对各直线段的方向向量进行确定。
本实施例中,步骤2032中所述初始边界线由P个直线段组成,所述初始边界线中有P个顶点,P个顶点分别为S条拟合直线相交后的交点,P个顶点沿逆时针方向由先至后分别记作T1、T2、…、TP,P个直线段沿逆时针方向由先至后排列,其中P个直线段中第s条直线段记作直线段TsTs+1,其中s为正整数且s=1、2、…、P,其中顶点T1又记作TP+1,个直线段中第s条直线段的方向方向为TsTs+1。
本实施例中,步骤2033中对多个直线段的方向向量进行确定时,多个所述直线段的方向向量确定方法均相同。对任一个直线段lQ的方向向量VQ进行确定时,根据公式 和公式 进行计算,方向向量VQ=(VQ.X,VQ.Y);式中,直线段lQ的两端点的二维坐标分别为(XQ1,YQ1)和(XQ2,YQ2)。
对直线段lQ的方向向量的权重进行计算时,由先至后将直线段lQ的方向向量VQ,分别与所述初始边界线中其它各直线段的方向向量叠加后,获得直线段lQ的权重向量WQ,过程如下:
步骤20331、叠加顺序确定及角度差阈值c0设定:按照叠加先后顺序,对所述初始边界线中其它各直线段的方向向量进行排序;其中,角度差阈值c0=5°~10°,c⊥=90°-c0。
步骤20332、第一次叠加:将直线段lQ的方向向量VQ作为基准方向向量,先计算得出本次叠加的直线段的方向向量与基准方向向量之间的角度差Δ∠Q1;再结合步骤20331中所设定的c0和c⊥,并根据计算得出的Δ∠Q1确定叠加方式:当Δ∠Q1更接近c0时,将基准方向向量与本次叠加的直线段的方向向量叠加;当Δ∠Q1更接近c⊥时,将基准方向向量与本次叠加直线段的方向向量的正交向量叠加;之后,按照所确定的叠加方式进行叠加,并将叠加后的向量作为下一次叠加的基准叠加向量。
步骤20333、第t次叠加:将第t-1次叠加后的向量作为本次叠加的基准叠加向量,先计算得出本次叠加直线段的方向向量与当前状态下的的基准叠加向量之间的角度差Δ∠Qt;再结合步骤20331中所设定的c0和c⊥,并根据计算得出的Δ∠Qt确定叠加方式:当Δ∠Qt更接近c0时,将当前状态下的基准叠加向量与本次叠加的直线段的方向向量叠加;当Δ∠Qt更接近c⊥时,将当前状态下的基准叠加向量与本次叠加直线段的方向向量的正交向量叠加;之后,按照所确定的叠加方式进行叠加,并将叠加后的向量作为下一次叠加的基准叠加向量。
步骤20334、多次重复步骤20333,直至完成方向向量VQ与所述初始边界线中其它各直线段的方向向量的全部叠加过程,且叠加过程完成后所得的向量为直线段lQ的权重向量WQ。
步骤2033中权重最大的直线段为权重向量的长度最大的直线段。
本实施例中,步骤20332中对本次叠加的直线段的方向向量与基准方向向量之间的角度差Δ∠Q1进行计算时,根据公式Δ∠Q1=arccos(|VL1.X×VQ.X+VL1.Y×VQ.Y|)进行计算;本次叠加的直线段的方向向量为(VL1.X,VL1.Y),基准方向向量为(VQ.X,VQ.Y);
步骤20333中对本次叠加的直线段的方向向量与当前状态下的基准叠加向量之间的角度差Δ∠Qt进行计算时,根据公式Δ∠Qt=arccos(|VLt.X×Vt.X+VLt.Y×Vt.Y|)进行计算;本次叠加的直线段的方向向量为(VLt.X,VLt.Y),当前状态下的基准方向向量为(Vt.X,Vt.Y)。
本实施例中,步骤20332中叠加后的向量记作(VQ'.X,VQ'.Y);将基准方向向量与本次叠加直线段的方向向量叠加时,VQ'.X=VL1.X+VQ.X,VQ'.Y=VL1.Y+VQ.Y;将基准方向向量与本次叠加直线段的方向向量的正交向量叠加时,VQ'.X=VL1⊥.X+VQ.X,VQ'.Y=VL1⊥.Y+VQ.Y;本次叠加直线段的方向向量的正交向量为(VL1⊥.X,VL1⊥.Y);
步骤20333中叠加后的向量记作(Vt'.X,Vt'.Y);将当前状态下的基准叠加向量与本次叠加的直线段的方向向量叠加时,Vt'.X=VLt.X+Vt.X,Vt'.Y=VLt.Y+Vt.Y;将当前状态下的基准叠加向量与本次叠加直线段的方向向量的正交向量叠加时,Vt'.X=VLt⊥.X+Vt.X,Vt'.Y=VLt⊥.Y+Vt.Y;本次叠加直线段的方向向量的正交向量为(VLt⊥.X,VLt⊥.Y)。
步骤2034、初始边界线规则化:对步骤2032中所述初始边界线中的多个直线段分别进行规则化处理。
对所述初始边界线中任一个直线段进行规则化处理时,过程如下:
步骤2034-1、规则化方向确定:根据步骤2033中所确定的主方向和副方向以及当前所处理直线段的方向向量,对当前所处理直线段的规则化方向进行确定:当当前所处理直线段的方向向量更靠近主方向时,以主方向作为规则化方向;反之,当当前所处理直线段的方向向量更靠近副方向时,以副方向作为规则化方向。
步骤2034-2、是否需进行规则化判断:计算当前所处理直线段在步骤2034-1中所确定规则化方向上的投影长度L,并根据投影长度L对当前所处理直线段是否需进行规则化进行判断:当投影长度L≤L0时,进入步骤2034-3;否则,无需进行规则化处理,将当前所处理直线段所在的直线作为其规则化直线;其中,L0=50cm~1m。
步骤2034-3、规则化处理:以当前所处理直线段的中点为起点,且以步骤2034-1中所确定的规则化方向为方向向量,生成当前所处理直线段的规则化直线。
本实施例中,步骤2034中进行初始边界线规则化之前,先找出步骤2032中所述初始边界线中方向向量相同的所有直线段,并将方向向量相同的所有直线段合并为一条直线;进行规则化处理时,仅需对合并后的直线进行规则化处理。实际进行规则化处理时,合并后直线的中点坐标为取方向向量相同的所有直线段的平均值。
本实施例中,步骤2034-2中对当前所处理直线段在步骤2034-1中所确定规则化方向上的投影长度L进行计算时,先根据公式Δ∠θ=arccos(|VH.X×V主.X+VH.Y×V主.Y|)进行计算,当前所处理直线段的方向向量为(VH.X,VH.Y),主方向为(V主.X,V主.Y);之后,根据计算得出的Δ∠θ,对投影长度L进行计算:当步骤2034-1中所确定规则化方向为主方向时,当步骤2034-1中所确定规则化方向为副方向时,
综上,实际进行规划化处理时,当前所处理直线段的中点坐标保持不变,方向向量改为主方向或副方向。
步骤2035、规则化边界线获取:步骤2034中所述初始边界线中的多个直线段均规则化处理完成后,多个直线段的规则化直线相交形成的封闭曲线为当前所处理建筑物的规划化边界线。
如图3所示,采用本发明所述的方法对边界线进行规划化后,除部分弧线或者大角度的线段外,得到的建筑物屋面外边界线在规则化的前提下,覆盖了全部点云的外边界,使用效果非常好。图3中,左侧为未经规则化的边界线,右侧为规则化后的边界线。
本实施例中,步骤2042中对外轮廓点Ci'j'进行邻域搜索时,以外轮廓点Ci'j'为中心且以0.5m~1.5m为搜索半径进行搜索。实际使用时,可以根据具体需要,对搜索半径进行相应调整。并且,实际进行搜索时,沿逆时针方向进行搜索,并且以外轮廓点Ci'j'的邻近区域内最外一点(即X轴坐标或Y轴坐标值最小的测点)开始搜索。
本实施例中,步骤2044中进行矢量边界确定之前,还需根据屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标,沿逆时针方向或顺时针方向,由先至后对屋顶面片S'i'的外轮廓点集合中的所有外轮廓点进行排序,并根据外轮廓点的排序结果,对步骤2043中得出的所有外轮廓点的类别编号进行排序,获得屋顶面片S'i'的外轮廓点类别编号序列。
排序完成后,屋顶面片S'i'中相邻两个外轮廓点的类别编号相邻;所述外轮廓点类别编号序列中,多个外轮廓点的类别编号由先至后分别记作Li'1、Li'2、…、Li'M'。
本实施例中,步骤Ⅱ中当Δhij>Δh0时,还需对外轮廓点Ci'j'和邻域搜索点C'i'j'的高程进行比较,并建立阶跃线类别集合Wk',且将外轮廓点Ci'j'和邻域搜索点C'i'j'中高程高的点放入阶跃线类别集合Wk'中。
步骤Ⅲ中对下一个外轮廓点的类别进行确定时,当当前所确定外轮廓点和其邻域搜索点的高程差>Δh0时,还需对当前所确定外轮廓点和其邻域搜索点的高程进行比较:当阶跃线类别集合Wm'已建立时,将当前所确定外轮廓点和其邻域搜索点中高程高的点放入集合Wm'中;否则,需建立阶跃线类别集合Wm',并将当前所确定外轮廓点和其邻域搜索点中高程高的点放入集合Wm'中;其中,m'为当前所确定外轮廓点的邻域搜索点所属屋顶面片的编号,m'为正整数,m'=1、2、…、N'且m'≠i'。
本实施例中,步骤Ⅱ中类别编号Tk'中,T表示类别为屋脊线,k'表示在外轮廓点Ci'j'的位置处屋顶面片S'i'与编号为k'的屋顶面片相交。
类别编号记作Wk'中,W表示类别为阶跃线,k'表示在外轮廓点Ci'j'的位置处屋顶面片S'i'与编号为k'的屋顶面片之间形成高低面。
本实施例中,步骤2044中进行矢量边界确定时,由先至后对步骤2043中所述外轮廓点类别编号序列中相邻两个类别编号分别进行矢量边界点提取处理,过程如下:
步骤ⅰ、对类别编号Li'1和Li'2进行矢量边界点提取处理:先判断Li1和Li2是否相同:当Li1=Li2时,完成矢量边界点提取过程;否则,获取与类别编号Li'1和Li'2对应的矢量边界点,过程如下:
当Li'1=Tg'且Li'2=Th'时,先计算出屋顶面片S'i'与编号为g'的屋顶面片之间的相交直线段lg'和屋顶面片S'i'与编号为h'的屋顶面片之间的相交直线段lh',再计算出直线段lg'和lh'的交点Cg'h',交点Cg'h'为与类别编号Li'1和Li'2对应的矢量边界点。其中,交点Cg'h'为三个平面(即屋顶面片S'i'、编号为g'的屋顶面片和编号为h'的屋顶面片)的交点。当Li'1=Tg'且Li'2=Th'时,说明屋顶面片S'i'先与编号为g'的屋顶面片相交,紧接着再与编号为h'的屋顶面片相交。
当Li'1和Li'2中一个编号为Ta'且另一编号为U时,先计算出屋顶面片S'i'与编号为a'的屋顶面片之间的相交直线段la',再结合屋顶面片S'i'的相邻关系,计算出直线段la'与当前所处理建筑物屋面的外边界线之间的交点Ca',Ca'为与类别编号Li'1和Li'2对应的矢量边界点。其中,交点Ca'处于当前所处理建筑物屋面的外边界线上,交点Ca'为屋顶面片S'i'与编号为a'的屋顶面片的公共交点。对交点Ca'的计算方法为:先计算出直线段la'与当前所处理建筑物屋面的外边界线中相交的所有交点,再将所求出的交点中距离kd树搜索得到的点距离最近的点作为Ca'。当Li'1=Ta'且Li'2=U时,说明屋顶面片S'i'先与编号为a'的屋顶面片相交且其下一条外边界线段为当前所处理建筑物屋面的外边界线;反之,当Li'1=U且Li'2=Ta'时,说明屋顶面片S'i'的一条外边界线段为当前所处理建筑物屋面的外边界线,紧接着屋顶面片S'i'再与编号为a'的屋顶面片相交。
当Li'1和Li'2中一个编号为Wb'且另一编号为U时,先根据阶跃线类别集合Wb'中所有点的三维坐标,采用最小二乘法拟合出集合Wk'中所有点所处的直线lb',再结合屋顶面片S'i'的相邻关系,计算出直线lb'与当前所处理建筑物屋面的外边界线之间的交点Cb',Cb'位于屋顶面片S'i'与编号为b'的屋顶面片的交界线上,Cb'为与类别编号Li'1和Li'2对应的矢量边界点。其中,当Li'1=Wb'且Li'2=U时,说明屋顶面片S'i'先与编号为b'的屋顶面片阶跃形成高低面且其下一条外边界线段为当前所处理建筑物屋面的外边界线;反之,当Li'1=U且Li'2=Wb'时,说明屋顶面片S'i'的一条外边界线段为当前所处理建筑物屋面的外边界线,紧接着屋顶面片S'i'再与编号为a'的屋顶面片阶跃形成高低面。
当Li'1和Li'2中一个编号为Te'且另一编号为Wf'时,先计算出屋顶面片S'i'与编号为e'的屋顶面片之间的相交直线段le';同时,根据阶跃线类别集合Wf'中所有点的三维坐标,采用最小二乘法拟合出集合Wf'中所有点所处的直线lf',再结合屋顶面片S'i'的相邻关系,计算出直线段le'与直线lf'之间的交点Ce'f',Ce'f'为与类别编号Li'1和Li'2对应的矢量边界点。其中,当Li'1=Te'且Li'2=Wf'时,说明屋顶面片S'i'先与编号为e'的屋顶面片相交,紧接着再与编号为f'的屋顶面片阶跃形成高低面;反之,当Li'1=Wf'且Li'2=Te'时,说明屋顶面片S'i'先与编号为f'的屋顶面片阶跃形成高低面,紧接着再与编号为e'的屋顶面片相交。
当Li'1=Wp'且Li'2=Wq'时,根据阶跃线类别集合Wp'中所有点的三维坐标,采用最小二乘法拟合出集合Wp'中所有点所处的直线lp';同时,根据阶跃线类别集合Wq'中所有点的三维坐标,采用最小二乘法拟合出集合Wq'中所有点所处的直线lq',再计算出直线lp'和lq'的交点Cp'q',交点Cp'q'为与类别编号Li'1和Li'2对应的矢量边界点。此时,屋顶面片S'i'先与编号为p'的屋顶面片阶跃形成高低面,紧接着再与编号为q'的屋顶面片阶跃形成高低面。
其中,g'、h'、a'、b'和e'均为屋顶面片的编号。
步骤ⅱ、对类别编号Li't'和Li'(t'+1)进行矢量边界点提取处理:按照步骤ⅰ中所述的方法,对类别编号Li't'和Li'(t'+1)进行矢量边界点提取处理;其中,t'为正整数且t'=1、2、…、M';其中,Li'1又记作Li'(M'+1)。
步骤ⅲ、多次重复步骤ⅱ,直至完成所述外轮廓点类别编号序列中任意相邻两个类别编号的矢量边界点提取处理过程。
步骤ⅳ、将步骤ⅰ至步骤ⅲ中所提取的所有矢量边界点,按照提取的先后顺序由先至后连接,获得屋顶面片S'i'的矢量边界。
本实施例中,步骤ⅰ中对交点Cg'h'进行求解时,先利用屋顶面片S'i'与编号为g'的屋顶面片的平面方程,求出相交直线段lg'后,再得出直线段lg'在X-Y平面上的投影直线lg'(只需不考虑直线段lg'中的Z轴坐标即可);同理,利用屋顶面片S'i'与编号为h'的屋顶面片的平面方程,求出相交直线段lh',后,再得出直线段lh'在X-Y平面上的投影直线lh'(只需不考虑直线段lh'中的Z轴坐标即可),此时只需在X-Y平面上求出投影直线lg'和投影直线lh'的交点Cg'h',便得出交点Cg'h'的二维坐标,由于交点Cg'h'位于屋顶面片S'i'上,则结合屋顶面片S'i'的平面方程,便能得出交点Cg'h'的三维坐标。
对交点Ca'进行求解时,由于所得出的当前所处理建筑物屋面的外边界线位于二维平面(即X-Y平面)上,先利用屋顶面片S'i'与编号为a'的屋顶面片的平面方程,求出相交直线段la'后,再得出直线段la'在X-Y平面上的投影直线la'(只需不考虑直线段la'中的Z轴坐标即可);然后,结合屋顶面片S'i'的相邻关系,计算出投影直线la'与当前所处理建筑物屋面的外边界线之间的交点Ca',此时得出交点Ca'的二维坐标,由于交点Ca'位于屋顶面片S'i'上,则结合屋顶面片S'i'的平面方程,便能得出交点Ca'的三维坐标。
对交点Cb'进行求解时,先得出直线lb'在X-Y平面上的投影直线lb'(只需不考虑直线段lb'中的Z轴坐标即可);然后,再结合屋顶面片S'i'的相邻关系,计算出投影直线lb'与当前所处理建筑物屋面的外边界线之间的交点Cb',此时得出交点Cb'的二维坐标,由于交点Cb'位于屋顶面片S'i'上,则结合屋顶面片S'i'的平面方程,便能得出交点Cb'的三维坐标。
对交点Ce'f'进行求解时,先利用屋顶面片S'i'与编号为e'的屋顶面片的的平面方程,求出相交直线段le'后,再得出直线段le'在X-Y平面上的投影直线le'(只需不考虑直线段le'中的Z轴坐标即可);同时,得出直线lf'在X-Y平面上的投影直线lf'(只需不考虑直线段lf'中的Z轴坐标即可);然后,计算出投影直线le'与投影直线lf'之间的交点Ce'f',此时得出交点Ce'f'的二维坐标,由于交点Ce'f'位于屋顶面片S'i'上,则结合屋顶面片S'i'的平面方程,便能得出交点Ce'f'的三维坐标。
对交点Cp'q'进行求解时,先得出直线段lp'在X-Y平面上的投影直线lp'(只需不考虑直线段lp'中的Z轴坐标即可);同时,得出直线lq'在X-Y平面上的投影直线lq'(只需不考虑直线段lq'中的Z轴坐标即可);然后,计算出投影直线lp'与投影直线lq'之间的交点Cp'q',此时得出交点Cp'q'的二维坐标,由于交点Cp'q'位于屋顶面片S'i'上,则结合屋顶面片S'i'的平面方程,便能得出交点Cp'q'的三维坐标。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
Claims (10)
1.一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于该方法包括以下步骤:
步骤一、LiDAR点云数据获取:采用机载LiDAR测量系统获取待测区域的点云数据,并将所获取的点云数据传送至数据处理设备;所述点云数据中包括待测区域内多个建筑物屋顶的点云数据,每个建筑物屋顶的点云数据均包括该建筑物屋顶的多个测点及各测点的三维坐标;
步骤二、LiDAR点云数据处理:采用所述数据处理设备分别对多个建筑物的点云数据进行处理,并获取各建筑物屋顶的矢量模型;多个建筑物的点云数据处理过程均相同;对待测区域内的任一个建筑物的点云数据进行处理时,过程如下:
步骤201、建筑物屋顶面片分割:采用区域生长方法对当前所处理建筑物屋顶的点云数据进行处理,从当前所处理建筑物屋顶分割出多个屋顶面片,并获得多个屋顶面片的点云数据;之后,根据各屋顶面片的点云数据,且采用最小二乘法对各屋面面片分别进行平面拟合,获得各屋顶面片所在平面的平面方程;同时,对多个屋顶面片进行编号,并对多个屋顶面片的相邻关系分别进行记录,每个屋顶面片的相邻关系均包括与该屋顶面片相邻的屋顶面片的数量以及各相邻屋顶面片的布设位置;
多个所述屋顶面片均为平面,每个屋顶面片的点云数据均包括位于该屋顶面片上的多个测点及各测点的三维坐标;多个所述屋顶面片的数量为N'个,N'为正整数且N'≥2;
步骤202、建筑物屋面点云数据获取:根据步骤201中所记录的多个屋顶面片的相邻关系,将多个屋顶面片的点云数据组合形成当前所处理建筑物屋面的点云数据;
步骤203、建筑物屋面及各屋顶面片的外轮廓点提取:调用外轮廓点提取模块,从步骤202中所获取的当前所处理建筑物屋面的点云数据中提取出当前所处理建筑物屋面的多个外轮廓点,并获得当前所处理建筑物屋面的外轮廓点集合A';同时,分别从步骤201中各屋顶面片的点云数据中提取出各屋顶面片的多个外轮廓点,并获得各屋顶面片的外轮廓点集合;
步骤204、屋顶面片矢量边界获取:结合步骤201中多个屋顶面片的点云数据和相邻关系以及步骤203中各屋顶面片的外轮廓点集合,获取多个屋顶面片的矢量边界;多个屋顶面片的矢量边界获取方法均相同,对任一个屋顶面片Si的矢量边界进行获取时,过程如下:
步骤2041、建立搜索信息集合:将多个所述屋顶面片中除屋顶面片S'i'之外的N'-1个屋顶面片的点云数据,组合成搜索信息集合Ji';搜索信息集合Ji'中包括N'-1个子集合,N'-1个子集合分别为N'-1个屋顶面片的点云数据;其中,i'为屋顶面片的编号,i'为正整数且i'=1、2、…、N';
步骤2042、邻域搜索:对屋顶面片S'i'的外轮廓点集合中的各外轮廓点分别进行邻域搜索,获得屋顶面片S'i'的邻域搜索信息,所述邻域搜索信息中包括屋顶面片S'i'的所有外轮廓点的邻域搜索点及各邻域搜索点的三维坐标;
对屋顶面片S'i'的外轮廓点集合中任一个外轮廓点Ci'j'进行邻域搜索时,从步骤201中所建立的搜索信息集合S'i中找出与外轮廓点Ci'j'距离最近的测点,所找出的测点为外轮廓点Ci'j'的邻域搜索点,记作C'i'j';
其中,j'为正整数且j'=1、2、…、M',M'为屋顶面片S'i'的外轮廓点集合中外轮廓点的总数量;
步骤2043、外轮廓点类别确定:先根据屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标,沿逆时针方向或顺时针方向,由先至后对屋顶面片S'i'的外轮廓点集合中的所有外轮廓点由先至后进行排序,再按照排序结果,由先至后对所述外轮廓点集合中各外轮廓点的邻域搜索点进行处理,并得出各外轮廓点的类别,过程如下:
步骤Ⅰ、邻域搜索点所属屋顶面片编号确定:根据步骤2041中N'-1个所述子集合,判断邻域搜索点C'i'j'所属的子集合;并根据所属的子集合,确定邻域搜索点C'i'j'所属的屋顶面片,记录邻域搜索点C'i'j'所属屋顶面片的编号k',k'为正整数,k'=1、2、…、N'且k'≠i';
步骤Ⅱ、外轮廓点类别确定:根据当前所处理建筑物屋面的外轮廓点集合A',判断外轮廓点Ci'j'是否属于外轮廓点集合A':当外轮廓点Ci'j'属于外轮廓点集合A'时,外轮廓点Ci'j'的类别为外边界线且其类别编号为U;否则,根据外轮廓点Ci'j'和邻域搜索点C'i'j'的三维坐标,得出外轮廓点Ci'j'和邻域搜索点C'i'j'的高程差Δhij:当Δhij≤Δh0时,外轮廓点Ci'j'的类别为屋脊线且其类别编号记作Tk';当Δhij>Δh0时,外轮廓点Ci'j'的类别为阶跃线且其类别编号记作Wk';其中,Δh0=0.2m~0.4m;
步骤Ⅲ、按照步骤Ⅰ至步骤Ⅱ中所述的方法,对下一个外轮廓点的类别进行确定;
步骤Ⅳ、多次重复步骤Ⅲ,直至完成屋顶面片S'i'的外轮廓点集合中所有外轮廓点的类别确定过程;
步骤2044、矢量边界确定:根据步骤2043中所确定屋顶面片Si的外轮廓点集合中各外轮廓点的类别,并结合屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标和步骤201中所记录的屋顶面片S'i'的相邻关系,对屋顶面片S'i'的矢量边界进行确定;
步骤2045、多次重复步骤2041至步骤2044,直至完成多个屋顶面片的矢量边界确定过程;
步骤205、建筑物屋顶矢量模型获取:待步骤204中多个屋顶面片的矢量边界确定后,便获得当前所处理建筑物屋顶的矢量模型。
2.按照权利要求1所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤201中进行建筑物屋顶面片分割时,先将当前所处理建筑物屋顶的点云数据构建kd树,再从当前所处理建筑物屋顶的点云数据中随机选取一个测点作为种子点,并采用K邻近搜索算法搜索出多个邻近点,搜索出的多个邻近点与所述种子点组成邻近点集;之后,计算出所述邻近点集的法向量,并按照计算出的法向量进行区域生长,便分割出一个屋顶面片,且将所分割出的屋顶面片中的所有测点均从当前所处理建筑物屋顶的点云数据中删除;然后,按照对当前所处理建筑物屋顶的点云数据中剩余的点云数据再次进行屋顶面片分割,直至分割出所有屋顶面片;
其中,对所述邻近点集的法向量进行计算时,先对所述邻近点集中所有测点的法向量进行计算;之后,将所述邻近点集中所有测点的法向量叠加后,获得所述邻近点集的法向量;
所述邻近点集中所包含测点的数量为D'个,D'个测点由先至后分别为Clj1、Clj2、…、CljD',其中Clj1又记作Clj(D'+1);D'个测点中任一个测点Cljd'的法向量为(Nd'.X,Nd'.Y,Nd'.Z),Nd'.X=(Cljd'.z+Clj(d'+1).z)×(Cljd'.y-Clj(d'+1).y),Nd'.Y=(Cljd'i.x+Clj(d'+1).x)×(Cljd'.z-Clj(d'+1).z),Nd'.Z=(Cljd'.y+Clj(d'+1).y)×(Cljd'.x-Clj(d'+1).x);其中,测点Cljd'的三维坐标为(Cljd'.x,Cljd'.y,Cljd'.z),测点Clj(d'+1)的三维坐标为(Clj(d'+1).x,Clj(d'+1).y,Clj(d'+1).z)。
3.按照权利要求1或2所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤2042中对外轮廓点Ci'j'进行邻域搜索时,以外轮廓点Ci'j'为中心且以0.5m~1.5m为搜索半径进行搜索。
4.按照权利要求1或2所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤204中进行屋顶面片矢量边界获取之前,还需根据步骤203中所获取的当前所处理建筑物屋面的外轮廓点集合,调用外边界线提取模块,提取出当前所处理建筑物屋面的外边界线。
5.按照权利要求4所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤Ⅱ中当Δhij>Δh0时,还需对外轮廓点Ci'j'和邻域搜索点C'i'j'的高程进行比较,并建立阶跃线类别集合Wk',且将外轮廓点Ci'j'和邻域搜索点C'i'j'中高程高的点放入阶跃线类别集合Wk'中;
步骤Ⅲ中对下一个外轮廓点的类别进行确定时,当当前所确定外轮廓点和其邻域搜索点的高程差>Δh0时,还需对当前所确定外轮廓点和其邻域搜索点的高程进行比较:当阶跃线类别集合Wm'已建立时,将当前所确定外轮廓点和其邻域搜索点中高程高的点放入集合Wm'中;否则,需建立阶跃线类别集合Wm',并将当前所确定外轮廓点和其邻域搜索点中高程高的点放入集合Wm'中;其中,m'为当前所确定外轮廓点的邻域搜索点所属屋顶面片的编号,m'为正整数,m'=1、2、…、N'且m'≠i'。
6.按照权利要求5所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤2044中进行矢量边界确定之前,还需根据屋顶面片S'i'的外轮廓点集合中各外轮廓点的三维坐标,沿逆时针方向或顺时针方向,由先至后对屋顶面片S'i'的外轮廓点集合中的所有外轮廓点进行排序,并根据外轮廓点的排序结果,对步骤2043中得出的所有外轮廓点的类别编号进行排序,获得屋顶面片S'i'的外轮廓点类别编号序列;
排序完成后,屋顶面片S'i'中相邻两个外轮廓点的类别编号相邻;所述外轮廓点类别编号序列中,多个外轮廓点的类别编号由先至后分别记作Li'1、Li'2、…、Li'M'。
7.按照权利要求6所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤Ⅱ中类别编号Tk'中,T表示类别为屋脊线,k'表示在外轮廓点Ci'j'的位置处屋顶面片S'i'与编号为k'的屋顶面片相交;
类别编号记作Wk'中,W表示类别为阶跃线,k'表示在外轮廓点Ci'j'的位置处屋顶面片S'i'与编号为k'的屋顶面片之间形成高低面;
步骤2044中进行矢量边界确定时,由先至后对步骤2043中所述外轮廓点类别编号序列中相邻两个类别编号分别进行矢量边界点提取处理,过程如下:
步骤ⅰ、对类别编号Li'1和Li'2进行矢量边界点提取处理:先判断Li1和Li2是否相同:当Li1=Li2时,完成矢量边界点提取过程;否则,获取与类别编号Li'1和Li'2对应的矢量边界点,过程如下:
当Li'1=Tg'且Li'2=Th'时,先计算出屋顶面片S'i'与编号为g'的屋顶面片之间的相交直线段lg'和屋顶面片S'i'与编号为h'的屋顶面片之间的相交直线段lh',再计算出直线段lg'和lh'的交点Cg'h',交点Cg'h'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1和Li'2中一个编号为Ta'且另一编号为U时,先计算出屋顶面片S'i'与编号为a'的屋顶面片之间的相交直线段la',再结合屋顶面片S'i'的相邻关系,计算出直线段la'与当前所处理建筑物屋面的外边界线之间的交点Ca',Ca'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1和Li'2中一个编号为Wb'且另一编号为U时,先根据阶跃线类别集合Wb'中所有点的三维坐标,采用最小二乘法拟合出集合Wk'中所有点所处的直线lb',再结合屋顶面片S'i'的相邻关系,计算出直线lb'与当前所处理建筑物屋面的外边界线之间的交点Cb',Cb'位于屋顶面片S'i'与编号为b'的屋顶面片的交界线上,Cb'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1和Li'2中一个编号为Te'且另一编号为Wf'时,先计算出屋顶面片S'i'与编号为e'的屋顶面片之间的相交直线段le';同时,根据阶跃线类别集合Wf'中所有点的三维坐标,采用最小二乘法拟合出集合Wf'中所有点所处的直线lf',再结合屋顶面片S'i'的相邻关系,计算出直线段le'与直线lf'之间的交点Ce'f',Ce'f'为与类别编号Li'1和Li'2对应的矢量边界点;
当Li'1=Wp'且Li'2=Wq'时,根据阶跃线类别集合Wp'中所有点的三维坐标,采用最小二乘法拟合出集合Wp'中所有点所处的直线lp';同时,根据阶跃线类别集合Wq'中所有点的三维坐标,采用最小二乘法拟合出集合Wq'中所有点所处的直线lq',再计算出直线lp'和lq'的交点Cp'q',交点Cp'q'为与类别编号Li'1和Li'2对应的矢量边界点;
其中,g'、h'、a'、b'和e'均为屋顶面片的编号;
步骤ⅱ、对类别编号Li't'和Li'(t'+1)进行矢量边界点提取处理:按照步骤ⅰ中所述的方法,对类别编号Li't'和Li'(t'+1)进行矢量边界点提取处理;其中,t'为正整数且t'=1、2、…、M';其中,Li'1又记作Li'(M'+1);
步骤ⅲ、多次重复步骤ⅱ,直至完成所述外轮廓点类别编号序列中任意相邻两个类别编号的矢量边界点提取处理过程;
步骤ⅳ、将步骤ⅰ至步骤ⅲ中所提取的所有矢量边界点,按照提取的先后顺序由先至后连接,获得屋顶面片S'i'的矢量边界。
8.按照权利要求4所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤203中所述外轮廓点集合A'中包括当前所处理建筑物屋面的多个外轮廓点及各外轮廓点的三维坐标,各屋顶面片的外轮廓点集合中包括该屋顶面片上的多个外轮廓点及各外轮廓点的三维坐标;
步骤203中对当前所处理建筑物屋面的外轮廓点进行提取时,从当前所处理建筑物屋面的二维数据集中,提取多个外轮廓点,并形成外轮廓点集合A″;所述外轮廓点集合A″中外轮廓点的数量为N个,所述外轮廓点集合A″中包含N个外轮廓点的二维数据,N个所述外轮廓点连接形成当前所处理建筑物屋面的外轮廓线;之后,根据步骤202中当前所处理建筑物屋面的点云数据,获取外轮廓点集合A″中各外轮廓点的三维坐标;
当前所处理建筑物屋面的二维数据集包括当前所处理建筑物的点云数据中多个测点在X-Y平面直角坐标系上的二维坐标;
步骤203中对各屋顶面片的外轮廓点进行提取时,所有屋顶面片的外轮廓点提取方法均与当前所处理建筑物屋面的外轮廓点的提取方法相同;其中,对屋顶面片S'i'的外轮廓点进行提取时,从屋顶面片S'i'的二维数据集中,提取M'个外轮廓点,并形成外轮廓点集合B″;所述外轮廓点集合B″中外轮廓点的数量为M'个,所述外轮廓点集合B″中包含M'个外轮廓点的二维数据;之后,根据步骤201中屋顶面片S'i'的点云数据,获取外轮廓点集合B″中各外轮廓点的三维坐标;
屋顶面片S'i'的二维数据集包括屋顶面片S'i'的点云数据中多个测点在X-Y平面直角坐标系上的二维坐标;
对当前所处理建筑物屋面的外边界线进行提取时,过程如下:
步骤2031、特征点提取:采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取,并从所述外轮廓点集合A″提取出S个特征点,S个特征点分别记作S1、S2、…、SS;
步骤2032、最小二乘法直线拟合及初始边界线获取:对S个特征点中相邻两个特征点所在的直线分别进行拟合,并获得S条拟合直线;S条拟合直线相交形成的封闭曲线为当前所处理建筑物的初始边界线,所述初始边界线由多个直线段连接而成;
对S个特征点中相邻两个特征点Sa和Sb进行直线拟合时,先将特征点Sa和Sb以及步骤201中所述外轮廓点集合中特征点Sa和Sb之间的所有外轮廓点组成直线点集,再利用最小二乘法对所述直线点集进行直线拟合,获得特征点Sa和Sb所在的拟合直线;其中,a和b均为正整数且a≠b,a=1、2、…、S,b=1、2、…、S;
步骤2033、建筑物主方向及副方向确定:先对步骤2032中所述初始边界线中的多个直线段的方向向量进行确定,再对多个直线段的方向向量的权重分别进行计算,并将权重最大的直线段的方向向量作为当前所处理建筑物的主方向,将当前所处理建筑物的主方向的正交向量作为当前所处理建筑物的副方向;
步骤2034、初始边界线规则化:对步骤2032中所述初始边界线中的多个直线段分别进行规则化处理;
对所述初始边界线中任一个直线段进行规则化处理时,过程如下:
步骤2034-1、规则化方向确定:根据步骤2033中所确定的主方向和副方向以及当前所处理直线段的方向向量,对当前所处理直线段的规则化方向进行确定:当当前所处理直线段的方向向量更靠近主方向时,以主方向作为规则化方向;反之,当当前所处理直线段的方向向量更靠近副方向时,以副方向作为规则化方向;
步骤2034-2、是否需进行规则化判断:计算当前所处理直线段在步骤2034-1中所确定规则化方向上的投影长度L,并根据投影长度L对当前所处理直线段是否需进行规则化进行判断:当投影长度L≤L0时,进入步骤2034-3;否则,无需进行规则化处理,将当前所处理直线段所在的直线作为其规则化直线;其中,L0=50cm~1m。
步骤2034-3、规则化处理:以当前所处理直线段的中点为起点,且以步骤2034-1中所确定的规则化方向为方向向量,生成当前所处理直线段的规则化直线;
步骤2035、规则化边界线获取:步骤2034中所述初始边界线中的多个直线段均规则化处理完成后,多个直线段的规则化直线相交形成的封闭曲线为当前所处理建筑物的规划化边界线。
9.按照权利要求8所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:步骤2031中采用道格拉斯-普扑克算法对所述外轮廓线进行特征点提取后,所提取的特征点数量为M个,其中M为正整数且M≥S;M个特征点组成特征点集合,S个特征点分别记作S1、S2、…、SM,特征点S1又记作特征点SM+1;
特征点提取完成后,还需对所提取的M个特征点分别进行判定;其中,对M个特征点中任一个特征点Sh进行判定时,判断特征点Sh与直线Sh-1Sh+1之间的距离dh是否大于d0:当dh>d0时,在所述特征点集合中保留特征点Sh;否则,从所述特征点集合中删除特征点Sh,并将特征点Sh标记为非特征点;
直线Sh-1Sh+1为特征点Sh-1和Sh+1所在的直线,特征点Sh-1和Sh+1为与特征点Sh相邻的两个特征点;其中,h为正整数且h=1、2、…、M;
对M个特征点分别进行判定后,所述特征点集合中特征点的数量为S个。
10.按照权利要求8所述的一种基于机载LiDAR数据的建筑物屋顶重建方法,其特征在于:所述外轮廓点集合A″中的N个所述外轮廓点,分别记作A0、A1、A2、…、AN-1;
步骤203中对当前所处理建筑物屋面的外轮廓点进行提取时,过程如下:
步骤2011、构建kd树:将当前所处理建筑物屋面的点云数据中,多个测点在X-Y平面直角坐标系上的二维坐标构建kd树;
步骤2012、邻域搜索:利用步骤2011中所构建的kd树在X-Y平面上进行邻域搜索,找出当前所处理建筑物屋面的所有外轮廓点,X-Y平面为X-Y平面直角坐标系所在的水平面;邻域搜索过程如下:
步骤20121、第一次搜索:以极值点A0作为本次搜索的搜索点O1且以X坐标轴的负半轴作为基准向量进行邻域搜索,并在当前搜索点O1的邻域内找出旋转角度最小的测点,所找出的测点为第一次搜索出的外轮廓点A1;
当前搜索点的邻域内任一测点Ci的旋转角度为由基准向量逆时针旋转至向量的旋转角度;极值点A0为当前所处理建筑物的点云数据中X轴坐标值最大、X轴坐标值最小、Y轴坐标值最大或Y轴坐标值最小的测点;
步骤20122、第j次搜索:以第j-1次搜索出的外轮廓点Aj-1作为本次搜索的搜索点Oj且以向量为基准向量进行邻域搜索,并按照步骤20121中所述的方法,在当前搜索点Oj的邻域内找出旋转角度最小的测点,所找出的测点为第j次搜索出的外轮廓点Aj;
其中,j为正整数且j≥2;当j=2时,Aj-2=A0;当j>2时,Aj-2为第j-2次搜索出的外轮廓点;
步骤20123、多次重复步骤20122,直至搜索出的外轮廓点为A0时,完成邻域搜索过程;
步骤2012中进行邻域搜索过程中,将极值点A0和各次搜索到的外轮廓点均标记为已用点;
步骤20123中,多次重复步骤20122且完成第n次搜索后,获得第n次搜索出的外轮廓点An,并将外轮廓点An标记为已用点;之后,按照步骤20122中所述的方法,将An作为搜索点,进行第n+1次搜索,且当第n+1次搜索过程中搜索到的外轮廓点为标记的已用点时,将外轮廓点An标记为不可用点;然后,按照An-1、An-2、…、A1顺序,由先至后对标记为有用点的外轮廓点进行回滚搜索,过程如下:
步骤Ⅰ-1、第一次回滚搜索:对第(n-1)次搜索出的外轮廓点An-1进行回滚搜索,过程如下:
步骤Ⅰ-11、第一次邻域搜索:按照步骤20121中所述的方法,以外轮廓点An-1作为本次搜索的搜索点O11且以向量为基准向量进行邻域搜索;
步骤Ⅰ-12、第一次邻域搜索结果处理:步骤Ⅰ-11中搜索完成后,当在当前搜索点O11的邻域测点集合S'(n-1)中不能找出旋转角度最小的测点时,将外轮廓点An-1标记为不可用点,并进入步骤Ⅱ-1,进行下一次回滚搜索;
反之,当在邻域测点集合S'(n-1)中找出旋转角度最小的测点时,将所找出的测点作为回滚搜索过程中第一次搜索出的外轮廓点A11,且将外轮廓点A11标记为已用点,并判断外轮廓点A11是否为极值点A0:当外轮廓点A11为极值点A0时,完成回滚搜索过程;否则,进入步骤Ⅰ-13,进行下一次邻域搜索;
步骤2012中进行邻域搜索过程中,第(n-1)次搜索时,当前搜索点On-1的邻域内所有测点组成邻域测点集合S(n-1);所述邻域测点集合S(n-1)中的所有未标记的测点组成邻域测点集合S'(n-1);
步骤Ⅰ-13、第k次邻域搜索:以回滚搜索过程中第(k-1)次搜索出的外轮廓点A1(k-1)作为本次搜索的搜索点O1k且以向量为基准向量进行邻域搜索,并按照步骤20121中所述的方法,在当前搜索点O1k的邻域内找出旋转角度最小的测点,所找出的测点为回滚搜索过程中第k次搜索出的外轮廓点A1k;
其中,k为正整数且k≥2;当k=2时,A1(k-2)=O11,A1(k-1)=A11;当j>2时,A1(k-2)为回滚搜索过程中第(k-2)次搜索出的外轮廓点;
步骤Ⅰ-14、第k次邻域搜索结果处理:步骤Ⅰ-13中搜索完成后,判断第k次搜索出的外轮廓点A1k是否为极值点A0:当外轮廓点A1k为极值点A0时,完成回滚搜索过程;否则,返回步骤Ⅰ-13,进行下一次邻域搜索;
步骤Ⅱ-1、第h次回滚搜索:按照步骤Ⅰ-1中所述的方法,对步骤2012中第(n-h+1)次搜索出的外轮廓点An-h+1进行回滚搜索,直至完成回滚搜索过程;其中,h为正整数且h≥2;
步骤2012中完成回滚搜索过程后,当前状态下所有标记为已用点的测点组成步骤201中所述外轮廓点集合,并且所有标记为已用点的测点总数量为N个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410293086.1A CN104036544B (zh) | 2014-06-25 | 2014-06-25 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410293086.1A CN104036544B (zh) | 2014-06-25 | 2014-06-25 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104036544A true CN104036544A (zh) | 2014-09-10 |
CN104036544B CN104036544B (zh) | 2016-03-09 |
Family
ID=51467302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410293086.1A Expired - Fee Related CN104036544B (zh) | 2014-06-25 | 2014-06-25 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104036544B (zh) |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408689A (zh) * | 2014-12-10 | 2015-03-11 | 武汉大学 | 基于全景影像的街景面片优化方法 |
CN105184854A (zh) * | 2015-08-24 | 2015-12-23 | 北京麦格天宝科技股份有限公司 | 针对地下空间扫描点云成果数据的快速建模方法 |
CN105512665A (zh) * | 2015-12-11 | 2016-04-20 | 中国测绘科学研究院 | 一种机载激光雷达点云数据边缘提取方法 |
CN106097311A (zh) * | 2016-05-31 | 2016-11-09 | 中国科学院遥感与数字地球研究所 | 机载激光雷达数据的建筑物三维重建方法 |
CN106126816A (zh) * | 2016-06-24 | 2016-11-16 | 南京林业大学 | 重复建筑自动感知下的大规模als建筑点云建模方法 |
CN106251326A (zh) * | 2016-07-02 | 2016-12-21 | 桂林理工大学 | 一种利用鬼影像的建筑物遮挡检测及遮挡区域补偿方法 |
CN107025685A (zh) * | 2017-04-11 | 2017-08-08 | 南京林业大学 | 拓扑感知下的机载建筑屋顶点云建模方法 |
CN107220987A (zh) * | 2016-03-22 | 2017-09-29 | 嘉兴博海信息科技有限公司 | 一种基于主成分分析的建筑物屋顶边缘快速检测方法 |
CN107545602A (zh) * | 2017-08-04 | 2018-01-05 | 长江空间信息技术工程有限公司(武汉) | 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法 |
CN107784690A (zh) * | 2017-11-13 | 2018-03-09 | 南京市测绘勘察研究院股份有限公司 | 一种基于三维点云的竣工平面图自动绘制方法 |
CN108171715A (zh) * | 2017-12-05 | 2018-06-15 | 浙江大华技术股份有限公司 | 一种图像分割方法及装置 |
CN108470374A (zh) * | 2018-04-08 | 2018-08-31 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
CN108572361A (zh) * | 2018-04-03 | 2018-09-25 | 深圳飞马机器人科技有限公司 | 机载激光雷达系统设备集成安置角检校方法及装置 |
CN109410301A (zh) * | 2018-10-16 | 2019-03-01 | 张亮 | 面向无人驾驶汽车的高精度语义地图制作方法 |
CN109614871A (zh) * | 2018-11-13 | 2019-04-12 | 远景能源(南京)软件技术有限公司 | 一种光伏屋顶及光伏障碍物自动识别算法 |
CN109727270A (zh) * | 2018-12-10 | 2019-05-07 | 杭州帝视科技有限公司 | 心脏核磁共振图像的运动机理和纹理特征分析方法和系统 |
US20190178443A1 (en) * | 2017-12-13 | 2019-06-13 | China National Offshore Oil Corp. | Three-dimensional layoutlayout method for splicing vault plates of large lng storage tank |
CN109960715A (zh) * | 2019-03-21 | 2019-07-02 | 重庆交通大学 | 一种城市建筑物数据更新方法 |
CN109993783A (zh) * | 2019-03-25 | 2019-07-09 | 北京航空航天大学 | 一种面向复杂三维建筑物点云的屋顶及侧面优化重建方法 |
CN110322464A (zh) * | 2019-06-30 | 2019-10-11 | 华中科技大学 | 一种基于三维点云的小曲率薄壁零件边界提取方法 |
CN110415337A (zh) * | 2019-07-12 | 2019-11-05 | 广州大学 | 一种基于影像直线特征的建筑物屋顶面重建方法和装置 |
CN110599569A (zh) * | 2019-09-16 | 2019-12-20 | 上海市刑事科学技术研究院 | 一种建筑物内部二维平面图的生成方法、存储设备及终端 |
CN110888143A (zh) * | 2019-10-30 | 2020-03-17 | 中铁四局集团第五工程有限公司 | 一种基于无人机机载激光雷达的桥梁贯通测量方法 |
WO2020063294A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 点云编解码方法及编解码器 |
CN111275724A (zh) * | 2020-02-26 | 2020-06-12 | 武汉大学 | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 |
CN111340822A (zh) * | 2020-02-24 | 2020-06-26 | 武汉大学 | 一种多尺度自适应机载LiDAR点云建筑物单体化分割方法 |
CN111553946A (zh) * | 2020-04-17 | 2020-08-18 | 中联重科股份有限公司 | 用于去除地面点云的方法及装置、障碍物检测方法及装置 |
CN111553982A (zh) * | 2020-03-18 | 2020-08-18 | 中国测绘科学研究院 | 一种基于单环结构的坡屋顶建筑物三维重建方法 |
CN111612888A (zh) * | 2020-05-15 | 2020-09-01 | 北京工业大学 | 一种文物建筑图形的自动生成方法、系统及存储介质 |
CN112560133A (zh) * | 2019-09-06 | 2021-03-26 | 久瓴(上海)智能科技有限公司 | 复杂屋面的识别方法、装置、计算机设备和存储介质 |
CN112906487A (zh) * | 2021-01-26 | 2021-06-04 | 北京建筑大学 | 基于规则集的明清官式建筑物样式点云分类识别方法 |
CN113412505A (zh) * | 2019-03-22 | 2021-09-17 | 华为技术有限公司 | 用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法 |
CN117274535A (zh) * | 2023-11-22 | 2023-12-22 | 北京飞渡科技股份有限公司 | 基于点云密度重构实景三维模型的方法、装置及电子设备 |
CN117351406A (zh) * | 2023-12-06 | 2024-01-05 | 武汉蓝海科创技术有限公司 | 基于图像识别技术的专家远程视觉辅助赋能系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976467A (zh) * | 2010-09-13 | 2011-02-16 | 天津市星际空间地理信息工程有限公司 | 一种集成机载lidar和车载移动激光扫描技术的高精细三维城市场景构建方法 |
US7944547B2 (en) * | 2006-05-20 | 2011-05-17 | Zheng Wang | Method and system of generating 3D images with airborne oblique/vertical imagery, GPS/IMU data, and LIDAR elevation data |
CN102915558A (zh) * | 2011-08-01 | 2013-02-06 | 李慧盈 | 一种快速提取机载LiDAR数据中建筑物三维轮廓信息的方法 |
-
2014
- 2014-06-25 CN CN201410293086.1A patent/CN104036544B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7944547B2 (en) * | 2006-05-20 | 2011-05-17 | Zheng Wang | Method and system of generating 3D images with airborne oblique/vertical imagery, GPS/IMU data, and LIDAR elevation data |
CN101976467A (zh) * | 2010-09-13 | 2011-02-16 | 天津市星际空间地理信息工程有限公司 | 一种集成机载lidar和车载移动激光扫描技术的高精细三维城市场景构建方法 |
CN102915558A (zh) * | 2011-08-01 | 2013-02-06 | 李慧盈 | 一种快速提取机载LiDAR数据中建筑物三维轮廓信息的方法 |
Cited By (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408689A (zh) * | 2014-12-10 | 2015-03-11 | 武汉大学 | 基于全景影像的街景面片优化方法 |
CN105184854A (zh) * | 2015-08-24 | 2015-12-23 | 北京麦格天宝科技股份有限公司 | 针对地下空间扫描点云成果数据的快速建模方法 |
CN105184854B (zh) * | 2015-08-24 | 2018-01-16 | 北京麦格天宝科技股份有限公司 | 针对地下空间扫描点云成果数据的快速建模方法 |
CN105512665A (zh) * | 2015-12-11 | 2016-04-20 | 中国测绘科学研究院 | 一种机载激光雷达点云数据边缘提取方法 |
CN105512665B (zh) * | 2015-12-11 | 2018-10-30 | 中国测绘科学研究院 | 一种机载激光雷达点云数据边缘提取方法 |
CN107220987A (zh) * | 2016-03-22 | 2017-09-29 | 嘉兴博海信息科技有限公司 | 一种基于主成分分析的建筑物屋顶边缘快速检测方法 |
CN106097311A (zh) * | 2016-05-31 | 2016-11-09 | 中国科学院遥感与数字地球研究所 | 机载激光雷达数据的建筑物三维重建方法 |
CN106126816A (zh) * | 2016-06-24 | 2016-11-16 | 南京林业大学 | 重复建筑自动感知下的大规模als建筑点云建模方法 |
CN106126816B (zh) * | 2016-06-24 | 2019-04-05 | 南京林业大学 | 重复建筑自动感知下的大规模als建筑点云建模方法 |
CN106251326A (zh) * | 2016-07-02 | 2016-12-21 | 桂林理工大学 | 一种利用鬼影像的建筑物遮挡检测及遮挡区域补偿方法 |
CN106251326B (zh) * | 2016-07-02 | 2019-04-12 | 桂林理工大学 | 一种利用鬼影像的建筑物遮挡检测及遮挡区域补偿方法 |
CN107025685A (zh) * | 2017-04-11 | 2017-08-08 | 南京林业大学 | 拓扑感知下的机载建筑屋顶点云建模方法 |
CN107025685B (zh) * | 2017-04-11 | 2020-03-17 | 南京林业大学 | 拓扑感知下的机载建筑屋顶点云建模方法 |
CN107545602A (zh) * | 2017-08-04 | 2018-01-05 | 长江空间信息技术工程有限公司(武汉) | 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法 |
CN107545602B (zh) * | 2017-08-04 | 2021-04-27 | 长江空间信息技术工程有限公司(武汉) | 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法 |
CN107784690A (zh) * | 2017-11-13 | 2018-03-09 | 南京市测绘勘察研究院股份有限公司 | 一种基于三维点云的竣工平面图自动绘制方法 |
CN107784690B (zh) * | 2017-11-13 | 2021-04-13 | 南京市测绘勘察研究院股份有限公司 | 一种基于三维点云的竣工平面图自动绘制方法 |
CN108171715A (zh) * | 2017-12-05 | 2018-06-15 | 浙江大华技术股份有限公司 | 一种图像分割方法及装置 |
CN108171715B (zh) * | 2017-12-05 | 2020-08-04 | 浙江大华技术股份有限公司 | 一种图像分割方法及装置 |
US11118733B2 (en) * | 2017-12-13 | 2021-09-14 | China National Offshore Oil Corp. | Three-dimensional layoutlayout method for splicing vault plates of large LNG storage tank |
US20190178443A1 (en) * | 2017-12-13 | 2019-06-13 | China National Offshore Oil Corp. | Three-dimensional layoutlayout method for splicing vault plates of large lng storage tank |
CN108572361A (zh) * | 2018-04-03 | 2018-09-25 | 深圳飞马机器人科技有限公司 | 机载激光雷达系统设备集成安置角检校方法及装置 |
CN108470374B (zh) * | 2018-04-08 | 2022-03-25 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
CN108470374A (zh) * | 2018-04-08 | 2018-08-31 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
WO2020063294A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 点云编解码方法及编解码器 |
CN109410301A (zh) * | 2018-10-16 | 2019-03-01 | 张亮 | 面向无人驾驶汽车的高精度语义地图制作方法 |
CN109614871A (zh) * | 2018-11-13 | 2019-04-12 | 远景能源(南京)软件技术有限公司 | 一种光伏屋顶及光伏障碍物自动识别算法 |
CN109727270A (zh) * | 2018-12-10 | 2019-05-07 | 杭州帝视科技有限公司 | 心脏核磁共振图像的运动机理和纹理特征分析方法和系统 |
CN109960715A (zh) * | 2019-03-21 | 2019-07-02 | 重庆交通大学 | 一种城市建筑物数据更新方法 |
US11556745B2 (en) | 2019-03-22 | 2023-01-17 | Huawei Technologies Co., Ltd. | System and method for ordered representation and feature extraction for point clouds obtained by detection and ranging sensor |
CN113412505B (zh) * | 2019-03-22 | 2022-09-09 | 华为技术有限公司 | 用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的处理单元和方法 |
CN113412505A (zh) * | 2019-03-22 | 2021-09-17 | 华为技术有限公司 | 用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法 |
CN109993783A (zh) * | 2019-03-25 | 2019-07-09 | 北京航空航天大学 | 一种面向复杂三维建筑物点云的屋顶及侧面优化重建方法 |
CN109993783B (zh) * | 2019-03-25 | 2020-10-27 | 北京航空航天大学 | 一种面向复杂三维建筑物点云的屋顶及侧面优化重建方法 |
CN110322464A (zh) * | 2019-06-30 | 2019-10-11 | 华中科技大学 | 一种基于三维点云的小曲率薄壁零件边界提取方法 |
CN110415337A (zh) * | 2019-07-12 | 2019-11-05 | 广州大学 | 一种基于影像直线特征的建筑物屋顶面重建方法和装置 |
CN110415337B (zh) * | 2019-07-12 | 2021-03-23 | 广州大学 | 一种基于影像直线特征的建筑物屋顶面重建方法和装置 |
CN112560133A (zh) * | 2019-09-06 | 2021-03-26 | 久瓴(上海)智能科技有限公司 | 复杂屋面的识别方法、装置、计算机设备和存储介质 |
CN110599569A (zh) * | 2019-09-16 | 2019-12-20 | 上海市刑事科学技术研究院 | 一种建筑物内部二维平面图的生成方法、存储设备及终端 |
CN110888143B (zh) * | 2019-10-30 | 2022-09-13 | 中铁四局集团第五工程有限公司 | 一种基于无人机机载激光雷达的桥梁贯通测量方法 |
CN110888143A (zh) * | 2019-10-30 | 2020-03-17 | 中铁四局集团第五工程有限公司 | 一种基于无人机机载激光雷达的桥梁贯通测量方法 |
CN111340822B (zh) * | 2020-02-24 | 2022-07-15 | 武汉大学 | 一种多尺度自适应机载LiDAR点云建筑物单体化分割方法 |
CN111340822A (zh) * | 2020-02-24 | 2020-06-26 | 武汉大学 | 一种多尺度自适应机载LiDAR点云建筑物单体化分割方法 |
CN111275724A (zh) * | 2020-02-26 | 2020-06-12 | 武汉大学 | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 |
CN111275724B (zh) * | 2020-02-26 | 2022-06-07 | 武汉大学 | 一种基于八叉树和边界优化的机载点云屋顶平面分割方法 |
CN111553982A (zh) * | 2020-03-18 | 2020-08-18 | 中国测绘科学研究院 | 一种基于单环结构的坡屋顶建筑物三维重建方法 |
CN111553982B (zh) * | 2020-03-18 | 2023-05-30 | 中国测绘科学研究院 | 一种基于单环结构的坡屋顶建筑物三维重建方法 |
CN111553946A (zh) * | 2020-04-17 | 2020-08-18 | 中联重科股份有限公司 | 用于去除地面点云的方法及装置、障碍物检测方法及装置 |
CN111553946B (zh) * | 2020-04-17 | 2023-04-18 | 中联重科股份有限公司 | 用于去除地面点云的方法及装置、障碍物检测方法及装置 |
CN111612888A (zh) * | 2020-05-15 | 2020-09-01 | 北京工业大学 | 一种文物建筑图形的自动生成方法、系统及存储介质 |
CN111612888B (zh) * | 2020-05-15 | 2023-10-27 | 北京工业大学 | 一种文物建筑图形的自动生成方法、系统及存储介质 |
CN112906487A (zh) * | 2021-01-26 | 2021-06-04 | 北京建筑大学 | 基于规则集的明清官式建筑物样式点云分类识别方法 |
CN112906487B (zh) * | 2021-01-26 | 2023-07-11 | 北京建筑大学 | 基于规则集的明清官式建筑物样式点云分类识别方法 |
CN117274535A (zh) * | 2023-11-22 | 2023-12-22 | 北京飞渡科技股份有限公司 | 基于点云密度重构实景三维模型的方法、装置及电子设备 |
CN117274535B (zh) * | 2023-11-22 | 2024-02-02 | 北京飞渡科技股份有限公司 | 基于点云密度重构实景三维模型的方法、装置及电子设备 |
CN117351406A (zh) * | 2023-12-06 | 2024-01-05 | 武汉蓝海科创技术有限公司 | 基于图像识别技术的专家远程视觉辅助赋能系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104036544B (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104036544B (zh) | 一种基于机载LiDAR数据的建筑物屋顶重建方法 | |
CN104200212B (zh) | 一种基于机载LiDAR数据的建筑物外边界线提取方法 | |
CN102521884B (zh) | 一种基于LiDAR数据与正射影像的3维屋顶重建方法 | |
Karagiorgou et al. | On vehicle tracking data-based road network generation | |
Chen et al. | A methodology for automated segmentation and reconstruction of urban 3-D buildings from ALS point clouds | |
CN106570468A (zh) | 一种重建LiDAR原始点云建筑物轮廓线的方法 | |
CN104463872A (zh) | 基于车载LiDAR点云数据的分类方法 | |
CN106441303A (zh) | 一种基于可搜索连续邻域a*算法的路径规划方法 | |
CN106780751A (zh) | 基于改进的屏蔽泊松算法的三维点云重建方法 | |
CN110276732B (zh) | 一种顾及地形特征线要素的山区点云空洞修复方法 | |
CN103258345A (zh) | 一种基于地面激光雷达三维扫描的树木枝干参数提取方法 | |
CN107392875A (zh) | 一种基于k近邻域划分的点云数据去噪方法 | |
CN106023312A (zh) | 基于航空LiDAR数据的三维建筑物模型自动重建方法 | |
CN102521869B (zh) | 一种几何特征引导的三维模型表面纹理空洞填补方法 | |
CN107767453A (zh) | 一种基于规则约束的建筑物lidar点云重构优化方法 | |
CN104063702A (zh) | 一种基于遮挡修复和局部相似性匹配的三维步态识别方法 | |
CN105355042B (zh) | 一种基于出租车gps的道路网络提取方法 | |
CN103020342A (zh) | 一种从地面LiDAR数据中提取建筑物轮廓和角点的方法 | |
CN107622530B (zh) | 一种高效鲁棒的三角网切割方法 | |
CN107657659A (zh) | 基于长方体拟合扫描三维点云的曼哈顿结构建筑物自动建模方法 | |
CN103605135A (zh) | 一种基于断面剖分的道路特征提取方法 | |
CN104751479A (zh) | 基于tin数据的建筑物提取方法和装置 | |
CN113436319A (zh) | 一种城市室内三维语义模型的异形排列矩阵构建方法及其系统 | |
Perera et al. | An automated method for 3D roof outline generation and regularization in airbone laser scanner data | |
CN107818338A (zh) | 一种面向地图综合的建筑物群组模式识别的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20171215 Address after: 710199 Shenzhou four road, space base, Xi'an, Shaanxi Province, No. 216 Patentee after: AERIAL PHOTOGRAMMETRY AND REMOTE SENSING Co.,Ltd. Address before: Xi'an City, Shaanxi province 710054 Changsheng Street No. 78 Patentee before: XI'AN MEIHANG INFORMATION INDUSTRY CO.,LTD. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160309 |