基于离散平稳小波变换的半球面和圆锥面模型的辨识方法
【技术领域】
本发明涉及逆向工程领域,尤其涉及关于一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法,用于对被辨识模型进行几何参数提取并确定被辨识模型的形状。
【背景技术】
随着经济的不断发展,市场规模不断扩大,加工业中各种形状的物体层出不穷,曲面检测与辨识在逆向工程与加工业中充当着重要角色。在产品的设计周期中,这种技术显得愈发重要,绝大多数机械零件的外部形状都可用平面、圆锥面、球面等描述。由这些曲面构建而成的物体广泛存在于人们的日常生活中,在对这类物体进行生产加工时,需要将这些曲面以几何参数模型的形式进行精确表示。因此,在智能化现代加工工业中,设计人员会对这类物体的原始模型进行三维测量,得到其点云数据,然后对点云数据进行处理,判断被测物体表面曲面的结构类型并提取出其几何参数模型,也就是利用逆向工程技术实现对其进行设计并大批量高精度加工制造的目的。
目前,在实际应用中,曲面辨识方法主要有传统的利用千分尺的接触式人工测量与辨识方法,借助基于三角网的被测曲面微分属性(如法矢,曲率)进行辨识的方法以及借助图像处理技术进行辨识的方法。人工辨识方法主要受限于操作人员的视力与经验水平,方法的鲁棒性较差,得到的被测曲面几何参数精度较差,使用时间也较长。当借助被测曲面微分属性进行辨识时,由于在曲面点云数据获取过程中,被测曲面表面会不可避免地产生一些噪声(如利用光学三维扫描仪测量被测曲面点云数据时需要在被测曲面表面进行贴片),这将导致被测曲面的微分属性出现误差,因此使用该方法得到的检测结果精度并不理想。例如,何荣,李际军发表的论文“逆向工程中特征曲面的识别方法”中所述方法在处理海量数据时需要进行大量拟合计算,效率也较低。另外,申请号为201110456158.6的发明专利公开了一种三维物体识别方法及系统,运用两个摄像头采集被测区域像素数据,根据得到数据中对应的像素点视差以及边缘检测得到每个点的深度信息,然后进行聚类和分割拓扑分析,并与数据库中特征数据比较得到识别结果。该方法对于物体上不能确定视差的点的深度信息精度不高,影响聚类结果,进而影响识别结果的精度,且该方法在没有特征数据库支持的情况下无法完成。
如何采用现代化技术,快速、准确地对被测曲面进行辨识是目前逆向工程与智能加工领域内急需解决的一个重要问题。
【发明内容】
本发明针对半球面和圆锥面模型,提供一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法,实现对被测模型进行辨识以及几何参数进行提取的目的。
为实现上述目的,本发明是通过以下技术方案实现的:
一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法,其包括以下步骤:
步骤一、利用三维扫描仪对被测模型进行扫描,获取被测模型的点云数据;
利用三维扫描仪对被测模型进行扫描,获取该被测模型表面各点在xyz三维空间内的位置信息,利用获取到的位置信息构成该被测模型的点云数据;
步骤二、对步骤一中所得到的被测模型的点云数据进行格网化处理,得出该被测模型的高程图像,进而分别获取该被测模型表面结构沿x轴方向和沿y轴方向的高程序列;
具体地,将点云数据映射至xy平面上;在xy平面内构建一系列等间距的格网将点云数据分割开,为保证所生成的高程图像的分辨率满足分析要求,构建出的格网的总数应大于或等于该被分割的点云数据中所包含的点的总数;运用数据插值方法对构建出的格网的高程数据进行插值处理;获得所有构建出的格网的高程值,将构建出的等间距格网作为一幅图像中的像素点,即一个格网对应于一个像素点,因此,构建出的各个格网的高程值即是该幅图像中的各个像素点所处位置处的像素值,即获得被测模型的点云数据在xy平面内的高程图像,其中以像素点在xy平面内坐标的x坐标值作为序列的坐标值,将该像素点的像素值作为序列的序列值,通过这样的处理方法并借鉴数字图像处理技术中的逐行扫描显示的理念,可以将一幅完整的高程图像在沿x轴方向上分解为一系列高程序列,以序列中的点对应的像素点在xy平面内坐标的y坐标值作为沿x轴方向上序列的编号,同理地,以像素点在xy平面内坐标的y坐标值作为序列的坐标值,将该像素点的像素值作为序列的序列值,可以将被测模型的点云数据在xy平面内的高程图像沿y轴方向上也分解为一系列高程序列,以序列中的点对应的像素点在xy平面内坐标的x坐标值作为沿y轴方向上序列的编号;
步骤三、利用离散平稳小波变换对步骤二中所获得的被测模型表面结构的高程序列进行处理,获得与被测模型表面结构高程序列相对应的一系列小波细节系数序列;
具体地,对步骤二中得到的被测模型表面结构的一系列高程序列分别进行离散平稳小波变换,即利用离散平稳小波基函数构成的高通滤波器对步骤二中得到的一系列高程序列进行卷积运算,其中,高程序列与高通滤波器卷积所得的结果为高程序列的小波细节系数序列,小波细节系数和梯度存在线性关系,可以用于表征高程序列的梯度变化;
步骤四、对步骤二中得到的被测模型表面结构的高程序列与步骤三中得到的与被测模型表面结构的高程序列相对应的小波细节系数序列进行分析,估计出被测模型的特征几何参数并据此推导出该被测模型的理论数学表达式;
具体地,计算步骤二中各条沿x轴方向上被测模型表面结构的高程序列的序列值之和,得到沿x轴方向的被测模型表面结构的高程序列的序列值之和最大的序列,该序列的编号记为u(对应此序列在高程图像中y轴坐标值),计算步骤二中各条沿y轴方向上被测模型表面结构的高程序列的序列值之和,得到沿y轴方向的被测模型表面结构的高程序列的序列值之和最大的序列,该序列的编号记为v(对应此序列在高程图像中x轴坐标值),则沿x轴方向上u号被测模型表面结构的高程序列与沿y轴方向上v号被测模型表面结构的高程序列即为过被测模型顶点的序列,即该被测曲面的底面圆心对应的像素点在xy平面内的坐标即为(v,u),高程图像中坐标(v,u)位置上的像素点的像素值即为被测模型的高(对于圆锥面而言此值为锥高,对于半球面而言此值为半径),然后计算沿x轴方向上u号被测模型表面结构的高程序列对应的小波细节系数序列中相邻点序列值的比值,得到一个比值序列,由于坐标(v,u)为被测曲面的底面圆心对应的像素点,以v为分界点,分别向v的两侧取值,其方法为在该序列第v个点前利用后一个小波细节系数值依次除以前一个小波细节系数值,第v个点后利用前一个小波细节系数值依次除以后一个小波细节系数值,将按上述方法得到的值按照顺序构成一个序列,比值序列中跳变点的x坐标分别记为p和q,而(q-p-1)的值即为被测模型的底面直径,利用前面估计出的被测模型底面的中心位置、高以及底面直径推导出被测模型的理论数学表达式。
更进一步地,需要判断对上述推导的理论数学表达式是否正确,本发明的辨识方法还包括:
步骤五、将高程序列中的坐标值带入S4中推导出的被测模型的理论数学表达式,得到被测模型表面结构理想的高程序列,并利用步骤三中所述方法得到被测模型表面结构理想的高程序列对应的小波细节系数序列;
具体的,对于沿x轴方向上的高程序列,将序列中点的横坐标依次带入表达式中x值,将该条序列中点在xy平面内坐标的y轴坐标值(该条序列编号)带入表达式中y值,得到高程序列中各点理想的序列值,依次构成沿x轴方向上被测模型表面结构理想的高程序列,对于沿y轴方向上的高程序列,将序列中点的横坐标依次带入表达式中y值,将该条序列中点在xy平面内坐标的x轴坐标值(该条序列编号)带入表达式中x值,得到高程序列中各点理想的序列值,依次构成沿y轴方向上被测模型表面结构理想的高程序列。
步骤六、计算步骤三中得到的与被测模型表面的高程序列相对应的小波细节系数序列中序列值与步骤五中得到的与被测模型表面结构理想的高程序列相对应的小波细节系数序列中序列值之间的决定系数,若决定系数均大于设定阈值,所述阈值在0-1范围内,计算出的决定系数越接近1则相似度越高,优选地,将阈值设定为0.95,若决定系数大于0.95,则确定被测模型为半球或圆锥,即该被测模型的理论数学表达式正确,若决定系数小于此阈值,则确定被测模型不为半球或圆锥,即该被测模型的理论数学表达式错误。
在本发明所述方法中,首先,利用三维扫描仪获取被测模型的点云数据;然后,利用格网化方法对获取到的被测模型的点云数据进行处理,得出该被测模型的高程图像以及高程图像中各行(沿x轴方向)和各列(沿y轴方向)像素的高程序列;然后利用离散平稳小波变换方法对被测模型的高程序列进行处理,得出该被测模型的高程序列对应的小波细节系数序列;再对该被测曲面的高程图像中沿x轴方向与沿y轴方向的高程序列以及对应的小波细节系数序列进行处理分析,估计被测模型的几何参数并据此得到该模型理想的数学表达式;然后计算出被测模型表面结构理想的高程序列,通过离散平稳小波变换得到对应的小波细节系数序列;最后对由实测数据的高程图像得到的该被测模型表面结构的高程序列对应的小波细节系数序列以及被测模型表面结构理想的高程序列对应的小波细节系数序列进行比对分析,从而判断得到该模型理想的数学表达式是否正确,最终达到对被测模型进行辨识的目的以及对被测模型几何参数提取的目的。
与人工辨识方法相比,本发明所述方法不受限于操作人员的视力与经验水平,获取到的定位结果更加客观、准确。本发明所述方法借助离散平稳小波变换方法进行辨识,因此,与借助曲面微分属性进行辨识的方法相比,不需要大量拟合计算,能使用很短的时间完成辨识,效率更高。本发明所述方法在完成过程中不需要特征数据库的支持,更具普适性。
【说明书附图】
图1是根据本发明的一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法流程图;
图2~7是利用本发明提出的一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法对一个圆锥曲面进行辨识的具体实施例的示意图,其中,
图2为通过三维扫描仪得到的被测模型的原始点云数据;
图3(a)为被测模型高程图像的俯视图;
图3(b)为被测模型高程图像的三维视图;
图4(a)示出了发明的一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法中三种类型的被测模型表面结构的高程序列;
图4(b)为三种类型的被测模型表面结构的高程序列在高程图像中的位置的示意图;
图4(c)示出了与图4(a)中的高程序列相对应的小波细节系数;
图5为经过处理沿x轴方向上55号被测模型表面结构的高程序列对应的小波细节系数序列得到的比值序列;
图6(a)示出了本发明的基于离散平稳小波变换的半球面和圆锥面模型的辨识方法中沿x轴方向上30号被测模型表面结构的高程序列对应的小波细节系数序列和被测模型表面结构理想的高程序列的小波细节系数序列;
图6(b)示出了本发明的基于离散平稳小波变换的半球面和圆锥面模型的辨识方法中沿x轴方向上81号被测模型表面结构的高程序列对应的小波细节系数序列和被测模型表面结构理想的高程序列的小波细节系数序列;
图7(a)示出了本发明的基于离散平稳小波变换的半球面和圆锥面模型的辨识方法中沿y轴方向上38号被测模型表面结构的高程序列对应的小波细节系数序列、被测模型表面结构理想的高程序列的小波细节系数序列;
图7(b)示出了本发明的基于离散平稳小波变换的半球面和圆锥面模型的辨识方法中沿y轴方向上89号被测模型表面结构的高程序列对应的小波细节系数序列、被测模型表面结构理想的高程序列的小波细节系数序列。
【具体实施方式】
参考图1~7,结合实例,通过应用本发明所述方法对一个真实的模型进行辨识的具体实施例对本发明所述方法做进一步说明:
图1示出了根据本发明的一种基于离散平稳小波变换的半球面和圆锥面模型的辨识方法的流程图,包括以下步骤:
利用三维扫描仪采集被测曲面点云数据;
利用格网化方法得出被测曲面的高程图像并获取高程序列;
计算得到被测曲面高程序列对应的小波细节系数序列;
处理分析高程序列与小波细节系数序列,得到被测曲面的理论数学表达式;
根据推导出的理论数学表达式获取被测曲面理想的高程序列并计算对应的小波细节系数序列;
对被测曲面实测数据的高程序列对应的小波细节系数序列与理想的高程序列对应的小波细节系数序列进行比对分析,得出结果。
首先,利用三维扫描仪获取被测模型的点云数据,如图2所示;然后,利用格网化方法对步骤一中所得到的被测模型的点云数据进行处理,将点云数据映射至xy平面上,在xy平面内构建一系列等间距的格网将点云数据分割开,为保证所生成的高程图像的分辨率满足分析要求,构建出的格网的总数应大于或等于该被分割的点云数据中所包含的点的总数,运用数据插值方法对构建出的格网的高程数据进行插值处理,使高程数据尽可能均匀地分布在构建的格网中,将构建出的等间距格网作为一幅图像中的像素点,优选地,每个格网相当于一个像素点,将构建出的各个格网的高程值作为该幅图像中的各个像素点所处位置处的像素值,即获得被测模型的点云数据在xy平面内的高程图像,高程图像的俯视图如图3(a)所示,三维视图如图3(b)所示。
以像素点在xy平面内坐标的x坐标值作为序列的坐标值,将该像素点的像素值作为序列的序列值,通过这样的处理方法并借鉴数字图像处理技术中的逐行扫描显示的理念,将一幅完整的高程图像在沿x轴方向上分解为一系列高程序列,这一系列的高程序列可分为3种类型,即不通过被测模型的序列、通过被测模型但不通过其顶点的序列和通过被测模型顶点的序列。图4(a)示出了三条可以表征三种类型的高程序列特点的高程序列,其中,实线代表不通过被测模型的序列(与x轴重合),点组成的线代表通过被测模型顶点的序列,圆圈组成的线代表通过被测模型但不通过其顶点的序列,这三条序列在高程图像中的位置如图4(b)所示,从上到下依次为不通过被测模型的序列,通过被测模型顶点的序列以及通过被测模型但不通过其顶点的序列。
同理地,以像素点在xy平面内坐标的y坐标值作为序列的坐标值,将该像素点的像素值作为序列的序列值,将被测模型的点云数据在xy平面内的高程图像沿y轴方向也分解为一系列高程序列,这一系列的高程序列也可分为3种类型,即不通过被测模型的序列、通过被测模型但不通过其顶点的序列和通过被测模型顶点的序列。
以沿x轴的高程序列中的点对应的像素点在xy平面内坐标的y坐标值作为沿x轴方向上高程序列的编号,以沿y轴的高程序列中的点对应的像素点在xy平面内坐标的x坐标值作为沿y轴方向上高程序列的编号;接着,利用离散平稳小波变换方法对步骤二中所得到的被测模型表面结构的高程序列进行处理,首先,确定离散平稳小波变换的小波基,在这个具体实施例中,采用Haar小波基进行离散平稳小波分解处理;然后,利用基于Haar小波基的离散平稳小波变换对被测模型表面结构的高程序列进行运算,将高程序列与由Haar小波基函数构成的高通滤波器进行卷积运算,得到与被测模型表面结构的高程序列对应的小波细节系数序列,与图4(a)中3条高程序列对应的小波细节系数序列如图4(c)所示;计算各条沿x轴方向上被测模型表面结构的高程序列的序列值(即像素点的像素值)之和,得出沿x轴方向上被测模型表面结构的高程序列的序列值之和最大的序列,也就是说,可以得到该序列所对应的编号(对应y轴坐标),计算步骤二中各条沿y轴方向上被测模型表面结构的高程序列的序列值之和,得到沿y轴方向上被测模型表面结构的高程序列的序列值之和最大的序列,得到该序列所对应的编号(对应x轴坐标),经过计算,本实施例中沿x轴方向上被测模型表面结构的高程序列的序列值之和最大的序列为55号序列,沿y轴方向上被测模型表面结构的高程序列的序列值之和最大的序列为63号序列,则被测模型底面中心对应的像素点在xy平面内的坐标为(63,55),高程图像中此位置的高程值为44.4805,即高为44.4805。
接着,对沿x轴方向上55号高程序列对应的小波细节系数序列进行处理,在第63个点之前,依次利用此序列中后一个序列值除以前一个序列值,在第63个点之后,依次利用序列中前一个序列值除以后一个序列值,由上述方法计算得到的序列值按次序组成的比值序列如图5所示,因为高程序列经过基于Haar小波变换得到的小波细节系数与此高程序列的梯度之间存在线性关系,故当比值序列中某点的序列值发生跳变,代表被测模型的高程序列对应的小波细节系数序列在此点发生跳变,即梯度值在此点发生跳变,也就是说,高程序列的序列值(代表高程)在此点发生跳变,据此可以得到该被测模型的底面边界,进而得到底面直径。如图5中所示出的,在本实施例中跳变点坐标为(11,137.3)以及(114,190.5),故被测模型底面直径为(114-11-1)=102,由于估计出的被测模型底面半径为(102/2)=51,而高为44.4805,底面半径与高明显不同,因此该被测模型可以确定不是半球,则有可能是圆锥,根据圆锥面的特征方程,结合上述提取的几个特征几何信息,推导出被测模型的理论数学表达式:
利用推导出的被测模型的理论数学表达式进行计算,
将沿x轴方向上高程序列中点的横坐标依次带入表达式中x值,将该条序列中点在xy平面内坐标的y轴坐标值带入表达式中y值,得到高程序列中各点理想的序列值,依顺序构成沿x轴方向上被测模型表面结构理想的高程序列,将沿y轴方向上高程序列中点的横坐标依次带入表达式中y值,将该条序列中点在xy平面内坐标的x轴坐标值带入表达式中x值,得到高程序列中各点理想的序列值,依顺序构成沿y轴方向上被测模型表面结构理想的高程序列,并将其与由Haar小波基函数构成的高通滤波器进行卷积运算,得到与被测模型表面结构理想的高程序列对应的小波细节系数序列(理想的小波细节系数序列);然后,选取能代表模型特征的序列,即通过模型但不通过被测模型顶点的序列,在本实施例中,选取沿x轴方向上编号为30号以及81号的序列,沿y轴方向上编号为38号以及89号的序列并分别计算:沿x轴方向上30号被测模型表面结构的高程序列对应的小波细节系数序列中序列值与沿x轴方向上30号被测模型表面结构理想的高程序列对应的小波细节系数序列中序列值(如图6(a)所示)之间的决定系数,结果为0.9842,沿x轴方向上81号被测模型表面结构的高程序列对应的小波细节系数序列中序列值与沿x轴方向上81号被测模型表面结构理想的高程序列对应的小波细节系数序列中序列值(如图6(b)所示)之间的决定系数,结果为0.9841,沿y轴方向上38号被测模型表面结构的高程序列对应的小波细节系数序列中序列值与沿y轴方向上38号被测模型表面结构理想的高程序列对应的小波细节系数序列中序列值(如图7(a)所示)之间的决定系数,结果为0.9849,沿y轴方向上89号被测模型表面结构的高程序列对应的小波细节系数序列中序列值与沿y轴方向上89号被测模型表面结构理想的高程序列对应的小波细节系数序列中序列值(如图7(b)所示)之间的决定系数,结果为0.9848。应理解,可以选取其他编号的高程序列,优选地,沿x轴方向上选取至少两个高程序列(分布于顶点两侧)来计算决定系数,沿y轴方向选取至少两个高程序列(分布于顶点两侧)来计算决定系数。
在本实施方案中,预先设定阈值为0.95,上述决定系数计算结果均大于0.95,至此即可确定被测模型为圆锥面模型,底面半径为51,锥高为44.4805。在本实施方案中,在MATLAB2016软件环境下对被测模型完成分析识别,主机配置如下:英特尔i5-6500、主频为3.20GHz的处理器,内存4GB,识别被测模型耗时1.066s,由此可知,利用本发明所述方法可以快速精确地对半球面和圆锥面进行辨识。
以上所述,仅为本发明具体实施方法的基本方案,但本发明的保护范围并不局限于此,任何熟悉本技术领域的人员在本发明公开的技术范围内,可想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。所有落入权利要求的等同的含义和范围内的变化都将包括在权利要求的范围之内。