一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种建筑密集场景房屋点云分割及属性提取方法与流程

2022-10-13 07:38:46 来源:中国专利 TAG:


1.本发明涉及一种建筑密集场景房屋点云分割及属性提取方法,属于点云数据处理技术领域。


背景技术:

2.激光扫描技术被称为“实景复制”技术,点云数据可视化效果和真实世界基本保持一致。激光点云实质是一堆无序的点,但包含着丰富的空间信息,各行各业都是从海量的点云场景中提取感兴趣的数据和信息。面对需要利用建筑物的情况,最开始的研究是点云分类,从原始点云数据中分类出建筑物这一类,然后再进一步利用。目前,行业内越来越多的需求是需要单体化的房屋及其属性,即对房屋点云分割,高效率得将每个独立的建筑物分割出来,并将相关属性提取出来。
3.针对房屋点云分割,目前有两种主流方法,一种是基于点云采用数学形态学的提取方法,另一种基于图像和点云融合的提取方法。基于图像和点云融合算法,主要是先利用图像处理技术识别出建筑物边界,再利用此作为先验知识,继续对点云处理。基于点云采用数学形态学方法进行单体房屋分割仅需要点云数据,更具有普适性,从目前检索到文献可知,有基于深度学习的房屋分割方法、有基于几何特征提取轮廓和边界的算法、也有区域增长算法等,这些算法甚至可以提取出房屋立面和屋顶,但是基于深度学习的方法,需要较多的样本学习,在目前阶段更多是理论研究和小场景试验,尚不能够应用到大场景的工程应用。
4.目前研究中,针对建筑物密集场景的房屋分割研究方法较少,如建筑物与建筑物间最小距离小于0.3米,上述方法具有局限性,无法使用。针对建筑物密集场景,如何高效的分割房屋,并自动、高效得提取建筑物高度、层数、面积等属性是值得研究和探索的。


技术实现要素:

5.本发明所要解决的技术问题是克服现有技术的缺陷,提供一种建筑密集场景房屋点云分割及属性提取方法,采用提取房角点的方法进行房屋分割,依据“房屋平面图中房角点是两条直线交点”这一基本规则提取房角点,进而分割房屋。
6.为达到上述目的,本发明提供一种建筑密集场景房屋点云分割及属性提取方法,其特征在于,包括以下步骤:1)将原始点云进行分类,分出地面和建筑物点云;2)利用地面点云构建数字高程模型,计算建筑物点云的法向量;3)利用法向量特征从建筑物点云中筛选出房屋立面点云数据;4)将房屋立面点云数据投影至xoy平面,成为xoy平面中离散的点,每个离散的点的坐标用(xi,yi)表示;5)采用dbscan算法将xoy平面中离散的点进行粗分割,形成独立的簇;6)计算每个簇的房屋边界点;
7)随机选取一个簇,选择这个簇中的横坐标最小且纵坐标最小的点、横坐标最小且纵坐标最大的点、横坐标最大且纵坐标最小的点和横坐标最大且纵坐标最大的点中的一个作为必选点;使用ransac算法进行房屋边界的直线检测,通过必选点随机确定一条直线y1,若其他房屋边界点距离直线y1的垂直距离在设定范围内且距离直线y1的垂直距离在设定范围内的其他房屋边界点个数≥设定的个数阈值,则表示检测出房屋边界,距离直线y1的垂直距离在设定范围内的其他房屋边界点归类属于房屋边界点集合q1;再次通过必选点随机确定一条直线y2,若其他房屋边界点距离直线y2的垂直距离在设定范围内且距离直线y2的垂直距离在设定范围内的其他房屋边界点个数≥设定的个数阈值,则表示检测出房屋边界,直线y1和直线y2不重合,距离直线y2的垂直距离在设定范围内的其他房屋边界点归类属于房屋边界点集合q2,将必选点用j2表示并写入房屋角点集合j={j2,j3
……
jn};若检测出的属于同一条直线上的其他房屋边界点个数小于设定的个数阈值,则判定为不是房屋边界;8)设定i的初值为2;9)按照房屋边界点集合qi中的房屋边界点距离房屋角点集合j中ji点的的距离由近到远对房屋边界点集合qi中的房屋边界点排序,利用ransac算法依次对排序后的房屋边界点集合qi中的房屋边界点进行直线检测;通过房屋边界点集合qi中的房屋边界点随机确定一条直线ym,m=i 1,若其他房屋边界点距离直线ym在设定范围内且其他房屋边界点个数≥设定的个数阈值,则表示检测出房屋边界,其他房屋边界点和该房屋边界点集合qi中的房屋边界点归类属于房屋边界点集合qm;既属于房屋边界点集合qi又属于房屋边界点集合qm的房屋边界点设定为新的房角点jm,并将房角点jm写入房屋角点集合j;10)若检测出的直线ym与直线y1重合,则停止直线检测;若检测出的直线ym与直线y1不重合,则i数值增加1;11)根据房屋角点集合j、数字高程模型和建筑点云,提取房屋面积、房屋层数和房屋高度属性;剔除直线检测出的房屋角点集合j所构成范围内的房屋立面点云,执行步骤9)。
7.优先地,计算建筑物点云的法向量特征,通过以下步骤实现:对任一建筑物点云以0.3米为搜索半径,用搜索半径内所有点来拟合成一个平面;计算该平面的单位法向量;将该平面的单位法向量作为该点的法向量,所有建筑物点云中的点的法向量用ni(nxi,nyi,nzi)来表示,nxi、nyi、nzi分别为法向量ni在x方向的分量、法向量ni在y方向的分量和法向量ni在z方向的分量。
8.优先地,步骤3,通过以下步骤实现:房屋立面垂直于地面,房屋立面的法向量分量中的nzi≈0,筛选在设定nzi阈值范围内的nzi为房屋立面的点云数据。
9.优先地,步骤5,通过以下步骤实现:
设置邻域距离为3m和实体包含的最少点数为1000,采用dbscan算法将xoy平面中房屋立面的点云数据进行粗分割,xoy平面中房屋立面点云数据分别划分为独立的簇d1,d2,

,dn,每个簇中的xoy平面中房屋立面点云数据个数最少为1000,且相邻的xoy平面中房屋立面点云数据的点间距小于3m。
10.优先地,步骤9中,设置设定范围ε=0.1m,设定的个数阈值minpt=100。
11.优先地,步骤11,通过以下步骤实现:房屋属性包括房屋面积、房屋层数和房屋高度;计算房屋角点集合中的房屋角点所围成的多边形的面积s,获得房屋面积;在数字高程模型中依据多边形的范围在原始点云中检索点云垂直方向z方向的最大值zmax和最小值zmin,计算获得房屋高度h=zmax-zmin;根据建筑物的单层楼高a,计算房屋层数n,n=h/a。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
14.本发明所达到的有益效果:通过步骤5,可以实现整个密集房屋粗略的分成几个独立的簇,簇之间最小距离为3米;通过步骤6,可以确定每个簇的边界点,以边界点为必选点,便于进一步的划分;通过步骤7可以快速确定出房屋的两条边界;通过步骤9能够逐步的找到每个独立房屋的房角点;通过步骤11可以获得房屋的面积,楼高等属性,通过重复执行步骤9-11的过程,可以在密集建筑物区域,区分出每一个独立的房屋,达到房屋分割的效果。
附图说明
15.图1是本发明的流程图;图2是本发明房屋分割的成果示意图。
具体实施方式
16.以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
17.实施例一如图1所示,一种建筑密集场景房屋点云分割及属性提取方法,其特征在于,包括以下步骤:1)将原始点云进行分类,分出地面和建筑物点云;2)利用地面点云构建数字高程模型,计算建筑物点云的法向量;3)利用法向量特征从建筑物点云中筛选出房屋立面点云数据;4)将房屋立面点云数据投影至xoy平面,成为xoy平面中离散的点,每个离散的点的坐标用(xi,yi)表示;5)采用dbscan算法将xoy平面中离散的点进行粗分割,形成独立的簇;6)计算每个簇的房屋边界点;
7)随机选取一个簇,选择这个簇中的横坐标最小且纵坐标最小的点、横坐标最小且纵坐标最大的点、横坐标最大且纵坐标最小的点和横坐标最大且纵坐标最大的点中的一个作为必选点;使用ransac算法进行房屋边界的直线检测,通过必选点随机确定一条直线y1,若其他房屋边界点距离直线y1的垂直距离在设定范围内且距离直线y1的垂直距离在设定范围内的其他房屋边界点个数≥设定的个数阈值,则表示检测出房屋边界,距离直线y1的垂直距离在设定范围内的其他房屋边界点归类属于房屋边界点集合q1;再次通过必选点随机确定一条直线y2,若其他房屋边界点距离直线y2的垂直距离在设定范围内且距离直线y2的垂直距离在设定范围内的其他房屋边界点个数≥设定的个数阈值,则表示检测出房屋边界,直线y1和直线y2不重合,距离直线y2的垂直距离在设定范围内的其他房屋边界点归类属于房屋边界点集合q2,将必选点写入房屋角点集合j={j2,j3
……
jn};若检测出的属于同一条直线上的其他房屋边界点个数小于设定的个数阈值,则判定为不是房屋边界;8)设定i的初值为2;9)按照房屋边界点集合qi中的房屋边界点距离房屋角点集合j中ji点的距离由近到远对房屋边界点集合qi中的房屋边界点排序,利用ransac算法依次对排序后的房屋边界点集合qi中的房屋边界点进行直线检测;通过房屋边界点集合qi中的房屋边界点随机确定一条直线ym,m=i 1,若其他房屋边界点距离直线ym在设定范围内且其他房屋边界点个数≥设定的个数阈值,则表示检测出房屋边界,其他房屋边界点和该房屋边界点集合qi中的房屋边界点归类属于房屋边界点集合qm;既属于房屋边界点集合qi又属于房屋边界点集合qm的房屋边界点设定为新的房角点jm,并将房角点jm写入房屋角点集合j;10)若检测出的直线ym与直线y1重合,则停止直线检测;若检测出的直线ym与直线y1不重合,则i数值增加1;11)根据房屋角点集合j、数字高程模型和建筑点云,提取房屋面积、房屋层数和房屋高度属性;剔除直线检测出的房屋角点集合j所构成范围内的房屋立面点云,执行步骤9)。
18.进一步地,本实施例中计算建筑物点云的法向量特征,通过以下步骤实现:对任一建筑物点云以0.3米为搜索半径,用搜索半径内所有点来拟合成一个平面;计算该平面的单位法向量;将该平面的单位法向量作为该点的法向量,所有建筑物点云中的点的法向量用ni(nxi,nyi,nzi)来表示,nxi、nyi、nzi分别为法向量ni在x方向的分量、法向量ni在y方向的分量和法向量ni在z方向的分量。
19.进一步地,本实施例中步骤3,通过以下步骤实现:房屋立面垂直于地面,房屋立面的法向量分量中的nzi≈0,筛选在设定nzi阈值范围内的nzi为房屋立面的点云数据。
20.进一步地,本实施例中步骤5,通过以下步骤实现:
设置邻域距离为3m和实体包含的最少点数为1000,采用dbscan算法将xoy平面中房屋立面的点云数据进行粗分割,xoy平面中房屋立面点云数据分别划分为独立的簇d1,d2,

,dn,每个簇中的xoy平面中房屋立面点云数据个数最少为1000,且相邻的xoy平面中房屋立面点云数据的点间距小于3m。
21.进一步地,本实施例中步骤9中,设置设定范围ε=0.1m,设定的个数阈值minpt=100。
22.进一步地,本实施例中步骤11,通过以下步骤实现:房屋属性包括房屋面积、房屋层数和房屋高度;计算房屋角点集合中的房屋角点所围成的多边形的面积s,获得房屋面积;在数字高程模型中依据多边形的范围在原始点云中检索点云垂直方向z方向的最大值zmax和最小值zmin,计算获得房屋高度h=zmax-zmin;根据建筑物的单层楼高a,计算房屋层数n,n=h/a。
23.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
25.实施例二如图2所示,第7步:将第6步的边界点a点,作为必选点进行直线检测,检测出y1和y2两条直线,y1直线上的点的集合命名为q1,y2直线上的点的集合命名为q2;8)设定i的初值为2;第9步:按照房屋边界点集合qi中的房屋边界点距离房屋角点集合j中ji点的距离由近到远排序,优先检测距离ji点最近的房屋边界点集合qi中的房屋边界点;以在y2直线上的点为必选点,继续直线检测,在b点检测出新的直线y3,对于y3直线上的点的集合命名为q3;以q3中点为必选点,继续直线检测,依次类推,直到在d点发现直线形式与y1重合,则结束直线检测,首尾相连的a点、b点、c点和d点即为一个独立的房屋,相当于把这个房屋分割出来了;第10步:提取房屋属性;第11步:把已经直线检测出来的其他点踢出,执行9。
26.更为具体地,包括以下步骤:在步骤3)中,依据法向量ni(nxi,nyi,nzi) 分量nzi大小进行区分,房屋立面垂直与地面,其法向量分量中的nzi≈0,nzi在 [-0.01,0.01]的筛选为房屋立面点云。
[0027]
4)将房屋立面点云数据投影至xoy平面,成为xoy平面中离散的点,每个点的坐标用(xi,yi)表示;5)采用dbscan算法将xoy平面中房屋立面点云数据进行粗分割,形成独立的簇;6)计算每个簇的边界点;在步骤6中,分别对集合d1,d2,
……
dn中所有点的(x,y)坐标按照x分量和y分量进行排序,确定出xmax&ymax边界点,xmax&ymin边界点,xmin&ymax边界点,xmin&ymin边界点, xmax为x方向的最大坐标值,ymax为y方向的最大坐标值, xmin为x方向的最小坐标值,ymin
为y方向的最小坐标值。
[0028]
在步骤7中,选取ymin&xmax这一西北边界点,该点的序号为j2,令其属于房角点集合j={j2,j3,

,jn}。
[0029]
设定若检测出的属于某一条直线上的点至少有100个则判定该条直线成立,否则判定为不是所需直线;设定属于同一条直线上的点到直线的距离范围设定为ε=0.1m;从j2点开始使用ransac算法进行直线检测,若直线检测获得的y1直线和y2直线上的点大于100个点,则输出y1=k1x b1,y2=k2x b2两条直线,属于y1直线和y2直线上的点分别令其属于房屋边界备选点集合q1和 q2。
[0030]
在步骤8中,i初始值设定为2;步骤9,照房屋边界点集合qi中的房屋边界点距离房屋角点集合j中ji点的距离由近到远对房屋边界点集合qi中的房屋边界点排序,利用ransac算法依次对排序后的房屋边界点集合qi中的房屋边界点进行直线检测;在集合q2中,依次对每个点利用ransac算法进行直线检测,直到在某个点检测出新的直线形式y3=k3x b3,y3上的点至少有100个,则该点定为新的房角点j3,并将其写入房角点集合j中,属于同一条直线上的点为房屋边界备选点,令其属于集合q3。依次类推,设定m=i 1,新的房角点jm对应新的房屋边界点集合qm。
[0031]
步骤10,若检测出的直线ym与直线y1重合,则停止直线检测;若检测出的直线ym与直线y1不重合,则i数值增加1;具体地,包括以下步骤:在新的房屋边界备选点集合中,继续进行直线检测,若检测到的新直线形式yi与已检测到的直线形式yj(j《i,且j≠1)重合,则判定不符合房屋规则,j
j 1
不属于房屋边界点,并将其从集合j中移除,在集合qj中继续执行直线检测。依此类推,直到检测出的直线形式yn=knx bn与在j2点所检测出的y1=k1x b1直线重合,则停止检测,所有检测出的房角点构成一个独立的房屋角点集合j。
[0032]
在步骤11中,根据房屋角点集合j、数字高程模型和建筑点云,提取房屋面积、房屋层数和房屋高度属性;剔除直线检测出的房屋角点集合j所构成范围内的房屋立面点云,执行步骤9);更为具体地,根据房角点集合j={j2,j3
……
jn},计算房角点所围成的多边形的房屋面积s,在原始点云和dem,依据多边形范围,检索点云z方向的最大值zmax和dem平均高程值z,计算房屋高度h=zmax-z,根据单层楼高a,计算房屋楼层n,n=h/a,获得房屋面积、房屋层数和房屋高度等房屋属性。
[0033]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0034]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0035]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0036]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献