点云特征点检测方法和点云特征提取方法与流程

文档序号:14390718阅读:702来源:国知局
点云特征点检测方法和点云特征提取方法与流程

本发明涉及点云模型存储,特别地,涉及一种点云特征点检测方法和点云特征提取方法。



背景技术:

三维激光扫描技术广泛用于机械设计、文物保护、医学、建筑测量等领域,越来越多的实物样件、cad模型以点云模型存储。点云模型中往往只有空间坐标信息,没有曲面法向、曲率等几何属性以及诸如三角网格、模型参数等拓扑结构,模型中存在特征点、特征曲线以及曲面等多种几何结构,如果不能正确分理出各种几何结构,不能合理分割出点云各曲面片,很难直接从点云数据整体重建出实物样件模型,即便如此,也给cad/cam/cae处理带来困难。

点云特征提取采用正向方法,分为两个步骤,特征点检测和特征线重建。特征点是几何属性发生突变之处,如曲率值突变、法向交角大于某一阈值、与特征点连接曲面的两面角突变等,特征点检测就是根据点的几何属性是否突变把点标记为特征点与非特征点。特征点检测涉及点几何属性量估算,由于无拓扑结构等因素,点云几何属性估算是通过查找给定点的k最近邻域点,拟合最近邻点为抛物面,以抛物面曲率近似点曲率,或者用pca等方法通过生成协方差矩阵估算点的法向,或者通过生成点云的三角网格或voronoi网格计算估算两面角,以助于特征点检测,这些方法估算的几何量精度不高,尖锐特征误差尤其明显。此外,点几何量之间比较是在邻域内任意两点间进行,只要偏差大于给定阈值,就认为该点为特征点,这样标记出来的特征点数量大,给特征线重建带来困难。

特征线重建是利用提取的特征点、非特征点的区域聚类及特征点与区域连接信息,将特征点连接成曲线段,特征点的顺序在重建阶段非常关键,未知特征线之前,任一特征点可能位于多条特征线上,现有方法通过比较距离或者生成最小生成树路径来进行特征线连接,特征线连接可能出现错误。



技术实现要素:

针对现有技术中存在的不足,本发明的目的在于解决上述现有技术中存在的一个或多个问题。

为了实现上述目的,本发明一方面提供了一种点云特征点检测方法。所述方法可包括以下步骤:

a、以点云数据中某一确定的数据点为球心建立局部球坐标系,通过近邻算法找出所述数据点的k个邻域,所述k个邻域中的每个邻域包括一个或多个最近邻点且该一个或多个最近邻点与球心仅构成一条直线,其中k不小于3。

b、将所述球心分别与所述k个邻域内的各个最近邻点相连,得到与所述k个邻域一一对应的k个线段组,以垂向夹角和水平投影夹角构成数据对来表示所述k个线段组中的每个线段组,其中,每个线段组的垂向夹角为该线段组与局部球坐标系的垂直方向的正向的夹角,每个线段组的水平投影夹角为该线段组在局部球坐标系的水平面上的投影与所述水平面的一个坐标轴的正向的夹角;

c、按照所述水平投影夹角的大小对所述k个线段组进行排序,并依次记为第1、第i、……、第k线段组,其中,i为不小于2且小于k的自然数,对于第i线段组,计算第i-1线段组和第i+1线段组中的最近邻点的拉普拉斯算子值总和的平均值,对于第1线段组,计算第k线段组和第2线段组中的最近邻点的拉普拉斯算子值总和的平均值,对于第k线段组,计算第k-1线段组和第1线段组中的最近邻点的拉普拉斯算子值总和的平均值,若某一线段组的平均值大于预定的检测阈值,所述数据点为特征点;

d、根据所述步骤a至c处理所述点云数据中的每个数据点,获得所述点云数据的所有特征点。

本发明另一方面提供了一种点云特征提取方法,所述提取方法可包括以下步骤:根据如上所述的点云特征点检测方法,获得点云数据中的边界点和角点,以及边界点对应的潜在特征边和角点对应的潜在特征边;根据所述球心坐标系确定角点和边界点的区域连接信息,其中,角点对应三个区域,边界点对应两个区域;将对应两个相同区域的两个角点相连接构成特征边,根据所述潜在特征边上点的连接顺序,确定起始角点,从起始角点出发依次查找特征边上关联的特征点,直到匹配到另一个角点为止,得到所述特征边上特征点的连接顺序;连接特征点,构成分段特征多边形,实现区域分割。

与现有技术相比,本发明的点云特征点检测方法能够涉及的点几何属性量估算精度高,标记出来的特征点数量较少,特征点提取有序。本发明的点云特征提取方法能够减少特征线连接可能出现错误,特征线重建简便。

附图说明

通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:

图1示出了点切线与点法线的示意图。

图2示出了本发明一个示例性实施例中的点云数据点及邻近点局部球坐标系的示意图。

图3示出了本发明一个示例性实施例中的一般情况下线段排序的示意图。

图4示出了本发明一个示例性实施例中的特殊情况下线段排序的示意图。

图5(a)示出了本发明一个示例性实施例中的特征点被标记为角点的示意图。

图5(b)示出了本发明一个示例性实施例中的特征点被标记为边界点的示意图。

图5(c)示出了本发明一个示例性实施例中的特征点被标记为边点的示意图。

图6示出了本发明一个示例性实施例中的特征点标识二次更新与跨区域聚类示意图。

图7示出了本发明一个示例性实施例中的特征点顺序与连接过程的示意图。

图8(a)示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为1.0的特征点检测情况的示意图。

图8(b)示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为2.0的特征点检测情况的示意图。

图8(c)示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为3.0的特征点检测情况的示意图。

图9(a)示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为4.0的特征点检测情况的示意图。

图9(b)示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为5.0的特征点检测情况的示意图。

图9(c)示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为6.0的特征点检测情况的示意图。

图10(a)示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为1.0的特征点检测情况的示意图。

图10(b)示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为8.0的特征点检测情况的示意图。

图10(c)示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为16.0的特征点检测情况的示意图。

图11(a)示出了本发明一个示例性实施例中的中吹风机出风口扫描数据实验过程中阈值系数为23.0的特征点检测情况的示意图。

图11(b)示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为40.0的特征点检测情况的示意图。

图11(c)示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为50.0的特征点检测情况的示意图。

图12示出了示例1中飞机操纵杆手柄模型与特征点的示意图。

图13示出了示例1中飞机操纵杆手柄特征线的示意图。

具体实施方式

在下文中,将结合附图和示例性实施例详细地描述本发明的点云特征点检测方法和点云特征提取方法。

点云数据是指扫描资料以点的形式记录,每一个点包含有三维坐标。本发明提供了如下思路:即假如点云数据中的一个点p为潜在特征点,那么在p的k邻域内,必有一条特征线(又称为路径或特征边)从p发出并与邻域内的某个点或某几个点共线于该特征线;为此以当前给定点p为原点,建立局部球坐标系,计算各邻近点的球坐标,各邻近点与球心的连线构成若干条线段,将相近坐标的邻近点分到同一个线段组中,以每个线段组为检测单元,如果当前线段是特征边,那么就将点p标记为特征点,并记录点p的连接的区域信息和该条边上点的顺序;如果当前坐标系中存在1或2条特征边,则点p为边界点,如果存在大于2条的特征边,则将点p标记为角点,没有特征边存在,点p就是曲面内部点或内部边。本发明通过以线段为检测单元,把几何属性量之间盲目比较转化为线段之间有序比较,同时记录了线段上点之间的连接顺序,为特征线重建提供了便利。

本发明一方面提供了一种的点云特征点检测方法,该方法通过laplace(中文名称,拉普拉斯)算子间接反映了曲面曲率变化,相对于曲率估算,laplace算子计算简单,建立的特征点检测模型简单。

曲面曲率是曲面关于参数的二阶导数,直接反映了曲面在空间弯曲变化剧烈程度,特征点处的曲率变化较大,通过比较特征点曲率值与邻近区域曲率值大小,可检测出特征点。但在点云模型下,曲率需要复杂运算估算得到,精度也难以保证,laplace算子间接反映了曲面曲率变化,因此采用易于计算的laplace算子来检测特征点。

曲面laplace算子是曲面f=0上的二阶微分算子,定义为曲面梯度(▽f)的散度(▽·f),δf=▽2f=▽·▽f,即:

曲面单位法矢的散度等于曲面平均曲率的2倍,通过以下过程推导出。

假设曲面f=0上过p点的两正交曲率线为c1和c2,c1和c2在p点的单位切向量分别为t1和t2,曲面在点p的单位法向为n,见如图1所示的点切线与点法线的示意图。根据曲率线、切线和法线关系,则有:

n=t1×t2(2)

▽·n=▽·(t1×t2)=t2·(▽×t)1-t1·(▽×t2)(3)

将(2)式代入(3)式可得到:

▽·n=(n×t1)·▽×t1+(n×t2)·▽×t2=n·(t1×▽×t1+t2×▽×t2)(4)

由▽(α·β)=α×▽×β+β×▽×α+β·▽α+α▽β,不妨令单位向量α=β=t,则▽(t·t)=▽(1)=0得到:

t×▽×t=-t·▽t(5)

根据方向导数的定义,对空间曲线切向t,以弧长s为参数有:

t·▽t=dt/ds(6)

由空间曲线的frenet方程dt/ds=κ(-n),其中κ为曲线的曲率,也即是p点的一个主曲率,(-n)为dt/ds为正值的指向,对应于t1,s1,t2和s2可得到:

▽·n=κ1+κ2(7)

由于平均曲率h=(κ1+κ2)/2,所以有:▽·n=2h(8)

曲面f=0的laplace算子等于曲面平均曲率的2倍,即δf=2h。可通过以下过程推导出。

设空间曲面表达式为f(x,y,z)=0,p(x,y,z)为曲面上任一点,则,

c:r(t)=(x(t),y(t),z(t))为过曲面上过点p任意曲线,因而有:

f(x(t),y(t),z(t))=0(9)

对(9)式两端求导,得到:

即:▽f·r′(t)=0(11)

(11)式表明曲面函数f=0在p点的梯度▽f垂直于曲面上过p点的任一曲线r(t)的切线r′(t),曲面上过p点的所有曲线的切线构成曲面在p点的切平面,因此梯度▽f是曲面上点p的法向量n。由于曲面的梯度为曲面法向,结合曲面单位法矢的散度等于曲面平均曲率的2倍,可以得出曲面f=0的laplace算子等于曲面平均曲率的2倍。

根据本发明示例性实施例的点云特征点检测方法可包括以下步骤:

a、以点云数据中某一确定的数据点为球心建立局部球坐标系,通过近邻算法找出所述数据点的k个邻域,所述k个邻域中的每个邻域包括一个或多个最近邻点(又称为邻近点、邻域点)且该一个或多个最近邻点与球心仅构成一条直线,其中k不小于3。例如,可以以点云数据中的一个点pj点为球心建立局部球坐标系,点云数据为{p1,p2,…,pn}(pj∈r3,即点云数据为三维空间数据),j=1,2,...n,此处的j仅用来标识是点云数据中的一个点,通过近邻算法可得到pj最近邻点集为knn(pj),其中,近邻算法又称为k最近邻分类算法,是本领域一种常规的分类算法。

b、将所述球心分别与所述k个邻域内的各个最近邻点相连,得到与所述k个邻域一一对应的k个线段组,以垂向夹角和水平投影夹角构成数据对来表示所述k个线段组中的每个线段组,其中,每个线段组的垂向夹角为该线段组与局部球坐标系的垂直方向的正向的夹角,每个线段组的水平投影夹角为该线段组在局部球坐标系的水平面上的投影与所述水平面的一个坐标轴的正向的夹角。例如,在所述局部球坐标系可为x-y-z球坐标系,每个线段组的垂向夹角即该线段组与局部球坐标系的垂直方向(例如z轴)的正向的夹角可为每个线段组的水平投影夹角即该线段组在局部球坐标系的水平面(例如x-y平面)上的投影与所述水平面的x轴的正向的夹角可为θi,则每个线段组都可对应了一个坐标参数对为此处的i仅用来标识角度和参数对。

c、按照所述水平投影夹角(例如步骤b中的θi)的大小对所述k个线段组进行排序,并依次记为第1、第i、……、第k线段组,其中,i为不小于2且小于k的自然数,对于第i线段组,计算第i-1线段组和第i+1线段组中的最近邻点的拉普拉斯算子值总和的平均值,对于第1线段组,计算第k线段组和第2线段组中的最近邻点的拉普拉斯算子值总和的平均值,对于第k线段组,计算第k-1线段组和第1线段组中的最近邻点的拉普拉斯算子值总和的平均值,若某一线段组的平均值大于预定的检测阈值,所述数据点为特征点;此处的i仅用来标识线段组。

d、根据所述步骤a至c处理所述点云数据中的每个数据点,获得所述点云数据的所有特征点。

在本实施例中,每个邻域内的最近邻点对应的参数对也可表示为每个邻域内各点之间可能共平面,或共θ平面,或同时共与θ平面,其中θ平面是指θ角所在平面,平面是指角所在平面。

图2示出了本发明一个示例性实施例中的点云数据点及邻近点局部球坐标系的示意图,该图示出了以点云数据中的p点为球心建立局部球坐标系,在局部坐标系中,图中的点云数据p点的邻近点(即最近邻点)包括p1、p2、p3、p4、p5、p6和p7,其中,点p1和p2同时共φ1与θ1平面,对应相同的坐标参数对(φ1,θ1),p3和p4同时共φ2与θ2平面,具有相同的坐标参数对(φ2,θ2),p5和p6同时共φ3与θ3平面具有相同的坐标参数对(φ3,θ3),而p7没有邻近点与之共参数对。具有相同坐标的点将与球心p点共线,但在全域范围内并非真正共线,将各组坐标参数按照θ值升序排序,得到各点的有序排列。

在本实施例中,k可不小于3,进一步地,k可在5~20范围内。

在本实施例中,可按照所述水平投影夹角的大小对所述k个线段组进行排序,例如可按照按θi值增大的顺序,对k个线段组进行排序,各个线段组可作为特征检测的基本单元;当然,也可以按照θi值减小的顺序,对k个线段组进行排序。例如,对于其中一个线段组г,其左右最近邻线段可分别记为гl和гr,则г、гl和гr几种排序情况可如图3和图4所示;图3和图4分别示出了本发明一个示例性实施例中的一般情况下和特殊情况下线段排序的示意图;图3的图(a)和图(b)示出的是г、гl和гr位于同一θ平面上的情况,其中图(a)示出的是θ=0平面,图(a)示出的是θ=π/2平面,按照逆时针方向可确定3个线段组的顺序,图3的(c)图是正常情况下逆时针排序。图4的(a)图和(b)图分别示出了θγ在坐标系下取最小值和最大值时线段排序的示意图,(a)图为г的θ值θγ在坐标系下取最小值时,左边最近邻线段гl只能从坐标系下θ值最大中选择一组与г夹角最小的线段,由于线段г的θ值θγ在当前坐标系下是最小值,由于没有比θγ值更小的线段,那么就只能取当前坐标系下θ值最大的线段中,选择一组与г夹角最小的线段,作为г的最左邻近线段;同理如图4的(b)图所示,当г的θ值θγ在坐标系下取最大值时,右边最近邻线段гr只能从坐标系下θ值最小中的选择一组与г夹角最小的线段,由于线段г的θ值θγ在当前坐标系下是最大值,由于没有比θγ值更大的线段,那么就只能取当前坐标系下θ值最小的线段中,选择一组与г夹角最小的线段,作为г的最右邻近线段。

在实施例中,可通过laplace算子依次对每个线段组进行检验,以确定该点云数据点是否为特征点。例如,对于一个线段组г,其左右最近邻线段组为гl和гr,гl上的点的集合为гl上的点不包括坐标原点,m表示点的个数,гr上的点的集合为δf(即lapalce算子)在任意两个点p1与p2的值为δf(p1,p2),其中,p1与p2分别是гl上任意一点和гr上任意一个点,定义为:

由上式可知,是гl上的点和гr上的点之间的laplace算子值总和的平均值,反映了两个线段组点之间的平均曲率变化,特征点判断条件为:

gmax为阈值。

在本实施例中,检测阈值可为阈值系数与阈值的乘积,所述阈值系数不小于1,所述阈值gmax可按照以下式确定。

式中,k表示最近邻点数量,p为点云数据中某一确定的数据点(即是当前球心点或球坐标原点),pi为p的最近邻点,△f为lapalce算子,pi∈nbr(p)表示p点的最近邻点集合中任一点。

在本实施例中,所述点云数据特征点检测方法还包括利用点云数据的非特征点和特征点形成三维特征点提取效果图,并根据提取效果图的状态来调整阈值系数的大小。其中,提取效果图的状态可包括欠提取状态、正常状态和过提取状态,对于欠提取状态可通过增大阈值系数来再次提取,对于欠提取状态可通过减小阈值系数来再次提取,进而得到能够获得正常提出状态的阈值系数。

图8(a)、图8(b)和图8(c)分别示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为1.0、2.0和3.0的特征点检测情况的示意图。图9(a)、图9(b)和图9(c)分别示出了本发明一个示例性实施例中的立方体扫描数据实验过程中阈值系数为4.0、5.0和6.0的特征点检测情况的示意图。图中的带圈的点表示利用本发明的点云特征点提取方法从提取到的特征点。

在本模拟数据实验中,选择尖锐特征比较明显的立方体来提取特征点。将定义在[0,1]×[0,1]×[0,1]上的正方体离散化并计算出各点的单位法向,x轴、y轴和z轴三个方向采样间距均为0.1,共计602个数据点,最近邻点数量k=10。从图8(a)、8(b)和8(c)可以看出,λ值分别为1.0,2.0和3.0时是一种欠提取状态,提取的特征点中存在大量非特征点,从图9(b)和9(c)可以看出,λ值分别为5.0和6.0时是一种过提取状态,部分特征点未提取出来。λ为4.0时(图9(a))是一种正常状态,没有遗漏特征点,但提取的特征点中仍然包含部分非特征点。

图10(a)、10(b)和10(c)分别示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为1.0、8.0和16.0的特征点检测情况的示意图。图11(a)分别示出了本发明一个示例性实施例中的吹风机出风口扫描数据实验过程中阈值系数为23.0、40.0和50.0的特征点检测情况的示意图。

在该实验中,选择光滑异形曲面模型,吹风机出风口扫描数据进行实验,1200个数据点,最近邻点数量k=10。图中的带圈的点表示利用本发明的点云特征点提取方法从提取到的特征点。从图10(a)、10(b)和10(c)可以看出,阈值系数λ值分别为1.0,8.0和16.0时是一种欠提取状态,提取的特征点中存在大量非特征点,从图11(b)和11(c)可以看出,λ值分别为40.0和50.0时是一种过提取状态,部分特征点未提取出来。λ为23.0时(图11(a))是一种正常状态,没有遗漏特征点,由于是光滑曲面,尖锐特征不明显,与立方体模型相比,提取结果的特征点中包含了更多数量的非特征点。

在本实施例中,所述方法还包括:在步骤c中,若某一线段组的平均值大于预定的检测阈值,则该线段组为潜在特征边,对于所述点云数据中的任一数据点,若该数据点对应的潜在特征边数为1或2时,则该数据点为边界点;若数据点对应的潜在特征边数为大于2时,则该数据点为角点。否则标记p点为边点,边点是点云对应曲面的内部点,即非特征点(即点p不存在特征边的情况,p点为边点)。在以线段组为单位进行检测,判断是否为特征边时,可以对线段上的点进行标记,例如,经检测判断一个线段组为特征边,则线段组上除球心的点也可以标记为特征点,这样可以减少工作量,但标记可能会产生冲突。

图5(a)、图5(b)和图5(c)分别示出了本发明一个示例性实施例中的特征点被标记为角点、边界点和边点的示意图。

在图5(a)中,当前点为p,最近邻点数量k=15,15个邻近点分为12组,以p为球心构成12个线段组,当前坐标系下,按照逆时针分别是p→③→⑨,p→⑥,p→②→⑧,p→④,p→⑩,p→①→⑦,p→⑤和p同时位于这12个线段组上,为此我们计算每个线段组左右最近邻两个线段组的值。以线p→③→⑨为例,左右两个线段组分别为虽然p→③→⑨与共φ平面,同时p→③→⑨与共θ平面,但边同时具有不同的φ值和θ值,对p点进行检测,其满足左右线段组上最近邻点的laplace算子值总和的平均值是大于检测阈值,因此线段p→③→⑨是潜在特征边,并记录边上各点的顺序p→③→⑨。对于线段左右两个线段组分别为p→③→⑨和p→⑥,由于三个线段组共φ平面,不满足左右线段组上点的laplace算子值总和的平均值是大于检测阈值,所以不是潜在特征边;同理可得到p→②→⑧和p→①→⑦是潜在特征边。由于存在三条潜在特征边,将点p标记为角点。

在图5(b)中,p的15个最近邻点,在局部坐标系下分成了11组,四个线段组p→②→⑩、和p→①→⑨都是三点共线(其它线段都是两点共线),可能构成潜在特征边。对于线段与左右相邻两个线段组p→⑧和p→⑦共φ平面,由于不满足判断条件,该线段上的点不能标记为特征点。同理,p→①→⑨与左右两相邻线段共平面,对p点进行检测,不满足判断条件,该线段上的点不能标记为特征点。因而该种情况下只有两个线段组和p→②→⑩满足判断条件,标记这两个线段组上的点为特征点,从p发出的线段组数等于2,是将p标记为边界点。当两条边的φ或θ相差π时,将两线段组合并为一条边,同时记录特征点的顺序,例如将边和边p→②→⑩合并为

从图5(c)中可以看出,p的15个最近邻点在局部坐标系下分成了11组,四个线段组p→②→⑩、和p→①→⑨可能构成潜在特征边。线段与左右相邻线段p→⑥和p→⑧、线段p→②→⑩与左右相邻线段p→⑦和线段与左右相邻两个线段组p→⑧和p→⑦、线段组p→①→⑨与左右相邻线段组都共平面,对p点进行检测,不满足判断条件,点p与这些边(即线段组)上的点都能标记为非特征点。

本发明另一方面提供了一种点云特征提取方法。所述提取方法包括以下步骤:获得点云数据中的边界点和角点,以及边界点对应的潜在特征边和角点对应的潜在特征边;根据所述局部球坐标系确定角点和边界点的区域连接信息,其中,角点对应三个区域,边界点对应两个区域;将对应两个相同区域的两个角点相连接构成特征边,根据所述潜在特征边上点的连接顺序,确定起始角点,从起始角点出发依次查找特征边上关联的特征点,直到匹配到另一个角点为止,得到所述特征边上特征点的连接顺序;连接特征点,构成分段特征多边形,实现区域分割。

在本实施例中,所述潜在特征边上点的连接顺序根据以下步骤确定:从特征点出发,沿其对应的潜在特征边依次读取潜在特征边上的点,确定潜在特征边上点的连接顺序。

在本实施例中,在局部球坐标下,其中一个线段组г左右最近邻线段组分别记为гl和гr,在进行特征检测时:

如果左右线段组上最近邻点的拉普拉斯算子值总和的平均值大于检测阈值,则г是潜在特征边,否则为非特征边。当г为非特征边时,将г上的点聚类到某个区域中:如果гl是潜在特征边时,将г上点聚类到гl区域连接信息右边区域中;如果гl也是非潜在特征边,则将点聚类到гl上点所在区域中;如果гl的特征状态未知,则将聚类到新建区域sγ中,并标记该聚类,以方便最后进行处理。

如果左右线段组上最近邻点的拉普拉斯算子值总和的平均值大于检测阈值,该边上的点具有尖锐特征,因此把球心点p标记为特征点,记录г上点之间的顺序关系保存点p连接区域信息如果гl为非潜在特征边时,就是гl上点所在的区域将г上的p点和聚类到中;如果гl为潜在特征边时,就是гl区域连接信息中的将г上的点聚类到中。

例如,在图5(a)中,在确定线段组p→③→⑨是潜在特征边时,可保存p点的区域连接信息{s3,s2},同理可得到p→②→⑧和p→①→⑦是潜在特征边,区域连接信息分别为{s2,s1}和{s1,s3}。点p标记为角点,保存点p的区域连接信息{s1,s2,s3}。在图5(b)中,p标记为边界点,把点p、点③和点聚类到s3中,点p、点②和点⑩聚类到s2中,保存区域连接信息{s3,s2}。在图5(c)中可以看出,点p与边上的点都能标记为非特征点,被聚类到同一区域s3中,p称为边点或内部点。

在本实施例中,在以线段组为单位进行检测,判断是否为特征边时,可以对线段上的点进行标记,这样可以减少工作量,但标记可能会产生冲突。特征点检测是在局部坐标下进行,例如点p的一个邻近点q在以点p为球心的坐标系中的检测过程中可能被标记为非特征边上的点,但在以q为球心的坐标下检测结果q可能会被标记为特征点,特征点标记出现冲突,此时应以q为球心检测结果为主,并更新q的聚类区域(即二次更新)。

图6示出了一个示例性实施例中的特征点标识二次更新与跨区域聚类示意图;其中,(a)图示出了特征点标识二次更新的示意图,(b)图示出了跨区域聚类的示意图。如(a)图所示,点和点⑦在以p为球心的坐标下检测结果为非特征点,并聚类到区域s3中,但在以点和点⑦为球心检测特征时,点和点⑦将分别是边界特征点和角点,因此将这两个点特征标记更新,并将点⑦添加到聚类s2中,将点添加到聚类s2和s1中。相反,如果点p的邻近点q在检测过程中被标记为特征点,但在以q为球心的坐标下检测结果标记为非特征点,也会出现特征点标记冲突,此时q应为非特征点,从所在连接顺序中删除,将q从对应的聚类中删除或聚类到新的区域中。

在本实施例中,所述方法还可包括步骤:对非特征点聚类。非特征点不用于区域分割,位于区域内部,需要通过聚类将非特征点归类到相应点云区域。在进行特征点检测过程中同时对非特征点聚类,由于检测是在局部坐标下进行,要把非特征线段上的点聚类到相应的区域,这样可以较少非特征点对特征线重建的干扰。当球心p位于特征边界附近时,邻近点可能会位于不同的曲面片或区域中,如果仅是按照图5中所示的规则进行聚类,会出现非特征点聚类混乱,此时应按照图6中的(b)图所示的规则进行聚类;如图6中的(b)图所示,边界点②的区域连接信息是{s3,s2},左边区域s3,右边区域s2,边界点④的区域连接信息是{s2,s3},左边区域s2,右边区域s3。当检测到线段p→③是非特征边,按规则非特征点③将聚类到边界点②的右边区域s2中。当检测到线段p→⑤是非特征边时,非特征点⑤将聚类到边界点④的右边区域s3中,这时出现聚类错误。因此在对非特征线段组г上的点聚类,如果左近邻γl是潜在特征边,区域连接信息为时,采用系统聚类法的中值聚类,分别计算到区域和区域平均值的距离,选择距离最小的区域聚类,如果其中一个区域为空,比如为空,那么则新建一个聚类并标记,待该坐标系下所有线段检测完后或系统特征提取完毕后再合并聚类。

在本实施例中,本发明的点云特征提取方法还包括步骤:可采用系统聚类的重心距离法对所述特征点的聚类一致性问题进行处理。同时,也可采用系统聚类的重心距离法对非特征点的聚类一致性问题进行处理。

由特征提取过程可以看出,点聚类到区域存在以下集中情况:(1)在解决特征点标记冲突过程中,更新特征点和非特征点聚类时,未进行反向跟踪对更新前期相关点的聚类信息,出现部分聚类歧义性;(2)角点位于三张及以上曲面的相交处,在提取过程中,角点聚类相应的相交曲面中,由于在局部坐标下进行提取,提取过程中涉及到新建聚类,出现多个小规模聚类区域,影响下一步特征线重建;(3)按照图6中的(b)图所示的规则,在部分邻近线段上点的聚类区域为空时,新建聚类,产生小规模聚类区域。

针对上述问题,可统一采用系统聚类的重心距离法对上述聚类一致性问题进行处理。设特征检测完毕系统产生m个聚类si={sj}(1≤i≤m,1≤j≤mj),sj的重心为:

sj为某个聚类中的一个点。

先计算出各聚类的重心,找出在特征提取过程中已做标记的聚类,计算相互之间的欧式距离将其合并到距离值最小的聚类中。最后按照上述方法,将聚类中点数目小于ms(ms=10)的聚类进行合并,以保证各聚类中有足够数量的点。

在本实施例中,本发明的点云特征提取方法还包括步骤:通过协方差矩阵的特征分析来光滑所述特征点,以剔除干扰点。

在特征提取过程中,虽然得到了潜在特征边、特征点及连接区域,但由于噪声、采样各向异性、设定较小阈值避免漏掉部分特征点等因素,真实特征点及附近区域的数据点都可能被当作特征点标记,因此特征点数量远大于真实特征点数量,需要对特征点进一步处理才能完成连接。

本发明可通过协方差矩阵的特征分析来光滑特征点,依次从特征点集合f中选一点p,并搜索k个最近邻域knn(p),计算质心点构造协方差矩阵计算特征值λ1≥λ2≥λ3和相应的特征向量e1、e2和e3。e1作为特征线方向,由和e1构成线l,把点p在l上的投影点p′作为特征点,得到新的特征点集合f′。由于在特征点检测过程中标识了潜在特征边上点的顺序和潜在特征边的区域连接信息,光滑过程采用了投影操作,部分特征点之间在空间的坐标顺序发生了改变,光滑完成后,需要检查并调整特征点之间的连接顺序进一步调整新顺序下特征线连接的区域信息并更新边界点和角点标记。

在本实施例中,特征点经光滑可得到新特征点集合,由于特征提取在局部坐标下进行,特征线上的点数量有限,是一个局部顺序,不能完整表达一条特征边,在重建过程中,首先找到角点对,然后从起始角点出发搜索,依次查找边上关联的特征点,直到匹配到另一个角点为止,完成一条特征边上点的排序,最后将其有序连接。边位于两个角点之间,在边连接之前,需要找到配对的角点,角点的区域连接信息中保存了角点所连接的三个区域,利用区域连接信息查找具有两个相同区域的角点,称为角点对,在配对角点之间进行特征点连接。

图7示出了本发明一个示例性实施例中的特征点顺序与连接过程的示意图;其中,(a)图示出了特征点,(b)图示出了特征点连接树。提取的特征点如图7中的(a)图所示,对应的特征信息见表1所示。从系统中搜索出标记为角点的点①,获取区域连接信息然后从系统查找一个与{s1,s2,s3}有两个共同区域的角点,比如角点⑩,两者连接了两个相同的区域{s2,s3},在角点①和角点⑩直接连接特征点构成特征线。从角点①出发至角点⑩的连接顺序(①,③,⑤),找特征点③或⑤开始的连接顺序,有两组有效顺序(③,⑤,)和(⑤,⑧),以特征点出发的连接顺序有(⑧,⑩),则特征线最后的特征点连接顺序为(①,③,⑤,⑧,⑩)。整个查找过程类似生成一棵树的过程,最后对树深度遍历,得到两角点的特征点连接顺序,连接过程如图7中的(b)图所示。

表1特征点及连接顺序

为了更好地理解本发明的上述示例性实施例,下面结合具体示例对其进行进一步说明。

示例1

图12示出了示例1中飞机操纵杆手柄模型与特征点的示意图,图13示出了示例1中飞机操纵杆手柄特征线的示意图。图12中的带圈的点表示利用本发明的点云特征点提取方法从提取到的特征点。

如图12所示,在特征线连接实验中,选择光滑异形曲面,飞机操纵杆手柄由圆柱体、四个盲孔及异形表面构成。图12的(a)图示出了飞机操纵杆手柄模型,模型共5006个数据点,阈值系数λ=5.0,图12的(b)示出了飞机操纵杆手柄模型及特征点,共提取到619特征点,构成10条特征线,结果如图13的(a)图示出的模型及特征线(折线)和如图13的(b)图示出的模型特征线(折线)。其中,由于图13中(b)图所示的是曲线,不调整角度的话,封闭曲线看不出效果,会变成一条曲线段,因此,相较于图13中的(a)图,(b)图进行了旋转,以示出效果。

综上所述,本发明的点云特征点检测方法所用的laplace算子计算简单,涉及的点几何属性量估算精度高,标记出来的特征点数量较少,特征点检测模型简便,特征点提取有序。本发明的点云特征提取方法能够减少特征线连接可能出现错误,特征线重建简便。

尽管上面已经通过结合示例性实施例描述了本发明,但是本领域技术人员应该清楚,在不脱离权利要求所限定的精神和范围的情况下,可对本发明的示例性实施例进行各种修改和改变。

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