一种用于三维重建的点云配准方法与流程

文档序号:14121538阅读:2205来源:国知局
一种用于三维重建的点云配准方法与流程

本发明属于图像处理技术领域,具体涉及一种用于三维重建的点云配准方法。



背景技术:

近年来,随着三维扫描技术的日益成熟与计算机视觉技术的飞速发展,三维重建技术正广泛应用于3d打印、机器视觉、数字考古、医疗发展等诸多领域,受到了各大研究院校与科研学者的高度关注。

由于三维扫描设备有限的扫描视角,每次测量物体时只能得到物体的一部分点云数据,在实际应用过程中通常从不同视角对物体进行多次扫描后配准来实现三维物体的重现,因此,在三维物体重建过程中点云配准显得尤为重要。

当前,使用的自动配准算法主要包括基于曲面的配准、基于几何特征的配准与迭代配准算法。基于曲面的配准算法用切平面代替真正的曲面使得在迭代过程中可以使迭代误差快速收敛,但需求解非线性最小二乘的问题,时间复杂度比较高,同时,当物体表面曲率变化明显时,算法收敛性得不到保证。由于曲率具有平移、旋转不变性,在基于几何特征的配准算法中大多学者选择基于曲率特征的配准算法,该算法可以在一定程度上保证算法的配准精度,但易导致存在多个相似点对的情况,增加算法的复杂度,且对于局部特征不明显的物体不太适用。目前最经典的迭代配准算法就是besl和chen于1991年提出的迭代最近点(icp)算法,该算法通过每次迭代都在目标点集中选择最近的点作为控制点来估算变换矩阵参数,直到目标函数值不变或小于条件预设阈值为止。但该算法收敛速度慢、计算量大、鲁棒性很差,同时对点云间位姿要求较高,容易陷入局部最优。

为了更快速的获得精度更高的配准结果,国内外学者对传统icp算法做了一系列的改进与优化。如点到投影的icp算法,提出将待配准点云中的点沿着目标点云视点方向穿过,选取与目标点云中的点相交的点作为匹配点进行配准,但该算法应用范围不广且配准精度不高;如结合法向量和曲率特征的icp改进算法,首先利用点云法向量夹角初步提取关键点,并使用主曲率约束选取初始点集,然后使用点间距离和高斯曲率来确认精确匹配点,但该方法预设阈值较多,较难确定,且适合特征突出的点云匹配,一旦匹配点选取错误,容易造成配准失败;如结合法向量和直方图的精确配准算法,提出法向量直方图的概念,并将点的法向量直方图特征量作为点云的特征描述子来确定匹配点对,该算法避免了直接使用法向量进行匹配带来的歧义性问题,但计算量很大。

综上所述,现有的基于icp的改进算法有如下不足之处:

(1)速度快,但精度较低;关键特征点选取越少,计算量越小,其收敛速度就越快,但精度相应较低。

(2)精度高,但速度较慢;关键特征点选取越多,精度相应提高,但由于计算量增加,速度较慢。

(3)算法的初始位置要求较高,否则易陷入局部最优。



技术实现要素:

针对现有技术中存在的上述不足,本发明提供了一种速度较快、精度较高的三维重建的点云配准方法。

为解决上述技术问题,本发明采用了如下的技术方案:

一种用于三维重建的点云配准方法,包括以下步骤:

s101、用三维扫描仪从不同视角扫描物体表面,获得至少两个视角三维点云,取两个视角三维点云分别作为源点集p和目标点集q;

s102、对p和q构建kd-tree;

s103、基于kd-tree求取p中每个点的k_1个近邻点,并计算p中每个点的法向量;

s104、计算p中每个点的法向量夹角平均值;

s105、基于p中每个点的法向量夹角平均值对p中的点分级并设置最大分辨率,初始时分辨率为1;

s106、计算当前分辨率下p中每一级的采样比例并提取采样点;

s107、基于kd-tree求p中各采样点在q中的k_3个近邻点,并基于本发明中的匹配度求各采样点与其k_3个近邻点的匹配值,计算匹配度时若某点无曲率信息,则求取其曲率信息并存储,取匹配值最小的点作为该采样点的匹配点;

s108、根据获得的匹配点对,使用四元素法计算旋转矩阵和平移矩阵;

s109、使用获得的旋转矩阵和平移矩阵对源点集p进行变换,得到转换后的点云集p1,并将p1作为新的源点集p;

s110、重复步骤s107到s109直到使目标函数最小;

s111、若分辨率满足预设条件或目标函数的均方根误差满足预设条件,则结束,否则将当前分辨率加1,并返回步骤s106。

优选地,步骤s104包括:

对于源点集p中任意点pi,使用kd-tree求取pi的k_2个近邻点,计算p中点的法向量夹角平均值mi,其中mi为:

上式中为点pi的法向量,为pi近邻点的法向量,mi值的大小反映pi局部区域的弯曲程度,mi值越大,pi局部区域弯曲程度越大,mi值越小,pi局部区域越平坦,由此计算出p中每个点的法向量夹角平均值。

优选地,步骤s105包括:

基于源点集p中每个点的法向量夹角平均值将p中的点分为m级,则第l级点的取值范围为:minm+(l-1)*g≤ml<minm+l*g,1≤l≤m;

其中minm为源点集p中所有点的法向量夹角平均值的最小值,maxm为p中所有点的法向量夹角平均值的最大值,g是每级的间隔;

设最大分辨率为n,设初始时分辨率为1。

优选地,步骤s106包括:

当前分辨率为g时,1≤g≤n,第l级采样点的采样比例为:

其中countm为第m级总点数,countl为第l级总点数,fix为向零取整;

计算当前分辨率为g时第l级采样点数cl,g=countl·rl,g,若当前分辨率g=1,对第i级随机采样cl,g个点,否则,对第l级随机采样cl,g-cl,g-1个点。

优选地,步骤s107包括:

对源点集p中的任意采样点pi,使用kd-tree求取点pi在目标点集q中的k_3个近邻点;

分别计算pi和其k_3个近邻点的匹配度w(pi,qj):

上式中pi1、pi2、pi3、pi4分别为点pi的主曲率k1、k2、高斯曲率k、平均曲率h,qj1、qj2、qj3、qj4分别为近邻点qj的主曲率k1、k2、高斯曲率k、平均曲率h;

计算匹配度时若某点无曲率信息,则使用kd-tree求取其在对应点集的k_4个近邻点,计算曲率信息并存储;选取w(pi,qj)值最小的点作为pi的匹配点。

优选地,所述预设条件为当前分辨率等于最大分辨率,或者,所述预设条件为目标函数的均方根误差满足预设阈值或迭代至收敛。

优选地,目标函数为式中qi为源点集p中的点在目标点集q中的匹配点,pi为源点集p中的点,n为匹配点对总数,通过迭代使目标函数的均方根误差满足预设阈值或迭代至收敛,则目标函数最小。

综上所述,本发明公开了一种用于三维重建的点云配准方法,包括以下步骤:s101、用三维扫描仪从不同视角扫描物体表面,获得至少两个视角三维点云,取两个视角三维点云分别作为源点集p和目标点集q;s102、对p和q构建kd-tree;s103、基于kd-tree求取p中每个点的k_1个近邻点,并计算p中每个点的法向量;s104、计算p中每个点的法向量夹角平均值;s105、基于p中每个点的法向量夹角平均值对p中的点分级并设置最大分辨率,初始时分辨率为1;s106、计算当前分辨率下p中每一级的采样比例并提取采样点;s107、基于kd-tree求p中各采样点在q中的k_3个近邻点,并基于本发明中的匹配度求各采样点与其k_3个近邻点的匹配值,计算匹配度时若某点无曲率信息,则求取其曲率信息并存储,取匹配值最小的点作为该采样点的匹配点;s108、根据获得的匹配点对,使用四元素法计算旋转矩阵和平移矩阵;s109、使用获得的旋转矩阵和平移矩阵对源点集p进行变换,得到转换后的点云集p1,并将p1作为新的源点集p;s110、重复步骤s107到s109直到使目标函数最小;s111、若分辨率满足预设条件或目标函数的均方根误差满足预设条件,则结束,否则将当前分辨率加1,并返回步骤s106。

同现有的改进的一些icp算法相比较,本发明具有以下有益技术效果:

本发明首先引入多分辨率概念,利用低分辨率匹配点对迅速完成配准,高分辨率匹配点对提高配准精度。其次引入匹配度概念并改进计算方法,从而寻找更合适的匹配点,同时根据计算需要来计算相应点的曲率信息,以进一步提升配准效率。同时引入logistic模型,曲线为s型曲线,具备开始增长迅速,后来增长缓慢的特点,符合点云多分辨率配准思想:先采样少数点云进行迅速配准,然后大幅增加点云采样,提升配准精度,最后小幅增加采样,使点云整体收敛,各分辨率间采样呈s型增长。

附图说明

图1为本发明公开一种用于三维重建的点云配准方法的流程图;

图2为配准前的bunny点云模型原始图;

图3为传统icp算法对bunny点云配准的结果图;

图4为现有算法对bunny点云配准的结果图;

图5为本发明公开一种用于三维重建的点云配准方法对bunny点云配准的结果图;

图6为配准前的dragon点云模型原始图;

图7为传统icp算法对dragon点云配准的结果图;

图8为现有算法对dragon点云配准的结果图;

图9为本发明公开一种用于三维重建的点云配准方法对dragon点云配准的结果图;

图10为本发明公开一种用于三维重建的点云配准方法相对传统icp算法和现有算法所提高百分比的折线图。

具体实施方式

下面结合附图对本发明作进一步的详细说明。

如图1所示,本发明公开了一种用于三维重建的点云配准方法,包括以下步骤:

s101、用三维扫描仪从不同视角扫描物体表面,获得至少两个视角三维点云,取两个视角三维点云分别作为源点集p和目标点集q;

s102、对p和q构建kd-tree;

其中,本发明中点云kd-tree的构建步骤如下:

1)分别求点云中所有点在x,y,z维度上的方差;

2)将方差最大的维度设为split域;

3)将所有点按split域的值进行排序,取中值点作为根节点;

4)将split域的值小于中值点split域的值的点分配到左子空间,反之分配到右子空间;

5)对左子空间和右子空间分别重复步骤1)到4),直到只剩一个数据点。

s103、基于kd-tree求取p中每个点的k_1个近邻点,并计算p中每个点的法向量;

其中,本发明使用主成分分析法(pca)来求取法向量,估计点云中p点的法向量的问题近似于估计该点切面法线的问题,即可转化为估计p点k_1邻域最小二乘拟合平面的问题,具体步骤如下:

1)假设该最小二乘平面为点s(s1,s2,s3)为该平面上一点,为该平面的法线。则点p的邻域点pi(pix,piy,piz)到的距离为:s1,s2,s3分别表示点s上的x,y,z坐标;a,b,c分别表示的x,y,z坐标。

2)最小二乘平面要求满足式最小,表示点p的k_1个邻域点质心。

令:则可求得:

即:

3)由式可知上。约束可通过最小化j求解,故问题可转化为求解协方差矩阵c的特征值和特征矢量,其最小特征值所对应的特征向量即为p的法向量,其中协方差矩阵c:

上式中δi为pi的权重,取值为1,此时计算出的法向量方向无法确定;

4)对的方向进行调整,调整后即为所求p的法向量,设置视点方向使得的方向和的方向一致,即:

s104、计算p中每个点的法向量夹角平均值;

s105、基于p中每个点的法向量夹角平均值对p中的点分级并设置最大分辨率,初始时分辨率为1;

最大分辨率跟配准精度有关,配准精度要求越高最大分辨率就设置得越大。

s106、计算当前分辨率下p中每一级的采样比例并提取采样点;

s107、基于kd-tree求p中各采样点在q中的k_3个近邻点,并基于本发明中的匹配度求各采样点与其k_3个近邻点的匹配值,计算匹配度时若某点无曲率信息,则求取其曲率信息并存储,取匹配值最小的点作为该采样点的匹配点;

其中,点云曲率估计的方法如下:

对于某点hi,利用构建的kd-tree求取其在对应点集中的k_4近邻点,记hi的k_4个近邻点为nbhd(hi),设拟合的二次曲面η方程为:

z=f(x,y)=ax2+by2+cx+dy+e,则在nbhd(hi)中,η满足使得下式取值最小:

分别对式ε2中各系数求导,并使其值为0,然后联立式ε2即可求解各系数,从而得到拟合二次曲面方程z=f(x,y)。所以曲面的参数方程为:

p(x,y)=(xyz,(x,y,f(x,y)));

则可得:

由曲面第一和第二基本形式可得:

从而可得高斯曲率k、平均曲率h、主曲率k1和主曲率k2为:

其中,本发明使用曲率来描述点云中各点的局部特征,依据曲率信息来引导点云进行配准。但为进一步降低配准计算过程的时间复杂度,只有需要使用点pi和点qi的曲率时才计算其曲率并存储,若其曲率存在,则不进行计算;

s108、根据获得的匹配点对,使用四元素法计算旋转矩阵和平移矩阵;

匹配点对指的是求得的采样点及其匹配点,根据匹配点对求旋转矩阵及评议矩阵的方法为现有技术,因此不再赘述。

s109、使用获得的旋转矩阵和平移矩阵对源点集p进行变换,得到转换后的点云集p1,并将p1作为新的源点集p;

根据求取的旋转矩阵r和平移矩阵t,利用刚体变换公式p1=r*p+t得到转换后的点云集p1,并将p1作为新的源点集p。

s110、重复步骤s107到s109直到使目标函数最小;

目标函数为式中qi为源点集p中的点在目标点集q中的匹配点,pi为源点集p中的点,n为匹配点对总数,通过迭代使目标函数的均方根误差满足预设阈值或迭代至收敛,则目标函数最小。

s111、若分辨率满足预设条件或目标函数的均方根误差满足预设条件,则结束,否则将当前分辨率加1,并返回步骤s106。

具体实施时,步骤s104包括:

对于源点集p中任意点pi,使用kd-tree求取pi的k_2个近邻点,计算p中点的法向量夹角平均值mi,其中mi为:

上式中为点pi的法向量,为pi近邻点的法向量。

具体实施时,步骤s105包括:

基于源点集p中每个点的法向量夹角平均值将p中的点分为m级,则第l级点的取值范围为:minm+(l-1)*g≤ml<minm+l*g,1≤l≤m

其中minm为源点集p中所有点的法向量夹角平均值的最小值,maxm为p中所有点的法向量夹角平均值的最大值,g是每级的间隔;

设最大分辨率为n,设初始时分辨率为1。

具体实施时,步骤s106包括:

当前分辨率为g(1≤g≤n)时,第l(1≤l≤m)级采样点的采样比例为:

其中countm为第m级总点数,countl为第l级总点数,fix为向零取整;

计算当前分辨率为g(1≤g≤n)时第l(1≤l≤m)级采样点数cl,g=countl·rl,g,若当前分辨率g=1,对第i级随机采样cl,g个点,否则,对第l级随机采样cl,g-cl,g-1个点。

具体实施时,步骤s107包括:

对源点集p中的任意采样点pi,使用kd-tree求取点pi在目标点集q中的k_3个近邻点;

分别计算pi和其k_3个近邻点的匹配度w(pi,qj):

上式中pi1、pi2、pi3、pi4分别为点pi的主曲率k1、k2、高斯曲率k、平均曲率h,qj1、qj2、qj3、qj4分别为近邻点qj的主曲率k1、k2、高斯曲率k、平均曲率h;

计算匹配度时若某点无曲率信息,则使用kd-tree求取其在对应点集的k_4个近邻点,计算曲率信息并存储;选取w(pi,qj)值最小的点作为pi的匹配点。

在本发明中,曲率信息包括高斯曲率、平均曲率和主曲率。

具体实施时,所述预设条件为当前分辨率等于最大分辨率,或者,所述预设条件为目标函数的均方根误差满足预设阈值或迭代至收敛。

本发明采用斯坦福大学开放点云数据库的bunny模型来验证效果,对bunny进行配准实验时,估计点云法向量、曲率以及选取目标点集配准点的k值均设为k=8,分级m=3,最大分辨率n=6。

图2为bunny(0度和45度)配准前点云模型图,图3、图4、图5分别为在传统icp算法、现有算法和本文算法下对bunny点云的配准结果图,表一为在不同算法下的耗时与配准误差的对比:

表1bunny点云模型下不同算法的配准结果

为进一步验证本文算法的有效性,使用曲面更为复杂的dragon点云数据集进行实验,算法中估计点云法向量、曲率以及选取目标点集配准点的k值均设为k=8,分级m=5,最大分辨率n=8。

图6为dragon(0度和45度)配准前点云模型图,图7、图8、图9分别为在传统icp算法、现有算法和本文算法下对dragon点云的配准结果图,表二为在不同算法下的耗时与配准误差的对比:

表2dragon点云模型下不同算法的配准结果

为验证本文算法的执行效率,分别对不同规模的点云进行配准,其耗时如表3所示:

表3不同规模点云耗时

根据表3,分别计算本文算法相对传统icp算法和现有算法所提高的百分比并绘制折线图,所绘折线图如图10所示,其中横坐标为点云中的点的数量,纵坐标为提高的速度的百分比,comparedwiththeexistingicp表示在不同点云规模下本发明相对于现有算法速度提高的百分比的曲线,comparedwiththetraditionalicp表示在不同点云规模下本发明相对于传统算法速度提高的百分比的曲线;

从以上实验可以看出,无论是对bunny点云模型还是对dragon点云模型进行配准,传统icp算法虽然精度较高但比较耗时;而现有算法根据点云特征精简了配准点,在查询邻域点上使用kd-tree加速,并且根据所提出的方法筛选匹配点对,一定程度上降低了迭代次数并提高了匹配点对的匹配精度,在精度和速度上都有一定提升;本发明提出的多分辨率匹配点icp算法,根据点云特征,选取少数匹配点对快速配准,然后增加匹配点对,提高配准精度,在查询邻域点上使用kd-tree加速,在选择匹配点对上,使用所提出的匹配度选择匹配点,增加匹配点对的匹配精度,无论在精度还是速度上,较现有算法都有进一步的提升。根据本发明算法相对传统icp算法和现有算法所提高的速度百分比所绘制的折线图(如图10)所示,可以看出,本发明算法相比传统icp算法,速度提升了77%以上,相比现有算法,速度提升了62%以上,且随着点云规模的增大,有递增的趋势。

上仅是本发明优选的实施方式,需指出是,对于本领域技术人员在不脱离本技术方案的前提下,还可以作出若干变形和改进,上述变形和改进的技术方案应同样视为落入本申请要求保护的范围。

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