基于特征识别的微型复杂零件建模方法与流程

文档序号:17643918发布日期:2019-05-11 00:51阅读:288来源:国知局
基于特征识别的微型复杂零件建模方法与流程

本发明涉及基于特征识别的微型复杂零件建模方法,属于逆向工程技术领域。



背景技术:

微型复杂曲面广泛存在于玉雕、耳机助听器等工艺品、医疗产品中。这类体积小、复杂特征多的模型正向建模通常无法实现,需要将实体扫描成点云数据,通过逆向工程技术完成模型的重建。

目前,逆向建模技术重构cad模型的方法主要分为两大类:基于曲面重构的逆向建模方法、基于实体重构的逆向建模方法。基于实体特征重构的逆向建模方法适用于由基础特征组合而成的零件,基于曲面的逆向建模适用于有复杂曲面的零件。

基于曲面重构的建模方法又可以归为两大类:分片连续的曲面片模型重建、基于功能分解的曲面模型重建。分片连续的曲面片通常在构造n边域时没有考虑模型的设计意图,导致设计时的曲面特征被分解为大量的曲面片,重构曲面模型未能真正还原曲面设计状况。

基于功能分解的曲面模型重建首先通过自动数据分块算法或人工交互将测量数据按特征和功能进行分割,分割后的每个区域对应模型上的一个基本形状。使用现有商业软件如catia、imageware用户需要手动选择一部分数据点定义光滑曲线,这些曲线构成扫掠、放样、蒙皮、填充等曲面造型方法所需要的边界线、截面线、网格线,然后拟合曲面,另一方面,可以用不同类型的曲面(如二次曲面、自由曲面)直接拟合各个数据集,再由提取的边界曲线来裁剪得到的拟合曲面;最后,在主要曲面重构完成后,用投影、偏置等手段将曲面片实体化为完整零件模型。

点云数据分割是逆向建模中的难点,现有的智能分割算法主要有基于边的分割方法、基于面的分割方法、聚类的分割方法。

2002年,shlafman等提出了一种基于k-means聚类的三维模型分割方法。通过空间距离和面片之间夹角综合考虑计算确定面片之间的距离。2004、2009年,张力宁等,魏一等分别利用模糊神经网络和自组织映射的神经网络实现逆向工程中的区域分割。2010年,kalogerakis,e等提出了一种基于几何分类的三维模型分割方法。此种三维模型分割方法通过对一些几何特征进行学习从而构造出分类器,再通过人机交互实现三维模型的分割。2012年,angelina等用区域合并和遗传算法对区域生长法进行了改进,分割效率较高,但边界保持性差。2015年,胡文庆等选择点云数据的坐标和反射率两个特征作为数据集,利用对象之间的相似性进行聚类,通过迭代法对模糊c均值聚类的目标函数进行优化实现对数据的有效划分。2017年,陈向阳等通过计算每个点与其k最近邻点之间的欧氏距离,将距离小的归为一类,当类与类之间的距离大于该阈值时完成数据分割,此方法对于特征明显且不同特征之间距离较远的模型比较适合。

基于面的分割方法和基于聚类的分割方法对噪声有很好的鲁棒性,但很难确定精确的区域边界,容易出现过分分割或者分割不足的情况;分割结果的好坏受约束条件或者兼容性阈值的影响较大。对于复杂模型一般采用基于边的分割方法,通过提取特征点,然后构建特征线,用特征线进行区域分割。

1999年,yang等通过拟合局部二次曲面计算主曲率与主方向,实现特征线提取,但该方法对噪声点云或稀疏点云不适用。2002年,woo认为目标点法矢或曲率突然发生变化的地方是相临两个区域的边界,将法矢或曲率的突变点作为特征点,这种方法适合特征明显的点云模型。2001年,huang在完成数据点三角网格化的基础上,估算各测点的法矢和曲率,把曲率极值点作为边界特征点。2003年,吕震根据orthogonal-cross-section模型估算出各点处的法矢,利用法矢和邻点拟合一张二次曲面,计算该二次曲面的主曲率和主方向,主曲率在主方向的极值点被确定为特征点。2008年,马骊溟等在此基础上提出了一种不需要求出所有点的曲率值就可以搜索到曲率极值点的方法,提高了计算效率。2014年,吴禄慎等将点云投影到拟合局部微切平面,根据邻域点集在该点处的场力大小之和来判断是否为特征点。2016年,肖宏涛等提出利用物体表面的反光点提取特征点,直接由点云拟合特征曲面,这种方法适合特征较少的简单模型。

上述根据法矢、曲率、曲率极值、场力大小、反光点提取特征点的方法对尖锐特征点提取较好,但微型复杂曲面零件存在很多曲率极小的曲面,相交面之间圆角角度各异。阈值太小容易漏掉较平滑处的特征点,阈值太大尖锐处提取的特征点带宽较大,影响特征线重建的精度。



技术实现要素:

本发明所要解决的技术问题是:提供基于特征识别的微型复杂零件建模方法,在传统自动建模方法基础上,优化特征点提取和特征线重建算法,实现微型复杂零件点云数据的完整分割,然后利用曲面点和特征线生成曲面,最后将曲面投影到底面完成实体模型的重建。

本发明为解决上述技术问题采用以下技术方案:

基于特征识别的微型复杂零件建模方法,包括如下步骤:

步骤1,获取零件的点云数据,并利用空间分块策略将点云数据划分成多个栅格,将单个点云数据作为采样点,搜索各采样点的k个最近邻点,作为采样点的邻域;当采样点所在栅格搜索不到k个最近邻点时,以采样点为圆心,以到采样点所在栅格六个面的最大距离dv为半径建立动态球计算扩展栅格,在扩展栅格里再次搜索k个最近邻点;

步骤2,根据采样点及其对应的邻域,计算采样点的平均曲率绝对值;对采样点及其对应的邻域进行主成分分析,得到采样点第三主成分对应的特征值;对平均曲率绝对值设置第一阈值qmax、第二阈值qmin,其中qmax>qmin,对特征值设置第三阈值fmax、第四阈值fmin,其中fmax>fmin;将平均曲率绝对值大于qmax且特征值大于fmin的采样点和特征值大于fmax且平均曲率绝对值大于qmin的采样点作为特征点进行提取;

步骤3,对每个曲面对应提取到的特征点,构建特征线,并将曲面内部点云数据分割出来;

步骤4,对步骤3得到的特征线和曲面内部点云数据采用逆向工程方法重建曲面,将重建后的曲面在交互式计算机辅助设计与计算机辅助制造系统中投影得到实体模型。

作为本发明的一种优选方案,所述步骤1的具体过程如下:

1)扫描并获取零件的点云数据,设定沿坐标轴x、y、z方向的极值分别为xmin、xmax,ymin、ymax,zmin、zmax;将以点(xmaxymaxzmax)和点(xminyminzmin)为对角点且平行于坐标平面的空间六面体作为点云数据的空间包围盒,将空间包围盒沿坐标轴方向分成等间距为l的空间正六面栅格;

2)建立各栅格和栅格内点云数据的对应关系,得到栅格-点云关系;

3)计算采样点到所在栅格六个面的距离,在采样点所在栅格搜索k个最近邻点,且最近邻点到采样点的距离小于采样点到所在栅格六个面的最小距离,若搜索到,则对下一个采样点重复3),否则转到4);

4)以采样点为圆心,以到采样点所在栅格六个面的最大距离dv为半径建立动态球计算扩展栅格,根据2)中建立的栅格-点云关系,找到扩展栅格中的点云数据,将到采样点的距离<dv的点云保留,并从中取距离最近的k个点。

作为本发明的一种优选方案,所述步骤2的具体过程如下:

1)随机选取20个采样点及其对应的邻域,利用快速拟合工具进行拟合,得到m个曲面拟合模型;求解某个采样点的平均曲率绝对值时,将该采样点的邻域分别以上述m个曲面拟合模型进行拟合,解出曲面系数,分别计算上述m个曲面拟合模型的拟合效果,取偏差最小的为最佳拟合曲面,对最佳拟合曲面求解平均曲率并取绝对值;

2)对采样点及其邻域进行主成分分析,得到采样点第三主成分对应的特征值;

3)对平均曲率绝对值设置第一阈值qmax、第二阈值qmin,其中qmax>qmin,对特征值设置第三阈值fmax、第四阈值fmin,其中fmax>fmin;将平均曲率绝对值大于qmax且特征值大于fmin的采样点和特征值大于fmax且平均曲率绝对值大于qmin的采样点作为特征点进行提取。

作为本发明的一种优选方案,所述步骤3的具体过程如下:

1)对某个曲面对应提取到的特征点,计算某点到周围k个点的距离之和并求平均距离,将距离大于平均距离的点作为边界点;根据模型的截面几何关系,将提取到的特征点的外边界点作为构建特征线的点;

2)通过几何关系找到外边界线的起始点,将距离起始点最近的两个点作为第二、三个点,以这三个点拟合直线,判断距离第三个点最近的2到3个点中距离这条直线距离最近的点,将距离最近的点作为下一个点,依次提取外边界线上点;

3)采用dp算法提取外边界线上的型值点;

4)采用b样条曲线插值法对外边界线上的型值点进行插值,得到曲面的特征线,将特征线离散为曲线点;

5)根据边界条件和几何关系确定一个曲面内的点,判断距离该点最近的3到5个点到所有4)中得到的曲线点的最小距离是否大于一定阈值,将大于阈值的点作为曲面内的点,重复上述过程,直至没有新的点被选择为曲面内的点。

作为本发明的一种优选方案,所述采用dp算法提取各边界线上的型值点具体过程如下:

对外边界点排序,以首点和末点构建直线,计算其他点到直线的最大距离,若最大距离大于设定阈值,则将最大距离对应的点作为型值点,将型值点加入首点和末点中,构建相邻两个点的直线,并进行上述相同操作,通过多次迭代得到所有型值点。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、本发明解决了现有数据分割算法的不足,实现了微型复杂曲面零件点云数据的完整分割,减少了建模过程中人员参与,提高了数据分块的效率和精度,为高质量逆向工程奠定基础。

2、本发明优化了基于特征识别的微型复杂零件建模的计算模型与生成流程,点云拓扑结构建立,微分几何量估算,协方差矩阵特征值求解,交叉阈值提取算法,特征线构建算法;本发明提出离散曲面特征数据分块算法等多个步骤环环相扣,统一于整个建模过程中。

3、本发明提出的特征点提取方法,可实现对含有多种不同弯曲程度过渡面点云数据特征点的完整提取。

附图说明

图1是本发明基于特征识别的微型复杂零件建模方法的流程图。

图2是扩展栅格示意图,其中,(a)为传统空间分块算法中采样点所在栅格及扩展的26个栅格,(b)中阴影栅格为改进后算法扩展栅格。

图3是点云坐标系变换示意图。

图4是交叉阈值设置图示。

图5是本发明实施例具有微型复杂特征的代表性零件——皮带头。

图6是皮带头的1/4点云数据。

图7是1/4点云数据提取的特征点。

图8是选取一个曲面周围的特征点。

图9是由特征点拟合的特征线。

图10是分块得到的曲面内点。

图11是由曲面点和特征线构建的曲面。

图12是由曲面生成的实体。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

如图1所示,本发明基于特征识别的微型复杂零件建模方法主要包括四个步骤:散乱点云拓扑关系建立、特征点提取、点云数据分块、模型重建。其中,“散乱点云拓扑关系建立”步骤负责找到每个采样点的k个最近邻点;“特征点提取”步骤负责提取点云模型的特征点;“点云数据分块”步骤负责构建特征线,分割属于同一曲面的点云;“模型重建”步骤负责利用点云和特征线生成曲面,由曲面投影得到实体。

1、散乱点云拓扑关系建立

读入点云数据,将点云栅格化以缩小搜索最近邻点的范围,将搜索到的最近邻点放入元胞数组cellneighborhood,具体步骤如下:

(1)确定空间包围盒,即栅格:

设定沿坐标轴x、y、z方向的极值分别为xmin、xmax,ymin、ymax,zmin、zmax;定义以点(xmaxymaxzmax)和点(xminyminzmin)为对角点且平行于坐标平面的空间六面体成为点云的空间包围盒。将空间包围盒沿坐标轴方向分成等间距为l的空间正六面栅格,即沿坐标轴方向划分的栅格数为:

沿x轴方向划分的栅格数

mx=ceil((xmax-xmin)÷l)(1)

沿y轴方向划分的栅格数

my=ceil((ymax-ymin)÷l)(2)

沿z轴方向划分的栅格数

mz=ceil((zmax-zmin)÷l)(3)

栅格宽度l的确定:在测量点云数据中随机选取n个点,用暴力搜索算法计算采样点到距离其最近的一个点的距离du,,将所有最近距离平均值作为分布密度函数ρ,一般根据点云数据均匀分布情况n选取10-20个点,选取分布密度ρ的倍数作为栅格宽度。

(2)点云数据栅格化

设cm为n×3的点云矩阵,根据坐标轴栅格数确定的法则确定第i个点云(cm(i,1)cm(i,2)cm(i,3))所属的栅格在x、y、z方向的序号ysgx,ysgy,ysgz,并将属于同一栅格的点云存储起来,建立栅格-点云对应关系。

ysgl(i)=ceil((cm(i,1)-xmin)÷l)(4)

ysgm(i)=ceil((cm(i,2)-ymin)÷l)(5)

ysgn(i)=ceil((cm(i,3)-zmin)÷l)(6)

(3)计算采样点到所在栅格6个面的距离

a=xmin+l*ysgl-cm(i,1)(7)

b=cm(i,1)-(xmin+l*ysgl-1)(8)

c=ymin+l*ysgm-cm(i,2)(9)

d=cm(i,2)-(ymin+l*ysgm-1)(10)

e=zmin+l*ysgn-cm(i,3)(11)

f=cm(i,3)-(zmin+l*ysgn-1)(12)

在该点云所在栅格搜索k个最近邻点,如果可以搜索到,则对下一个点重复(3);如果搜索不到则转向(4)。

(4)以采样点为中心扩展新栅格

如图2的(a)、(b)所示,以采样点i为圆心,以dv为半径建立动态球,将动态球所接触的栅格作为扩展栅格,根据(2)中建立的栅格-点云关系,找到扩展栅格里的点云j,将dij<dv的点保留下来,取距离最近的k个。

本发明在matlab平台编写如下功能函数实现栅格扩展:

(1)extend;

该函数处理空间分块策略得到的栅格序列矩阵matrixgrid,计算出扩展的栅格矩阵matrixextend,找到每个采样点的k个最近邻点,结果存储于最近邻点元胞数组cellneighbourhood;

2、特征提取与边界提取

2.1曲率信息估算

平均曲率是曲面弯曲程度的度量,相交面之间弯曲程度较大。因此,可以把曲率作为判断特征点的指标,设置合理阈值,将大于一定阈值的点认为是特征点。

采样点及其k最近邻域构成的曲面可以近似地反映该点处的曲率。通过最小二乘拟合,可以用曲面z=r(x,y)来表征局部区域,计算每点处的平均曲率。传统用二次曲面拟合每个邻域的方法误差较大,不适用于微型复杂曲面的曲率估算。

为了精确地拟合不同的曲面,随机选取20个点的邻域利用1stopt中的快速拟合工具,获得了m个有代表性的曲面拟合模型。将采样点及其邻域分别以这m种模型拟合,解出曲面系数,然后分别计算这m种模型的拟合效果,取偏差最小的为最佳拟合曲面,并对这个曲面求解平均曲率,将该曲率绝对值作为采样点的曲率。

2.2主成分分析法在法向量估算中的应用

主成分分析法(pca)是统计学中常用的数据降维方法,从多个变量中提取不相关的几个变量。pca本质是线性变换,这个变换把样本变化到一个新的坐标系,第一个坐标系是协方差矩阵最大特征值时对应的特征向量,其次是第二特征值对应的特征向量,依次类推。最小特征值对应的特征向量即为采样点的法向量所在直线,法向量方向还需进一步调整。

进一步对主成分分析坐标变换的理论分析可知:对采样点及其邻域进行主成分分析,相当于将原系统坐标系的xy平面移动到由这些点拟合的平面上(如图3所示)。x、y轴对应第一二主成分,z轴对应第三主成分。点在z轴上的投影方差越小,说明平面拟合的误差越小,该采样点为曲面内部点,反之则说明采样点为边界点,即为要提取的特征点。

可以证明,协方差矩阵的特征值就是在各坐标系投影的方差。因此,对第三主成分对应的特征值直接设置阈值提取特征点比用法向夹角作为判断指标要简单高效的多。

具体步骤如下:

1)数据标准化。分别求x、y、z的平均值,然后对于邻域内的所有点,都减去对应的均值。

2)求标准化的协方差矩阵。

3)求协方差矩阵的特征值和特征向量,将特征值按照从小到大的顺序排序。

4)设置阈值,将最小特征值大于阈值的认为是特征点。

2.3设置交叉阈值提取特征点

微型复杂曲面零件过渡面处弯曲程度各异,使用单一提取准则无法准确完整提取特征点。曲率和法矢夹角反映邻域对曲面的隶属度,曲率、法矢夹角越大,弯曲程度越大;协方差矩阵特征值反映邻域对平面的隶属度,第三主成分越小,平面拟合的误差越小。这两类判断准则在多数情况下提取到的特征点是相同的,但对于特殊位置可以相互补充和精简,因此本文提出对曲率和协方差矩阵特征值设置交叉阈值来提取特征点,交叉阈值设置方法如图4所示。

2.4特征点提取函数

在特征点提取算法基础上,本发明在matlab平台编写如下功能函数实现散乱点云特征点提取:

(1)curvature;

该函数处理最近邻点元胞数组cellneighbourhood,确定采样点及其最近邻点拟合的最佳曲面,并计算曲面第一基本量和第二基本量以估算采样点平均曲率,结果放入曲率矩阵matrixcurvature;

(2)characteristicvalue;

该函数处理最近邻点元胞数组cellneighbourhood,计算由采样点和其最近邻点构成的协方差矩阵的特征值和特征向量,将最小特征值放入特征值矩阵matrixcharacteristicvalue;

(3)crossthreshold;

该函数处理曲率矩阵matrixcurvature和特征值矩阵matrixcharacteristicvalue,分别将采样点的曲率和特征值和交叉阈值比较,提取特征点,将特征点放入特征点矩阵matrixcharacteristicpoints;

3、点云数据分块

3.1特征线构建算法

根据模型的截面几何关系,将提取到的特征点的外边界点作为构建特征线的点。构建特征线需要识别边界点,分离内外两条边界线上的点,计算边界线上的型值点,拟合b样条曲线等多个步骤。

(1)识别边界点

边界点只有一侧有点云,内部点四周都有点云,因此可通过计算某点到周围k个点的距离之和,将大于平均距离的点认为是边界点。

(2)分离内外两个边界线上的点

通过几何关系找到外边界线的起始点,将距离该点最近两个的点作为第二、三个点,以这三个点拟合直线,判断距离第三个点最近的2到3个点中距离这条直线距离最近的点,将这个点作为下一个点,依次提取属于同一曲线上点。

(3)计算边界线上的型值点

边界线上的点比较密集,不适合直接插值b样条曲线,可用dp算法提取边界点中的主要信息。将(2)中获得的边界点排序,以首末两点构建直线,计算其他点中到直线的最大距离,若距离大于阈值,则将该点作为一个型值点,直线由一条变为两条,依次提取所有型值点。

(4)b样条曲线插值

得到型值点以后,利用累加弦长原理计算节点矢量,反求控制点。然后由控制点和b样条基函数计算曲线方程。取等距区间变量,将曲线离散成密集的曲线点。

3.2分割曲面内部点云

根据边界条件和几何关系确定一个曲面内点,判断该点的3到5个最近点到所有(4)中得到的曲线点的最小距离,将最小距离大于阈值的点认为是曲面内点,依次判断。

3.3在点云数据分块算法基础上,本发明在matlab编写如下功能函数实现点云数据的完整分割:

(1)outline;

该函数处理特征点矩阵matrixcharacteristicpoints,计算每个点到最近k个点的距离总和,将距离大于平均距离的点认为是边界点,采用最小二乘法拟合空间直线依次找到属于外边界的待拟合特征点,结果存储于待拟合特征点矩阵matrixcandidate;

(2)dp;

该函数处理待拟合特征点矩阵matrixcandidate,将特征点按曲线走向排序,计算其他点距首末两点所构直线最远的点,将该点作为分段点,迭代计算待拟合曲线的型值点,结果放入型值点矩阵matrixdatapoints;

(3)controlpoint;

该函数处理型值点矩阵matrixdatapoints,根据累加弦长原理计算非均匀b样条的节点矢量,并反求控制点,结果放入控制点矩阵matrixcontrolpoint;

(4)cmplot;

该函数用于根据控制点和基函数计算b样条曲线的方程,节点矢量由子程序jdsl计算,基函数由子程序wavelet计算,将分段方程的系数保存在系数矩阵matrixcoefficient;

(5)concentrated;

该函数用于处理系数矩阵matrixcoefficient,对每个分段函数的插值m个点,且这些点之间的距离大于点云的平均密度ρ,将所有边界插值点放入边界点矩阵matrixboundary;

(6)regiongrowing;

该函数用于根据边界点矩阵计算曲面内点云数据,根据边界条件和几何关系确定一个曲面内点,判断该点的3到5个最近点到所有边界点中的最小距离,将最小距离大于阈值的点认为是曲面内点,将结果放入曲面内点矩阵matrixinside。

4、cad模型重建

将上述步骤得到的曲面点和特征线导入imageware(逆向工程软件),利用“构建”—“曲面”—“依据点云和曲线拟合”步骤重建曲面,然后把重建后的曲面在catia(交互式cad/cam(计算机辅助设计与计算机辅助制造)系统)里投影得到实体模型。

5、基于特征识别的微型复杂零件建模实例

现通过微型复杂曲面零件(皮带头花纹,如图5所示)的某一部分建模,以验证本发明所提出方法的正确性和有效性。

通过激光扫描获取皮带头的点云数据,点云数据经过精简去噪、空洞填充、删除底面后得到图6中所示的点云,共有27000个数据点。提取特征点后得到6200个特征点,如图7所示。选取一个曲面周围的特征点如图8所示,可以看出部分特征点曲率较大,不适合用一条样条曲线拟合,因此,按照曲面重构的u、v方向,将这些特征点分成四段,分别拟合b样条曲线,如图9所示。图10为分割后的属于同一曲面的点云数据,图11为根据点云和特征线重构的曲面,图12为对曲面投影得到的实体。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

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