1.一种基于局部变换一致的非刚性点集配准方法,其特征在于:利用三维点云获取设备,获取两个点云,分别记为源点云和目标点云,分别对这两个点云进行降采样,得到它们各自的关键点集,分别记为源关键点集S和目标关键点集O,迭代计算这两个关键点集之间的对应关系,源关键点集S的邻域索引矩阵和空间变换矩阵;在迭代过程中,为保持点集的局部结构,基于相邻点的空间变换一致思想,对非刚性变换进行局部约束,最终得到最优的空间变换矩阵,经空间变换矩阵变换后的源关键点集S',目标关键点集O作为配准结果并输出。
2.根据权利要求1所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:
通过计算机,并按如下步骤进行:
步骤1,向计算机输入由三维点云获取设备获取的源点云和目标点云,获取这两个点云的关键点集:源关键点集S和目标关键点集O;
步骤2,由步骤1中获取的两个关键点集,转换获取关键点集之间的对应关系;
步骤3,建立源关键点集S的邻域索引矩阵;
步骤4,获得空间变换矩阵,并以此获得变换后的源关键点集S';
步骤5,设定迭代的参数值,迭代执行步骤2到步骤4,当达到参数值时停止迭代,将此时的源关键点集S'和目标关键点集O作为配准结果并输出。
3.根据权利要求1或2所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:步骤1,获取两个不同视角的点云,对这些点云进行关键点提取,获取各自的关键点集,即源关键点集S和目标关键点集O;
步骤2,对步骤1中获取的两个关键点集,计算源关键点集S中的每个点在目标关键点集O中的对应点,获取这两个关键点集之间的对应关系;
步骤3,对源关键点集S中的每一个点进行K近邻搜索,即对关键点集S中每一个点,在整个源关键点集S中找到与其欧几里得距离最近的K个点,这K个点便称为它的相邻点,并根据这些相邻点在源关键点集S中的位置信息,建立源关键点集S的邻域索引矩阵;
步骤4,利用相邻点的空间变换一致,对非刚性变换进行局部约束,即对源关键点集S中的每一个点的变换都进行局部约束,计算每一个点的空间变换分别与其K个相邻点的空间变换的差异,在保证差异较小的情况下获得较优的空间变换矩阵,以此获得变换后的源关键点集S';
步骤5,设定一个最大迭代次数和一个参数阈值,迭代执行步骤2到步骤4,参数值超过阈值或者迭代次数超过最大迭代次数,停止迭代,此时经空间变换矩阵变换后的源关键点集S'及目标关键点集O作为配准结果并输出。
4.根据权利要求1、2或3所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:本发明的详细步骤如下:步骤1,点云获取与提取点云关键点:获取仅包含三维坐标信息的两个点云,即源点云和目标点云,分别对这两个点云采用降采样的方式提取关键点,得到源关键点集S和目标关键点集O;所述的降采样是指对点云进行稀疏化处理,源关键点集S和目标关键点集O分别对应的是源点云和目标点云进行降采样后的数量不大于1万个点的两个点集,这两个点集分别保留了源点云和目标点云的形状特征及空间结构信息;
步骤2,计算源关键点集S与目标关键点集O之间的对应关系:在步骤1获取关键点集的基础上,对源关键点集S中的每一个点,计算它与目标关键点集O中的每一个点的欧式距离,依据对应的欧式距离确定两个关键点集中每个点与点之间的对应概率;
步骤3,建立源关键点集S的邻域索引矩阵:对步骤1获取的源关键点集S中的每一个点,在整个源关键点集S范围内计算与其欧式距离最近的K个相邻点,并记录这些相邻点在源关键点集S中的位置索引,根据已记录的索引建立源关键点集S的邻域索引矩阵;
步骤4,计算源关键点集S的空间变换矩阵:根据源关键点集S及其邻域索引矩阵,定义源关键点集S中每个点的空间变换与其K个相邻点的空间变换的差异程度的函数式,即约束项;该约束项由源关键点集S中每个点的空间变换分别与其K个相邻点的空间变换的差值之和组成,用来约束相邻点之间的变换保持一致;数据项表示的是源关键点集S和目标关键点集O中每一对对应点之间的距离;约束项与数据项组成目标函数式的作用是最小化目标函数式,获取此时对应的空间变换矩阵,并将此空间变换矩阵作用到源关键点集S,获取新的源关键点集S';
步骤5,迭代执行步骤2到步骤4:设置一个最大迭代次数和参数σ2的阈值,每循环执行一次步骤2到步骤4,便重新计算一下参数σ2的值,迭代次数加一;
当参数值大于阈值或者迭代次数达到最大迭代次数,停止迭代,此时将空间变换矩阵作用在源关键点集S上,得到新的源关键点集S',将其和目标关键点集O,作为配准结果并输出;
当参数值不大于阈值、迭代次数未达到最大迭代次数时,说明对应点之间的距离并没有接近于0,没有实现将两个点集统一到一个坐标系下,即没有完成两个关键点集的配准,返回步骤2。
5.根据权利要求1、2、3或4所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:步骤1的实现过程具体如下:步骤1.1,点云获取:获取两个不同视角的点云,利用三维几何处理软件将这两个点云保存为只包含三维坐标信息的点云,得到源点云和目标点云;
步骤1.2,关键点提取:根据步骤1.1得到的源点云和目标点云,在源点云数据范围内建立一个网格,所述网格由三维体素组成,通过将源点云包围在三维体素网格中,每个体素中包含源点云的三维点,三维点在一个以上,为简化点的数量,则在每个三维体素中选一个点,这样在该三维体素内所有点就可以用这一个点表示,完成了对点云数据的简化;对网格中所有体素处理后得到的点云即为源点云对应的源关键点集S;同理,目标点云对应一个目标关键点集O。
6.根据权利要求1、2、3或4所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:步骤2具体如下:步骤2.1,在步骤1.2得到的源关键点集S和目标关键点集O的基础上,计算源关键点集S中的每个点与目标关键点集O中每个点之间的欧几里得距离:假设ym为源关键点集S中的一个点,xn为目标关键点集O中的一个点,则两点之间的距离公式如下:2
d(xn,ym)=||xn-ym|| (2-1)
步骤2.2,计算高斯混合模型概率密度函数:将源关键点集SM×D=(y1,…,yM)T表示为高斯混合模型的质心,将目标关键点集ON×D=(x1,…,xN)T作为由高斯混合模型生成的数据点,高斯混合模型简称GMM,在步骤2.1得到的点与点之间的欧几里得距离基础上,建立高斯混合模型概率密度函数公式如下:其中,M和N分别表示源关键点集S和目标关键点集O的点的个数,m表示高斯混合模型的第m个高斯分量,n表示目标关键点集O中点的下标,D表示两个关键点集的维数,取值为3,exp表示以自然常数e为底的指数函数;σ2表示每个高斯分量的协方差,初始值为:假设GMM的所有分量都是独立同分布的,则联合高斯混合模型概率密度函数公式如下:
其中,M表示的是源关键点集S的点的个数,N表示的是目标关键点集O的点的个数,P(m)=1/M表示每个高斯分量的隶属概率;
步骤2.3,计算源关键点集S中的每个点与目标关键点集O中每个点之间的对应关系:基于高斯混合模型的点集配准方法,当源关键点集S和目标关键点集O对齐时,对于一个已知点xn,其与点ym之间的对应关系利用最大化高斯混合模型的后验概率获得;在步骤2.2的基础上,计算高斯混合模型的后验概率,获得两个点集之间的对应概率;高斯混合模型的后验概率公式如下:P(m|xn)=P(m)p(xn|m)/p(xn) (2-5)。
7.根据权利要求1、2、3或4所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:步骤3具体如下:源关键点集S邻域索引矩阵的建立:对步骤2中的源关键点集S,采用被广泛应用的kd-tree最近邻搜索算法,将源关键点集S中的每一个点作为查询点,检索在kd-tree树中与查询点距离最近的K个相邻点,计算这K个相邻点在源关键点集S中的位置索引,根据索引建立源关键点集S的邻域索引矩阵Idy=[idy1,…,idyi,…,idyM]T。
8.根据权利要求1、2、3或4所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:步骤4具体如下:步骤4.1,基于GMM点集配准的目标函数的获取:基于GMM点集配准将点集配准问题转化为概率密度估计问题,通过重新参数化GMM质心位置,使质心逐渐拟合数据点;由步骤2.2获得的联合GMM概率密度函数,则其负对数似然函数公式如下:一般分别对相应的参数求导,令导数为零,可以得到GMM新的参数;然而,负对数似然函数,对数里面还有求和,实际上没有办法通过求导的方法来求负对数似然函数的最小值;于是,采用EM算法进行GMM参数估计问题;EM算法分为两步,第一步寻找目标函数,通过计算E的改变量,可以得到目标函数的公式如下:其中,θ表示一组变换参数,p'(m|xn)表示点xn和点ym的初始对应概率,T(ym,θ)表示应用于源关键点集S的变换函数,刚性变换与非刚性变换通过确定上式的T函数来区分,刚性变换定义为T(R,t)=RS+t,其中R表示旋转矩阵,t表示位移向量,在被大家公用的CPD算法中将非刚性变换定义为一个基于高斯径向基函数的位移函数,公式如下:T(S,W)=S+GW (4-3)
其中,G是一个M×M的高斯核矩阵,其元素为, W是一
个M×D的高斯核权重矩阵,通过规范权重矩阵W以强制运动一致性,使点集在配准期间保持整体空间的连通性;全局约束项表示如下:Eg(W)=Tr(WTGW) (4-4)
将全局约束项添加到目标函数中,则目标函数重新表示如下:
其中,G(m,·)对应矩阵G的第m行;
步骤4.2,构建局部约束项:在非刚性配准的背景下,相邻点的空间变换是一致的;基于此条件,建立了局部约束,旨在配准期间能够保持点集的局部结构;基于步骤3获得的源关键点集S的邻域索引矩阵,计算源关键点集S中每个点的空间变换分别与其K个相邻点空间变换的差值,并计算所有差值的和,使和的值尽可能的小来实现局部约束,源关键点集S空间变换的局部约束项公式如下:其中,K取值为3,G(m,·)对应矩阵G的第m行,Idy(m,k)表示源关键点集S中第m个点的第k个相邻点的索引;
步骤4.3,建立最终的目标函数:基于步骤4.1获取的目标函数,步骤4.2得到的局部约束项,将局部约束项添加到步骤4.1获得的目标函数中,本发明的目标函数公式如下:Q(W,σ2)=Qd(W)+λEl(W) (4-7)
其中,λ表示局部约束的权重系数,取值为50000;
然后执行EM算法的第二步,最小化目标函数Q,分别对W和σ2求导,
对W求导:
对σ2求导:
其中,P是一个M×N的矩阵,其元素值表示源关键点集S中的每个点与目标关键点集O中每个点之间的对应概率;P1是P与值全为1的列向量的乘积,d(P1)表示由向量P1组成的对角矩阵;
令式(4-8)与式(4-9)的和为0,得到W的值,令式(4-10)为0,得到σ2的值,通过S+GW变换源关键点集S得到变换后的源关键点集S',将变换后的源关键集S'作为下次迭代的源关键点集S。
9.根据权利要求1、2、3或4所述的一种基于局部变换一致的非刚性点集配准方法,其特征在于:步骤5具体如下:2
设定一个最大迭代次数和参数σ的阈值,循环执行步骤2到步骤4,每循环执行一次,先对源关键点集S进行变换,即S'=S+GW,然后计算此时的σ2值,迭代次数相应加一,判断迭代次数是否超过最大迭代次数,比较σ2的值是否大于设定的阈值,当迭代次数超过最大迭代次数或者σ2的值大于给定的阈值时,迭代终止;若迭代未终止,将变换后的源关键点集S'作为下次迭代的源关键点集S;最终得到的源关键点集S'和目标关键点集O作为配准结果并输出。