点云最近邻数据结构构建方法及其系统技术方案

技术编号:37403959 阅读:9 留言:0更新日期:2023-04-30 09:31
本申请公开了一种点云最近邻数据结构构建方法及其系统,构建方法包括如下步骤:S1:构建体素空间,对每个体素空间进行等份划分成若干子空间,以形成内部被划分成预设份额的体素;S2:划定构建区域,获取该区域中的点云;S3:基于点云构建步骤S1中的体素,基于每个体素的子空间内只存放一个点为原则进行点云降采样处理。本发明专利技术的有益效果:针对ivox应对稠密点云的不足,本申请融合八叉树结构和降采样功能,使得在构建近邻结构时可以自动进行降采样,进而在面对稠密点云的时候,依然具有较高的效率。的效率。的效率。

【技术实现步骤摘要】
点云最近邻数据结构构建方法及其系统


[0001]本申请涉及点云数据处理
,尤其涉及一种点云最近邻数据结构构建方法及其系统。

技术介绍

[0002]点云配准的基本问题是计算给定点与历史点云的最近邻,通常需要依赖一些最近邻的数据结构。这些数据结构又大体分为树类的(tree like)和体素类(voxel like)的。
[0003]Kd树类结构的优势在于,可以严格地查询K近邻,不会多也不会少;也可以以范围或盒子形式来查询最近邻(range search/box search)。查询过程中也以设置附加条件比如最大距离,实现快速的近似最近邻查找(Aproximate Nearest Neighbor, ANN)。然而传统的Kd树是不带增量结构的。像ikd

tree这种带增量加点的结构,虽然不用完全重新构建,但也需要花额外的时间去维护这个树的结构。
[0004]稀疏体素的近邻结构iVox(incremental voxels)的优势在于,天然具有K近邻时的范围限制;增量构建的时候不需要额外的操作;删除的时候也很方便。
[0005]实际上点云配准往往不需要严格的K近邻。如果K近邻找到了一个很远的点,拿这个点过来做点面残差也是不合理的,这部分计算就是无效的。我们不妨让近邻结构本身就具有这种查找范围限制,而kd树即使带了范围限制,也需要一个节点一个节点地来遍历,这种遍历显然也是会耗时的。
[0006]iVox(incremental voxels)虽然具有天然的K近邻时的范围限制,具有更快的查找效率,但是更多的是适合稀疏的点云。对于比较密集的点云往往需要配合降采样,然后在构建ivox。然而对于比较大的点云降采样是比较耗时的。

技术实现思路

[0007]本专利技术要解决的技术问题是针对以上不足,提供点云最近邻数据结构构建方法及其系统,针对ivox 应对稠密点云的不足,本申请融合八叉树和降采样功能,使得在构建近邻结构时可以自动进行降采样,进而在面对稠密点云的时候,依然具有较高的效率。
[0008]为解决以上技术问题,本专利技术采用以下技术方案:一种点云最近邻数据结构构建系统,包括:体素构建模块,对每个体素空间进行等份划分成若干子空间,以形成内部被划分成预设份额的体素;点云获取模块,获取需配准的点云区域以及点数据,并利用体素构建模块对点云区域进行划分;近邻结构构建模块,基于每个体素的子空间内只存放一个点为原则将点云获取模块中的点占据体素子空间中,多余的点进行删除以达到降采样目的。
[0009]一种点云最近邻数据结构构建方法,包括以下步骤:步骤S1:基于体素构建模块构建体素空间,对每个体素空间进行等份划分成若干
子空间,以形成内部被划分成预设份额的体素;步骤S2:划定构建区域,基于点云获取模块获取该区域中的点云;步骤S3:基于点云构建步骤S1中的体素,在近邻结构构建模块基础上,基于每个体素的子空间内只存放一个点为原则进行点云降采样处理。
[0010]进一步的,所述步骤S1中每个体素空间的子空间数量为2的n次方。
[0011]进一步的,所述步骤S1中每个体素融合八叉树,将空间划分成8个等份子空间,形成2*2*2的块体结构。
[0012]进一步的,所述步骤S3中点基于先到先占的原则占据每个体素的子空间。
[0013]进一步的,所述先到先占的原则具体如下:每个体素的子空间初始状态均为空闲,在进行点云降采样处理时,对于落在某个体素内的点,基于其所属子空间内是否已存在其他点来进行操作,对于没有其他点的情况将该点占据该子空间,对于存在其他点的情况将该点进行删除。
[0014]本专利技术采用以上技术方案,与现有技术相比,具有如下技术效果:针对ivox 应对稠密点云的不足,本申请融合八叉树和降采样功能,使得在构建近邻结构时可以自动进行降采样,进而在面对稠密点云的时候,依然具有较高的效率。
附图说明
[0015]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
[0016]图1是点云最近邻数据结构构建方法的流程图;图2是稠密ivox某个体素内包含的点示意图;图3是稀疏ivox某个体素内包含的点示意图;图4是体素内融合octree的示意图;图5是体素内某一子空间内降采样示意图;图6是现有技术的ivox 和本申请的 ivox

octree效率对比示意图;图7是点云最近邻数据结构构建系统框图。
具体实施方式
[0017]实施例1,如图1所示,一种点云最近邻数据结构构建方法,可包括如下步骤:步骤S1:构建体素空间,对每个体素空间进行等份划分成若干子空间,以形成内部被划分成预设份额的体素,每个体素的子空间数量为2的n次方,n依据经验值选择。
[0018]步骤S2:划定构建区域,获取该区域中的点云;步骤S3:基于点云构建步骤S1中的体素,基于每个体素的子空间内只存放一个点为原则进行点云降采样处理,其中点基于先到先占的原则占据每个体素的子空间。具体地,每个体素子空间的初始状态均为空闲,在进行点云降采样处理时,对于落在某个体素内的点,基于其所属子空间内是否已存在其他点来进行占据所属子空间或删除的操作。
[0019]在针对稠密点云的时候,本申请的优势会显得非常大,因为针对稠密点云(如图2)时,如果采用稀疏体素的近邻结构iVox(incremental voxels),往往需要先采用pcl库中的
VoxelGrid体素网格化进行降采样,然后在构稀疏体素ivox,构建好的稀疏体素示意如图3,这种方式比较耗时,如果不进行降采样,体素内点又会过多,不仅不利于近邻查找用于匹配,而且也会增加查找的耗时。
[0020]而采用本申请的方法,首先作为一个具体的实施例,本申请体素融合八叉树,将空间划分成8个等份子空间。在每个体素内融合一个octree(八叉树),如图4所示,将体素空间划分为等份的子空间。当然划分的份数也可根据使用要求自行设置,一般是2的n次方,这里选择八等份划分。体素内的每一份子空间内只容许存放一个点,初始状态都默认“空闲”状态。当用点云构建ivox

octree体素的时候,对于落在某个体素内的点,首先计算它属于体素内哪个子空间。然后查询该子空间是否是“空闲”,若是“空闲”就用该点占据该子空间,然后将该子空间的状态置为“占据”;若所属子空间是“占据”,则将该点抛弃,进而实现对稠密点云自动降采样的功能。
[0021]如图5所示,落在该子空间内的点有很多,以随机采样方式,先落入的第一个点(图中黑色的点)先到,将该子空间占据,将其状态置为“占据”。后续落在该子空间内的点,由于查询到该子空间已经被占据,所以这些点将会被抛弃(如图中灰色的点),进而高效的实现按照空间进行降采样的功能。
[0022本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种点云最近邻数据结构构建系统,其特征在于:包括:体素构建模块,对每个体素空间进行等份划分成若干子空间,以形成内部被划分成预设份额的体素;点云获取模块,获取需配准的点云区域以及点数据,并利用体素构建模块对点云区域进行划分;近邻结构构建模块,基于每个体素的子空间内只存放一个点为原则将点云获取模块中的点占据体素子空间中,多余的点进行删除以达到降采样目的。2.一种点云最近邻数据结构构建方法,其特征在于:所述构建方法应用于如权利要求1所述的点云最近邻数据结构构建系统中,包括以下步骤:步骤S1:基于体素构建模块构建体素空间,对每个体素空间进行等份划分成若干子空间,以形成内部被划分成预设份额的体素;步骤S2:划定构建区域,基于点云获取模块获取该区域中的点云;步骤S3:基于点云构建步骤S1中的体素,在近邻结构构建模块基础上,基于每个体素的子空间...

【专利技术属性】
技术研发人员:吴宇震陈亮郝健吕长虹郭林栋刘金辉刘羿
申请(专利权)人:北京斯年智驾科技有限公司
类型:发明
国别省市:

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

1