CN114399592A - 点云空间数据的处理方法及装置 - Google Patents
点云空间数据的处理方法及装置 Download PDFInfo
- Publication number
- CN114399592A CN114399592A CN202111600552.2A CN202111600552A CN114399592A CN 114399592 A CN114399592 A CN 114399592A CN 202111600552 A CN202111600552 A CN 202111600552A CN 114399592 A CN114399592 A CN 114399592A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- node
- octree
- data
- spatial data
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 8
- 238000000034 method Methods 0.000 claims abstract description 98
- 238000005070 sampling Methods 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 46
- 230000011218 segmentation Effects 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 abstract description 28
- 230000008520 organization Effects 0.000 abstract description 27
- 238000010276 construction Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 9
- 238000005259 measurement Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000004304 visual acuity Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011840 criminal investigation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/587—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- 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/05—Geographic models
-
- 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/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Library & Information Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种点云空间数据的处理方法及装置,点云空间数据的处理方法包括:接收点云空间数据;根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;根据所述八叉树模型对所述点云空间数据进行距离采样。本发明所提供的点云空间数据的处理方法及装置,以八叉树结构为空间数据组织结构基础,在构建八叉树过程中加入以节点分辨率为间距的采样过程,最终构建完毕的空间数据组织结构为低级别节点保留低分辨率的点云数据子集,高级别节点保留高分辨率的点云子集。
Description
技术领域
本发明涉及电力系统以及对地观测技术领域,尤其涉及机载激光雷达点云数据的空间数据组织结构技术领域,具体涉及一种点云空间数据的处理方法及装置。
背景技术
近年来,三维激光扫描、航空航天/地面立体摄影影像匹配等获取空间信息技术发展的越来越成熟,从而空间物体信息的获取从二维发展到三维。三维空间信息获取方式主要有传统测量例如电磁波测距、高技术含量精密测量仪器例如全站仪、三维激光扫描技术(简称为LIDAR)。其中LIDAR技术根据扫描仪在获取点云数据时载体形式的不同,可以将激光扫描系统分为机载激光雷达系统、车载激光雷达系统以及地面站载激光雷达系统,LIDAR作为一种新兴的大规模三维信息获取技术可直接获取物体表面高精度信息和几何信息,在精度、数据获取速度以及获取量方面跟传统测量相比具有很大的优越性,因此迅速发展成为一种关键技术。
三维激光扫描所获取的点云信息,由于包含三维信息,具有数据量十分庞大的特点。但是由于计算机硬件发展瓶颈(例如内存不足)导致在三维点云信息可视化处绘制效率差,同时在处理海量点云数据方面能力不足(数据结构算法),严重影响了海量点云数据在实际项目中应用,无法更加灵活的对点云数据进行操作。具体地,现有的点云空间数据组织结构算法主要有以下几种:海量点云数据的空间数据组织研究主要包括构建空间索引,空间索引利用空间物体的位置或者空间物体之间的空间关系对空间数据进行顺序排列的数据结构。根据划分方法的不同,主要分为规则分割法、对象分割法、组合分割法三种划分方法。
(1)规则分割法
规则分割法是将空间中每个实体对应到按某些方法分割成均匀的单元中,其对应关系可以为一个实体对应一个单元或者一个实体对应多个单元。比较常用的规则网格剖分方法有KD树、KDB树、八叉树、BSP树以及R树等。
(2)对象分割法
对象分割法是指利用层次包围体和一定的规则方法对空间进行划分,层次包围体是一种简单的树形结构,利用一些特定的方法将空间对象进行分割,由此把树的每个节点保存为所在层次包围体的信息,叶子节点存储基本的空间对象。
(3)组合索引技术
组合索引利用多种空间组织索引,取长补短,充分发挥各种空间索引的优点,克服使用单种索引所带来的弊端。例如二维格网索引,无法适用于点云数据分布极不均匀的情况,但采用八叉树索引和KD树索引这种混合索引结构克服了点云数据分布极不均匀。
在空间数据组织索引方面,各种空间索引算法有着各自的优缺点,如表1所述。
表1
发明内容
本发明所提供的点云空间数据的处理方法及装置,具有高效性、适用性,具有较高的实际应用价值。
为了实现上述目的,提供了一种点云空间数据的处理方法,包括:
接收点云空间数据;
根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
根据所述八叉树模型对所述点云空间数据进行距离采样。
一实施例中,所述根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型,包括:
根据所述节点分辨率确定所述八叉树模型的每一节点层中单一节点的采样距离;
根据所述采样距离、所述节点分割阈值以及所述点云空间数据的总量确定所述八叉树模型的节点层数;
根据所述预设的节点分辨率以及所述层数构建所述八叉树模型。
一实施例中,所述根据所述八叉树模型对所述点云空间数据进行距离采样,包括:
根据所述采样距离将所述点云空间数据中的每一点云空间数据存储至所述八叉树模型中对应的节点。
一实施例中,所述八叉树模型中节点层级与分辨率为正比例关系。
第二方面,本发明提供一种点云空间数据的处理装置,该装置包括:
数据接收模块,用于接收点云空间数据;
模型构建模块,用于根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
距离采样模块,用于根据所述八叉树模型对所述点云空间数据进行距离采样。
一实施例中,所述模型构建模块包括:
采样距离确定单元,用于根据所述节点分辨率确定所述八叉树模型的每一节点层中单一节点的采样距离;
节点层数确定单元,用于根据所述采样距离、所述节点分割阈值以及所述点云空间数据的总量确定所述八叉树模型的节点层数;
模型构建单元,用于根据所述预设的节点分辨率以及所述层数构建所述八叉树模型。
一实施例中,所述模型构建单元,具体用于根据所述采样距离将所述点云空间数据中的每一点云空间数据存储至所述八叉树模型中对应的节点。
一实施例中,所述八叉树模型中节点层级与分辨率为正比例关系。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现点云空间数据的处理方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现点云空间数据的处理方法的步骤。
从上述描述可知,本发明实施例提供的点云空间数据的处理方法及装置,首先接收点云空间数据;接着根据点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;最后根据八叉树模型对点云空间数据进行距离采样。本发明基于八叉树的空间分割结构并在其构建过程中对点云数据进行采样以生成多分辨率层次细节(简称为LOD八叉树),并将原始点云数据构建成多个分辨率级别的细节层次并以二进制文件的形式存储在计算机硬盘中。具体地,本发明具有以下有益效果:
1、本发明以八叉树结构为空间数据组织结构基础,在构建八叉树过程中加入以节点分辨率为间距的采样过程,最终构建完毕的空间数据组织结构为低级别节点保留低分辨率的点云数据子集,高级别节点保留高分辨率的点云子集。
2、本发明所构建的基于八叉树的LOD空间数据组织结构所存储的数据不存在冗余点及删除点,因此其所有节点点云数据子集可返回原始点云集,保证了点云信息不缺失。
3、引进了哈希函数,加速了空间数据组织结构的构建过程,提升了生产效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的点云空间数据的处理方法的流程示意图;
图2为本发明实施例中随机采样方法示意图;
图3为本发明实施例中网格中心采样方法示意图;
图4为本发明实施例中距离采样方法示意图;
图5为本发明的实施例中点云空间数据的处理方法步骤200的流程示意图;
图6为本发明的实施例中点云空间数据的处理方法步骤300的流程示意图;
图7为本发明具体应用实例中点云空间数据的处理方法的流程示意图;
图8为本发明具体应用实例中点云空间数据的处理方法的逻辑图;
图9为本发明具体应用实例中四叉树模型结构示意图;
图10为本发明实施例中点云空间数据的处理装置的结构示意图;
图11为本发明实施例中模型构建模块20的结构示意图;
图12为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的实施例提供一种点云空间数据的处理方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:接收点云空间数据。
可以理解的是,点云空间数据是通过激光雷达获取的带空间坐标的采样点的一个集合,由于数量大且密集因此称之为“点云”。由于点云带有空间坐标,因此广泛应用于测绘、电力、建筑、工业、汽车、游戏、刑侦等相当多的领域。点云数据的应用场景如下:
1、地形图测绘:三维激光扫描技术在大比例尺地形测绘中的应用,在测区面积较大时能够快速而精确地采集大量点云数据,有效节约人力物力,缩短工期,提高工作效率和经济效益;在复杂地形和危险测区,能够不直接接触危险目标,详细、快速地进行外业数据采集,既保证了人员和设备的安全,又保证了成图精度要求,并同时提高工作效率。
2、数字高程模型(DEM)及等高线:利用获取的激光点云,通过去除部分噪声点并进行栅格化,可以快速生成高质量的数字表面模型(DSM).同时,如利用自动化方法结合人工编辑对激光点云进行进一步的滤波操作,滤除其中的非地面点并进行栅格化, 可以得到高质量的数字地形模(DEM)。
3、方量计算:机载激光雷达系统获取的高精度激光点云和地形三维模型,可以为勘察设计提供断面量测、坡度坡向量测、土方填挖量等信息,大大减少工程勘察设计中的外业工作量,缩短工作周期。
4、公路和道路测量及改扩建:安装在汽车上的移动式LiDAR扫描仪或在直升机上操作的机载扫描仪可以提供密集的点云,可以非常准确地描绘高速公路,以及其周围环境和路面情况。使用同时拍摄的照片和使用GPS测量的控制点可提高准确度,并有助于补偿由高层建筑物和树木引起的GPS信号间隙。
步骤200:根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型。
八叉树的定义为:若不为空树的话,树中任一节点的子节点恰好只会有八个,或零个,也就是子节点不会有0与8以外的数目。是一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。
步骤300:根据所述八叉树模型对所述点云空间数据进行距离采样。
采样方法种类:构建LOD八叉树模型过程中采用一种基于节点分辨率的距离采样对原始点云集进行采样,其目标是生成多分辨率图层。通过不同的采样方式对点云子集进行采样(以二维图示例),分别为随机采样、采样离节点中心最近的点云数据、节点内点云数据具有最小距离(参见图2至图4)。为了后期的可视化效果及本申请所设计数据存储结构,优选采用的方法为节点内点云数据具有最小距离,生成的八叉树节点点云数据子集点与点之间具有最小距离,其距离的阈值是由该节点的分辨率控制。
从上述描述可知,本发明实施例提供的点云空间数据的处理方法,首先接收点云空间数据;接着根据点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;最后根据八叉树模型对点云空间数据进行距离采样。本发明采用基于八叉树索引的方法构建节点点云数据之间的空间关系,在空间数据组织结构构建过程中,利用泊松采样的方法LOD(Level of Detail)八叉树节点点云数据进行间距采样,其采样间距(节点分辨率)依据节点尺寸所决定。
一实施例中,参见图5,步骤200包括:
步骤201:根据所述节点分辨率确定所述八叉树模型的每一节点层中单一节点的采样距离;
步骤202:根据所述采样距离、所述节点分割阈值以及所述点云空间数据的总量确定所述八叉树模型的节点层数;
步骤203:根据所述预设的节点分辨率以及所述层数构建所述八叉树模型。
在步骤201至步骤203中,构建八叉树模型的过程中,初始存在根节点r并且落入根节点的第一个点云数据将会加入根节点点云数据子集中,如果达到根节点的分割阈值(达到一定点云数据量才对节点就行分割,此参数主要为了节省存储空间,避免创建不必要的新节点),则对根节点点云数据进行分割,其分割过程中采用距离采样的方法判断本节点所保留的点云数据,满足根节点的分辨率则保留点云数据,否则将点云数据向下传递到根节点的子节点中。
根节点的分辨率是由根节点包围盒尺寸确定如式(1),aabb.size为当前节点的尺寸大小,diagonalFraction为把当前节点在某一轴向所分成的份数。本申请中所采用的diagonalFraction参数值为250。
resolving_power=aabb.size/diagonalFraction (1)
确定根节点的分辨率后,当有不符合根节点分辨率的点云数据时,则将点云数据向更高级节点传递。在传递过程中首先检查此节点是否存在,如果不存在则创建节点,在创建新节点过程中,新节点的分辨率相对于上级节点减半,例如如果根节点r分辨率为2m,那么根节点的子节点r1分辨率为1m,具体计算子节点分辨率如公式(2):
resolving_power=pow/(2.0,float(level)) (2)
一实施例中,参见图6,步骤300包括:
步骤301:根据所述采样距离将所述点云空间数据中的每一点云空间数据存储至所述八叉树模型中对应的节点。
在八叉树模型中,节点所划分的单元网格实现以stl标准库中的hash_map为基础,利用哈希映射的思想提高网格查询及其插入效率。hash_map的key值是通过3个整数索引移位得出,value值则是索引所对应的网格实例化。在对LOD八叉树节点进行创建时,相应节点所划分的网格也要创建,但并未实例化因此不占用内存空间,只有当点云数据落入网格内才进行实例化。所划分网格尺寸大小可以是节点分辨率大小和节点尺寸大小之间的任何值,只有等于或大于节点分辨率大小的网格单元尺寸才能确保距离检查相关的点被存储在相同或相邻的网格单元中。在本申请中网格单元尺寸的大小由参数cellSizeFactor确定,优选地,所采用的参数为5,网格尺寸大小计算参见公式(3)-(5):
width=aabb.size.x/(resolving_power×cellSizeFactor) (3)
height=aabb.size.y/(resolving_power×cellSizeFactor) (4)
ellSizeFactor控制网格单元尺寸大小,如果网格单元尺寸过大将会减少网格个数的创建,同时网格内点云数据将会变多,距离检查量将会变多,内存占用和处理开销较大。
每个网格单元存储距离检查后所接受的点云数据及其相邻网格单元的指针地址,以便快速迭代相邻网格单元中的点云数据。如果到该网格单元内的所有点以及相邻网格单元中的所有点的距离大于节点分辨率,则网格单元的点云数据集将会存储该点云数据(同时也代表节点接受该点云数据),反之将点云数据向下级节点传递。当新添加的点云数据落入网格时,通过公式(6)-(8)计算网格索引,然后通过hash_map 的查找函数找到所需要的网格,如果网格没有被实例化则进行实例化操作,如以实例化则直接进行距离检查。在网格实例化期间,同时检查相邻网格是否已经实例化。如果相邻网格已经实例化,则将邻居网格添加到新实例化的网格的邻居列表中,并且新实例化的网格也将被添加到相邻网格的邻居列表中。
indexx=width×(p.x-aabb.min.x)/aabb.size.x (6)
indexy=height×(p.y-aabb.min.y)/aabb.size.y (7)
indexz=depth×(p.z-aabb.min.z)/aabb.size.z (8)
其中p为当前点坐标,width、height、depth为当前网格尺寸大小,indexx、indexy、indexz为当前点所在网格的索引,计算完毕后将此三个整数分量进行移位运算,得出的index值为hash_map的key值(参见公式(9)),其hash_map的value值为当前网格指针地址。
index=(indexz<<40)|(indexy<<20)|indexx (9)
一实施例中,所述八叉树模型中节点层级与分辨率为正比例关系。
可以理解的是,最终构建完毕的八叉树模型中(空间数据组织结构),低级别节点保留低分辨率的点云数据子集,高级别节点保留高分辨率的点云子集,其所有节点点云数据子集可以返回整个原始点云集。
从上述描述可知,本发明实施例提供的点云空间数据的处理方法,首先接收点云空间数据;接着根据点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;最后根据八叉树模型对点云空间数据进行距离采样。本发明基于八叉树的空间分割结构并在其构建过程中对点云数据进行采样以生成多分辨率层次细节(简称为LOD八叉树),并将原始点云数据构建成多个分辨率级别的细节层次并以二进制文件的形式存储在计算机硬盘中。具体地,本发明具有以下有益效果:
1、以八叉树结构为空间数据组织结构基础,在构建八叉树过程中加入以节点分辨率为间距的采样过程,最终构建完毕的空间数据组织结构为低级别节点保留低分辨率的点云数据子集,高级别节点保留高分辨率的点云子集。
2、本发明所构建的基于八叉树的LOD空间数据组织结构所存储的数据不存在冗余点及删除点,因此其所有节点点云数据子集可返回原始点云集,保证了点云信息不缺失。
3、引进了哈希函数,加速了空间数据组织结构的构建过程,提升了生产效率。
为进一步地说明本方案,本发明还提供点云空间数据的处理方法的具体应用实例,具体包括如下内容,参见图7以及图8。
参见图8,本发明的具体应用实例所提出的一种基于八叉树的LOD海量点云数据的空间数据组织方法为:在构建八叉树的过程中加入距离采样,距离采样过程用于判断八叉树节点所保留的点云数据,其最终结果所生成的八叉树每个节点都以一定间距保留点云子集,所有节点点云数据子集联合返回整个原始点云集。构建完毕后的空间数据组织结构以二进制文件形式保存,用于实现后期基于文件内存组织调度。
S1:构建八叉树模型。
为了实现LOD八叉树构建,设计了针对存储LOD八叉树数据合适的数据结构,用于存储点云信息的数据结构;用于存储节点包围盒的数据结构;用于存储节点信息的数据结构;用于存储节点所划分的网格结构;具体如下:
PtCloud点结构,用于存储点云的XYZ三维坐标、RGBA灰度颜色信息,标记 SelID,具体结构如表2所示:
表2点结构
AABB节点包围盒结构,用于存储包围盒半径radius,最大点max,最小点min,节点中心center,具体结构如表3所示:
表3包围盒结构
Node节点结构,用于存储节点所在层数index,节点包围盒aabb,子节点children,节点父节点parent,节点点云数据ptdata,分割阈值limit,节点是否在内存中 isInMemory等,具体结构如表4所示:
表4 Node节点结构
gridcell节点所划分网格,points为当前网格所存储的点云数据;neighbours为当前网格的邻居网格;add函数把距离检查后的点云数据加入到当前网格中;isDistant 函数为距离检查,具体结构如表5所示:
表5网格
名称 | 类型 |
points | Ptcloud集合 |
neighbours | 网格指针集合 |
add | 函数 |
isDistant | 函数 |
width | 宽度 |
height | 高度 |
depth | 长度 |
resolving_power | 分辨率 |
本算法所构建的八叉树节点与普通的八叉树节点主要有以下几个方面的特点:每个八叉树节点都保存点云数据子集,并且是以一定的分辨率保存;节点内所保存的点云数据子集不会重复与缺失,最终所有的点云数据子集将会返回整体的原始点云数据集;随着层级的提高,节点尺寸的减少,节点存储的点云数据集密度增大,如图9 所示(以四叉树为例)。
S2:根据八叉树模型对点云空间数据进行距离采样。
具体地,首先创建单个根节点,初始时八叉树由单个根节点组成。将点逐个添加到根节点,并且根节点或叶节点先保存所有点。
接着进行采样,如果没有其他点在最小距离(间距)内,则内部节点保留点,否则将其传递给其子节点。检查子节点是否存在,如果不存在则创建,最小距离减半。检查是否在内存中,不在的话首先从磁盘中读取节点点云数据。
如果达到节点的分割阈值,则扩展叶节点,将所有存储的点添加到自身过程中,遵循内部节点规则,具有最小距离的点保留在当前节点中,其它点向下传递到新创建的子节点中。将数据定期刷新到磁盘,如果自上次刷新以来尚未触及的节点,则将其点云数据在下一次刷新期间从内存中移除。
优选地,海量点云数据的空间数据组织存储文件形式为二进制存储结构,方便后期可视化快速调度。
从上述描述可知,本发明实施例提供的点云空间数据的处理方法,通过在现有空间数据组织索引研究基础上,提出一种基于八叉树的LOD海量点云数据的空间数据组织方法,在构建八叉树的过程中加入泊松采样。最终结果所生成的八叉树每个节点都以一定间距保留点云子集,所有节点点云数据子集联合返回整个原始点云集。另一方面,本发明引入哈希思想,利用hash_map函数实现节点中单元网格的快速构建及高效查找,加速空间数据组织构建过程。
基于同一发明构思,本申请实施例还提供了点云空间数据的处理装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于点云空间数据的处理装置解决问题的原理与点云空间数据的处理方法相似,因此点云空间数据的处理装置的实施可以参见点云空间数据的处理方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现点云空间数据的处理方法的点云空间数据的处理装置的具体实施方式,参见图10,点云空间数据的处理装置具体包括如下内容:
数据接收模块10,用于接收点云空间数据;
模型构建模块20,用于根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
距离采样模块30,用于根据所述八叉树模型对所述点云空间数据进行距离采样。
一实施例中,参见图11,所述模型构建模块20包括:
采样距离确定单元201,用于根据所述节点分辨率确定所述八叉树模型的每一节点层中单一节点的采样距离;
节点层数确定单元202,用于根据所述采样距离、所述节点分割阈值以及所述点云空间数据的总量确定所述八叉树模型的节点层数;
模型构建单元203,用于根据所述预设的节点分辨率以及所述层数构建所述八叉树模型。
一实施例中,所述模型构建单元,具体用于根据所述采样距离将所述点云空间数据中的每一点云空间数据存储至所述八叉树模型中对应的节点。
一实施例中,所述八叉树模型中节点层级与分辨率为正比例关系。
从上述描述可知,本发明实施例提供的点云空间数据的处理装置,首先接收点云空间数据;接着根据点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;最后根据八叉树模型对点云空间数据进行距离采样。本发明基于八叉树的空间分割结构并在其构建过程中对点云数据进行采样以生成多分辨率层次细节(简称为LOD八叉树),并将原始点云数据构建成多个分辨率级别的细节层次并以二进制文件的形式存储在计算机硬盘中。具体地,本发明具有以下有益效果:
1、以八叉树结构为空间数据组织结构基础,在构建八叉树过程中加入以节点分辨率为间距的采样过程,最终构建完毕的空间数据组织结构为低级别节点保留低分辨率的点云数据子集,高级别节点保留高分辨率的点云子集。
2、本发明所构建的基于八叉树的LOD空间数据组织结构所存储的数据不存在冗余点及删除点,因此其所有节点点云数据子集可返回原始点云集,保证了点云信息不缺失。
3、引进了哈希函数,加速了空间数据组织结构的构建过程,提升了生产效率。
本申请的实施例还提供能够实现上述实施例中的点云空间数据的处理方法中全部步骤的一种电子设备的具体实施方式,参见图12,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备、测量设备以及用户端设备等相关设备之间的信息传输。
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的点云空间数据的处理方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:接收点云空间数据;
步骤200:根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
步骤300:根据所述八叉树模型对所述点云空间数据进行距离采样。
本申请的实施例还提供能够实现上述实施例中的点云空间数据的处理方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的点云空间数据的处理方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:接收点云空间数据;
步骤200:根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
步骤300:根据所述八叉树模型对所述点云空间数据进行距离采样。
综上,本发明实施例提供的计算机可读存储介质能够支持服务提供方根据其自身的软、硬件资源的可用率,由服务提供方进行服务的自适应下线和上线,实现服务提供方的自隔离能力,保障服务提供方对服务请求的响应成功率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种点云空间数据的处理方法,其特征在于,包括:
接收点云空间数据;
根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
根据所述八叉树模型对所述点云空间数据进行距离采样。
2.根据权利要求1所述的点云空间数据的处理方法,其特征在于,所述根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型,包括:
根据所述节点分辨率确定所述八叉树模型的每一节点层中单一节点的采样距离;
根据所述采样距离、所述节点分割阈值以及所述点云空间数据的总量确定所述八叉树模型的节点层数;
根据所述预设的节点分辨率以及所述层数构建所述八叉树模型。
3.根据权利要求2所述的点云空间数据的处理方法,其特征在于,所述根据所述八叉树模型对所述点云空间数据进行距离采样,包括:
根据所述采样距离将所述点云空间数据中的每一点云空间数据存储至所述八叉树模型中对应的节点。
4.根据权利要求1所述的点云空间数据的处理方法,其特征在于,所述八叉树模型中节点层级与分辨率为正比例关系。
5.一种点云空间数据的处理装置,其特征在于,包括:
数据接收模块,用于接收点云空间数据;
模型构建模块,用于根据所述点云空间数据的总量、预设的节点分辨率以及预设的节点分割阈值构建八叉树模型;
距离采样模块,用于根据所述八叉树模型对所述点云空间数据进行距离采样。
6.根据权利要求5所述的点云空间数据的处理装置,其特征在于,所述模型构建模块包括:
采样距离确定单元,用于根据所述节点分辨率确定所述八叉树模型的每一节点层中单一节点的采样距离;
节点层数确定单元,用于根据所述采样距离、所述节点分割阈值以及所述点云空间数据的总量确定所述八叉树模型的节点层数;
模型构建单元,用于根据所述预设的节点分辨率以及所述层数构建所述八叉树模型。
7.根据权利要求6所述的点云空间数据的处理装置,其特征在于,所述模型构建单元,具体用于根据所述采样距离将所述点云空间数据中的每一点云空间数据存储至所述八叉树模型中对应的节点。
8.根据权利要求5所述的点云空间数据的处理装置,其特征在于,所述八叉树模型中节点层级与分辨率为正比例关系。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述点云空间数据的处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述点云空间数据的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111600552.2A CN114399592A (zh) | 2021-12-24 | 2021-12-24 | 点云空间数据的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111600552.2A CN114399592A (zh) | 2021-12-24 | 2021-12-24 | 点云空间数据的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114399592A true CN114399592A (zh) | 2022-04-26 |
Family
ID=81226460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111600552.2A Pending CN114399592A (zh) | 2021-12-24 | 2021-12-24 | 点云空间数据的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114399592A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303483A (zh) * | 2023-05-23 | 2023-06-23 | 北京适创科技有限公司 | 一种结构化网格的压缩方法及装置、电子设备、存储介质 |
-
2021
- 2021-12-24 CN CN202111600552.2A patent/CN114399592A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303483A (zh) * | 2023-05-23 | 2023-06-23 | 北京适创科技有限公司 | 一种结构化网格的压缩方法及装置、电子设备、存储介质 |
CN116303483B (zh) * | 2023-05-23 | 2023-07-21 | 北京适创科技有限公司 | 一种结构化网格的压缩方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407408B (zh) | 一种海量点云数据的空间索引构建方法及装置 | |
Floriani et al. | Algorithms for visibility computation on terrains: a survey | |
KR101546703B1 (ko) | 대용량 건물 bim데이터의 시각화 시스템 | |
CN116310192A (zh) | 一种基于点云的城市级建筑物三维模型单体重建方法 | |
CN101976468B (zh) | 一种多分辨率动态地形可视化方法及系统 | |
KR101546705B1 (ko) | Bim데이터 처리단말 장치의 건물내부 bim데이터 가시화 방법 | |
CN111291776B (zh) | 基于众源轨迹数据的航道信息提取方法 | |
KR20100136604A (ko) | 3차원 지형 영상 실시간 가시화 시스템 및 이의 방법 | |
CN113112603B (zh) | 三维模型优化的方法和装置 | |
CN109872390B (zh) | 一种海量三维模型的组织方法 | |
CN109934911B (zh) | 基于OpenGL的移动端高精度倾斜摄影三维建模方法 | |
CN112528508B (zh) | 电磁可视化方法和装置 | |
CN108364331A (zh) | 一种等值线生成方法、系统和存储介质 | |
CN113178004A (zh) | 一种基于超核八叉树海量点云显示方法 | |
CN113934686A (zh) | 面向海量机载激光点云的分布式多级空间索引方法 | |
CN111552555A (zh) | 一种点云的可视化方法和设备 | |
CN115272637B (zh) | 面向大区域的三维虚拟生态环境可视化集成和优化系统 | |
CN115393240A (zh) | Gis和bim融合的方法、装置、电子设备及可读存储介质 | |
CN114399592A (zh) | 点云空间数据的处理方法及装置 | |
CN106940898A (zh) | 混合数据模型在建筑物三维建模中的应用 | |
CN104463924B (zh) | 基于散乱点高程采样数据的数字高程地形模型生成方法 | |
CN111369604A (zh) | 一种基于网格的地形特征点提取方法及处理终端 | |
CN102142155A (zh) | 面向网络交互可视化的地面三维模型数据组织方法 | |
CN114219911A (zh) | 一种基于立体剖分框架的空域网格化建模方法 | |
Qiao et al. | A rapid visualization method of vector data over 3D terrain |
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 |