一种基于多分辨率的快速迭代最近点配准算法的制作方法

文档序号:17941005发布日期:2019-06-18 23:05阅读:584来源:国知局
一种基于多分辨率的快速迭代最近点配准算法的制作方法

本发明属于计算机视觉领域。具体涉及一种基于多分辨率的快速迭代最近点配准算法。



背景技术:

在计算机视觉领域,三维点集配准是非常重要的中间步骤。它在表面重建、三维物体识别、人脸识别、计算机辅助设计等方面有着极其重要的应用。通过特定的几何变换,点集配准旨在使两组不同的图像点实现空间一致性。换句话说,它试图从参数未知的初始猜测变换开始,找到一个在两个数据集之间建立适当几何对应的最佳变换。

对于三维点集的配准,研究人员已经提出了许多解决方案,如主成分分析、旋转图像特征描述、主曲率描述、随机采样一致性算法等。这些算法有自己的特点,可以在许多特定情况下解决配准问题。但是最广泛使用和最有影响力的算法是迭代最近点算法(iterativeclosestpoint,icp),这是besl和mckay在1992年提出的。这是一种基于纯几何模型的三维物体对齐算法。该算法通过每次迭代都在目标点集中选择最近的点作为控制点来估算变换矩阵参数,直到目标函数值不变或小于条件预设阈值为止。与以往的方法相比,icp算法简单、易于理解和实现,可以应用于刚性物体的精确配准。但该算法要求两个点云具有包含关系,且时间复杂度高,配准时间随着点云中点数的增加而指数级增长。

因此,在过去几十年中,国内外学者提出了很多改进的icp算法,以进一步提高icp算法的速度和准确性。为了改进icp算法的配准精度问题,有学者提出快速特征直方图(fpfh)特征,目标是通过点周围的平均曲率来编码其邻域的几何属性,该算法能很好地应对邻域中存在不同采样密度或不同噪声水平的点,进而提升配准精度;另有学者提出使用hausdorff距离计算两点云间误差,降低收敛误差。以上方法由于要计算点云更多维度的特征,增加了点云配准时间。为加快配准速度提出了另一些优化方法,如根据点云表面曲率变化,以及表面法向量夹角作为匹配点对的约束条件,提高了配准效率,但需要人为设置初始配准点;如使用欧氏距离阈值和法矢量夹角阈值来选取正确的匹配点对,这种方法可降低点云间点对的噪声带来的干扰,减少迭代次数,但该算法过于依赖于阈值的选定,阈值设置不佳会导致精度的下降。



技术实现要素:

本发明立足三维点云数据配准的应用场景。提出一种基于多分辨率的快速迭代最近点(icp)算法。对传统点云配准icp算法进行改进,以解决其配准耗时长的问题。

为了实现上述发明的目的,本发明的技术解决方案是使用体素网格滤波器对原始点云数据进行多次不同分辨率的下采样,使用低分辨率数据进行前几次快速迭代,并在随后的迭代中逐步增加点云数据分辨率,提高配准精度,完成粗略到精细的匹配,从而改善了icp算法计算时间过长的问题。

在icp算法前几轮迭代的初始配准中,首先使用较低分辨率的点云,提高匹配效率,从而快速获得两个点云之间的初始变换。然后使用初始变换的结果,以更高的分辨率实现更精确的配准。点集的数量越少,算法的计算速度越快,同时精度会有所下降;点集的数量越多,匹配的精度会提升,但计算速度会大幅下降。因此icp算法的计算效率在低分辨率情况下,以这种方式得到改善。同时,不同分辨率中点云的形状保持一致,只有点云中点的数量不同。使用较低分辨率的两个点云之间的初始变换,比直接以较高分辨率获得的初始变换速度快很多,且在相同迭代次数情况下精度相差较小。该算法的优点是减少了高分辨率下的迭代次数,提高了计算效率。

本发明提供一种基于多分辨率的快速迭代最近点配准算法,包括以下步骤:

步骤一:读取由三维测量设备采集到的待配准点云和目标点云;

步骤二:使用体素网格滤波器对待配准点云和目标点云进行多分辨率滤波。将原始输入点云分成多个相同大小的立方体,立方体的大小可根据实际需求进行调整。然后计算每个立方体中所有点的重心,以重心替代这个立方体中的所有点。经过该滤波器处理过后,点云中的点数量将减少,同时保持了点云原来的形态特征。在多分辨率滤波中,逐次减小立方体的大小,得到从低到高不同分辨的点云数据;

步骤三:选取对应分辨率的点云,对待配准点云和目标点云使用迭代最近点算法进行配准。即求解旋转矩阵r和平移矩阵t,使两点集间对应点距离之和最小;

步骤四:提升点云分辨率。使用更高一层分辨率的点云,将待配准点云按步骤三求解得到的旋转矩阵r和平移矩阵t,转换到前一分辨率配准后的位置,准备进行更精确的配准;

步骤五:在更高的分辨率下得到更精确的变换矩阵;

步骤六:重复步骤四至步骤五,直至达到最高分辨率或点云配准精度达到设定阈值为止。

其中,所述步骤二为使用体素网格滤波器对待配准点云和目标点云进行多次不同分辨率采样;

其中,所述配准算法为在不同分辨率下进行迭代配准;

其中,所述配准算法是从低分辨率到高分辨率进行迭代配准。

附图说明:

图1是按照本发明提供的基于多分辨率的快速迭代最近点配准算法流程示意图。

图2是源点云与目标点云对比。

图3是使用本发明所述算法配准后的结果。

具体实施方式

下面结合具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。

步骤1:读取由三维测量设备采集到的待配准点云p和目标点云q。

步骤2:使用体素网格滤波器对点云进行多次不同分辨率采样。

体素网格滤波器的基本原理是:将原始输入点云分成多个相同大小的立方体,立方体的大小可根据实际需求进行调整。然后计算每个立方体中所有点的重心,以重心替代这个立方体中的所有点。经过该滤波器处理过后,点云中点的数量将减少,同时保持了点云原来的形态特征。使用体素网格滤波器对待配准点云p和目标点云q进行多次不同分辨率采样:

其中,表示体素网格滤波函数,l表示第l层滤波,初始值为l。其中h代表待配准点云p或目标点云q。

具体包括以下子步骤:

步骤2.1:确定立方体边长l,将点云按顺序分成多个大小为l×l×l的立方体。l值越大,采样后的点云的分辨率越低,反之,则分辨率越大。采样立方体个数为a×b×c,计算方法如下:

其中,xmax、xmin、ymax、ymin、zmax、zmin分别为x、y、z三个坐标轴上点坐标的最大最小值。

步骤2.2:计算每个立方体包含点的重心(x′,y′,z′),计算方法如下:

其中,m为该立方体中点的数目。

步骤2.3:以重心代替该立方体中所有点,并将所有立方体的重心重新合成为新的点云。

步骤3:计算当前分辨率下刚体变换矩阵

在两点集pl、ql中寻找第j次迭代对应匹配点其中u、v为两点集中点的索引。根据匹配点求解旋转矩阵rj和平移矩阵tj,使得然而由于实际配准过程中,存在噪声、误差、拍摄角度等问题的影响导致上式不会完美成立,即不存在一个r和t可以使所有点满足上式。因此icp算法的目标转换为求旋转r和平移t,使两点集间对应点距离之和最小。如公式所示:

其中,为第l层滤波、第j次迭代中,两点集间对应点距离之和的最小值。具体包括以下子步骤:

步骤3.1:寻找待配准点云在目标点云中的对应点。根据待配准点云p的点坐标,在目标点云q中搜索相应的最近点点集。

步骤3.2:根据点云匹配点对,求使点间平均距离最小的刚体变换参数。k对点可以得到k个方程组,使用最小二乘法求解出方程中的参数r和t。

步骤3.3:应用变换并计算新的点集之间距离。点云p中每一个点应用转换公式其中下标j表示第j轮迭代。之后重新计算新的点间距离

步骤3.4:判断是否进行下一轮迭代。设定一个精度阈值σ,和迭代最大次数n,若步骤3.3中求出的新的点间距离dj小于阈值σ或迭代次数超过n,则停止迭代,否则重复步骤3.1-3.3继续迭代。其中精度根据均方根误差(rms)来计算。

步骤4:提升点云分辨率。令l=l-1,使用高一层分辨率的点云,即减小体素网格滤波器的立方体大小,使滤波后得到的点数更多,得到pl-1和ql-1。将待配准点云使用步骤三种求解得到的旋转矩阵r和平移矩阵t,转换到前一分辨率配准后的位置,准备进行更精确的配准。

步骤5:在更高的分辨率下得到更精确的变换矩阵。

步骤6:重复步骤4至步骤5,直到l=0或点云配准精度达到设定阈值为止。

图3给出了应用本发明提供的配准前后点云对比图。

上面结合附图对本发明的具体实施方式进行了详细说明,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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