一种基于熵能量的点云各向异性邻域搜索方法

文档序号:25526193发布日期:2021-06-18 20:15阅读:256来源:国知局
一种基于熵能量的点云各向异性邻域搜索方法

本发明属于三维信号处理领域,具体涉及一种基于熵能量的点云各向异性邻域搜索方法。



背景技术:

点云(pointcloud)是指通过三维扫描设备、立体视觉技术或三维模型技术获取的,表征在某三维坐标系下的点的集合,每一点至少包含有三维坐标x,y,z。其本质是对真实世界或三维模型的离散化,以点的形式还原物体,被广泛应用于三维重构、导航、定位、虚拟现实以及现实增强等领域。

由于通常只含有空间坐标信息,点云数据往往需要另外求取各点的法向量等额外几何信息用以进行后续曲面重构、降噪、导航及定位等工作。点云中各点之间没有明确的几何拓扑关系,在求解某一点的法向量等几何信息时,需要在整个点云数据中进行搜索,寻找与该点有相似特性的点组成该点的邻域,而后在邻域内进行法向量等几何信息的求解。

传统邻域搜索方法以距离为判定依据进行邻域搜索,程效军在其著作中指出,点云的邻域一般通过对点与周边点的欧式距离排序得出。姜晓通等人以二进制八叉树搜索方式进行点云数据间距离的快速排序查找,实现点云k邻域的快速搜索。赵越华等人将散落点云划分为大小相等的立方体栅格中,而后以点到立方格六面距离为依据,实现点云邻域的快速搜索。距离信息有时不足以完整描述点云的特性且容易受噪声干扰,作为改进,weinmann等人从点云的k邻域中求取归一化的协方差矩阵特征值,并以这些特征值的信息熵最小为优化目标,迭代的进行k邻域的优化构建,实现点云邻域的搜索。

上述方法均为各向同性的搜索方法,在三维重建、导航、定位等领域中,车辆、建筑等人造物是场景中的主要物体,这些人造物具有尖锐的边界点或角点,各向同性的邻域搜索方法会使这些边界点或角点的邻域内存在多个平面,从含有多个平面的邻域内求解法向量时,法向量会倾向于各平面法向量的均值,产生模糊,影响三维重建、导航、定位的精度。



技术实现要素:

本发明的目的是为克服已有技术的不足之处,提出一种基于熵能量的点云各向异性邻域搜索方法。本发明将点的结构张量特征与几何特征相结合,进行点云各向异性的邻域搜索,使邻域中只存在单一平面,从而解决各向同性邻域搜索方法中出现的邻域内存在多个平面,造成法向量模糊等问题。本发明具有通用性,可直接用于点云邻域搜索,在三维重建、导航、定位以及虚拟现实领域有较大的应用前景。

本发明提出一种基于熵能量的点云各向异性邻域搜索方法,其特征在于,该方法对点云数据中的每个待搜索点,首先搜索距离该待测点最近的k个点构成k邻域,将k邻域作为初始邻域,然后从初始邻域中选取不同的点的组合计算该待搜索点在对应组合下的结构张量特征值,并以特征值计算包括线性度和三维散度的几何特征,将结构张量特征值与几何特征组成熵能量函数,通过遗传算法搜索使得熵能量函数最小的初始邻域内的点的组合构成该待搜索点的最终邻域。该方法包括以下步骤:

1)获取三维点云数据,确定该点云数据中的待搜索点;

其中,记点云数据为p={pi,i=1,2,…m,pi∈r3},pi为点云数据中的第i个点,m为点的个数;

2)对于任一待搜索点qi={x,y,z},x,y,z为该点的三维坐标;从p中提取该待搜索点qi的k邻域nb(qi,k)={pi1,pi2,pi3,…,pik},其中pik为qi的k邻域内的第k个点,k为邻域点个数;

3)以遗传算法对待搜索点进行各向异性邻域搜索;具体步骤如下:

3-1)初始化遗传算法;

设定遗传算法中种群个数为m,种群中每个个体长度为k;随机初始化种群中各个体每一位的编码为0或1,其中,0代表未选中该位置在k领域的对应点,1代表选中该位置在k领域的对应点;设置变异概率pm,交叉概率pc,遗传迭代最大次数为t,;令当前迭代次数t=1;将初始化的种群作为当前种群;

3-2)计算当前种群中每个个体的个体适应度,具体步骤如下:

3-2-1)令个体序号j=1;

3-2-2)将种群中个体j选中的对应点组成待搜索点邻域nb(qi,n),其中,n为该个体中编码为1的位置总数;计算待搜索点qi的结构张量ci,如式(1)所示:

其中,pij为邻域nb(qi,n)内的第j个点,为邻域nb(qi,n)的几何中心点;

3-2-3)对结构张量ci进行特征值分解,并将特征值从小到大排序,得到特征值排序结果为:0≤λ0≤λ1≤λ2;

3-2-4)对特征值λ0,λ1,λ2分别进行归一化获得对应的归一化后的特征值γ0,γ1,γ2;

3-2-5)计算待测点线性度α1d,如式(2)所示:

3-2-6)计算待测点三维散度α3d,如式(3)所示:

3-2-7)计算熵能量函数e2d,其倒数作为个体j的个体适应度fj,如式(4)所示:

其中,ω,μ分别为控制因子;

3-2-8)令j=j+1,然后返回步骤3-2-2)计算下一个个体的个体适应度,直至当前种群内所有个体的个体适应度全部计算完毕,进入步骤3-3);

3-3)根据步骤3-2)得到的所有个体的个体适应度,进行种群个体选择,生成新种群;具体步骤如下:

3-3-1)依据每个个体的个体适应度fj,计算该个体被选中的概率ρj,j=1,2,…m,如式(5)所示:

3-3-2)利用步骤3-3-1)的结果,通过概率选择方法,对种群内的个体进行选择,共选中m个个体复制进入新种群;

3-4)根据交叉概率pc,对步骤3-3)得到的新种群个体进行交叉,得到更新后的新种群;

3-5)根据变异概率pm,对步骤3-4)更新后的新种群进行变异,得到更新后的新种群;

3-6)令迭代次数t=t+1,将步骤3-5)得到的更新后的新种群作为当前种群,然后重新返回步骤3-2);直至t达到遗传迭代最大次数t,种群更新完毕,得到最终的种群;

3-7)重复步骤3-2),计算最终种群中每个个体的个体适应度,从中选择熵能量函数值最小的个体作为最终个体;根据最终个体每一位的编码值,将该个体中选中的点组成待搜索点qi的最终邻域其中l为最终个体选中的k邻域点个数,完成该待搜索点的邻域搜索;

4)判断是否有其他待搜索点:如果有,则重新返回步骤2);如果没有,则搜索完成。

本发明的特点及有益效果在于:

本发明首先建立点云k邻域,在邻域中计算结构张量特征值、线性度、平面度以及三维散度等几何特征,将结构张量特征值、线性度、平面度及三维散度组成熵能量函数,通过遗传算法求解使熵能量函数最小的邻域点组合,实现点云各向异性邻域搜索。本发明可直接用于点云邻域搜索,在三维重建、导航、定位以及虚拟现实等领域有较大的应用前景。

附图说明

图1是本发明方法的整体流程图。

图2是本发明实施例中法兰工件点云数据及待搜索点位置示意图。

图3是本发明实施例中台阶面上沿待搜索点邻域图。

图4是本发明实施例中台阶面下沿待搜索点邻域图。

图5是本发明实施例中螺纹孔倒角上沿待搜索点邻域图。

图6是本发明实施例中螺纹孔倒角下沿待搜索点邻域图。

具体实施方式

本发明提出一种基于熵能量的点云各向异性邻域搜索方法,下面结合附图和具体实施例进一步详细说明如下。

本发明提出一种基于熵能量的点云各向异性邻域搜索方法,该方法对点云数据中的每个待搜索点,首先搜索距离该待测点最近的k个点构成k邻域,将k邻域作为初始邻域,然后从初始邻域中选取不同的点的组合计算该待搜索点在对应组合下的结构张量特征值,并以特征值计算包括线性度和三维散度的几何特征,将结构张量特征值与几何特征组成熵能量函数,通过遗传算法搜索使得熵能量函数最小的初始邻域内的点的组合构成该待搜索点的最终邻域。该方法整体流程如图1所示,包括以下步骤:

1)获取三维点云数据,确定该点云数据中的待搜索点;

其中,记点云数据为p={pi,i=1,2,…m,pi∈r3},pi为点云数据中的第i个点,m为点的个数。

本实施例对一个法兰工件进行三维重建时,首先对该工件进行外形扫描,获取点云数据,而后求解各点法向量并进行三维重建,该法兰工件表面有一个台阶面以及8个螺纹孔,因此存在大量尖锐边沿,以各向同性的邻域搜索方法得到的边沿上的点的邻域在求解法向量时会出现法向量模糊。本实例分别选取法兰工件的台阶面上沿一点、下沿一点,螺纹孔倒角上沿一点、下沿一点,共四个待搜索点进行邻域搜索,如图2所示,黑色大圆点为各待搜索点,灰色点为法兰工件点云数据。

2)对于任一待搜索点qi={x,y,z},x,y,z为该点的三维坐标;从p中提取该待搜索点qi的k邻域nb(qi,k)={pi1,pi2,pi3,…,pik},其中pik为qi的k邻域内的第k个点,k为人工设定邻域点个数,本实施例取k=100。

3)以遗传算法对待搜索点进行各向异性邻域搜索;具体步骤如下:

3-1)初始化遗传算法:设定遗传算法中种群个数为m,本实施例取m=200,种群中每个个体长度为k(与k领域中的k取值一致),随机初始化种群中各个体每一位的编码为0或1(其中,0代表未选中该位置在k领域的对应点,1代表选中该位置在k领域的对应点;因此种群中每个个体代表一种从k邻域中选取点的组合方式);设置变异概率pm,本实施例取pm=0.01,交叉概率pc,本实施例取pc=0.9,遗传迭代最大次数为t,本实施例取t=300;令当前迭代次数t=1;将该初始化的种群作为当前种群

3-2)计算当前种群中每个个体的个体适应度,具体步骤如下:

3-2-1)令个体序号j=1;

3-2-2)将种群中个体j选中的对应点组成待搜索点邻域nb(qi,n),其中,n为该个体中编码为1的位置总数(也是邻域nb(qi,n)内点的个数,n≤k);计算待搜索点qi的结构张量ci,如式(1)所示,其中,pij为该邻域内的第j个点,为该邻域的几何中心点;

3-2-3)对结构张量ci进行特征值分解,并将特征值从小到大排序,得到特征值排序结果为:0≤λ0≤λ1≤λ2;

3-2-4)对特征值λ0,λ1,λ2分别进行归一化获得对应的归一化后的特征值γ0,γ1,γ2;

3-2-5)计算待测点线性度α1d,如式(2)所示:

3-2-6)计算待测点三维散度α3d,如式(3)所示:

3-2-7)计算熵能量函数e2d,其倒数作为个体j的个体适应度fj,如式(4)所示:

其中,ω,μ分别为控制因子,本实例中选取ω=0.6,μ=0.5。

3-2-8)令j=j+1,选择种群中新的个体,然后返回步骤3-2-2)计算下一个个体的个体适应度,直至当前种群内所有个体的个体适应度全部计算完毕,进入步骤3-3);

3-3)根据步骤3-2)得到的所有个体的个体适应度,进行种群个体选择,生成新种群;具体步骤如下:

3-3-1)依据每个个体的个体适应度fj,计算该个体被选中的概率ρj,(j=1,2,…m),如式(5)所示:

3-3-2)利用步骤3-3-1)的结果,以“轮盘赌法”或其他概率选择方法,对种群内的个体进行选择,共选中m个个体复制进入新种群;

3-4)对步骤3-3)得到的新种群个体进行交叉,得到更新后的新种群;具体方法如下:

根据设定的交叉概率pc,每次从新种群中随机生成父类对,随机选择编码点位进行编码交换交叉操作,生成两个新的个体,以生成的两个新个体替代其父类对;共进行m次操作后,完成新种群交叉,得到更新后的新种群;

3-5)对步骤3-4)更新后的新种群进行变异,得到更新后的新种群;具体方法如下:

根据设定的变异概率pm,从新种群中随机选择个体,随机选择编码点位进行编码翻转变异操作,生成新个体,以变异后的新个体替代变异前个体;共进行m次操作后,完成新种群变异操作,得到更新后的种群;

3-6)通过步骤3-3)-3-5)完成种群更新,生成新种群,令迭代次数t=t+1,将该新种群作为当前种群,然后重新返回步骤3-2),再次进行适应度计算,直至达到遗传迭代最大次数t,种群更新完毕,得到最终的种群;

3-7)重复步骤3-2),计算最终种群中每个个体的个体适应度,从中选择熵能量函数值最小(即个体适应度最大)的个体作为最终个体;根据最终个体每一位的编码值,将该个体中选中的点(即编码为1的位置对应的k邻域中的点)组成待搜索点qi的最终邻域其中l为最终个体选中的k邻域点个数,完成该待搜索点的邻域搜索;

4)判断是否有其他待搜索点:如果有,则重新返回步骤2);如果没有则结束搜索过程。

根据本发明,依照步骤1)-3),对实施例的法兰工件进行各待搜索点邻域搜索,结果如图3-6所示,其中,图3为台阶面上沿待搜索点邻域搜索结果,图4为台阶面下沿待搜索点邻域搜索结果,图5为螺纹孔上沿待搜索点邻域搜索结果,图6为螺纹孔下沿待搜索点邻域搜索结果,图中三角形为依照本发明方法进行搜索的邻域,黑色小点为依照weinmann等人方法进行邻域搜索结果,黑色大圆点为待测点位置,两个椭圆内的点分别属于不同平面,从图中可以看出,基于weinmann等人方法进行搜索的邻域内含有两个平面,而基于本发明搜索的邻域具有各向异性,内部只含有单一平面,可以有效避免法向量求解模糊的问题。

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