基于切片与八叉树的点云索引方法、装置、设备及介质制造方法及图纸

技术编号:38989829 阅读:10 留言:0更新日期:2023-10-07 10:20
本发明专利技术公开了一种基于切片与八叉树的点云索引方法、装置、设备及介质,所述方法包括:按照用户需求定义切片类;根据所述切片类对目标点云数据集进行切片,得到多个切片并将全部切片存储到切片索引中;分别对每个切片建立八叉树索引;根据查询条件确认由切片组成的查询区域,得到八叉树形式的查询条件;遍历所述查询区域内每个切片,比较每个切片内点云数据与所述八叉树形式的查询条件,根据比较结果得到符合所述查询条件的点云数据。采用本发明专利技术提供的实施例,基于切片索引和八叉树的方法,再将索引持久化保存,提高点云数据检索效率。提高点云数据检索效率。提高点云数据检索效率。

【技术实现步骤摘要】
基于切片与八叉树的点云索引方法、装置、设备及介质


[0001]本专利技术涉及数据处理
,尤其涉及一种基于切片与八叉树的点云索引方法、装置、设备及介质。

技术介绍

[0002]目前常用的点云数据空间索引方式包括格网索引、四叉树索引、八叉树索引和KD(k

dimensional)树索引等。格网索引容易构建且易于编码,但是构建时未考虑数据的空间分布情况,而且不利于点云数据的快速可视化。KD树索引在数据的查询检索方面具有优势,但是建立点的邻域关系需要大量的时间;八叉树索引是由四叉树索引扩展到三维空间的三维空间索引结构,构建过程比较简单,具有较高的索引效率,但对于海量点云数据来说,随着八叉树的深度不断增加,构建索引时会占用较大的内存空间,查询效率也随之降低。
[0003]当前点云数据的主要查询方式是:将单点云文件储存在硬盘中,每次读取需要将整个文件加载到内存中,再进行内存中建树。但是,大型点云文件的读取需要耗费较长的时间和资源,读取后的索引过程根据所建树,而大型点云文件构建树也需要大量的存储空间,复杂的树结构会进一步降低查询索引效率,导致处理点云数据效率低下。

技术实现思路

[0004]本专利技术实施例提供一种基于切片与八叉树的点云索引方法、装置、设备及介质,基于切片索引和八叉树的方法,再将索引持久化保存,提高点云数据检索效率。
[0005]为实现上述目的,本申请实施例的第一方面提供了一种基于切片与八叉树的点云索引方法,包括:
[0006]按照用户需求定义切片类
[0007]根据所述切片类对目标点云数据集进行切片,得到多个切片并将全部切片存储到切片索引中;
[0008]分别对每个切片建立八叉树索引;
[0009]根据查询条件确认由切片组成的查询区域,得到八叉树形式的查询条件;
[0010]遍历所述查询区域内每个切片,比较每个切片内点云数据与所述八叉树形式的查询条件,根据比较结果得到符合所述查询条件的点云数据。
[0011]在第一方面的一种可能的实现方式中,所述全部切片存储到切片索引中,具体包括:
[0012]用切片索引的第一维度索引存储每个切片的位置信息,用所述切片索引的第二维度索引存储每个切片包含的点云数据。
[0013]在第一方面的一种可能的实现方式中,所述分别对每个切片建立八叉树索引,具体包括:
[0014]定义八叉树节点类;
[0015]根据所述八叉树节点类、每个切片的点云数据,从根节点开始递归过程进而构建
八叉树,直到八叉树所有叶节点都被构建完毕;
[0016]将八叉树索引保存。
[0017]在第一方面的一种可能的实现方式中,每个节点的递归过程具体为:
[0018]如果当前节点深度达到最大深度或者当前节点内的点数小于等于最大点数,则将当前节点标记为叶节点,并将点云数据存储在当前节点上;如果当前节点深度小于最大深度且当前节点内的点数大于最大点数,则将当前节点划分成多个子节点。
[0019]在第一方面的一种可能的实现方式中,所述定义八叉树节点类,具体包括:
[0020]定义八叉树中节点的深度、子空间范围、子节点指针和叶节点标志。
[0021]在第一方面的一种可能的实现方式中,在所述根据比较结果得到符合所述查询条件的点云数据之后,还包括:
[0022]将每个切片中符合所述查询条件的点云数据合并到一个结果集合中,并返回所述结果集合。
[0023]本申请实施例的第二方面提供了一种基于切片与八叉树的点云索引装置,包括:
[0024]切片定义模块,用于按照用户需求定义切片类;
[0025]切片模块,用于根据所述切片类对目标点云数据集进行切片,得到多个切片并将全部切片存储到切片索引中;
[0026]八叉树模块,用于分别对每个切片建立八叉树索引;
[0027]条件确认模块,用于根据查询条件确认由切片组成的查询区域,得到八叉树形式的查询条件;
[0028]遍历比较模块,用于遍历所述查询区域内每个切片,比较每个切片内点云数据与所述八叉树形式的查询条件,根据比较结果得到符合所述查询条件的点云数据。
[0029]本申请实施例的第三方面提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述基于切片与八叉树的点云索引方法。
[0030]本申请实施例的第四方面提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述基于切片与八叉树的点云索引方法。
[0031]相比于现有技术,本专利技术实施例提供的一种基于切片与八叉树的点云索引方法、装置、设备及介质,将点云数据的空间索引分成两部分——切片索引与八叉树索引,在进行八叉树索引先进行切片索引。对目标点云数据集,定义切片类后进行切片后,将每个切片存储到切片索引中并对每个切片建立八叉树索引,查询时,将查询条件按照与切片索引相同的方式进行划分,得到一组包含多个切片的查询区域。遍历查询区域中的每个切片,对于每个切片,将八叉树索引形式的查询条件与切片内部的点云数据与进行比较,得到符合条件的点云数据。
[0032]由于各个八叉树是以一个切片为对象进行建立的,每颗八叉树之间相互独立互不干扰,而且切片的数据相较要小,只对切片进行八叉树索引而不是对整个点云数据集进行八叉树索引时,八叉树索引耗费时间便会大大减少,进行切片索引再进行八叉树检索会大幅度减少索引时间,进而提升索引效率。
附图说明
[0033]图1是本专利技术一实施例提供的一种基于切片与八叉树的点云索引方法的流程示意图;
[0034]图2是本专利技术一实施例提供的一种基于切片与八叉树的点云索引装置的结构图。
具体实施方式
[0035]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0036]请参见图1,本申请实施例的第一方面提供了一种基于切片与八叉树的点云索引方法,包括:
[0037]S10、按照用户需求定义切片类。
[0038]S11、根据所述切片类对目标点云数据集进行切片,得到多个切片并将全部切片存储到切片索引中。
[0039]S12、分别对每个切片建立八叉树索引。
[0040]S13、根据查询条件确认由切片组成的查询区域,得到八叉树形式的查询条件。
[0041]S14、遍历所述查询区域内每个切片,比较每个切片内点云数据与所述八叉树形式的查询条件,根据比较结果得到符合所述查询条件的点云数据。
[0042]在实施本实施例所提供的方法前,需要读取目标点云数据集并根据点云大小设置分块进入内存读取处理,然后识别目标点云数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于切片与八叉树的点云索引方法,其特征在于,包括:按照用户需求定义切片类;根据所述切片类对目标点云数据集进行切片,得到多个切片并将全部切片存储到切片索引中;分别对每个切片建立八叉树索引;根据查询条件确认由切片组成的查询区域,得到八叉树形式的查询条件;遍历所述查询区域内每个切片,比较每个切片内点云数据与所述八叉树形式的查询条件,根据比较结果得到符合所述查询条件的点云数据。2.如权利要求1所述基于切片与八叉树的点云索引方法,其特征在于,所述按照用户需求定义切片类,具体包括:按照用户需求定义切片的边界范围、切片点云数据容量和切片编号信息。3.如权利要求1所述基于切片与八叉树的点云索引方法,其特征在于,所述全部切片存储到切片索引中,具体包括:用切片索引的第一维度索引存储每个切片的位置信息,用所述切片索引的第二维度索引存储每个切片包含的点云数据。4.如权利要求1所述基于切片与八叉树的点云索引方法,其特征在于,所述分别对每个切片建立八叉树索引,具体包括:定义八叉树节点类;根据所述八叉树节点类、每个切片的点云数据,从根节点开始递归过程进而构建八叉树,直到八叉树所有叶节点都被构建完毕;将八叉树索引保存。5.如权利要求4所述基于切片与八叉树的点云索引方法,其特征在于,每个节点的递归过程具体为:如果当前节点深度达到最大深度或者当前节点内的点数小于等于最大点数,则将当前节点标记为叶节点,并将点云数据存储在当前节点上;如果当前节点深度小于最大深度且当前节点内...

【专利技术属性】
技术研发人员:周佛灵邹朝军
申请(专利权)人:广州启量信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1