基于Hash‑Cube空间层次划分结构的最近邻点集快速检索方法与流程

文档序号:11830401阅读:来源:国知局

技术特征:

1.一种基于Hash-Cube空间层次划分结构的最近邻点集快速检索方法,其特征在于,包括以下步骤:

步骤一、通过估算单位长度内包含的点云数目将整个点云空间划分为若干个大小相等的子空间,点云中的所有点被包裹在这些子空间中;

步骤二、通过计算每个点的子空间坐标,结合Hash函数直接定址的特点将每个数据点分配到对应的子空间中;

步骤三、通过对数据点排序,进行数据点存储,即每个子空间Hash-Cube只记录检索值最小的点的地址;

步骤四、空间点的最近邻查询,在最近邻查找过程中,根据当前点采样半径r的大小以及Hash函数快速建立检索域,在检索域中查找位于检索半径范围内点,以此确定最近邻点集,最后完成检索。

2.根据权利要求1所述的基于Hash-Cube空间层次划分结构的最近邻点集快速检索方法,其特征在于,所述步骤一之前还包括以下处理:

建立数据结构,其包括:

三维点结构体Point3D,用于记录点坐标、点检索值以及该点所在的子空间坐标等数据信息;

点结构体HashPoint,用于记录三维点坐标、经Hash映射后该点对应的子空间检索,该结构体在空间划分完成后以及后续的最近邻查找过程中使用;存储所有经Hash映射后的点云信息的数组HashPointsArray;存储所有子空间的数组HashCubesArray,每个子空间最多只存储一个数据点的指针。

3.根据权利要求2所述的基于Hash-Cube空间层次划分结构的最近邻点集快速检索方法,其特征在于,所述步骤一对点云数据的空间划分,具体包括以下步骤:

(1)计算点云数据集的最小包围盒{[xmin,xmax][ymin,ymax][zmin,zmax]},根据包围盒尺寸以及点云数目估算单位长度内包含的点的数目cρ

(2)估算沿坐标轴x,y,z三个方向上的单位子空间个数cx,cy,cz,即单位子空间在坐标轴方向上的解析度;

(3)根据(2)步计算的子空间解析度估算单位子空间沿坐标轴方向上的尺寸sx,sy,sz

(4)上述三步执行完成之后,整个点云空间被划分为(cx×cy×cz)个子空间,每个子空间的尺寸为sx×sy×sz

4.根据权利要求3所述的基于Hash-Cube空间层次划分结构的最近邻点集快速检索方法,其特征在于,所述步骤二中,设计Hash函数将每个数据点分配到单位子空间中,在此将Hash函数定义为关于坐标cx、cy的二元线性函数,其中数据点作为输入参数,对应的返回值即散列值为单位子空间检索Cubeid,任意一点pi所在的单位子空间的检索Cubeid之间的Hash函数可表示为:

<mrow> <msub> <mi>Cube</mi> <mrow> <mi>i</mi> <mi>d</mi> </mrow> </msub> <mo>=</mo> <msubsup> <mi>C</mi> <msub> <mi>p</mi> <mi>i</mi> </msub> <mi>x</mi> </msubsup> <mo>+</mo> <msubsup> <mi>C</mi> <msub> <mi>p</mi> <mi>i</mi> </msub> <mi>y</mi> </msubsup> <mo>&CenterDot;</mo> <msub> <mi>p</mi> <mi>x</mi> </msub> <mo>+</mo> <msubsup> <mi>C</mi> <msub> <mi>p</mi> <mi>i</mi> </msub> <mi>z</mi> </msubsup> <mo>&CenterDot;</mo> <msub> <mi>c</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>c</mi> <mi>y</mi> </msub> </mrow>

通过引入Hash函数,在空间点pi与子空间Cubeid之间建立了一个确定的对应关系,使得每个点只归属于一个子空间,所有数据点经Hash函数映射后存储在一块连续的存储空间HashPointsArray中。

5.根据权利要求4所述的基于Hash-Cube空间层次划分结构的最近邻点集快速检索方法,其特征在于,所述步骤三通过对数据点排序,进行数据点存储,即每个子空间Hash-Cube只记录检索值最小的点的地址,具体包括:数据点分配完成后,根据每个点对应的Cubeid大小对点云中所有的点进行排序,排序之后,每个子空间只需记录检索值最小的点的地址,若子空间内不包含任何点,则记为NULL,最终将排序后的HashPointsArray中的点云信息与子空间存储数组HashCubesArray相关联。

6.根据权利要求5所述的基于Hash-Cube空间层次划分结构的最近邻点集快速检索方法,其特征在于,所述步骤四空间点的最近邻查询,具体包括以下步骤:

(1)以点pi为中心,以2r为边长建立虚拟检索立方体,立方体的最小、最大角点坐标Cubemin、Cubemax

(2)分别计算虚拟立方体的两个角点坐标Cubemin、Cubemax的子空间坐标,两个角点坐标可能对应于不同的子空间,也可能归属于同一个子空间,把位于两个角点子空间坐标区间内的所有非空子空间作为与点pi对应的检索域;

(3)遍历检索域内的所有子空间,将每组子空间坐标代入已定义的Hash函数,计算对应的子空间检索,由于每个子空间中存储的是检索值最小的点的地址,据此地址可以检索到包含在内的所有点的信息,通过计算每个点与pi的平方距离,进而筛选出位于检索范围内的所有点。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1