法律状态公告日
法律状态信息
法律状态
2017-05-24
未缴年费专利权终止 IPC(主分类):G06T11/20 授权公告日:20080213 终止日期:20160405 申请日:20060405
专利权的终止
2013-11-13
专利权的转移 IPC(主分类):G06T11/20 变更前: 变更后: 登记生效日:20131022 申请日:20060405
专利申请权、专利权的转移
2008-02-13
授权
授权
2006-12-06
实质审查的生效
实质审查的生效
2006-10-11
公开
公开
技术领域
本发明涉及用三维扫描系统对物体建立点云模型过程中由离散点构造曲线的一种方法,尤其涉及一种三维扫描系统中截线云的曲线构造方法。
背景技术
逆向工程在实践中有着广泛的应用前景。主要是由于不少产品外形复杂,如汽车和飞机的覆盖件、人造假肢、陶瓷产品、艺术雕塑品及各种复杂零部件等,其自由曲面的设计表达或数学模型的建立都十分困难,现有的CAD系统尚难以进行严格的几何描述。特别是对于我们发展中国家,怎样在国外的先进产品的基础上进行适当和必要的修改以便快速高效的得到有自主知识产权的产品投放市场,对于节省费用,缩短研发周期,提高竞争力和减少风险有着非常重要的意义。
在逆向工程中,一般是通过三坐标测量机(CMM)、激光测量机、光栅扫描仪或工业CT等先进的快速测量系统获取海量数据点(点云),然后对这些点云数据的过滤处理和无缝拼接,由拼接后的点云块进行切割得到截线云,再在点或线的基础上构造面,从而获得物体的数字模型。通过得到截线云构造特征曲线,然后再由特征曲线构造出曲面,以得到物体的数字模型。而曲线质量的好坏及其对原始数据的还原程度将极大地影响所构建曲面的质量和对原始物体的还原程度。因此通过截线云离散点生成曲线是逆向工程中非常关键的承上启下的一环,直接影响重构成功与否和CAD模型的质量,对其后续环节起着非常关键的制约作用。
目前,关于点生成曲线在计算机上有力表示的算法理论方面取得了很大的进展,已发表了相当数量的文献,其中一些算法获得了较为广泛的应用,主要有Bezier,均匀B样条,NURBS等曲线算法。但这几种方法是把已知点作为控制点,由这些点生成的样条曲线是对它们的逼近而不是插值。而逆向工程的一个要求就是精确还原原始物体特征。因此我们应让生成的曲线插值于测量点,也就是说把这些测量得到的点作为型值点。另外由于快速测量系统实际测量获得的是海量离散数据点,数据量非常大,因此如何快速的将大量的散乱点数据转化为表达能力更强而数据量却大大减少的线信息,且其对原始数据的还原程度和所构建曲面的质量和对原始物体的还原程度影响较小是关键。
发明内容
本发明提供一种能够保持精确度且能加快由散乱点数据转化为表达能力更强而数据量却大大减少的线信息的速度的三维扫描系统中截线云的曲线构造方法。
本发明采用如下技术方案:
一种用于对预处理后的点云进行处理的三维扫描系统中截线云的曲线构造方法:
(1)对预处理后的点云进行平行切割,得到N个平行截面,再在每个平行截面的上方和下方分别对点云实施平行切割,得到N个含有平行截面的截体,将各个截体内的点云上的点向该截体内的平行截面进行垂直投影,并将该截体内平行截面点的垂直投影视为截体内平行截面与点云的截点,由各个截体内平行截面与点云的截点分别构成N条链条,在各个截体内的截点中分别选出一组处理点,该处理点是满足以下条件的截点,该条件为两处理点间的距离为点云内相邻两点之间的间距或其整数倍,由此得到的N组处理点即为截线云;
(2)以连续的4~5个型值点为一组,将n个型值点分成k组型值点,由第一组的型值点按照Bezier曲线的定义生成第一组的控制点并由控制点生成第一条曲线;以后各条曲线的第一个控制点由型值点按照Bezier曲线的定义生成,第二个控制点由前一条曲线的最后两个控制点和当前曲线的第一个控制点按照Bezier曲线的定义生成,其余控制点由型值点按照Bezier曲线的定义生成,连接点的切线由前一条曲线的最后两个型值点和当前曲线的前两个型值点产生;
(3)重复步骤(2)直到求出所有截线云的控制点,然后根据控制点构造出曲线。与现有技术相比,本发明具有如下优点:
本发明主要用于对三维扫描系统得到物体表面海量离散数据点数据转化为表达能力更强而数据量却大大减少的线信息的应用场合。利用本发明中截线云的获取方法,然后再逐条处理截线云数据,利用本发明中的曲线构造算法,构建出被测物体的轮廓曲线模型。该方法主要有以下优点:
(1)本发明主要针对三维扫描系统得到的原始点云模型,不需要任何的网格化处理,适应性广,速度快;
(2)可以交互选择平行切割点云的方向,能尽量使得其方向沿着某一方向的特征线,大大提高了还原原始物体的精确度;
(3)平行切割获取截线云不但使以后的截线云排序时间大大减少,而且通过取截线云使得三维空间的处理变成了共面的处理,为以后调节曲线处理提供巨大方便,避免三维调节曲线的复杂性;
(4)由型值点反求控制点生成曲线的效率好坏主要取决于矩阵求逆。而本发明提出的反求算法大大降低了矩阵的阶,因此也降低了算法的复杂性,使型值点反求控制点生成曲线呈现很高的效率;
(5)操作过程比较简单,平行截面的间距可采取默认值或者交互确定,接下来的的步骤都可自动完成,速度快,并且该方法具有很强的通用性。
附图说明
图1是逆向工程流程图。
图2光栅式三维扫描系统组成图。
图3是获取截线云并构造曲线算法的整体流程图。
图4是获取截线云算法的流程图。
图5是构造曲线的算法流程图。
图6是经过预处理的小熊模型点云数据图形。
图7是给定平行面间距d=4.0情况下求得的截线云数据图形。
图8是从附图7中的截线云数据抽取出的一段数据链条图形。
图9是从附图8中的个点连接成一条圆滑的曲线。
具体实施方式
实施例1
一种用于对预处理后的点云进行处理的三维扫描系统中截线云的曲线构造方法:
(1)对预处理后的点云进行平行切割,得到N个平行截面,再在每个平行截面的上方和下方分别对点云实施平行切割,得到N个含有平行截面的截体,将各个截体内的点云上的点向该截体内的平行截面进行垂直投影,并将该截体内平行截面点的垂直投影视为截体内平行截面与点云的截点,由各个截体内平行截面与点云的截点分别构成N条链条,在各个截体内的截点中分别选出一组处理点,该处理点是满足以下条件的截点,该条件为两处理点间的距离为点云内相邻两点之间的间距或其整数倍,由此得到的N组处理点即为截线云;
(2)以连续的4~5个型值点为一组,将n个型值点分成k组型值点,由第一组的型值点按照Bezier曲线的定义生成第一组的控制点并由控制点生成第一条曲线;以后各条曲线的第一个控制点由型值点按照Bezier曲线的定义生成,第二个控制点由前一条曲线的最后两个控制点和当前曲线的第一个控制点按照Bezier曲线的定义生成,其余控制点由型值点按照Bezier曲线的定义生成,连接点的切线由前一条曲线的最后两个型值点和当前曲线的前两个型值点产生;
(3)重复步骤(2)直到求出所有截线云的控制点,然后根据控制点构造出曲线。
实施例2
为了能精确还原原始物体特征,在由截线云构造曲线的过程中,根据Bezier曲线提出一种新的由型值点反求控制点的方法。它把由k个低阶的Bezer曲线拼合产生的复合曲线来代替单一的高阶Bezier曲线,避开高阶矩阵的求逆问题。
因此,本发明主要涉及以下两方面的内容:
1)截线云的获取
在点云预处理之后,通过旋转平移选好角度后,给定一系列平行面,求得物体(实际上是物体表面上的海量点)在这一截面上的数据点。但海量数据是离散的,给定某一任意平面,可能没有(或者只有极个别点)在截面上,为此,我们只能在精度许可范围内,尽可能地去接近真实世界,这样也就产生了如下的算法(算法流程图如附图4所示):
首先由海量数据中任意相邻的一对点得到一个距离,而由这样的M(M>100)个距离得到的平均值为d。
(1)对点云进行预处理,去除杂点之后,通过旋转平移选好切割角度后,给定一系列垂直于特征线的等间距的平行面(间距默认为d的三倍);
(2)在给定平行面上下各作一个平行于给定平行面的平行面(其间距均为d),这样就由派生出来的两个平行面构成一个截体,而我们则把落入这个截体内的点在给定平行面上的垂直投影近似作为真实物体上的点落在给定平行面上的点,这样就得到给定平面与真实物体的交点(截点)。同理,我们也就得到物体在一组平行面上的截点;
(3)对这一组平面中的每一个平行面,其上的截点构成一条链条。设这组平行面共有N个,则得到N个链条;
(4)对每一个链条进行处理:由这些截点得到一组处理点,这些处理点满足条件:
A)两点间的距离为d或者d的整数倍;
B)该点在给定截面(给定截体范围内)上下都有临近的离散点。
(5)对这N个链条处理就可以得到N个链条的处理点。即得到截线云2)特征曲线的构造
为了能精确还原原始物体特征,在由截线云构造曲线的过程中,根据Bezier曲线提出一种新的由型值点反求控制点的方法。在逆向工程中由离散三维数据点得到的有序线上的型值点个数可能达到十个甚至几十个,这样,求逆的运算量会非常大,对于操作的响应时间就很长。根据Bezier曲线的性质,我们提出一种把n个型值点按序分成k组型值点(每组4~5个点),由这k组型值点分别求控制点,并加入一定的约束使求出的控制点生成的各条曲线连成的复合曲线满足C1的连续要求。具体如下:
(1)先把n个型值点按序分成连续的k组型值点(每组4~5个点);
(2)第一组的控制点直接由第一组的型值点按照Bezier曲线的定义生成;
具体做法如下:根据如下公式求出第一组型值点的控制点
(3)在求第N(N>1)条曲线控制点时,加入约束条件:第N(N>1)条曲线的第二个控制点由前一条曲线的最后两个控制点和当前曲线的第一个控制点得到;连接点的切线由前一条曲线的最后两个型值点和当前曲线的前两个型值点决定。
具体做法如下:
假设前一组型值点有s+1个,为Q1i(i=0,1,...,s),第二组型值点有t+1个,为Q2i(i=0,1,...,t),Q1s=Q20。结合Bezier曲线的定义和性质,根据加入的约束条件,对Bezier曲线进行升阶,t1=t+1。则有:
根据上面给出的公式即可求出第N(N>1)条曲线的控制点,其中P1j(j=0,1,...,s)为前一组型值点的控制点,P2j(j=0,1,...,t1)为第二组型值点的控制点。
(4)重复(2)直到求出所有截线云的控制点,然后根据控制点构造出曲线。
曲线构造流程图如附图5所示。
根据上述方法,通过VC++6.0平台用C++编程实现了对点云平行切割获取截线云并构造曲线的操作。图6是经过预处理的小熊模型点云数据。图7是默认给定平行面间距为相邻点间距的三倍情况下求得的截线云数据。图8是从附图7中的截线云数据抽取出的一段数据链条。图8是根据抽取出链条数据构造出的曲线。
机译: 用于三维扫描系统的驾驶设备和用于使用该三维扫描系统进行牙齿建模的三维扫描系统
机译: 在椭圆曲线密码学中基于动态窗口标量乘法的装置和方法,用于保护云与云用户之间的通信
机译: 线,尤其是曲线的自动扫描系统