CN116882031B - 一种基于点云的建筑模型构建方法及系统 - Google Patents
一种基于点云的建筑模型构建方法及系统 Download PDFInfo
- Publication number
- CN116882031B CN116882031B CN202311123548.0A CN202311123548A CN116882031B CN 116882031 B CN116882031 B CN 116882031B CN 202311123548 A CN202311123548 A CN 202311123548A CN 116882031 B CN116882031 B CN 116882031B
- Authority
- CN
- China
- Prior art keywords
- points
- point
- small
- value
- point cloud
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 7
- 108091028732 Concatemer Proteins 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Civil Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种基于点云的建筑模型构建方法及系统,根据建筑物点云数据获得第一小长方体和第二小长方体;将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型。本发明能有效提高建筑物三维模型重建的精确度。
Description
技术领域
本发明涉及建筑模型领域,尤其是涉及基于点云的建筑模型构建方法及系统。
背景技术
建筑模型在古建筑保护、数字城市和智慧城市等领域中具有重要的意义,为这些领域的可持续发展和文化传承提供了有力支持。古建筑常常面临老化、腐蚀和天灾等挑战,而建筑模型可以帮助制定科学的保护计划,实现历史文化的传承。建筑模型的应用不仅仅是记录历史建筑的外貌,更是通过数字化技术呈现出建筑的内部结构、材料特性和空间布局。这些数字模型可以为修复和维护工作提供可靠的依据,使修复过程更加精确和有效。此外,通过数字建模技术,城市规划者可以模拟城市的发展、交通流动、人口分布等情况,从而更好地进行城市规划和资源配置。建筑模型也能够辅助决策者了解城市的空间分布,提高城市管理的智能化水平,优化城市运行效率,实现可持续城市发展。通过实时监测和数据分析,可以对建筑物的使用情况、能耗等进行精准管理,实现资源的优化分配,促进城市的可持续发展。
LiDAR(Light Detection and Ranging)可以高精度地测量地形、建筑物的形状、高度和位置等,为建筑模型提供准确的基础数据,其主要是通过发射激光脉冲并测量返回时间,生成大量的三维点云数据,包括建筑物的轮廓、形状、屋顶等。用于进行精细建模,捕捉建筑物的细节,如立面的装饰、窗户、门等。但是现有的基于点云生成建筑物三维模型的方法计算复杂、而且精度不高。
发明内容
为了解决上述问题,本发明提供了一种基于点云的建筑模型构建方法,所述方法包括以下步骤:
获取建筑物的LiDAR点云数据,对所述点云数据进行预处理,根据点云数据获得第一小长方体和第二小长方体,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,对第二小长方体中的点进行同样的处理使得第二小长方体中包含的点云的点数为第二固定值;
将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;
对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型。
优选地,所述根据点云数据获得第一小长方体和第二小长方体,具体为:
获得所有点云数据中最大x值、最大y值和最大z值,并获得所有点云数据中最小x值、最小y值和最小z值,根据最大x值、最大y值、最大z值和最小x值、最小y值、最小z值得到一个长方体;
对长方体进行分割得到多个大小相等的第一小长方体,过滤掉不包含点云的第一小长方体,计算第一小长方体中距离第一小长方体中心最近的点云点,将所述最近的点云点作为关键点,根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高。
优选地,所述根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高,具体为:
计算第一小长方体中点云x值的均方差、y值的均方差/>、z值的均方差/>;
根据公式计算得到第二小长方体的长宽高,其中,、/>为调节参数,且/>,i为x、y或z,/>表示第一小长方体的长、宽或高,为第二小长方体的长、宽或高。
优选地,所述对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,具体为:
判断所述第一小长方体中点的个数与所述第一固定值的关系;
如果所述个数大于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,等间隔的从排序后的点中抽取所述第一固定值个数的点作为第一小长方体中包含的点云的点;
如果所述个数小于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值。
优选地,所述在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值,具体为:
S11,计算所述第一固定值和所述个数的差值,若所述差值小于所述个数,则执行S12;若所述差值等于所述个数,则对所述第一小长方体中的每个点复制一次;若所述差值大于所述个数,对所述第一小长方体中的每个点复制n次,然后执行S12;
S12,从所述排序后的点中选择距离所述关键点最近的m个点,复制所述最近的m个点,使得插入点后点云的个数为所述第一固定值;
其中,,/>表示所述差值,N表示所述个数,m为正整数。
优选地,所述根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,具体为:
获取点云中点对应的第一小长方体和第二小长方体,如果一个点在多个第二小长方体中,计算点距离每个第二小长方体中心的距离,将距离最短的第二小长方体作为点对应的第二小长方体;
将第一小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第一特征;
将第二小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第二特征。
优选地,所述将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,具体为:
获取每个第一小长方体的关键点,将所有关键点作为PointNet模型的输入,将PointNet模型输出的全局特征作为点云的全局特征;其中,所述关键点为第一小长方体中中距离第一小长方体中心最近的点云点;
对点的信息进行编码得到点的特征,将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。
另外一方面,本发明提供了一种基于三维点云的建筑模型构建系统,所述系统包括以下模块:
点云切分模块,用于获取建筑物的LiDAR点云数据,对所述点云数据进行预处理,根据点云数据获得第一小长方体和第二小长方体,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,对第二小长方体中的点进行同样的处理使得第二小长方体中包含的点云的点数为第二固定值;
点云分割模块,用于将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;
模型构建模块,用于对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型。
优选地,所述根据点云数据获得第一小长方体和第二小长方体,具体为:
获得所有点云数据中最大x值、最大y值和最大z值,并获得所有点云数据中最小x值、最小y值和最小z值,根据最大x值、最大y值、最大z值和最小x值、最小y值、最小z值得到一个长方体;
对长方体进行分割得到多个大小相等的第一小长方体,过滤掉不包含点云的第一小长方体,计算第一小长方体中距离第一小长方体中心最近的点云点,将所述最近的点云点作为关键点,根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高。
优选地,所述根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高,具体为:
计算第一小长方体中点云x值的均方差、y值的均方差/>、z值的均方差/>;
根据公式计算得到第二小长方体的长宽高,其中,、/>为调节参数,且/>,i为x、y或z,/>表示第一小长方体的长、宽或高,为第二小长方体的长、宽或高。
优选地,所述对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,具体为:
判断所述第一小长方体中点的个数与所述第一固定值的关系;
如果所述个数大于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,等间隔的从排序后的点中抽取所述第一固定值个数的点作为第一小长方体中包含的点云的点;
如果所述个数小于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值。
优选地,所述在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值,具体为:
S11,计算所述第一固定值和所述个数的差值,若所述差值小于所述个数,则执行S12;若所述差值等于所述个数,则对所述第一小长方体中的每个点复制一次;若所述差值大于所述个数,对所述第一小长方体中的每个点复制n次,然后执行S12;
S12,从所述排序后的点中选择距离所述关键点最近的m个点,复制所述最近的m个点,使得插入点后点云的个数为所述第一固定值;
其中,,/>表示所述差值,N表示所述个数,m为正整数。
优选地,所述根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,具体为:
获取点云中点对应的第一小长方体和第二小长方体,如果一个点在多个第二小长方体中,计算点距离每个第二小长方体中心的距离,将距离最短的第二小长方体作为点对应的第二小长方体;
将第一小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第一特征;
将第二小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第二特征。
优选地,所述将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,具体为:
获取每个第一小长方体的关键点,将所有关键点作为PointNet模型的输入,将PointNet模型输出的全局特征作为点云的全局特征;其中,所述关键点为第一小长方体中中距离第一小长方体中心最近的点云点;
对点的信息进行编码得到点的特征,将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。
此外,本发明还提供了一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序在执行时,实现如上所述的方法。
最后,本发明还提供了一种电子设备,所述电子设备包括:存储器、处理器;其中,所述存储器上存储有可执行程序代码,当所述可执行程序代码在被处理器执行时,使得处理器执行如上所述的方法。
针对现有的建筑物三维模型重建效果不佳的问题,本发明对采集的建筑物三维点云进行分割,在分割中不仅考虑了点云中点的自身特征,还考虑局部特征和点云的全局特征,能够提高点云分割的准确性,最后重建的建筑模型也更准确。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为实施例一的流程图;
图2为PointNet模型局部示意图;
图3为长方体示意图;
图4为第一小长方体和第二小长方体关系示意图。
具体实施方式
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一,本发明提供了一种基于点云的建筑模型构建方法,如图1所示,所述方法包括以下步骤:
S1,获取建筑物的LiDAR点云数据,对所述点云数据进行预处理,根据点云数据获得第一小长方体和第二小长方体,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,对第二小长方体中的点进行同样的处理使得第二小长方体中包含的点云的点数为第二固定值;
LiDAR(Light Detection and Ranging)技术是使用激光脉冲来测量物体表面的距离,从而生成高密度的点云数据。通过LiDAR获取建筑物的点云数据,点云是一种在三维空间中表示物体表面的集合,它由大量离散的点组成,每个点都具有三维坐标以及可能的其他属性,其他属性为反射强度、法向量等,但是点云中的点都包括三维坐标(x,y,z)。
在获得点云后,将点云所在的空间分为多个第一小长方体和多个第二小长方体,在一个优选地实施例中,第二小长方体的长、宽、高分别大于第一小长方体的长宽高,第一小长方体全部位于或者部分位于第二小长方体中。
由于第一小长方体的位置不同,其中包含的点云点的个数也不同,为了便于后续处理,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数或个数为第一固定值,同样地,对第二小长方体中的点进行处理使得第二小长方体中包含的点云的点数或个数为第二固定值,其中,第二固定值大于第一固定值,且第一固定值和第二固定值为正整数。
S2,将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;
PointNet是一种机器学习模型,用于处理点云数据相关的任务,例如对点云进行分类以及对点云进行分割等。在PointNet模型中分为两个部分,一个是分类网络,另外是一个分割网络。但是这两个网络都会涉及到全局特征(global feature),全局特征是在进行最大池化后得到的,也即进行到Max Pool后输出的特征为全局特征,如图2所示。
在经过S1后,每个第一小立方体包含的点云的点数相同,每个第二小立方体中包含的点云的点数也想通,对于每个第一小立方体,将其中的所有点作为PointNet模型的输入,经过最大池化层后得到第一小立方体对应的特征值,同样地,可以得到第二小立方体对应的特征值。
点云中一个点对应一个第一小立方体、一个或多个第二小立方体,根据其对应的第一小立方体和第二小立方体确定第一特征和第二特征,其中,第一特征和第二特征反映了点在点云中的局部位置信息;而点云的全局特征反应了整个点云的全局特征,点的本身特征反映了点自身的特征,将第一特征、第二特征和点云的全局特征以及点自身的特征进行融合得到点的综合特征,然后采用PointNet分割网络部分对点云进行分割。在另外一个实施例中,对综合特征进行降采样后,采用MLP对点云进行语义分割,将建筑物的点云分割为墙壁、窗户、屋顶等。
上述点的自身特征至少包括点的(x,y,z)坐标信息,还可以包括其他信息,例如法向量、反射强度等。
S3,对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型。
三维模型有多种表示方式,点云、Mesh(网格)、体素等,其中,体素主要应用在医疗影像中,相较于点云,网格更适合渲染、可视化等,在对点云分割后,对点云进行表面重建,表面重建的方式包括但不限于网格重建、样条曲线/曲面拟合、泊松重建等,本发明对重建方法不作具体限定。在表面重建后,进行纹理贴图,也即纹理映射得到建筑物的三维模型,再经过纹理映射后,能够得到具有真实感的建筑物模型,这对于古建筑保护、古建筑修复以及智慧城市具有很大意义。
点云中的点除了全局信息外,还和各个点的局部信息相关,在一个具体实施例中,所述根据点云数据获得第一小长方体和第二小长方体,具体为:
获得所有点云数据中最大x值、最大y值和最大z值,并获得所有点云数据中最小x值、最小y值和最小z值,根据最大x值、最大y值、最大z值和最小x值、最小y值、最小z值得到一个长方体;
在一个更为具体的实施例中,在获得所有点云数据中最大x值、最大y值和最大z值前,先将建筑物的点云图选择到正视图方向,这样便于得到一个可以紧紧包围所有点云的长方体。在另外一个实施例中,如果建筑物包括多个,可以先对点云进行分割,得到多个单独建筑物的点云,各个建筑物的切割采用包围盒的方式。
点云中的点有位置坐标信息(x,y,z),通过x值的最大值、最小值,y值的最大值、最小值,z值的最大值、最小值,可以得到一个立方体,具体地,获取x值的最大值,然后在最大值处得到一个平行与yz平面的平面,同样地,可以得到其他五个平面,这五个平面组成的空间即为所述长方体,如图3所示。
对长方体进行分割得到多个大小相等的第一小长方体,过滤掉不包含点云的第一小长方体,计算第一小长方体中距离第一小长方体中心最近的点云点,将所述最近的点云点作为关键点,根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高。
点云中的所有点都在所述长方体内,对长方体进行分割得到多个大小相等的第一小长方体,第一小长方体的个数有多种方式获取,优选地,采用不断迭代的方式对所述长方体进行切割,直到得到的第一小长方体中最多包括的点云数小于预设值。所谓不断迭代是指,第一次将所述长方体切割为四个第一小长方体,如果四个第一小长方体不满足要求,则对四个第一小长方体中的每个再分割为四个,不断重复上述过程,直到得到的所有第一小长方体中包含的点云数据小于预设值。
对于没有含有点云中点的第一小长方体进行过滤,也即删除这些第一小长方体,对于含有点云的第一小长方体,获取每个第一小长方体的中心点,然后找到位于第一小长方体且距离中心点最近的点云点,将所述点云点作为关键点,然后根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高。
这里需要说明的是,第一小长方体个数和第二小长方体个数相同,当然,这里所述的第一小长方体是指过滤后的第一小长方体。而且第二小长方体之间的空间可能存在重叠区域。
在一个具体实施例中,所述根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高,具体为:
计算第一小长方体中点云x值的均方差、y值的均方差/>、z值的均方差/>;
根据公式计算得到第二小长方体的长宽高,其中,、/>为调节参数,且/>,i为x、y或z,/>表示第一小长方体的长、宽或高,为第二小长方体的长、宽或高。
均方差是方差的平方根,能够很好的描述数据之间的偏离程度,均方差的计算公式为:,其中,/>表示期望。通过均方差可以得到第一小立方体中点的分布情况,如果在第一立方体中点越集中在一个平面,例如一个极限情况,所有点都在第一小立方体的x=1的平面中,则/>和/>都为零,此时,第二立方体可以是一个很扁平的立方体。
由于第二小立方体主要获取更大区域中点云的分布特征,根据公式得到第二小立方体的长宽高。例如当i为x时,上述公式变为了计算长的公式,也即/>,同样地,可以得到计算第二小立方体宽和高的公式,分别为:/>、/>。第二小立方体的中心为所述关键点,如图4所示。
每个第一小立方体和每个第二小立方体中含有的点云的点数个数不同,有的含有50个点,有的可能含有5个点,在一个具体实施例中,所述对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,具体为:
判断所述第一小长方体中点的个数与所述第一固定值的关系;
如果所述个数大于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,等间隔的从排序后的点中抽取所述第一固定值个数的点作为第一小长方体中包含的点云的点;
此时,第一小立方体中含有的点数较多,需要进行抽取,具体地,先按和关键点的距离对第一小立方体中所有的点进行排序,然后等间隔的从排序后的点中抽取第一固定值个数的点。例如排序后点有十个,分别为1、2、3、4、5、6、7、8、9、10,假设第一固定值为4,则抽取1、4、7、10。如果无法严格按照等间隔,则舍弃距离最远的若干个点,使得满足等间隔。
如果所述个数小于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值。
如果第一小立方体中含有的点数较少,则需要进行插值,在排序后的点中插入若干个点,使得第一小立方体中含有的点数满足第一固定值。在一个具体实施例中,所述在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值,具体为:
S11,计算所述第一固定值和所述个数的差值,若所述差值小于所述个数,则执行S12;若所述差值等于所述个数,则对所述第一小长方体中的每个点复制一次;若所述差值大于所述个数,对所述第一小长方体中的每个点复制n次,然后执行S12;
S12,从所述排序后的点中选择距离所述关键点最近的m个点,复制所述最近的m个点,使得插入点后点云的个数为所述第一固定值;
其中,,/>表示所述差值,N表示所述个数,m为正整数。
在进行插值时,如果第一立方体中含有的点数和第一固定值差异较小(也即二者的差值小于等于所述含有的个数),则选择距离所述关键点最近的m个点,进行复制,第一立方体中原来含有的点数加上复制得到的m个点数之和为第一固定值。
如果第一固定值和第一立方体中含有的点数差异较大,需要复制的点数较多,此时,先将第一立方体中原来含有的点数复制n次,然后使得差异变小,再进行距离关键点最近的若干点,使得最后结果中点数等于第一固定值。
此外,如果第一小立方体中含有的点数和第一固定值相同,则无需进行处理。
在对点云进行分割时,不仅仅要根据点自己的特征,还需要参考周边点的特征,所述根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,具体为:
获取点云中点对应的第一小长方体和第二小长方体,如果一个点在多个第二小长方体中,计算点距离每个第二小长方体中心的距离,将距离最短的第二小长方体作为点对应的第二小长方体;
由于在对长方体进行切割时,第一小长方体是紧挨着,没有重叠区域,而且也没有间隙,这样每个点都对应一个第一长方体,但是第二长方体的中心和第一长方体的中心不同,大小也不同,第二长方体会出现重叠的情况。
在确定点云中一个点对应的第一小长方体时,可以唯一确定一个第一小长方体,但是有些点会落入多个第二小长方体,基于此,本发明选择和第二小长方体中心最近的第二小长方体作为点对应的第二小长方体。
将第一小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第一特征;
将第二小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第二特征。
然后将第一小长方体中的点作为PointNet模型的输入,经过Max Pool后输出的全局特征作为第一特征;同样地,将第二小长方体中的点作为PointNet模型的输入,经过MaxPool后输出的全局特征作为第二特征。
在点云分割时,还需要考虑点云整体的特征,在一个具体实施例中,所述将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,具体为:
获取每个第一小长方体的关键点,将所有关键点作为PointNet模型的输入,将PointNet模型输出的全局特征作为点云的全局特征;其中,所述关键点为第一小长方体中中距离第一小长方体中心最近的点云点;
一个建筑物的点云中点的个数常常有上百万个,如果都用于全局特征的计算,计算量会很大,本发明使用每个第一小长方体的关键点作为PointNet模型的输入,经过MaxPool后输出的全局特征作为点云的全局特征。
对点的信息进行编码得到点的特征,将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。
对点的信息进行编码有多种方式,一种方式是采用PointNet模型的编码方式,也即将每个点作为输入,得到该点输入Max Pool的向量,将这个向量作为点的信息的编码结果得到点的特征;另外一种方式是采用单独编码的方式,将点的信息embedding成固定长度例如2048的特征。
最后,依次将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。将点的综合特征经过MLP或者FFN得到点的分类,以此实现对点云的语义分割。
实施例二,本发明提供了一种基于点云的建筑模型构建系统,所述系统包括以下模块:
点云切分模块,用于获取建筑物的LiDAR点云数据,对所述点云数据进行预处理,根据点云数据获得第一小长方体和第二小长方体,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,对第二小长方体中的点进行同样的处理使得第二小长方体中包含的点云的点数为第二固定值;
点云分割模块,用于将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;
模型构建模块,用于对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型。
优选地,所述根据点云数据获得第一小长方体和第二小长方体,具体为:
获得所有点云数据中最大x值、最大y值和最大z值,并获得所有点云数据中最小x值、最小y值和最小z值,根据最大x值、最大y值、最大z值和最小x值、最小y值、最小z值得到一个长方体;
对长方体进行分割得到多个大小相等的第一小长方体,过滤掉不包含点云的第一小长方体,计算第一小长方体中距离第一小长方体中心最近的点云点,将所述最近的点云点作为关键点,根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高。
优选地,所述根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高,具体为:
计算第一小长方体中点云x值的均方差、y值的均方差/>、z值的均方差/>;
根据公式计算得到第二小长方体的长宽高,其中,、/>为调节参数,且/>,i为x、y或z,/>表示第一小长方体的长、宽或高,为第二小长方体的长、宽或高。
优选地,所述对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,具体为:
判断所述第一小长方体中点的个数与所述第一固定值的关系;
如果所述个数大于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,等间隔的从排序后的点中抽取所述第一固定值个数的点作为第一小长方体中包含的点云的点;
如果所述个数小于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值。
优选地,所述在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值,具体为:
S11,计算所述第一固定值和所述个数的差值,若所述差值小于所述个数,则执行S12;若所述差值等于所述个数,则对所述第一小长方体中的每个点复制一次;若所述差值大于所述个数,对所述第一小长方体中的每个点复制n次,然后执行S12;
S12,从所述排序后的点中选择距离所述关键点最近的m个点,复制所述最近的m个点,使得插入点后点云的个数为所述第一固定值;
其中,,/>表示所述差值,N表示所述个数,m为正整数。
优选地,所述根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,具体为:
获取点云中点对应的第一小长方体和第二小长方体,如果一个点在多个第二小长方体中,计算点距离每个第二小长方体中心的距离,将距离最短的第二小长方体作为点对应的第二小长方体;
将第一小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第一特征;
将第二小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第二特征。
优选地,所述将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,具体为:
获取每个第一小长方体的关键点,将所有关键点作为PointNet模型的输入,将PointNet模型输出的全局特征作为点云的全局特征;其中,所述关键点为第一小长方体中中距离第一小长方体中心最近的点云点;
对点的信息进行编码得到点的特征,将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。
此外,本发明还提供了一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序在执行时,实现如上所述的方法。
最后,本发明还提供了一种电子设备,所述电子设备包括:存储器、处理器;其中,所述存储器上存储有可执行程序代码,当所述可执行程序代码在被处理器执行时,使得处理器执行如上所述的方法。
实施例三,本发明还提供了一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序在被计算机执行时,实现如实施例一所述的方法。
实施例四,本发明还提供了一种电子设备,所述电子设备包括:存储器、处理器;其中,所述存储器上存储有可执行程序代码,当所述可执行程序代码在被处理器执行时,使得处理器执行如实施例一所述的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于点云的建筑模型构建方法,其特征在于,所述方法包括以下步骤:
获取建筑物的LiDAR点云数据,对所述点云数据进行预处理,根据点云数据获得第一小长方体和第二小长方体,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,对第二小长方体中的点进行同样的处理使得第二小长方体中包含的点云的点数为第二固定值;
将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;
对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型;
所述对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,具体为:
判断所述第一小长方体中点的个数与所述第一固定值的关系;
所述根据点云数据获得第一小长方体和第二小长方体,具体为:
获得所有点云数据中最大x值、最大y值和最大z值,并获得所有点云数据中最小x值、最小y值和最小z值,根据最大x值、最大y值、最大z值和最小x值、最小y值、最小z值得到一个长方体;
对长方体进行分割得到多个大小相等的第一小长方体,过滤掉不包含点云的第一小长方体,计算第一小长方体中距离第一小长方体中心最近的点云点,将所述最近的点云点作为关键点,根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高;
如果所述个数大于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,等间隔的从排序后的点中抽取所述第一固定值个数的点作为第一小长方体中包含的点云的点;
如果所述个数小于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值;
所述根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,具体为:
获取点云中点对应的第一小长方体和第二小长方体,如果一个点在多个第二小长方体中,计算点距离每个第二小长方体中心的距离,将距离最短的第二小长方体作为点对应的第二小长方体;
将第一小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第一特征;
将第二小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第二特征;
所述将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,具体为:
获取每个第一小长方体的关键点,将所有关键点作为PointNet模型的输入,将PointNet模型输出的全局特征作为点云的全局特征;其中,所述关键点为第一小长方体中中距离第一小长方体中心最近的点云点;
对点的信息进行编码得到点的特征,将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。
2.如权利要求1所述的方法,其特征在于,所述根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高,具体为:
计算第一小长方体中点云x值的均方差、y值的均方差/>、z值的均方差/>;
根据公式计算得到第二小长方体的长宽高,其中,/>、/>为调节参数,且/>,i为x、y或z,/>表示第一小长方体的长、宽或高,/>为第二小长方体的长、宽或高。
3.如权利要求1所述的方法,其特征在于,所述在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值,具体为:
S11,计算所述第一固定值和所述个数的差值,若所述差值小于所述个数,则执行S12;若所述差值等于所述个数,则对所述第一小长方体中的每个点复制一次;若所述差值大于所述个数,对所述第一小长方体中的每个点复制n次,然后执行S12;
S12,从所述排序后的点中选择距离所述关键点最近的m个点,复制所述最近的m个点,使得插入点后点云的个数为所述第一固定值;
其中,,/>表示所述差值,N表示所述个数,m为正整数。
4.一种基于点云的建筑模型构建系统,其特征在于,所述系统包括以下模块:
点云切分模块,用于获取建筑物的LiDAR点云数据,对所述点云数据进行预处理,根据点云数据获得第一小长方体和第二小长方体,对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,对第二小长方体中的点进行同样的处理使得第二小长方体中包含的点云的点数为第二固定值;
点云分割模块,用于将每个第一小长方体中的点和每个第二小长方体中的点分别作为PointNet模型的输入得到每个第一小长方体的特征值和每个第二小长方体的特征值,根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,根据点云中每个点的所述综合特征对点云进行分割;
模型构建模块,用于对分割后的点云进行表面重建,在纹理映射后得到建筑物的三维模型;
所述对第一小长方体中的点进行处理使得第一小长方体中包含的点云的点数为第一固定值,具体为:
判断所述第一小长方体中点的个数与所述第一固定值的关系;
所述根据点云数据获得第一小长方体和第二小长方体,具体为:
获得所有点云数据中最大x值、最大y值和最大z值,并获得所有点云数据中最小x值、最小y值和最小z值,根据最大x值、最大y值、最大z值和最小x值、最小y值、最小z值得到一个长方体;
对长方体进行分割得到多个大小相等的第一小长方体,过滤掉不包含点云的第一小长方体,计算第一小长方体中距离第一小长方体中心最近的点云点,将所述最近的点云点作为关键点,根据所述关键点所在的第一小长方体中点云分布情况确定第二小长方体的长宽高;
如果所述个数大于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,等间隔的从排序后的点中抽取所述第一固定值个数的点作为第一小长方体中包含的点云的点;
如果所述个数小于所述第一固定值,则计算所述第一小长方体中每个点与所述关键点的距离,按照所述距离对点进行排序,在排序后的点中插入多个点使得插入点后点云的个数为所述第一固定值;
所述根据点云中的点对应的第一小长方体和第二小长方体,确定第一特征和第二特征,具体为:
获取点云中点对应的第一小长方体和第二小长方体,如果一个点在多个第二小长方体中,计算点距离每个第二小长方体中心的距离,将距离最短的第二小长方体作为点对应的第二小长方体;
将第一小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第一特征;
将第二小长方体中的点作为PointNet模型的输入,将PointNet模型输出的全局特征作为第二特征;
所述将第一特征、第二特征、点云的全局特征以及点的特征进行融合得到点的综合特征,具体为:
获取每个第一小长方体的关键点,将所有关键点作为PointNet模型的输入,将PointNet模型输出的全局特征作为点云的全局特征;其中,所述关键点为第一小长方体中中距离第一小长方体中心最近的点云点;
对点的信息进行编码得到点的特征,将点的特征、第一特征、第二特征、点云的全局特征进行concat操作得到点的综合特征。
5.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序在执行时,实现如权利要求1-3中任一项所述的方法。
6.一种电子设备,其特征在于,所述电子设备包括:存储器、处理器;其中,所述存储器上存储有可执行程序代码,当所述可执行程序代码在被处理器执行时,使得处理器执行如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311123548.0A CN116882031B (zh) | 2023-09-01 | 2023-09-01 | 一种基于点云的建筑模型构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311123548.0A CN116882031B (zh) | 2023-09-01 | 2023-09-01 | 一种基于点云的建筑模型构建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116882031A CN116882031A (zh) | 2023-10-13 |
CN116882031B true CN116882031B (zh) | 2023-11-17 |
Family
ID=88260830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311123548.0A Active CN116882031B (zh) | 2023-09-01 | 2023-09-01 | 一种基于点云的建筑模型构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116882031B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114187310A (zh) * | 2021-11-22 | 2022-03-15 | 华南农业大学 | 基于八叉树和PointNet++网络的大规模点云分割方法 |
CN115115839A (zh) * | 2022-07-28 | 2022-09-27 | 南京工业大学 | 一种基于局部特征增强PointNet++网络的建筑物室内点云分割方法 |
WO2022252274A1 (zh) * | 2021-05-31 | 2022-12-08 | 北京理工大学 | 基于PointNet网络点云分割及虚拟环境生成方法和装置 |
CN115761172A (zh) * | 2022-10-10 | 2023-03-07 | 哈尔滨工程大学 | 一种基于点云语义分割与结构拟合的单体建筑三维重建方法 |
WO2023035822A1 (zh) * | 2021-09-13 | 2023-03-16 | 上海芯物科技有限公司 | 一种目标检测方法、装置、设备及存储介质 |
CN116310192A (zh) * | 2022-12-28 | 2023-06-23 | 江苏省测绘研究所 | 一种基于点云的城市级建筑物三维模型单体重建方法 |
-
2023
- 2023-09-01 CN CN202311123548.0A patent/CN116882031B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022252274A1 (zh) * | 2021-05-31 | 2022-12-08 | 北京理工大学 | 基于PointNet网络点云分割及虚拟环境生成方法和装置 |
WO2023035822A1 (zh) * | 2021-09-13 | 2023-03-16 | 上海芯物科技有限公司 | 一种目标检测方法、装置、设备及存储介质 |
CN114187310A (zh) * | 2021-11-22 | 2022-03-15 | 华南农业大学 | 基于八叉树和PointNet++网络的大规模点云分割方法 |
CN115115839A (zh) * | 2022-07-28 | 2022-09-27 | 南京工业大学 | 一种基于局部特征增强PointNet++网络的建筑物室内点云分割方法 |
CN115761172A (zh) * | 2022-10-10 | 2023-03-07 | 哈尔滨工程大学 | 一种基于点云语义分割与结构拟合的单体建筑三维重建方法 |
CN116310192A (zh) * | 2022-12-28 | 2023-06-23 | 江苏省测绘研究所 | 一种基于点云的城市级建筑物三维模型单体重建方法 |
Non-Patent Citations (2)
Title |
---|
基于DGCNN语义分割的倾斜摄影测量三维点云建筑物分类;韩姗姗;黄远程;白穆;;测绘标准化(第03期);全文 * |
面向点云的三维物体识别方法综述;郝雯;王映辉;宁小娟;梁玮;石争浩;;计算机科学(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116882031A (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024077812A1 (zh) | 基于点云语义分割与结构拟合的单体建筑三维重建方法 | |
Wang et al. | Lidar point clouds to 3-D urban models $: $ A review | |
Lin et al. | Semantic decomposition and reconstruction of residential scenes from LiDAR data | |
Poullis et al. | Automatic reconstruction of cities from remote sensor data | |
CN106133756A (zh) | 用于过滤、分割并且识别无约束环境中的对象的系统 | |
JP2008527473A (ja) | 3次元モデルの検索方法、検索装置及び検索プログラム | |
Bouzas et al. | Structure-aware building mesh polygonization | |
CN113487730A (zh) | 一种基于激光雷达点云数据的城市三维自动建模方法 | |
CN113724279B (zh) | 路网自动划分交通小区的系统、方法、设备及存储介质 | |
CN116229007B (zh) | 利用bim建模的四维数字图像构建方法、装置、设备及介质 | |
Hu et al. | Geometric feature enhanced line segment extraction from large-scale point clouds with hierarchical topological optimization | |
Liu et al. | Generation of concise 3D building model from dense meshes by extracting and completing planar primitives | |
Wang et al. | Branching the limits: Robust 3D tree reconstruction from incomplete laser point clouds | |
Zhao et al. | A 3D modeling method for buildings based on LiDAR point cloud and DLG | |
CN114419278A (zh) | 室内三维彩色网格模型生成方法及系统 | |
Zhou | 3D urban modeling from city-scale aerial LiDAR data | |
CN116882031B (zh) | 一种基于点云的建筑模型构建方法及系统 | |
Mao et al. | Glass façade segmentation and repair for aerial photogrammetric 3D building models with multiple constraints | |
CN114445574B (zh) | 将GeoJSON数据格式转换为三维GLB格式的方法、装置和设备 | |
Liu et al. | Point2Building: Reconstructing Buildings from Airborne LiDAR Point Clouds | |
Sahebdivani et al. | Deep learning based classification of color point cloud for 3D reconstruction of interior elements of buildings | |
Gonzálvez et al. | From point cloud to surface: Modeling structures in laser scanner point clouds | |
Kong et al. | Generating 3D Roof Models from ALS Point Clouds Using Roof Line Topologies | |
Yan et al. | UBMDP: Urban Building Mesh Decoupling and Polygonization | |
Menzel et al. | City Reconstruction and Visualization from Public Data Sources. |
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 |