CN108470374B - 海量点云数据处理方法及装置 - Google Patents
海量点云数据处理方法及装置 Download PDFInfo
- Publication number
- CN108470374B CN108470374B CN201810308550.8A CN201810308550A CN108470374B CN 108470374 B CN108470374 B CN 108470374B CN 201810308550 A CN201810308550 A CN 201810308550A CN 108470374 B CN108470374 B CN 108470374B
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- node
- octree
- lod
- 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
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种海量点云数据处理方法及装置,方法包括:获取待处理点云数据,并对待处理点云数据进行分块处理,得到多个点云数据块;基于待处理点云数据中的多个点云数据块,生成待处理点云数据的整体八叉树;对整体八叉树进行数据抽稀,得到整体抽稀八叉树;根据整体抽稀八叉树中每个节点内的点云数据,构建与节点对应的细节层次模型LOD,LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据像素阈值范围调用LOD时加载对应的点云数据,缓解现有技术中存在的海量点云数据实时绘制速度慢的技术问题,达到了提高点云数据实时绘制速度的技术效果。
Description
技术领域
本发明涉及测绘数据处理技术领域,尤其是涉及一种海量点云数据处理方法及装置。
背景技术
点云数据处理技术是对获取的离散数据进行处理,以获得物体的曲面模型,解决如何根据测量所得点云数据构建物体三维模型的一种技术,其特点是直接以点的形式进行存储、处理、传输和绘制三维物体。
在实际应用中,用户对三维场景的显示速度提出了很高的要求,不仅要能按照用户的交互指令动态显示模型,并且要能够根据用户的视点变化快速更新模型表面的分辨率。然而,点云数据的海量性和运算的复杂性导致点云数据实时绘制速度慢的问题。
发明内容
有鉴于此,本发明的目的在于提供一种海量点云数据处理方法及装置,以缓解现有技术中存在的海量点云数据实时绘制速度慢的技术问题。
第一方面,本发明实施例提供了一种海量点云数据处理方法,包括:
获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;
基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;
对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;
根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述点云数据块的数量为8N,其中,N为正整数;
所述基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树,包括:
针对每个所述点云数据块内的点云数据,生成每个所述点云数据块的具有M层的一级八叉树;
生成以各所述一级八叉树的一级根节点为叶子节点且共M+N层的整体八叉树。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树,包括:
对所述整体八叉树中最底层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述对所述整体八叉树中最底层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树,包括:
基于所述整体八叉树中每个叶子节点内的点云数据,根据所述叶子节点内的点云数据的总数量与预设的抽稀因子的乘积在每个所述叶子节点内确定所述叶子节点内的抽稀点云数据;
将确定的所述叶子节点内的所述抽稀点云数据存储到所述叶子节点的父节点中;
基于所述整体八叉树中每个所述父节点内的点云数据,根据所述父节点内的点云数据的总数量与所述抽稀因子的乘积确定所述父节点内的抽稀点云数据;
将确定的所述父节点内的所述抽稀点云数据存储到所述父节点的父节点中,直至将抽稀的点云数据存储到所述整体八叉树的根节点,得到所述整体抽稀八叉树。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,包括:
根据所述整体抽稀八叉树中每个节点内的点云数据,确定所述LOD的模型节点中心为所述节点内的点云数据确定的包围盒的中心;
确定所述LOD的模型节点半径为所述节点内的点云数据确定的包围盒的外接圆半径;
建立所述LOD和所述节点内的点云数据间的对应关系;
根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围,包括:
将所述抽稀因子、所述M+N的和、所述子节点所在的层和所述原始点云分辨率代入预设的当前层点云分辨率计算公式,计算得到当前层点云分辨率;
将所述当前层点云分辨率和预设的经验系数相乘,计算得到所述LOD的所述像素阈值范围中较小的阈值端点。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述对所述待处理点云数据进行分块处理,得到多个点云数据块,包括:
对所述待处理点云数据所占空间进行平均划分;
将得到的子空间中所包含的点云数据确定为所述点云数据块。
第二方面,本发明实施例还提供一种海量点云数据处理方法,包括:
获取显示点云数据的屏幕中的视点中心坐标;
根据LOD的模型节点中心、模型节点半径和所述视点中心坐标,计算得到所述LOD在屏幕上所占的像素值;
若所述像素值位于任一预设的像素阈值范围内,调用与所述像素阈值范围对应的LOD,以加载用于构建所述LOD的点云数据。
第三方面,本发明实施例还提供一种海量点云数据处理装置,包括:获取模块、生成模块、抽稀模块和构建模块;
所述获取模块,用于获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;
所述生成模块,用于基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;
所述抽稀模块,用于对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;
所述构建模块,用于根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据。
第四方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如第一方面和第二方面任一所述的方法。
本发明实施例带来了以下有益效果:本发明实施例提供的海量点云数据处理方法包括:获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据。
所以,在用户进行点云数据可视化过程之前,要对点云数据进行处理,首先,获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;保证了所述整体八叉树的层与层之间没有冗余的点云数据,根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据,所以,当用户进行点云数据的可视化过程时,由于所述整体八叉树的层与层之间没有冗余的点云数据,且所述LOD的像素阈值范围是根据所述原始点云分辨率确定的,避免由于点云数据的海量性和运算的复杂性导致的点云数据实时绘制速度慢的问题,因此,缓解了现有技术中存在的海量点云数据实时绘制速度慢的技术问题,达到了提高海量点云数据实时绘制速度的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的海量点云数据处理方法的第一种流程图;
图2为图1中步骤S102的流程图;
图3为图1中步骤S104的流程图;
图4为本发明实施例提供的海量点云数据处理方法的第二种流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,点云数据处理技术是对获取的离散数据进行处理,以获得物体的曲面模型,解决如何根据测量所得点云数据构建物体三维模型的一种技术,其特点是直接以点的形式进行存储、处理、传输和绘制三维物体。
在实际应用中,用户对三维场景的显示速度提出了很高的要求,不仅要能按照用户的交互指令动态显示模型,并且要能够根据用户的视点变化快速更新模型表面的分辨率。然而,点云数据的海量性和运算的复杂性导致点云数据实时绘制速度慢的问题,基于此,本发明实施例提供的一种海量点云数据处理方法及装置,可以缓解现有技术中存在的海量点云数据实时绘制速度慢的技术问题,达到了提高海量点云数据实时绘制速度的技术效果。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种海量点云数据处理方法进行详细介绍,如图1所示,所述海量点云数据处理方法可以包括以下步骤。
步骤S101,获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块。
示例性的,所述对所述待处理点云数据进行分块处理,得到多个点云数据块,可以包括:
对所述待处理点云数据所占空间进行平均划分。
示例性的,可以根据预设的所述待处理点云数据的数据量和点云数据块的数量之间的关系,确定所述点云数据块的数量。举例说明,所述待处理点云数据的数据量和点云数据块的数量之间的关系可以如表1所示。
表1
待处理点云数据的数据量 | 点云数据块的数量 |
10G | 4×4×4 |
20G | 8×8×8 |
30G | 16×16×16 |
示例性的,在待处理点云数据的X轴数据中,确定X轴最大值和X轴最小值。在待处理点云数据的Y轴数据中,确定Y轴最大值和Y轴最小值。在待处理点云数据的Z轴数据中,确定Z轴最大值和Z轴最小值。根据X轴最大值、X轴最小值、Y轴最大值、Y轴最小值、Z轴最大值和Z轴最小值,确定所述待处理点云数据的原始包围盒。用所述X轴最大值减去所述X轴最小值,得到X轴长度。用所述Y轴最大值减去所述Y轴最小值,得到Y轴长度。用所述Z轴最大值减去Z轴最小值,得到Z轴长度。在所述X轴长度、所述Y轴长度和所述Z轴长度中,选取较大的作为中间长度,生成以所述中间长度为边长、以所述原始包围盒的中心为中心的待分块立方体,且确定所述待分块立方体的第一左下角坐标和第一右上角坐标。
示例性的,当待处理点云数据的Z轴长度直观的比较小时,可以直接根据X轴数据和Y轴数据确定待分块立方体。
示例性的,当确定的点云数据块的数量为64时,将待分块立方体平均划分64个子空间。
将得到的子空间中所包含的点云数据确定为所述点云数据块。
步骤S102,基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树。
示例性的,所述点云数据块的数量可以为8N,其中,N为正整数。由于所述待处理点云数据的处理过程中使用八叉树,所以点云数据块的数量可以为8N。
示例性的,如图2所示,步骤S102可以包括以下步骤。
步骤S201,针对每个所述点云数据块内的点云数据,生成每个所述点云数据块的具有M层的一级八叉树。
示例性的,M为预设的一级深度值。举例说明,当M=3时,则所述一级八叉树具有3层。每个所述点云数据块分别对应一个一级八叉树。每个所述点云数据块内的点云数据存放在与所述点云数据块对应的所述一级八叉树的一级根节点中。随着所述一级八叉树的节点的划分完成,判断点云数据块内的所述点云数据的坐标值是否位于所述点云数据块的包围盒内,所述包围盒根据所述第一左下角坐标和所述第一右上角坐标确定,若所述点云数据的坐标值位于所述点云数据块的所述包围盒内,则将所述点云数据划分到所述一级八叉树的叶子节点中。与此过程对应的索引结构以文件夹的方式存放在硬盘中,点云数据以二进制文件的方式存放在与叶子节点对应的文件夹中。对于每个所述点云数据块,将点云数据块内的所有点云数据划分到与点云数据块对应的一级八叉树的叶子节点中。
步骤S202,生成以各所述一级八叉树的一级根节点为叶子节点且共M+N层的整体八叉树。
示例性的,由于所述待处理点云数据的处理过程中使用八叉树,且点云数据块的数量已经确定了(即N+1层八叉树的叶子节点数已经确定),所以,可以确定N的值。举例说明,当点云数据块的数量为64时,则具有64个叶子节点的八叉树的层数为3,即N的值为2。所以,当点云数据块的数量为64(意味着N=2),M=3时,所述整体八叉树的层数为5。
步骤S103,对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树。
示例性的,所述对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树,可以包括:
对所述整体八叉树中最底层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树。
示例性的,所述对所述整体八叉树中最底层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树,可以包括:
基于所述整体八叉树中每个叶子节点内的点云数据,根据所述叶子节点内的点云数据的总数量与预设的抽稀因子的乘积在每个所述叶子节点内确定所述叶子节点内的抽稀点云数据。
示例性的,所述抽稀因子可以设置为以所述抽稀因子为进行举例说明。每个叶子节点内的点云数据都是根据被读取的顺序进行排列的,以叶子节点内的点云数据的总数为1024为例进行说明。1024个点云数据的序列号分别为:1、2、…、1024。如果所述序列号为4的整数倍,则将与所述序列号对应的点云数据确定为所述抽稀点云数据,此时,叶子节点内的点云数据的数量为768个,所述抽稀点云数据内的点云数据的数量为256个。
将确定的所述叶子节点内的所述抽稀点云数据存储到所述叶子节点的父节点中。
基于所述整体八叉树中每个所述父节点内的点云数据,根据所述父节点内的点云数据的总数量与所述抽稀因子的乘积确定所述父节点内的抽稀点云数据。
示例性的,由于所述待处理点云数据的处理过程中使用八叉树,所以一个父节点具有8个子节点。举例说明,8个子节点的抽稀点云数据内的点云数据的数量可以如表2所示。
表2
将这8个子节点的抽稀点云数据进行合并,存放到这个父节点中。此时,这个父节点内的点云数据的数量为580个。以所述抽稀因子为进行举例说明。580个点云数据的序列号分别为:1、2、…、580。如果所述序列号为4的整数倍,则将与所述序列号对应的点云数据确定为所述抽稀点云数据,此时,父节点内的点云数据的数量为435个,所述抽稀点云数据内的点云数据的数量为145个。
将确定的所述父节点内的所述抽稀点云数据存储到所述父节点的父节点中,直至将抽稀的点云数据存储到所述整体八叉树的根节点,得到所述整体抽稀八叉树。
示例性的,当所述整体八叉树的倒数第M-1层的抽稀操作完成以后,根据所述整体八叉树的倒数第M层的所有点云数据,确定所述整体八叉树的倒数第M层的所有点云数据的包围盒,以及所述包围盒的第二左下角坐标和第二右上角坐标,以及计算所述整体八叉树的倒数第M层的所有点云数据的所述原始点云分辨率。根据所述第二左下角坐标和所述第二右上角坐标,确定所述整体八叉树的倒数第M层的每个节点内点云数据的节点数据包围盒,若所述节点内的点云数据的坐标位于与所述节点对应的节点数据包围盒内,则将所述点云数据存放到所述节点中。然后继续进行抽稀操作。
示例性的,对所述整体八叉树的所有节点进行抽稀操作后,得到所述整体抽稀八叉树,保证所述整体抽稀八叉树的层与层之间没有冗余的点云数据,避免由于点云数据的海量性导致的点云数据实时绘制速度慢的问题,提高点云数据的实时绘制速度。
步骤S104,根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据。
示例性的,如图3所示,步骤S104可以包括以下步骤。
步骤S301,根据所述整体抽稀八叉树中每个节点内的点云数据,确定所述LOD的模型节点中心为所述节点内的点云数据确定的包围盒的中心。
步骤S302,确定所述LOD的模型节点半径为所述节点内的点云数据确定的包围盒的外接圆半径。
步骤S303,建立所述LOD和所述节点内的点云数据间的对应关系。
示例性的,设置所述LOD的文件名称为所述节点内的点云数据所在文件夹的名称。
步骤S304,根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围。
示例性的,与所述整体抽稀八叉树的根节点对应的所述LOD的像素阈值范围可以为(0,+∞)。
示例性的,所述根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围,可以包括:
将所述抽稀因子、所述M+N的和、所述子节点所在的层和所述原始点云分辨率代入预设的当前层点云分辨率计算公式,计算得到当前层点云分辨率。
示例性的,所述当前层点云分辨率计算公式的表达式可以为:cR=a(b-c)*e,其中,cR为所述当前层点云分辨率,a为所述抽稀因子,b为M+N的和,c为所述子节点所在的层,e为所述原始点云分辨率。举例说明,当所述原始点云分辨率为1000时,则表示在与所述整体抽稀八叉树的倒数第M层对应的空间内,每平方米包括1000个点云数据。
将所述当前层点云分辨率和预设的经验系数相乘,计算得到所述LOD的所述像素阈值范围中较小的阈值端点。
示例性的,所述经验系数是通过实验确定的,通常可以设置为0.15。与所述整体抽稀八叉树的子节点对应的所述LOD的像素阈值范围可以为(t,+∞),其中,t为所述较小的阈值端点。每个所述整体抽稀八叉树的节点分别对应一个所述LOD。
本发明实施例中,所述海量点云数据处理方法包括:获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据。
所以,在用户进行点云数据可视化过程之前,要对点云数据进行处理,首先,获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;保证了所述整体八叉树的层与层之间没有冗余的点云数据,根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据,所以,当用户进行点云数据的可视化过程时,由于所述整体八叉树的层与层之间没有冗余的点云数据,且所述LOD的像素阈值范围是根据所述原始点云分辨率确定的,避免由于点云数据的海量性和运算的复杂性导致的点云数据实时绘制速度慢的问题,因此,缓解了现有技术中存在的海量点云数据实时绘制速度慢的技术问题,达到了提高海量点云数据实时绘制速度的技术效果。
在本发明的又一实施例中,所述点云数据块的数量为8N,其中,N为正整数;
所述基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树,可以包括:
针对每个所述点云数据块内的点云数据,生成每个所述点云数据块的具有M层的一级八叉树;
基于每个所述一级八叉树,对所述一级八叉树进行数据抽稀,得到一级抽稀八叉树;
生成以各所述一级抽稀八叉树的一级根节点为叶子节点且共M+N层的整体八叉树。
在本发明的又一实施例中,所述基于每个所述一级八叉树,对所述一级八叉树进行数据抽稀,得到一级抽稀八叉树,包括:
基于所述一级八叉树中每个叶子节点内的点云数据,根据所述叶子节点内的点云数据的总数量与预设的抽稀因子的乘积在每个所述叶子节点内确定所述叶子节点内的抽稀点云数据;
将确定的所述叶子节点内的所述抽稀点云数据存储到所述叶子节点的父节点中;
基于所述一级八叉树中每个所述父节点内的点云数据,根据所述父节点内的点云数据的总数量与所述抽稀因子的乘积确定所述父节点内的抽稀点云数据;
将确定的所述父节点内的所述抽稀点云数据存储到所述父节点的父节点中,直至将抽稀的点云数据存储到所述一级八叉树的所述一级根节点,得到所述一级抽稀八叉树。
在本发明的又一实施例中,所述对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树,可以包括:
对所述整体八叉树中倒数第M层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树。
在本发明的又一实施例中,对本发明实施例所公开的一种海量点云数据处理方法进行详细介绍,如图4所示,所述海量点云数据处理方法可以包括以下步骤。
步骤S401,获取显示点云数据的屏幕中的视点中心坐标。
步骤S402,根据LOD的模型节点中心、模型节点半径和所述视点中心坐标,计算得到所述LOD在屏幕上所占的像素值。
步骤S403,若所述像素值位于任一预设的像素阈值范围内,调用与所述像素阈值范围对应的LOD,以加载用于构建所述LOD的点云数据。
在本发明的又一实施例中,对本发明实施例所公开的一种海量点云数据处理装置进行详细介绍,所述海量点云数据处理装置包括:获取模块、生成模块、抽稀模块和构建模块;
所述获取模块,用于获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;
所述生成模块,用于基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;
所述抽稀模块,用于对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;
所述构建模块,用于根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据。
在本发明的又一实施例中,对本发明实施例所公开的一种具有处理器可执行的非易失的程序代码的计算机可读介质进行详细介绍,所述程序代码使所述处理器执行上述实施例任一所述的方法。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的进行海量点云数据处理方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种海量点云数据处理方法,其特征在于,包括:
获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;
基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;
对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;
根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据;
所述根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,包括:
根据所述整体抽稀八叉树中每个节点内的点云数据,确定所述LOD的模型节点中心为所述节点内的点云数据确定的包围盒的中心;
确定所述LOD的模型节点半径为所述节点内的点云数据确定的包围盒的外接圆半径;
建立所述LOD和所述节点内的点云数据间的对应关系;
根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围;
建立所述LOD和所述节点内的点云数据间的对应关系,包括:
设置所述LOD的文件名称为所述节点内的点云数据所在文件夹的名称。
2.根据权利要求1所述的海量点云数据处理方法,其特征在于,所述点云数据块的数量为8N,其中,N为正整数;
所述基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树,包括:
针对每个所述点云数据块内的点云数据,生成每个所述点云数据块的具有M层的一级八叉树;
生成以各所述一级八叉树的一级根节点为叶子节点且共M+N层的整体八叉树。
3.根据权利要求2所述的海量点云数据处理方法,其特征在于,所述对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树,包括:
对所述整体八叉树中最底层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树。
4.根据权利要求3所述的海量点云数据处理方法,其特征在于,所述对所述整体八叉树中最底层的节点开始进行数据抽稀处理,将得到的点云数据存入该层节点上一层的节点中,继续对所述上一层的节点进行数据抽稀处理,直至所述整体八叉树中的各层节点全部处理完毕,得到所述整体抽稀八叉树,包括:
基于所述整体八叉树中每个叶子节点内的点云数据,根据所述叶子节点内的点云数据的总数量与预设的抽稀因子的乘积在每个所述叶子节点内确定所述叶子节点内的抽稀点云数据;
将确定的所述叶子节点内的所述抽稀点云数据存储到所述叶子节点的父节点中;
基于所述整体八叉树中每个所述父节点内的点云数据,根据所述父节点内的点云数据的总数量与所述抽稀因子的乘积确定所述父节点内的抽稀点云数据;
将确定的所述父节点内的所述抽稀点云数据存储到所述父节点的父节点中,直至将抽稀的点云数据存储到所述整体八叉树的根节点,得到所述整体抽稀八叉树。
5.根据权利要求4所述的海量点云数据处理方法,其特征在于,所述根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围,包括:
将所述抽稀因子、所述M+N的和、所述子节点所在的层和所述原始点云分辨率代入预设的当前层点云分辨率计算公式,计算得到当前层点云分辨率;
将所述当前层点云分辨率和预设的经验系数相乘,计算得到所述LOD的所述像素阈值范围中较小的阈值端点。
6.根据权利要求5所述的海量点云数据处理方法,其特征在于,所述对所述待处理点云数据进行分块处理,得到多个点云数据块,包括:
对所述待处理点云数据所占空间进行平均划分;
将得到的子空间中所包含的点云数据确定为所述点云数据块。
7.一种海量点云数据处理方法,其特征在于,包括:
获取显示点云数据的屏幕中的视点中心坐标;
根据LOD的模型节点中心、模型节点半径和所述视点中心坐标,计算得到所述LOD在屏幕上所占的像素值;所述LOD的模型节点中心为整体抽稀八叉树中节点内的点云数据确定的包围盒的中心,所述模型节点半径为所述节点内的点云数据确定的包围盒的外接圆半径;
若所述像素值位于任一预设的像素阈值范围内,调用与所述像素阈值范围对应的LOD,以加载用于构建所述LOD的点云数据;所述像素阈值范围根据所述节点内点云数据和原始点云分辨率确定。
8.一种海量点云数据处理装置,其特征在于,包括:获取模块、生成模块、抽稀模块和构建模块;
所述获取模块,用于获取待处理点云数据,并对所述待处理点云数据进行分块处理,得到多个点云数据块;
所述生成模块,用于基于所述待处理点云数据中的多个所述点云数据块,生成所述待处理点云数据的整体八叉树;
所述抽稀模块,用于对所述整体八叉树进行数据抽稀,得到整体抽稀八叉树;
所述构建模块,用于根据所述整体抽稀八叉树中每个节点内的点云数据,构建与所述节点对应的细节层次模型LOD,所述LOD的像素阈值范围是根据原始点云分辨率确定的,以便于根据所述像素阈值范围调用所述LOD时加载对应的点云数据;
所述构建模块,还用于:
根据所述整体抽稀八叉树中每个节点内的点云数据,确定所述LOD的模型节点中心为所述节点内的点云数据确定的包围盒的中心;
确定所述LOD的模型节点半径为所述节点内的点云数据确定的包围盒的外接圆半径;
建立所述LOD和所述节点内的点云数据间的对应关系;
根据所述节点内点云数据和所述原始点云分辨率确定所述LOD的所述像素阈值范围;
建立所述LOD和所述节点内的点云数据间的对应关系,包括:
设置所述LOD的文件名称为所述节点内的点云数据所在文件夹的名称。
9.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1-7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810308550.8A CN108470374B (zh) | 2018-04-08 | 2018-04-08 | 海量点云数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810308550.8A CN108470374B (zh) | 2018-04-08 | 2018-04-08 | 海量点云数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108470374A CN108470374A (zh) | 2018-08-31 |
CN108470374B true CN108470374B (zh) | 2022-03-25 |
Family
ID=63262776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810308550.8A Active CN108470374B (zh) | 2018-04-08 | 2018-04-08 | 海量点云数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108470374B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11854145B2 (en) | 2020-04-08 | 2023-12-26 | Speed Technology Co., Ltd. | Octree-based three-dimensional building model LOD method |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163065B (zh) * | 2018-12-04 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 点云数据处理方法、点云数据加载方法、及装置和设备 |
CN109767463B (zh) * | 2019-01-09 | 2021-04-13 | 重庆理工大学 | 一种三维点云自动配准方法 |
CN109918464B (zh) * | 2019-02-26 | 2022-09-02 | 东软睿驰汽车技术(沈阳)有限公司 | 一种点云地图的存储方法及装置和调用方法及装置 |
CN109993839B (zh) * | 2019-04-09 | 2022-11-25 | 北京大学深圳研究生院 | 一种自适应的点云条带划分方法 |
CN109979008B (zh) * | 2019-04-09 | 2023-04-07 | 北京大学深圳研究生院 | 一种基于属性的点云条带划分方法 |
CN110297924A (zh) * | 2019-06-26 | 2019-10-01 | 深圳飞马机器人科技有限公司 | 点云数据的处理及渲染方法、装置、设备及存储介质 |
CN110413808B (zh) * | 2019-07-17 | 2021-09-24 | 深兰科技(上海)有限公司 | 一种三维点云数据存储、查询方法及装置 |
CN114207668A (zh) * | 2019-09-30 | 2022-03-18 | Oppo广东移动通信有限公司 | 划分方法、编码器、解码器以及计算机存储介质 |
CN111583423A (zh) * | 2020-05-19 | 2020-08-25 | 北京数字绿土科技有限公司 | 一种提取点云数据的断面线的方法和设备 |
CN111862292B (zh) * | 2020-07-29 | 2024-04-26 | 南方电网数字电网科技(广东)有限公司 | 输电线路走廊的数据渲染方法、装置和计算机设备 |
CN111968211A (zh) * | 2020-08-28 | 2020-11-20 | 北京睿呈时代信息科技有限公司 | 存储器、基于点云数据的绘制方法、系统和设备 |
KR20230079188A (ko) | 2020-09-30 | 2023-06-05 | 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 | 포인트 클라우드 레이어링 방법 및 디코더, 인코더, 저장 매체 |
CN112395101B (zh) * | 2020-10-12 | 2021-07-20 | 天津航天中为数据系统科技有限公司 | 一种基于双向数据处理机制的大数据快速渲染的方法 |
CN113239216B (zh) * | 2021-04-09 | 2024-08-16 | 广东南方数码科技股份有限公司 | 点云的处理方法、装置、设备及存储介质 |
CN113836095A (zh) * | 2021-09-26 | 2021-12-24 | 广州极飞科技股份有限公司 | 一种点云数据存储方法、装置、存储介质及电子设备 |
CN114863157A (zh) * | 2022-05-07 | 2022-08-05 | 高德软件有限公司 | 数据处理方法、装置、电子设备及计算机程序产品 |
CN114723898B (zh) * | 2022-06-09 | 2022-09-06 | 天津市天科数创科技股份有限公司 | 大体量点云模型轻量化的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908068A (zh) * | 2010-08-03 | 2010-12-08 | 武汉大学 | 一种基于四叉树索引的海量激光扫描点云实时绘制方法 |
CN102044088A (zh) * | 2010-11-09 | 2011-05-04 | 广州市城市规划勘测设计研究院 | 单站地面激光扫描海量散乱点云的lod模型快速构建方法 |
CN104036544A (zh) * | 2014-06-25 | 2014-09-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
CN107341846A (zh) * | 2017-06-21 | 2017-11-10 | 华中科技大学 | 一种实时显示大规模三维重建场景的方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940279B2 (en) * | 2007-03-27 | 2011-05-10 | Utah State University | System and method for rendering of texel imagery |
CN101615191B (zh) * | 2009-07-28 | 2011-05-11 | 武汉大学 | 海量点云数据的存储与实时可视化方法 |
CN104778744B (zh) * | 2014-10-25 | 2017-08-25 | 中国科学院植物研究所 | 基于Lidar数据的大规模三维森林可视化场景建立方法 |
-
2018
- 2018-04-08 CN CN201810308550.8A patent/CN108470374B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908068A (zh) * | 2010-08-03 | 2010-12-08 | 武汉大学 | 一种基于四叉树索引的海量激光扫描点云实时绘制方法 |
CN102044088A (zh) * | 2010-11-09 | 2011-05-04 | 广州市城市规划勘测设计研究院 | 单站地面激光扫描海量散乱点云的lod模型快速构建方法 |
CN104036544A (zh) * | 2014-06-25 | 2014-09-10 | 西安煤航信息产业有限公司 | 一种基于机载LiDAR数据的建筑物屋顶重建方法 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
CN107341846A (zh) * | 2017-06-21 | 2017-11-10 | 华中科技大学 | 一种实时显示大规模三维重建场景的方法及设备 |
Non-Patent Citations (5)
Title |
---|
"3D Modeling Algorithm Based on Vehicle-Borne Laser Point Clouds";Xu-Dong Xu .etc;《4th National Conference on Electrical, Electronics and Computer Engineering》;20151231;第1645-1649页 * |
"基于RANSAC算法的稳健点云平面拟合方法";杨军建等;《北京测绘》;20160430(第2期);第73-75页,第79页 * |
"基于离散LOD Imposter技术的森林实时渲染算法研究及实现";王道臣等;《计算机应用与软件》;20090630;第26卷(第6期);第18-20页 * |
"多分辨率 LOD 的海量点云显示技术研究";杨振发;《地理空间信息》;20161031;第14卷(第10期);第22-25页 * |
"大量点云数据跨平台可视化实时交互方法";吴禄慎;《机械设计与制造》;20170930(第9期);第177-181页 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11854145B2 (en) | 2020-04-08 | 2023-12-26 | Speed Technology Co., Ltd. | Octree-based three-dimensional building model LOD method |
Also Published As
Publication number | Publication date |
---|---|
CN108470374A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108470374B (zh) | 海量点云数据处理方法及装置 | |
US10706611B2 (en) | Three-dimensional representation by multi-scale voxel hashing | |
US8368714B2 (en) | Curved surface rendering system and method | |
CN107730583B (zh) | 一种基于三维场景的地形瓦片数据动态调度方法及装置 | |
EP3278252B1 (en) | Virtual three-dimensional model generation based on virtual hexahedron models | |
US20140306955A1 (en) | Voxelization techniques | |
US11238645B2 (en) | Method and system for computer graphics rendering | |
US20220005261A1 (en) | Method for instant rendering of voxels | |
CN112991547B (zh) | 模型简化处理方法、装置以及电子设备、介质 | |
CN113033346B (zh) | 文本检测方法、装置和电子设备 | |
CN112489213A (zh) | 三维地形模型生成方法、装置、电子设备及存储介质 | |
CN110460827A (zh) | 振镜工作状态的确定方法、装置及计算机存储介质 | |
CN110458954B (zh) | 一种等高线生成方法、装置及设备 | |
CN115019001A (zh) | 一种地质分析的显示处理方法、装置、设备及介质 | |
CN113256755B (zh) | 图像的渲染方法、智能终端以及存储装置 | |
CN116266365A (zh) | 一种点云数据提取方法、装置、电子设备及存储介质 | |
CN112221151B (zh) | 一种地图生成方法、装置、计算机设备及存储介质 | |
CN111951348A (zh) | 确定框选区域的方法、装置及电子设备 | |
CN106846498B (zh) | 激光点云渲染方法和装置 | |
CN112802175B (zh) | 大规模场景遮挡剔除方法、装置、设备及存储介质 | |
CN104902260B (zh) | 一种图像视差的获取方法及系统 | |
CN114119846A (zh) | 分层层次细节模型生成方法及装置 | |
CN110019596B (zh) | 待显示瓦片的确定方法、装置及终端设备 | |
CN116609832B (zh) | 一种震源断层位错分布的确定方法和确定装置 | |
CN114463497A (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 |