本发明属于图像处理和图形变换技术领域,涉及图形处理和相似性检测的三维点云识别方法,尤其是一种基于b样条曲面相似性检测的三维点云识别方法。
背景技术:
目前,基于特征提取技术探究高效鲁棒性的物体形状的判别算法是机器视觉领域解决物体识别问题的核心思路。目前,基于识别的特征提取方法主要有两大类:基于全局特征的方法和基于局部特征的方法。在这些方法中,往往识别精度高的算法,往往鲁棒性较差,应用场景往往受限。在点云数据预处理中,步骤繁琐,导致识别效率的降低。还有很多识别方法虽然都能够解决各自的识别问题,但是并不具备完成识别的前提下,对物体表面的几何形状精准描述的特点。
经检索,未发现与本发明相同或相似的已公开的专利文献。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种设计合理、识别速度快且识别精度高的基于b样条曲面相似性检测的三维点云识别方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于b样条曲面相似性检测的三维点云识别算法,包括以下步骤:
步骤1、利用b样条曲面方程对三维点云进行建模和拟合;
步骤2、采用不同方法对步骤1拟合后的b样条曲面进行采样和采样分析,评估不同采样方法对点对特征计算结果的影响;
步骤3、利用步骤2采样得到的点云,通过定义了一种点云的局部几何特征计算得出相似点,并进行点对匹配;
步骤4、对步骤3计算出的点对,对其进行等距计算;
步骤5、对步骤4得到计算的等距进行分类;
步骤6、对步骤5中等距分类后的点对之间进行等距比较的计算;
步骤7、对步骤6得到的相同等距距离的点对组,应用谱聚类算法,得出物体之间局部对应相似部分,完成相似区域检测;
步骤8、根据步骤7得到的不同等距分类下的相似点云,对给出的不同参数采样方法,通过统计相似点云和采样点云的比例是否大于设定阈值的判定来完成整体点云的识别
而且,所述步骤1的具体步骤包括:
(1)利用b样条曲面方程对三维点云进行建模;
对k次b样条参数曲面给定控制点cij,(i=0,1,2...m;j=0,1,2....n),基函数递推公式得到:
规定了0/0=0,节点矢量u=ui(i=0,1,2......m+k+1),v=vj(j=0,1,2......n+k+1)可以得到曲面方程:
(2)对生成的b样条曲面进行拟合:
反求控制点,令
①固定j,对pi,j(j=0,1,.........n)沿u方向应用曲线反算,分别求出n+1条等参数曲线(截面曲线)的控制顶点;
②固定i,对bi,j(i=0,1,........m)沿v方向应用曲线反算,分别求出m+1条插值曲线的控制顶点bi,j(i=0,1,......m;n=0,1,.......j),即为双三次b样条插值曲面的控制顶点。
而且,所述步骤2的采用不同方法对拟合后的b样条曲面进行采样的具体方法为:在3d对象的表面上采样一组点,通过统一取样两个参数u和v,按照参数区间均匀化采样取得的样本或采用分割参数化的采样取得的样本。
而且,所述步骤3的具体步骤包括:
(1)定义参数曲面的第一个基本形式:
ds2=edu2+2fdudv+gdv2
其中,e=pu·pu,f=pu·pv,g=pv·pv.
第一个基本形式表明,对于一个给定点p,偏导数pu和pv产生一个与原点p表面相切的平面;
(2)得出统一的法向量是:
该统一的法向量与非归一化向量pu,pv形成一个局部向量坐标系;
(3)定义参数曲面的第二个基本形式:
κcosφds2=ldu2+2mdudv+ndv2
其中,l=puu·n,m=puv·n,n=pvv·n,;
式中,puu,puv,pvv都是定点p的二阶偏导;
参数曲面的第二个基本形式公式意味着对于给定方向du/dv在u,v平面和给定的角度φ,通过第一和第二基本形式,计算曲面上描绘的曲线的曲率k,也就是切线指向;
(4)引入了两个对称矩阵:
因为pu和pv是线性独立的,所以矩阵f1-1f2也是对称的,因此可以解出f1-1f2的实特征值和正交特征向量;两个特征值k1和k2就是两个主曲率和两个特征向量t1=(ζ1,η1)t,t2=(ζ2,η2)t定义了两个主方向:
t1=ζ1pu+η1pv;t2=ζ2pu+η2pv
通过以上对法向量n和主方向t1,t2的定义和计算,对任意给定点p的特征描述表示为向量形状,p—(n,t1,t2)
在匹配过程中由于一点的主曲率决定了两个主方向,因此通过匹配主曲率的方式来配对点对,这里不考虑脐点(两个主曲率相等的点)提高了匹配的质量和效率。对于待测两点pi和pj的主曲率k1,k2和k1’,k2’的匹配过程中,满足下列判定:
(k1-k1'<r1)&&(k2-k2'<r2)
其中r1,r2分别为满足两个主曲率近似相等的最大差值。
而且,所述步骤4的具体计算方法为:计算等距就是配对的(pi,pj)计算pi的局部特征向量到pj的局部特征向量的转换;
用eij表示变换的旋转,tij表示相应的平移变换,计算如下:
tij=pj-eij*pi
因此存在tij:pi(ni,t1i,t2i)→pj(nj,t1j,t2j),
而且,所述步骤5的具体方法为:
给定
而且,所述步骤6的等距比较具体计算方法是:
(1)直接等距的点对等距距离:
dist(t,t’)=(1-|cos(d·d’)|)+|θ-θ’/2π|+ω1dist(d,d’)+ω2|(||t||-||t’||)
(2)间接等距的点对等距距离:
而且,所述步骤7的具体方法为:令dist(t,t’)与两个点对(pi,pj)和(pi’,pj’)对应的同一类别中的两个等距t和t'之间的距离;dist(t,t’)以及相似度度量将根据等距的类别而变化;令s={(pi,pj)}{i,j=1,2,.....nl}∈γl,l∈[|1,5|]为第l个等距空间中的nl个点对的集合,令k为聚类数。
而且,所述步骤7的具体步骤包括:
(1)输入样本相似矩阵s和聚类数k;
(2)选择高斯相似度函数来构造权重矩阵a∈rnl×k和度矩阵d:
(3)构造标准化的拉普拉斯矩阵
(4)通过x矩阵的按行标准化构造成特征y矩阵,用k-means算法将它们分成k个聚类,当且仅当矩阵y的第i行被分配给类θ时,将原始点对(pi,pj)分配给类别θ;
(5)确定高斯相似度参数σ
高斯相似度函数中定义的描述相似度公式取决于参数σ,定义了点对(pi,pj)之间的变换距离的阈值;为了设置它,需要考虑点的均匀分布;定义各向分布的元素被包括在大小为dmax=maxdist(t,t’)的边界框中,通过将这个盒子分成nl个相同的体积,两个点之间的(均匀的)距离dun:
dun=max(pi,pj)≠(pi',pj')d(t,t')/nl1/m
其中,m是等距空间的维度,根据等距性质而变化;如果一个聚类存在,那么就有一些点被小于dun距离的点分开;类似地,高斯参数σ被用作距离的一部分σ=dun/2;因此,将m维空间中的点集成在一起,并导出了待定点的阈值封闭;
(6)确定最优聚类数k
通过利用高斯亲和矩阵a并基于frobeniu范数的比例定义一个质量度量;设αk是要识别的簇的数量的界限;对于一个值k'∈[|2,αk|],亲和矩阵是每个群集的索引;然后定义块矩阵:非对角块表示簇之间的亲和度,对角块表示簇内的亲和度;从这个结构中,可以评估所有非对角线区块与frobenius范数的对角块之间的平均比率,称为rk';由此,在k'属于[|2,αk|]的值中,比率rk'的最小值定义了最优类数k:
k=argminrk'k'∈[|2,αk|]
这个最小值是在集群内的高斯亲和度最高情况下,对应于集群之间的亲和力最低的值。
而且,所述步骤8的具体步骤包括:
(1)通过谱聚类算法可以得到等距分类中物体之间相似部分点对的数量ni(i∈[1,5]),其中计算后得到的点云对数ni(i∈[1,5])对应着被划分为5个等距空间中的对应相似点云,采样到的点云对数为nu;
(2)对于整体参数的统一采样,定义相似点对数与采样点云对数比值λ:
如果λ≥实验阈值η,说明验证了两个点云是相似的;认为是相同的对象,否则它们不相似,就是不同的对象;
(3)局部分割式的参数采样,对应分割的不完整点云多次进行判定,定义比例阈值ε:
ε=ni/ns
其中,ni是相似的局部点云数量,ns是完整点云数量;若ε≥η阈值,那么就认为是相同,即完成目标之间的识别。
本发明的优点和积极效果是:
1、本发明提供一种基于b样条曲面相似性检测的三维点云识别方法,对复杂场景中物体的识别问题,实现三维点云表示的物体高精度识别。该方法的整体思路是通过对b样条参数曲面物体表面的几何形状的精准描述,根据匹配后的点对,对其特征进行等距变换的计算,将代表点对内两点特征之间的等距变换进行分类,比较在同类等距变换下,点对之间特征的变换的差异,利用谱聚类算法对具有相同近似等距变换的点对进行相似度度量,得出相似点对群。最后统计在不同等距分类下的相似点对的点云数量,判断相似点云与采样点云数的比值是否大于设定的阈值来完成高效率的识别。
2、本发明步骤1至3,通过对b样条参数曲面的拟合,优化了点云模型,更好地表现了物体表面的几何形状,定义了一种对局部形状描述的特征,特征由该点的主曲率和主方向和法向量组成,通过计算其特征并匹配点对,有效筛选出高质量的特征匹配。
3、本发明步骤4至步骤7通过计算和分类点对之间的等距变换,验证了目标之间相似部分的转换,最后统计在不同等距分类下的相似点对的点云数量,判断相似点云与采样点云比值是否大于设定阈值来完成识别,提高了识别的效率和准确率。
3、通过统计不同等距分类下的相似点云数,进行相似点云与采样点云比值的分析和判断来完成识别。
4、本发明的步骤7采用无监督的谱聚类方法来改进计算相似度的结果,相较于传统的采用欧式距离计算相似度的方法,精度更高。
附图说明
图1是本发明的处理流程图;
图2是本发明的步骤3的处理流程图;
图3是本发明的步骤3的两个相似点pi和pj的局部向量组成的特征示意图;
图4(a)是本发明的步骤5的第一种等距变换分类示意图;
图4(b)是本发明的步骤5的第二种等距变换分类示意图;
图4(c)是本发明的步骤5的第三种等距变换分类示意图;
图5是本发明的人脸库数据样本示意图;
图6是本发明的步骤8中在数据集测试中的识别效果示意图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
一种基于b样条曲面相似性检测的三维点云识别算法,包括以下步骤:
步骤1、利用b样条曲面方程对三维点云进行建模和拟合;
所述步骤1的具体步骤包括:
(1)利用b样条曲面方程对三维点云进行建模;
对k次b样条参数曲面给定控制点cij,(i=0,1,2...m;j=0,1,2....n),基函数递推公式得到:
规定了0/0=0,节点矢量u=ui(i=0,1,2......m+k+1),v=vj(j=0,1,2......n+k+1)
可以得到曲面方程:
其中均匀节点矢量和准均匀节点矢量与曲线取法相同,非均匀依赖于数据点布,对于它们两端节点的重复度均取为r=4.准均匀双三次b样条插值曲面两个参数方向的节点矢量与数据点的分布情况无关,其取法与曲线相同.非均匀双三次b样条插值曲面两个参数方向的节点矢量要由数据点确定.曲面沿同一参数方向要求有一个共同的节点矢量,但该方向各行(列)数据点的分布一般却不相同,因而由各行(列)数据点确定的节点矢量也就不同.一个共同的节点矢量通常采用取算术平均值的法确定某方向一个共同的节点参数。
(2)对生成的b样条曲面进行拟合:
反求控制点,令
①固定j,对pi,j(j=0,1,.........n)沿u方向应用曲线反算,分别求出n+1条等参数曲线(截面曲线)的控制顶点;
②固定i,对bi,j(i=0,1,........m)沿v方向应用曲线反算,分别求出m+1条插值曲线的控制顶点bi,j(i=0,1,......m;n=0,1,.......j),即为双三次b样条插值曲面的控制顶点。
步骤2、采用不同方法对步骤1拟合后的b样条曲面进行采样和采样分析,评估不同采样方法对点对特征计算结果的影响;
在本实施例中,所述步骤2的采用不同方法对拟合后的b样条曲面进行采样的具体方法为:在3d对象的表面上采样一组点,通过统一取样两个参数u和v,按照参数区间均匀化采样取得的样本或采用分割参数化的采样取得的样本。
所述步骤2的工作原理是:
参数曲面表面上的每个点都有以局部差分特性为特征的特点,可能会被抽样用于以后的计算,通过统一取样两个参数u和v,由于模型中曲面之间的u和v参数变化往往不同,按照参数变化统一的规则选择来决定有限数量的样本,按照参数区间均匀化采样取得的样本能够比较全面描述初始样本。分割参数化的采样,有利于计算精度。不同采样方式直接影响相似性计算的步骤和结果,因此,对于参数一致的方向,要根据实际情况来选择。
步骤3、利用步骤2采样得到的点云,通过定义了一种点云的几何局部特征计算得出相似点,并进行点对匹配;
所述步骤3的具体步骤包括:
计算特征的过程中,每个点的特征由两个主曲率和一个原点在该点的法向量组成,单位向量是法向量和两个主方向(即与主曲率相关的切向量).在b样条曲面上特定点的特征计算是基于局部微分特性,因此,可以从第一个和第二个基本形式进行评估。
(1)定义参数曲面的第一个基本形式:
ds2=edu2+2fdudv+gdv2(5)
其中e=pu·pu,f=pu·pv,g=pv·pv.
第一个基本形式表明,对于一个给定点p,偏导数pu和pv产生一个与原点p表面相切的平面;
(2)得出统一的法向量是:
该统一的法向量与非归一化向量pu,pv形成一个局部向量坐标系;
(3)定义参数曲面的第二个基本形式:
κcosφds2=ldu2+2mdudv+ndv2(7)
l=puu·n,m=puv·n,n=pvv·n,puu,puv,pvv都是定点p的二阶偏导。
公式(7)意味着对于给定方向du/dv在u,v平面和给定的角度φ,通过第一和第二基本形式,我们计算曲面上描绘的曲线的曲率k,也就是切线指向。
(4)引入了两个对称矩阵:
因为pu和pv是线性独立的,所以矩阵f1-1f2也是对称的,因此可以解出f1-1f2的实特征值和正交特征向量;两个特征值k1和k2就是两个主曲率和两个特征向量t1=(ζ1,η1)t,t2=(ζ2,η2)t定义了两个主方向:
t1=ζ1pu+η1pv;t2=ζ2pu+η2pv(8)
这里不考虑脐点(即两个主曲率相等的点)。
通过以上对法向量n和主方向t1,t2的定义和计算,对任意给定点p的特征描述表示为向量形状,p—(n,t1,t2)
在匹配过程中由于一点的主曲率决定了两个主方向,因此通过匹配主曲率的方式来配对点对,这里不考虑脐点(两个主曲率相等的点)提高了匹配的质量和效率。对于待测两点pi和pj的主曲率k1,k2和k1’,k2’的匹配过程中,满足下列判定:
(k1-k1'<r1)&&(k2-k2'<r2)
其中r1,r2分别为满足两个主曲率近似相等的最大差值。
所述步骤3的工作原理是:在3d对象的表面上采样一组点,这里不同物体采样的点云数量保证是相等的。由于点位置不足以确定一般变换的特征,所以需要计算每个样本的几何特征(主曲率和由主方向和法向矢量组成的局部坐标系)。特征是两主曲率,如果它们有相同的特征,将它们配对成相似点对,每一对点都与转换空间中的投票对应的变换相关联。给定两个点pi和pj和它们的局部向量组(标准正交)由两个切线和一个法线组成的(图1),将变换tij进行计算,使pi和它的局部坐标系被映射到pi和pj的向量坐标系中。这个变换被转换成转换空间的投票。
如图3所示,本发明给出了两个相似点pi和pj的局部特征示意图,通过步骤3的特征计算,说明两个点是否相似和是否匹配。
步骤4、对步骤3计算出的点对,进行点对内的等距计算;
在本实施例中,所述步骤4的点对的等距计算具体方法是:在变换空间中,每个等距变换表示两个相似点特征之间的变换。因此,可以识别类似转换的点云,因为它们可以描述对象的两个相似部分。
计算等距就是配对的(pi,pj)计算pi的局部特征向量到pj的局部特征向量的转换。用eij表示变换的旋转,tij表示相应的平移变换,计算如下:
tij=pj-eij*pi(10)
因此存在tij:pi(ni,t1i,t2i)→pj(nj,t1j,t2j),
步骤5、对步骤4得到计算的等距进行分类;
在本实施例中,所述步骤5的具体方法为:
给定
在本实施例中,等距分类按如下规则划分:
直接等距:1)存在一个固定点的轴线d:等距t就是一个围绕轴线d的旋转;2)没有固定点:等距变换t就是d的非零平移或由向量a和非零平移共线所指向的轴线d。
如图4(a)、图4(b)和图4(c)所示,间接等距:1)一个特点的固定点a:由一个围绕一个轴线d的旋转构成,该轴线垂直平面g。2)一个固定点的平面g,a=常数c,向量a=0:等距t是一个相对于由向量n定义的平面g的对称。3)没有固定点:等距t由相对于平面g的对称性构成,平面g的法向量为n,平行于该平面的非零平移。
步骤6、对步骤5中等距分类后的点对之间进行等距比较的计算;
对等距变换的划分表达了一个适当的维度转换,明确等距的分类;
在本实施例中,所述步骤6的等距比较具体计算方法是:
通过将等距变换的分类,我们最多有五个不同的等距变换,并且每个等距转换空间都将应用一个聚类算法。聚类需要在每个空间中都有一定的距离,可以得到两个相同类型的等距的距离。
(1)直接等距的点对等距距离:
dist(t,t’)=(1-|cos(d·d’)|)+|θ-θ’/2π|+ω1dist(d,d’)+ω2|(||t||-||t’||)|(11)
(3)间接等距的点对等距距离:
对于直接等距,是由旋转轴(d)和角度θ,平移
步骤7、对步骤6得到的相同等距距离的点对组,应用谱聚类算法,得出物体之间局部对应相似部分,完成相似区域检测。
在本实施例中,所述步骤7的具体方法为:令dist(t,t’)与两个点对(pi,pj)和(pi’,pj’)对应的同一类别中的两个等距t和t'之间的距离。dist(t,t’)以及相似度度量将根据等距的类别而变化。令s={(pi,pj)}{i,j=1,2,.....nl}∈γl,l∈[|1,5|]为第l个等距空间中的nl个点对的集合,令k为集群数量。
在本实施例中,所述步骤7的具体步骤包括:
(1)输入样本相似矩阵s和聚类数k;
(2)选择高斯相似度函数来构造权重矩阵a∈rnl×k和度矩阵d:
(3)构造标准化的拉普拉斯矩阵
(4)通过x矩阵的按行标准化构造成特征y矩阵,用k-means算法将它们分成k个聚类,当且仅当矩阵y的第i行被分配给类θ时,将原始点对(pi,pj)分配给类别θ。
在整个算法的过程中,仅依赖于高斯相似度参数σ和类别数k两个参数,为了使这个方法完全不受监督,我们要确定这两个参数。
(5)确定高斯相似度参数σ
高斯相似度函数中定义的描述相似度公式取决于参数σ,定义了点对(pi,pj)之间的变换距离的阈值。为了设置它,需要考虑点的均匀分布。定义各向分布的元素被包括在大小为dmax=maxdist(t,t’)的边界框中,通过将这个盒子分成nl个相同的体积,两个点之间的(均匀的)距离dun:
dun=max(pi,pj)≠(pi',pj')d(t,t')/nl1/m(14)
其中,m是等距空间的维度,根据等距性质而变化。我们可以认为,如果一个聚类存在,那么就有一些点被小于dun距离的点分开。类似地,高斯参数σ被用作距离的一部分σ=dun/2;因此,将m维空间中的点集成在一起,并导出了待定点的阈值封闭。
(6)确定最优聚类数k
簇的数量的选择是所有无监督聚类算法的一个普遍问题。为了确定聚类数k,通过利用高斯亲和矩阵a并基于frobeniu范数的比例定义一个质量度量。设αk是要识别的簇的数量的界限。对于一个值k'∈[|2,αk|],亲和矩阵是每个群集的索引。然后定义块矩阵:非对角块表示簇之间的亲和度,对角块表示簇内的亲和度。从这个结构中,我们可以评估所有非对角线区块与frobenius范数的对角块之间的平均比率,称为rk'。由此,在k'属于[|2,αk|]的值中,比率rk'的最小值定义了最优类数k:
k=argminrk'k'∈[|2,αk|](15)
这个最小值是在集群内的高斯亲和度最高情况下,对应于集群之间的亲和力最低的值。
步骤8、根据步骤7得到的相似点云,对步骤2中给出的不同参数采样方法,通过对比例阈值的识别判定来完成整体点云的识别,并进一步给出了体现算法特点的识别效果。
在本实施例中,所述步骤8的具体步骤包括:
(1)通过谱聚类算法可以得到等距分类中物体之间相似部分点对的数量ni(i∈[1,5]),其中计算后得到的点云对数ni(i∈[1,5])对应着被划分为5个等距空间中的对应相似点云,采样到的点云对数为nu。
(2)对于整体参数的统一采样,定义相似点对数与采样点云对数比值λ:
如果λ≥实验阈值η,说明验证了两个点云是相似的。认为是相同的对象,否则它们不相似,就是不同的对象。最终可以识别采样到的局部点云是否相同,由于采样的不同方式会影响识别速度和精度,这里统一按照b样条的两个参数方向均匀等长采样,可以得到相对完整的点云轮廓,提高了识别速度。
(3)局部分割式的参数采样,对应分割的不完整点云多次进行判定,定义比例阈值ε:
ε=ni/ns(17)
其中,ni是相似的局部点云数量,ns是完整点云数量。ε≥η阈值,那么就认为是相同,即完成目标之间的识别。实验中阈值因测试数据集的不同,取不同待选阈值下识别率最高的为最优阈值。
本发明的工作原理是:
利用自由参数曲面模型提出一种基于b样条曲面相似性检测的三维点云识别算法,应用投票变换空间的思想,在相似性检测中计算物体相似部分的转换,该投票变换空间与霍夫变换有相似之处:具有相似特征的模型上的点是成对的。点对对应于两点之间的转换及其特征;这些转变投向转型空间,形成投票空间,每一个点对之间的变换相当于投票空间中的一点。这些投票的点对群是在模型中定义相似部分的候选人,因为它可以检测潜在转换,并且能够识别三维物体中的相似部分和表征转换,并定义了一种对局部形状描述的特征,特征由该点的主曲率和主方向和法向量组成,通过计算其特征并匹配点对,有效筛选出高质量的特征匹配。根据匹配后的点对,对其特征进行等距变换的计算,将代表点对内两点特征之间的等距变换进行分类,比较在同类等距变换下,点对之间特征的变换的差异,利用谱聚类算法对具有相同近似等距变换的点对进行相似度度量,得出相似点对群。最后统计在不同等距分类下的相似点对群点云数,通过相似点云与采样点云比值是否大于设定阈值来完成识别,提高了识别的准确率和效率。
识别和相似度计算流程如图1和图2所示,这里把步骤8中针对两种情况统计的相似点云数记为nr。在实验中,我们将相似点对的主曲率的初始阈值设为0~0.1,然后逐渐调试。如图5和图6所示,在公开的tosca数据集下,对人脸库中样本进行测试,结果表明对于很多物体三维点云识别方法往往会识别出同样的形状,而我们的方法可以通过调节阈值范围来提高识别精度,从而达到同一张人脸样本能区分出不同的区域,也意味着区分了不同的表情,这体现了该算法精确描述形状的特点。
本发明通过在不同的公开数据集下进行同类模型样本和人脸样本的测试,其测试结果进一步说明了本发明的算法具备能够精确描述物体形状的特点,本发明在工业产品的检测和分类以及人脸识别等领域也有很好的应用前景。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。