本发明涉及技术计算机应用领域,具体涉及一种基于重心与质心变换的三维点云初始配准算法。
背景技术:
随着三维点云扫描与处理技术的不断进步,点云配准在逆向工程、3d打印、三维重建、工业测量等领域是非常重要的基本问题。同时,多视角点云配准是生成完整三维点云模型的基础工作,也是三维建模技术中的研究重点和难点。
点云配准应用最广泛的算法是最近点迭代(iterativeclosestpoint,icp)算法。该算法在待配准点云比较接近时有较好的配准效果,但在点云初始位置相差较大时,容易收敛于局部最优化。因此点云的初始配准变得尤为重要,这个过程中,配准精度不高,因此又称为粗配准。目前,有关点云初始配准的算法可以分为:基于几何特征描述的算法(fpfh),基于全局搜索策略的算法(4pcs),基于统计学概率的算法(ndt),重心重合法。
重心重合法就是简单的将两点云数据的重心重合,计算两点云数据集的重心,并进行相对平移,该方法只能减小平移方向的误差,不能减小旋转误差,初始配准的精度往往达不到检测的要求,在实际应用中使用较少。
技术实现要素:
针对三维点云配准中icp等精确配准算法容易陷入局部最优的问题,本发明提供一种基于重心与质心变换的三维点云初始配准算法,主要是基于重心重合的改进,该算法与通过重心重合的初始配准方法进行了对比实验,本发明提出的算法初始配准效果明显优于基于重心重合的初始配准方法,初始配准效果较好。
为达到上述目的,本发明采取的技术方案为:
一种基于重心与质心变换的三维点云初始配准算法,首先对点云进行滤波处理;然后通过点云数据重心与质心建立点云数据之间的旋转变换初步模型;其次,根据旋转角度与配准误差的关系,建立迭代旋转模型,找出最佳旋转角度,进而完成初始配准;最后,结合icp算法进一步精确配准。
一种基于重心与质心变换的三维点云初始配准算法,包括以下步骤:
步骤1,分别读取txt格式的三维点云文件,设p和q分别为初始位置不同且旋转角度偏差较大的两个点云数据集;
步骤2,运用点云数据处理中的统计滤波器,对点云数据集进行滤波处理.统计滤波器对点云数据中每个数据点的邻域进行统计分析,过滤掉不符合要求的数据点,以减小噪声和离群值的影响;
步骤3,建立初始旋转变换模型;
步骤4,利用点云数据集的空间信息,计算点云p重心和质心,点云q的重心和质心;
步骤5,计算点云p和q重心与质心形成的向量;
步骤6,根据初始旋转变换模型,分别计算得到初始旋转变换矩阵r和初始平移矩阵t0;
步骤7,建立迭代旋转变换模型;
步骤8,取旋转角度为
步骤9,将旋转角度
步骤10,判断
步骤11,根据迭代旋转变换模型,得到初始配准后的点云数据集;
步骤12,通过icp算法对初始配准的点云集进行精确配准;
步骤13,以txt格式输出精准配准后的点云数据集。
本发明考虑刚性点云的旋转平移几何特征不变,且只有点云质量均匀时,点云重心与质心重合,待配准点云数据集的重心与质心往往不重合。利用点云几何重心与质心方向向量不变的特性,提出一种基于点云几何重心与质心变换的初始配准算法。并利用icp算法进行精确配准。实验表明,新的初始配准算法相比于单纯的点云几何重心重合的方法有较好的初始配准效果。
附图说明
下面结合附图和实施例对本发明作进一步说明:
图1为有噪声完整点云数据实验结果图。
图2为有噪声非闭合点云数据实验结果图。
图3是本发明基于重心与质心变换的三维点云初始配准算法的流程图。
具体实施方式
考虑到实际数据采集中不可避免包含有噪声。本发明中主要对有噪声的情况进行了讨论,分别展示了算法对封闭数据和非闭合点云集的配准效果,并与通过点云重心重合的配准方法进行了对比。实验数据采用斯坦福大学标准数据库bunny和dragon点云数据,为使实验更具普遍性,实施例还采用一般扫描仪扫描得到的toy点云数据。
在有噪声、点云数据封闭时,实验结果如图1所示。第一行为使用本发明算法进行的初始配准以及最终的精确配准,第二行为通过点云数据重心重合的后的配准结果。
第一列为经过处理后的原始点云数据,这些原始点云数据的初始位置旋转角度相差较大,直接通过icp算法进行配准时会陷入局部最优,不能完成配准。第二列为经过初始配准后的点云数据。第三列为使用icp算法进一步精确配准后的效果图。
图中第一、三、五行为使用本发明方法进行的初始配准以及最终的精确配准,第二、四、六行为通过点云数据重心重合的后的配准结果。从图中第一、三、五行的第二列可以看出本发明方法进行初始配准后,初始位置相差较大的两个点云集基本重合,完成了初始配准,第三列中成功完成了icp精确配准;从图中第二、四、六行的第二列是使用重心重合后做的初始配准对比实验,从图中第二列可以看出完成了重心重合,但是由于旋转角度相差较大,在第三列中使用icp精确配准时配准失败。
结果评价指标:1、点云初始配准误差,即εreg=∑||p-p′||2,其中p为原始点云,p′是算法得到的初始配准点云;2、点云精确配准误差,εicp=∑||q-g||2,其中q为原始点云,g为p通过本发明算法变换后的到的点云数据集;3、是否精确配准成功,根据观察经过icp算法配准后的两点云数据集的位置,判断是否成功配准。具体实验数据如表1。
表1有噪声完整点云数据实验结果
下面以bunny点云数据集为例对实验步骤进行具体说明:
步骤1,分别读取txt格式的三维点云文件,设p和q设p和q分别为初始位置不同且旋转角度偏差较大的两个点云数据集。
步骤2,运用点云数据处理中的统计滤波器,对点云数据集进行滤波处理.统计滤波器对点云数据中每个数据点的邻域进行统计分析,过滤掉不符合要求的数据点,以减小噪声和离群值的影响。
步骤3,建立初始旋转变换模型。
步骤4,利用点云数据集的空间信息,计算点云p重心和质心分别为:
pm(-0.2611,0.9594,0.0947)、pw(-0.2782,0.9683,0.0988)
点云q的重心和质心,分别为:qm(0.3872,-0.7907,0.2135)、qw(0.3965,-0.8039,0.2021);
步骤5,计算点云p和q重心与质心形成的向量分别为:
步骤6,根据初始旋转变换模型,计算得到初始旋转变换矩阵r和初始平移矩阵t0分别为:
步骤7,建立迭代旋转变换模型。
步骤8,取旋转角度为
步骤9,将旋转角度
步骤10,判断
步骤11,根据迭代旋转变换模型得到初始配准后的点云数据集。
步骤12,通过icp算法对初始配准的点云集进行精确配准,,配准后得到配准误差为dis=1.8811e-06。
步骤13,以txt格式输出精准配准后的点云数据集。
步骤3-1,设pi和qi分别为点云集p和q上的点,pm(x1,y1,z1)、pw(a1,b1,c1)分别为点云p重心和质心,qm(x2,y2,z2)、qw(a2,b2,c2)分别为点云q重心和质心,其中x1,y1,z1表示对应点pm的三维空间中x,y,z的坐标值,a1,b1,c1表示对应点pw的三维空间中x,y,z的坐标值,x2,y2,z2表示对应点qm的三维空间中x,y,z的坐标值,a2,b2,c2表示对应点qw的三维空间中x,y,z的坐标值。n为点云数据中点的数量,mi为质心因子,ri为点云数据中各点到点云重心的距离,
则可得到:
点云集p和q重心与质心形成的向量分别为:
步骤3-2,在三维空间中,
从而可以得到
即点云集p和q重心与质心形成线段的空间旋转r0,点云集p旋转后的点云集定义为m,则可得:
步骤3-3,设点云集m对应的重心和质心分别为:mm(x'1,y'1,z'1)、mw(a'1,b'1,c'1),根据点云集m和q重心与质心重点的距离计算得到初始平移矩阵t0,可得:
t0=(mg+qg)/2-(mm+qm)/2
初始平移后的点云集h为:
h=m+t0
其中,步骤4包括如下步骤:
步骤4-1,通过初始旋转变换模型得到点云集h,计算点云集h重心和质心分别为:hm(x"1,y"1,z"1)、hw(a,b,c),其中x"1,y"1,z"1表示对应点pm的三维空间中x,y,z的坐标值,a,b,c表示对应点pw的三维空间中x,y,z的坐标值;
步骤4-2,计算得到点云集h重心与质心形成的向量为:
步骤4-3,以点云集h重心与质心形成的向量为旋转轴,点云集h为旋转对象,顺时针旋转角度为自变量,点云集q匹配欧式距离误差dis0为因变量,由
步骤4-4,求点云集h绕向量
得到完成初始配准后的点云集g如下:
实验结果:
从表1和图1中可以看出,实验结果举例说明:本发明提出的方法具有较好的匹配。bunny、dragon和toy点云数据通过本发明算法初始配准后,配准误差数量级为100~10-1,精确误差数量级为10-6,而且经过本发明的初始配准算法后最终能够精确配准成功,相对而言,单纯的通过点云重心重合再使用icp进行精确配准,在待配准点云数据初始位置相差较大时,会导致结果陷入局部最优,最终配准失败。
在有噪声、点云数据不封闭时,实验结果如图2所示。第一行为使用本发明算法进行的初始配准以及最终的精确配准,第二行为通过点云数据重心重合的后的配准结果。
第一列为经过处理后的原始点云数据,这些原始点云数据的初始位置旋转角度相差较大,直接通过icp算法进行配准时会陷入局部最优,不能完成配准。
第二列为经过初始配准后的点云数据。
第三列为使用icp算法进一步精确配准后的效果。
图中第一、三、五行为使用本发明方法进行的初始配准以及最终的精确配准,第二、四、六行为通过点云数据重心重合的后的配准结果。从图中第一、三、五行的第二列可以看出本发明方法进行初始配准后,初始位置相差较大的两个点云集基本重合,完成了初始配准,第三列中成功完成了icp精确配准;从图中第二、四、六行的第二列是使用重心重合后做的初始配准对比实验,从图中第二列可以看出完成了重心重合,但是由于旋转角度相差较大,在第三列中使用icp精确配准时配准失败。
结果评价指标:1、点云初始配准误差,即εreg=∑||p-p′||2,其中p为原始点云,p′是算法得到的初始配准点云;2、点云精确配准误差,εicp=∑||q-g||2,其中q为原始点云,g为p通过本发明算法变换后的到的点云数据集;3、是否精确配准成功,根据观察经过icp算法配准后的两点云数据集的位置,判断是否成功配准。具体实验数据如表2。
表2有噪声非闭合点云数据实验结果
下面以bunny点云数据集为例,对实验步骤进行说明:
1、计算点云重心与质心,得到pm(-0.5680,1.3632,0.1383)、pw(-0.5551,1.3766,0.1338)分别为点云p重心和质心,qm(-0.9839,0.6652,-0.8528)、qw(-0.9816,0.6617,-0.8715)分别为点云q重心和质心;
2、分别计算点云p和q重心与质心形成的向量为:
3、根据初始旋转变换模型,计算得到初始旋转变换矩阵r和t0分别为:
4、根据迭代旋转模型,计算得到最佳的旋转变换角度
5、通过icp算法进行精确配准,配准后得到配准误差为dis=5.09e-07。
实验结果:
从表2和图2中可以看出,实验结果举例说明,本发明提出的方法具有较好的匹配结果。bunny、dragon和toy点云数据通过本发明算法初始配准后,配准误差数量级为101~10-1,精确误差数量级为10-7,而且经过本发明的初始配准算法后,最终能够精确配准成功,相对而言,单纯的通过点云重心重合再使用icp进行精确配准,在待配准点云数据初始位置相差较大时,会导致结果陷入局部最优,最终配准失败。
本发明利用点云几何重心与质心方向向量不变的特性,提出一种基于点云几何重心与质心变换的初始配准算法。并利用icp算法进行精确配准。实验表明,本发明新的初始配准算法,相比于单纯的点云几何重心重合的方法有较好的初始配准效果。