一种基于Kd-Tree的邻近点并行化搜索装置及方法制造方法及图纸

技术编号:37782854 阅读:25 留言:0更新日期:2023-06-09 09:13
本发明专利技术公开了一种基于Kd

【技术实现步骤摘要】
一种基于Kd

Tree的邻近点并行化搜索装置及方法


[0001]本专利技术涉及并行化搜索
,具体涉及一种基于Kd

Tree的邻近点并行化搜索装置及方法。

技术介绍

[0002]随着近些年遥感测绘和自动驾驶领域的发展,LiDAR作为一种对环境灵敏度比较低,能够进行主动式测量,实现全天时日夜获取高精度三维点云数据的传感器而备受关注。相比于传统的相机图像数据而言,LiDAR的点云数据具有高采样率、高精度、空间分布离散、数据量巨大的特点。常见的32线激光雷达每秒便能产生120万个三维点云,如此多的点云数据已经成为后续对点云进行分割、配准和识别等处理和应用的瓶颈,选择恰当的空间索引方法能够迅速且高效地实现海量点云数据的存储、查询、计算和操作。目前主流的研究和应用当中,常使用Kd树、八叉树和体素网格等方式对LiDAR点云数据进行空间索引的建立。
[0003]Kd

Tree是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,由Bentley在1975年提出,主要应用于多维空间关键数据的范围搜索和最近邻搜索。Kd

Tree是特殊的平衡二叉树,它将整个k维空间不断地二分,从而划分为若干个局部空间,在搜索时不断进行分支判断,选择局部子空间,避免了全局空间搜索,加速了邻近点的搜索过程,其搜索的平均时间复杂度为LiDAR输出的数据正是一种三维点云,所以使用Kd

Tree来组织点云所使用的维度也是3。
[0004]尽管Kd

Tree自身的特点使得它应用在点云组织与管理时表现出较好的性能,但是近年来现代计算平台保持高速发展,多核处理器成为主流,异构计算也逐渐引起广泛关注,它们丰富的并行资源为提高应用性能提供广阔的前景,程序的并行化已成为如今的主流。但现有的Kd

Tree搜索方法依赖于递归搜索,使得实际应用时无法充分利用并行资源。

技术实现思路

[0005]本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种基于Kd

Tree的邻近点并行化搜索装置及方法。
[0006]本专利技术的第一个目的可以通过采取如下技术方案达到:
[0007]一种基于Kd

Tree的邻近点并行化搜索装置,所述装置包含控制模块、M个搜索模块、N个回溯模块、状态模块,其中,M=1,2,

,N=1,2,


[0008]所述控制模块接收待匹配节点数据,并将所述节点数据写入搜索FIFO存储器中,同时控制所述M个搜索模块和N个回溯模块进行待匹配节点数据的邻近点搜索;
[0009]所述M个搜索模块从搜索FIFO存储器中读取待匹配节点数据,根据待匹配节点序号从状态模块读取节点相关运行状态,根据节点相关运行状态在Kd

Tree存储器中读取Kd

Tree节点,进行向下搜索操作直到寻找到Kd

Tree的叶子节点,根据搜索操作完成的状态,将结果分别写入搜索FIFO存储器和回溯FIFO存储器;
[0010]所述N个回溯模块从回溯FIFO存储器中读取待匹配节点数据,根据待匹配节点序
号从状态模块读取节点相关运行状态,在Kd

Tree中进行向上回溯操作直到寻找到Kd

Tree的根节点,根据回溯操作完成的状态,将结果分别写入搜索FIFO存储器、回溯FIFO存储器和输出节点存储器;
[0011]所述状态模块接收来自M个搜索模块或N个回溯模块的待匹配节点序号,并将相对应的所述节点相关运行状态信息传输回对应模块,所述节点相关运行状态包括Kd

Tree节点位置、最邻近距离、最邻近节点、当前分割维度、已搜索节点、Kd

Tree搜索路径栈区。
[0012]进一步地,所述Kd

Tree是一种对k维空间中实例点进行存储以便对Kd

Tree进行快速检索的数据结构,Kd

Tree构建过程如下:
[0013]S11、以当前实例点作为树节点在Kd

Tree中的深度与数据维度k求模,获得当前分割维度;
[0014]S12、对k维数据在当前分割维度下进行排序,以排序后的中位数数据作为当前树节点的值;
[0015]S13、以中位数据作为分割点,将小于中位数的数据作为当前树节点的左子树,将大于中位数的数据作为当前树节点的右子树;
[0016]S14、重复S11~S13,直到将所有实例点数据都以Kd

Tree的方式组织并存储起来。
[0017]进一步地,所述控制模块中待匹配节点数据的邻近点搜索过程如下:
[0018]S21、从Kd

Tree的根节点出发,向下搜索;
[0019]S22、当待搜索节点当前维度的值小于当前Kd

Tree节点对应维度的值,则向左子树进行搜索,否则向右子树进行搜索,同时将当前节点压入栈中;
[0020]S23、重复步骤S22,直到当前Kd

Tree节点为叶子节点,执行步骤S24;
[0021]S24、将栈中节点出栈,得到当前节点,标记当前节点为已访问,计算当前节点和目标点欧式距离,若小于最邻近距离,则更新最邻近节点与最邻近距离;
[0022]S25、计算目标点与父节点对应维度的距离,如果小于最近距离,将从未访问过的兄弟节点开始进行步骤S22;
[0023]S26、重复步骤S24

S25,直到当前节点为根节点,将最终的最近点输出到目标数组中。
[0024]进一步地,所述Kd

Tree内存存储方式如下:
[0025]Kd

Tree以连续地址的方式存储在存储器中,根节点的地址为1,对于地址为i的节点,该节点i的左子节点存储在地址i
×
2处,该节点i的右子节点存储在i
×
2+1处,通过计算节点地址二进制下1的最高位置,得到当前节点在Kd

Tree中的层数。将Kd

Tree以连续地址的方式存储并确定Kd

Tree左右子节点在地址中的分布能够使得其他模块以O(1)的时间复杂度访问Kd

Tree节点。
[0026]进一步地,所述控制模块轮询地访问搜索FIFO存储器和回溯FIFO存储器的空闲标志位区域,若对应搜索FIFO存储器或回溯FIFO存储器的空闲标志位被置为0,则表示搜索FIFO存储器或回溯FIFO存储器中存在数据等待处理,控制模块则产生启动信号至对应的搜索FIFO存储器或回溯FIFO存储器。由控制模块来根据FIFO存储器的状态启动对应的工作模块,当本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Kd

Tree的邻近点并行化搜索装置,其特征在于,所述装置包含控制模块、M个搜索模块、N个回溯模块、状态模块,其中,M=1,2,

,N=1,2,

;所述控制模块接收待匹配节点数据,并将所述节点数据写入搜索FIFO存储器中,同时控制所述M个搜索模块和N个回溯模块进行待匹配节点数据的邻近点搜索;所述M个搜索模块从搜索FIFO存储器中读取待匹配节点数据,根据待匹配节点序号从状态模块读取节点相关运行状态,并根据节点相关运行状态在Kd

Tree存储器中读取Kd

Tree节点,进行向下搜索操作直到寻找到Kd

Tree的叶子节点,根据搜索操作完成的状态,将结果分别写入搜索FIFO存储器和回溯FIFO存储器;所述N个回溯模块从回溯FIFO存储器中读取待匹配节点数据,根据待匹配节点序号从状态模块读取节点相关运行状态,在Kd

Tree中进行向上回溯操作直到寻找到Kd

Tree的根节点,根据回溯操作完成的状态,将结果分别写入搜索FIFO存储器、回溯FIFO存储器和输出节点存储器;所述状态模块接收来自M个搜索模块或N个回溯模块的待匹配节点序号,并将相对应的所述节点相关运行状态信息传输回对应模块,所述节点相关运行状态包括Kd

Tree节点位置、最邻近距离、最邻近节点、当前分割维度、已搜索节点、Kd

Tree搜索路径栈区。2.根据权利要求1所述的基于Kd

Tree的邻近点并行化搜索装置,其特征在于,所述Kd

Tree是一种对k维空间中实例点进行存储以便对Kd

Tree进行快速检索的数据结构,Kd

Tree构建过程如下:S11、以当前实例点作为树节点在Kd

Tree中的深度与数据维度k求模,获得当前分割维度;S12、对k维数据在当前分割维度下进行排序,以排序后的中位数数据作为当前树节点的值;S13、以中位数据作为分割点,将小于中位数的数据作为当前树节点的左子树,将大于中位数的数据作为当前树节点的右子树;S14、重复S11~S13,直到将所有实例点数据都以Kd

Tree的方式组织并存储起来。3.根据权利要求1所述的基于Kd

Tree的邻近点并行化搜索装置,其特征在于,所述控制模块中待匹配节点数据的邻近点搜索过程如下:S21、从Kd

Tree的根节点出发,向下搜索;S22、当待搜索节点当前维度的值小于当前Kd

Tree节点对应维度的值,则向左子树进行搜索,否则向右子树进行搜索,同时将当前节点压入栈中;S23、重复步骤S22,直到当前Kd

Tree节点为叶子节点,执行步骤S24;S24、将栈中节点出栈,得到当前节点,标记当前节点为已访问,计算当前节点和目标点欧式距离,若小于最邻近距离,则更新最邻近节点与最邻近距离;S25、计算目标点与父节点对应维度的距离,如果小于最近距离,将从未访问过的兄弟节点开始进行步骤S22;S26、重复步骤S24

S25,直到当前节点为根节点,将最终的最近点输出到目标数组中。4.根据权利要求2所述的基于Kd

Tree的邻近点并行化搜索装置,其特征在于,所述Kd

Tree内存存储方式如下:Kd

Tree以连续地址的方式存储在存储器中,根节点的地址为1,对于地址为i的节点,
该节点i的左子节点存储在地址i
×
2处,该节点i的右子节点存储在i
×
2+1处,通过计算节点地址二进制下1的最高...

【专利技术属性】
技术研发人员:裴海龙许益元
申请(专利权)人:华南理工大学
类型:发明
国别省市:

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

1