发明内容
本发明的目的是提供一种利用轮廓形状信息的层间轮廓匹配方法,其实质是利用矢量化轮廓的图元形状在层间实现图元匹配,然后在图元层间匹配的基础上再进行层间轮廓匹配。
为实现本发明目的而采用的技术方案是这样的,基于图元形状信息的层间轮廓匹配方法,包括以下步骤:
1)获取被测物体的矢量化层轮廓模型;轮廓矢量化是一种非常成熟的技术,其中基于图元识别矢量化的方法在工件的逆向重建中有较好的应用效果,本发明借鉴段黎明的“面向逆向工程的工业CT图像预处理系统开发”和Fenglin Liu的“Study on Algorithms of Graphic Element Recognition for PreciseVectorization of Industrial Computed Tomographic Image”两篇文献中的图元识别矢量化方法,对ICT序列切片图像轮廓进行矢量化,矢量化之后的轮廓由圆、圆弧和直线段三种图元组成。
2)对分别处于相邻两层中的所述图元进行层间匹配,包括层间圆与圆匹配、层间圆与圆弧匹配、层间圆弧与圆弧匹配和层间直线段与直线段匹配;其中层间圆与圆匹配、层间圆与圆弧匹配和层间圆弧与圆弧匹配是通过判断各圆或圆弧的半径长度和圆心位置的接近程度进行匹配的;层间直线段与直线段匹配是通过判断各直线段平行接近和端点接近进行匹配的。
3)在相邻两层中针对步骤2)中已配对的图元,对由圆弧和直线段组成的复合轮廓进行两两匹配,在相邻两层中的任一层选定任一个复合轮廓作为待匹配复合轮廓,检索并验证构成所述待匹配复合轮廓的所有图元是否除了与对象轮廓匹配之外,都不再与其他轮廓中的图元匹配,如是则待匹配复合轮廓与对象轮廓层间相互匹配,否则不匹配。
4)对相邻两层中经过步骤3)仍未匹配的圆和复合轮廓进行层间一一匹配,匹配的方法是利用两轮廓形心的接近性进行匹配与否的判断。
5)对经步骤3)和4)后仍未匹配的圆和复合轮廓进行层间分叉轮廓匹配;匹配的方法是仍是利用两轮廓形心的接近性进行匹配与否的判断。
6)对经以上各步骤匹配后所剩余的轮廓进行层间退化轮廓匹配处理,即求退化点,方法为作过对象轮廓形心且与两层层心连线的平行的直线与另一平面的交点即为退化点。
具体地:步骤2)通过判断各圆或圆弧的半径长度和圆心位置的接近程度进行匹配的步骤如下:
2a)分别在相邻的层I和层II中按照圆心重合、半径相等的原则将多个圆弧组合成一体,获得圆弧组合。
2b)在层I中选定一圆或圆弧组合作为匹配的基准圆或基准圆弧组合Ob,半径为rb。
2c)遍历层II中的圆或圆弧组合,寻找目标圆或圆弧组合,满足|ri-rb|≤τr,ri表示目标圆或圆弧组合的半径,rb表示基准圆或基准圆弧组合的半径,τr表示阈值。
2d)在层I中连接层心S
1和O
b两点,对基准圆或圆弧组合O
b构建基准向量
在层II中以同样方法对各个目标圆或圆弧组合构建待匹配向量
在待匹配向量
中寻找与基准向量
最接近的向量,获得与基准圆或基准圆弧组合O
b匹配的圆或圆弧组。
步骤2)所述判断各直线段平行接近和端点接近的步骤如下:
3a)将层I和层II中的所有直线段按从左到右的方向构建直线段向量,在层I中选取一个作为基准直线段向量,在层Ⅱ中寻找与层Ⅰ中基准直线段向量平行的待匹配直线段向量。
3b)判断各待匹配直线段向量与基准直线段向量是否处在各自层心的同侧,如果在同侧,则保留该待匹配直线段向量,否则丢掉。
3c)将由所述步骤3a)和3b)两步骤所得的待匹配直线段向量的起始端点和终止端点分别与基准直线段向量的起始端点和终止端点连接为起始端点连线和终止端点连线,在每个待匹配直线段向量的起始端点连线和终止端点连线的距离中保留最大值,比较各个最大值获得其中的最小值,该最小值所对应的待匹配直线段向量即与基准直线段向量匹配。
步骤4)中的圆和复合轮廓匹配步骤如下:在层Ⅰ中选定一复合轮廓或圆;在层Ⅱ中选定一圆或复合轮廓,连接两轮廓的形心,形成一空间向量L;判断空间向量L与连线两层心构成的空间向量
是否平行,若两向量平行,则匹配,否则不匹配。
步骤5)所述层间分叉轮廓匹配包括复合轮廓分叉和有圆参与的层间分叉。
所述复合轮廓分叉的步骤如下:①取层Ⅰ中的一个复合轮廓为基准复合轮廓,检测组成该基准复合轮廓的各个图元在层Ⅱ中与之匹配的对应图元的分布,若这些对应图元分布在nF个复合轮廓中,且这nF个复合轮廓中有且只有这些与之匹配的匹配图元,则基准复合轮廓与这nF个复合轮廓分叉匹配;②在基准层中遍历所有未匹配复合轮廓,按照步骤①进行匹配;③将层Ⅱ作为基准层,进行①②步骤,在层Ⅰ中寻找匹配的分叉复合轮廓。
步骤6)所述层间退化轮廓匹配即是经过各个步骤后在层Ⅰ中仍没有匹配的圆或复合轮廓在层Ⅱ中寻找一点与之匹配,同理层Ⅱ中未匹配的圆或复合轮廓在层Ⅰ中寻找一点与之匹配。
本发明的能达到的有益技术效果如下:本发明是针对工件的在逆向工程中的表面重建而提出的一种新的层间图元及轮廓匹配方法。在方法上是在ICT序列扫描图像提取的层轮廓的矢量化基础上,对矢量化的轮廓特征形状资源作以利用,并结合相邻层的轮廓形状具有一定的相似性的特点。在实验中,本发明对茶壶的层间轮廓在层间轮廓一一匹配、分叉匹配和轮廓退化都可以实现满意的匹配效果,实验结果参考说明书附图14~16。本发明是一种针对性的层间轮廓匹配新方法,对像茶壶一类的具有复杂结构的工件在逆向工程中的层间轮廓匹配具有显著效果。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明范围内。
现成的轮廓矢量化方法有许多种且已经很成熟,本发明的输入数据即被测物体的矢量化层轮廓模型是利用现有的基于图元识别的轮廓矢量化技术而得到的,具体来说是借鉴段黎明的“面向逆向工程的工业CT图像预处理系统开发”和Fenglin Liu的“Study on Algorithms of Graphic Element Recognition forPrecise Vectorization of Industrial Computed Tomographic Image”两篇文献中的图元识别矢量化方法。
实施例1方法概述
为方便以后的叙述,现自定义有关的术语若干,并在图1中示意:
①封闭图元与非封闭图元:封闭图元即圆,如图1中圆O
2,非封闭图元是指直线段和圆弧,如图1中线段AC、BC和圆弧
。
②简单轮廓和复合轮廓:简单轮廓亦是指圆,而复合轮廓指由非封闭图元——圆弧和直线段组合而成的轮廓,如图1中由线段AC、BC和
相互连接组成的轮廓。
③层心:层心指一平面切片层中所有轮廓的几何中心,层心是由一层中的所有轮廓密集离散化后进行坐标平均而得到,用公式(1)表示。如图1中点是拥有复合轮廓AC和圆O2的层的层心;
(1)
公式中(xS,yS)为层心点坐标,(xi,yi)为平面内各个离散点的坐标,其中i=1,2……n。
④层圆向量与层圆弧向量:连接层心与圆的圆心构成层圆向量,如图1中
连接层心与圆弧的圆心构成层圆弧向量,如图1中
本发明所述的层间轮廓匹配方法分为三个步骤:①在相邻两层间,对图元进行两两相互匹配;②对由非封闭图元组成的复合轮廓进行层间两两匹配;③之后,根据①②两步骤的结果,对两层中仍未匹配的圆和复合轮廓进行层间一一匹配;④对层间分叉轮廓进行匹配;⑤对层间退化轮廓进行匹配处理。以上所述步骤流程如图2所示。所得结果,即取得的层间图元及轮廓匹配结果示意如图3:粗实线代表轮廓线;上下两层中相互匹配的图元被标注相同的数目。
实施例2层间图元匹配
层间图元的匹配,分为层间圆或圆弧匹配、层间直线段匹配两种情况。
2.1层间圆或圆弧匹配
所谓层间圆或圆弧匹配是指层间圆与圆匹配、层间圆与圆弧匹配、层间圆弧与圆弧匹配三种情况。这三种情况层间图元的匹配都是基于“半径阈值原则”和“向量接近原则”。
“层间圆或圆弧匹配方法”示意如图4,其中I和II表示相邻的上下两层,S1和S2为上下两层的层心。层间圆或圆弧匹配步骤如下:
①在相邻两层的各层中进行圆弧的组合,组合的原则是它们的圆心重合、半径相等,组合后的各个圆弧成为一体,称为“圆弧组合”;
②不妨在层I中选定一圆Ob作为匹配的基准圆或基准“圆弧组合”,半径为rb;
③遍历层II中的圆或圆弧组合,寻找半径与rb相差在阈值τr之内的圆或圆弧组合,即寻找的目标圆半径ri须满足关系式:
|ri-rb|≤τr (2)
阈值τr由重建对象的尺寸大小、形状复杂程度及切片层间距几个因素来确定,公式(2)确定的判断原则称为“半径阈值原则”。一般情况下满足公式(2)的目标圆或圆弧组合不止一个,设数目为m,现将寻找得到的目标圆或圆弧组合称为待匹配圆(或圆弧组合),图4中示意为三个待匹配圆(或圆弧组合)O1、O2和O3。
④在层I中连接S
1和O
b两点,对基准圆(或圆弧组合)O
b构建向量
称之为基准层圆向量;在层II中以同样方法对各个待匹配圆构建待匹配层圆向量(图4中示意为向量
和
),于这些待匹配层圆向量中寻找与向量
最接近的向量,所用方法为“向量比较法”,得到的结果层圆向量所映射的圆即为基准圆在另一层的匹配圆。
“向量比较法”示意如图5,其中Mb为基准层圆向量的模,(i=1,2,……m)为待匹配层圆向量的模,(i=1,2,……m)为从基准层圆向量到第i个待匹配层圆向量在数学意义上的转角,数学表示为公式(3),公式(3)的意义即为两向量模最接近和夹角最小的结合,取得结果的待匹配层圆向量i即为所求层圆向量,这里将公式(3)确定的判断原则称为“向量接近原则”。
(3)
以上所述是为层I中单个圆(或圆弧组合)进行层间圆(或圆弧组合)匹配的方法,而在实际中相邻两层一般同时有多个圆(或圆弧组合),下面叙述此情况下采取的措施,步骤如下:
①将相邻两层中的所有圆(或圆弧组合)分别赋予未匹配标识——“0”。
②以其中一层为基准层,标记该层中的所有圆(或圆弧组合),不妨设基准层中有n1个圆(或圆弧组合),分别标记为O1、O2、……
③遍历基准层中的各个圆(或圆弧组合)(Oi,i=1、2、3……),为圆(或圆弧组合)Oi执行“层间圆(或圆弧组合)匹配方法”,若在另一层中找到匹配圆(或圆弧组合),则为圆(或圆弧组合)Oi和匹配圆(或圆弧组合)都赋予匹配标识数目——“j1”(“j1”表示第j1对匹配的圆(或圆弧组合),j1=1、2、3……),否则圆(或圆弧组合)Oi仍保持未匹配标识“0”。
以上步骤流程如图6,其中虚线方框代表执行“层间圆(或圆弧组合)匹配方法”这一步骤。在匹配结果中,除匹配的p1(p1≤n1)对圆(或圆弧组合)以外,还会有仍保持未匹配标识“0”的未匹配圆(或圆弧组合)。
2.2层间直线段匹配
层间直线段匹配方法在图7中示意为以层Ⅰ中直线段AB为基准直线段,在层Ⅱ中寻找一个与之匹配的直线段,图中S1和S2为层Ⅰ层Ⅱ的层心。不难想象,若分别位于相邻两层中的两直线段对应匹配,则它们近似平行,且它们在切片平面上的投影位置尽可能地接近。基于此,直线段匹配利用了三个判断原则,即“向量接近原则”、“层心异同侧原则”和“端点接近原则”,介绍如下:
①向量接近原则:将两层中的所有直线段按从左到右的方向构建直线段向量,图6(b)示意即分别构造直线段向量
(基准直线段向量)、
和
然后利用前面所述的“向量接近原则”在层Ⅱ中寻找与层Ⅰ中
相接近的待匹配直线段向量。然而向量接近原则所表达的直线段平行及长度接近两个条件并不是直线段层间匹配的充分条件,因此附加以下②③两个原则。
②层心异同侧原则:此原则可概括为判断层Ⅱ中层心相对于待匹配直线段的方位与层Ⅰ中层心相对于基准直线段的方位是否一致,即是否同为左侧或右侧,方法示意如图7(c):在层Ⅰ中分别连接层心S
1和向量
的始点与终点构造两个向量
和
利用右手螺旋定则判断
到
的叉积
方向竖直向下;同样道理,在层Ⅱ中求得各待匹配直线段向量所对应的叉积向量方向,如为
求对应的叉积向量
的方向,看这些叉积向量的方向与
的方向是否一致,若一致,则可考虑相应直线段与基准直线段匹配,否则不考虑,图中
方向向下,同
方向相同,是以直线段EF满足层心异同侧原则,而对直线段GH用以上方法试验,则不满足层心异同侧原则。
③端点接近原则:将各直线段向量投影到一切片层平面,进行“向量对应端点距离较大值最小”的比较,比较方法示意如图7(d),介绍如下:(i)将基准直线段向量
与其中一待匹配直线段向量(
或
)作以下运算:将
与
(或
)的起始端点和终止端点分别两两相互连接,得两直线段,如图中的AC、BD,比较两直线段的长度,取较大值;(ii)遍历各待匹配直线段向量(
和
)执行(i),在执行结果即各个较大值中取最小者,其对应的待匹配直线段即可考虑为所求匹配直线段。“向量对应端点距离较大值最小”比较方法的数学表示为公式(4),其中q表示待匹配直线段的数目,t
i和e
i表示基准直线段向量与第i个待匹配直线段向量的起始点连接线段和终止点连接线段,|·|表示线段长度。
(4)
将基准直线段与另一层中的各个待匹配直线段依次按照①②③三个原则来验证,直到得到至多唯一的匹配直线段,则终止,基准直线段可能出现不能匹配的情况。
和层间圆匹配相似,层间直线段匹配在实际中亦有以下几个步骤:将相邻两层中的所有直线段赋予未匹配标识“0”;将其中一层作为基准层,标记基准层中的各个直线段(不妨设共n2个)以便识别;遍历基准层中各个直线段,分别执行①②③原则验证的匹配方法;将匹配的直线段标识“j2”(j2为第j2对匹配的直线段,j2=1、2、……p2,p2≤n2),而未匹配直线段依然标识“0”。
实施例3层间轮廓匹配
层间轮廓匹配分为层间轮廓一一匹配、层间轮廓分叉和层间轮廓退化三种情况。
3.1层间轮廓一一匹配
层间简单轮廓匹配即层间圆匹配已在前面层间图元匹配一节中讨论过,本节所介绍的层间轮廓一一匹配,分为层间复合轮廓和复合轮廓匹配、层间简单轮廓和复合轮廓匹配两种情况,示意如图8,其中S1和S2表示相邻两层的层心,虚线表示相邻两层层心之间连线和对应轮廓形心之间连线。
3.1.1层间复合轮廓和复合轮廓的匹配
层间复合轮廓的一对一匹配是通过检索层间匹配图元而完成的,参考图8,介绍如下:
①在基准层(层Ⅰ)中选取一复合轮廓,遍历此复合轮廓中的所有的匹配图元(不妨设有nb个),考查此nb个图元在层Ⅱ中的所匹配的图元(即同一类图元的匹配标识“j1”或“j2”或“j3”相同),若此nb个匹配图元亦在一个复合轮廓内,则认为此两个复合轮廓在层间相互匹配;
②在基准层中遍历各个复合轮廓,执行步骤②。
以上即为完成相邻两层复合轮廓之间匹配的所有步骤,对步骤②需作以下说明:匹配的复合轮廓中标识“0”的未匹配图元退化成为另一层中对应轮廓上一点;若复合轮廓在另一层中未有匹配的复合轮廓,则这个复合轮廓可能会与另一层中的圆匹配,亦可能出现退化、分叉两种情况。
3.1.2层间简单轮廓和复合轮廓匹配
层间圆匹配中标识“0”的未匹配圆图元,可与复合轮廓形成层间一一匹配。在层间圆和复合轮廓匹配的求解中须用到判断空间向量平行与否的空间向量夹角阈值原则。
3.1.2.1空间向量夹角阈值原则
令两空间向量:
公式(5)中τv为夹角阈值,两空间向量夹角θ若满足公式(5),则认为它们平行,否则认为它们不平行。
3.1.2.2求解方法
参考图8,层间简单轮廓和复合轮廓匹配的求解步骤如下:
①在基准层(层Ⅰ)中选定一复合轮廓(圆);
②在层Ⅱ中选定一圆(复合轮廓),分别连接两轮廓的形心,形成一空间向量L;
③将空间向量L与连线两相邻层层心构成的空间向量
依据空间向量夹角阈值原则作平行与否判断,若两向量平行,则圆与复合轮廓是匹配的,否则不匹配;
④遍历层Ⅱ中的圆(复合轮廓),为之执行步骤②③;
⑤遍历层Ⅰ中的复合轮廓(圆),为之执行①②③。
以上即为层间简单轮廓和复合轮廓一一匹配的所有步骤。
3.2层间轮廓分叉匹配
层间轮廓分叉匹配分为层间复合轮廓分叉和有圆参与的层间分叉两种情况。
3.2.1层间复合轮廓分叉
所谓层间复合轮廓分叉是指只有复合轮廓参与的分叉,示意如图9。传统上的层间轮廓分叉分为一对二、一对多和多对多三种情况,本文考虑到ICT序列图像层间距充分小和相邻ICT图像轮廓之间很相似的实际情况,多对多分叉出现几率很小,因而多对多分叉不予考虑,即只讨论轮廓的一对二和一对多分叉的层间匹配。
层间复合轮廓分叉问题的研究对象为相邻两层中在“层间轮廓一一匹配”中未匹配的复合轮廓,将这些复合轮廓的集合记为复合轮廓集M。层间复合轮廓分叉匹配的求解方法与层间复合轮廓一一匹配相同,亦是通过穷尽检索层间匹配图元而完成的,求解步骤如下:
①取基准层(层Ⅰ)中的轮廓集M中的一个复合轮廓(基准复合轮廓),检测其匹配(标识非“0”)的各个图元在另一层(层Ⅱ)中对应图元的分布,若这些对应图元分布在nF个复合轮廓中,且这nF个复合轮廓中有且只有这些标识非“0”的匹配图元,即其余图元都为标识“0”的未匹配图元,则基准复合轮廓与这nF个复合轮廓分叉匹配;
②在基准层中遍历轮廓集M中的各个复合轮廓,为之执行步骤②;
③以①②步骤后轮廓集M中未分叉匹配的复合轮廓为研究对象,将层Ⅱ作为基准层,进行①②步骤,在层Ⅰ中寻找匹配的分叉复合轮廓。
以上三个步骤完成后,剩余的未匹配复合轮廓,留待以后的章节处理。
3.2.2有圆参与的层间分叉
层间轮廓一对一匹配后剩余的标识“0”的未匹配圆,可相互组合可形成分叉(称为“圆分叉”),亦可与复合轮廓组合形成“组合分叉”,如图10所示。
同层间复合轮廓分叉相同,层间圆分叉和组合分叉只考虑一对二和一对多的分叉,不考虑多对多分叉。本小节对圆分叉和组合分叉两种情况统筹考虑,处理的数据对象为相邻两层中经过以上所有匹配步骤之后的未匹配圆和未匹配复合轮廓,记这些轮廓的集合为Q。层间圆分叉和组合分叉求解的步骤如下。
①遍历基准层(层Ⅰ)中的轮廓集Q中的轮廓(复合轮廓或圆),进行两轮廓组合,如图12所示,两轮廓组合的原则是:ⅰ两轮廓形心距离dc(如图11(a):|AB|=dc)满足关系式:dc≤τd,τd由经验确定;ⅱ两轮廓形心连线不经过其他图元。
求这些两轮廓组合的几何中心,记录为Ui(i=1、2、3……v),v为所求轮廓组合的数目。轮廓组合几何中心的求法同公式(1),只是自变量和因变量有所不同。
②在另一层(层Ⅱ)中选定一轮廓集Q中的轮廓(复合轮廓或圆),连线此轮廓形心与上一层的所有两轮廓组合的形心Ui构成v个空间向量,用“空间向量夹角阈值原则”分别检测这v个空间向量与端点为两层层心的空间向量(称为“层心空间向量”)是否平行;若空间向量与层心空间向量平行,则保留相应的两轮廓组合,即此两轮廓组合与所对应的下一层的轮廓形成一对二分叉,否则不保留此两轮廓组合,即将此两轮廓组合拆分成两个单独的轮廓。
③在层Ⅱ中遍历所有轮廓集Q中的轮廓,并分别为之执行步骤②。
④将经过①②③步骤后轮廓集Q中剩余的轮廓作为数据对象,继续进行分叉匹配:将两层在分叉处理中的作用位置倒过来,即将层Ⅱ中的轮廓做两轮廓组合,再将两轮廓组合与层Ⅰ中的轮廓作①②③分叉匹配处理。
⑤进行层间一对三分叉匹配,方法与层间一对二分叉时的步骤①②③④相似,只是在步骤①中基准层中做三轮廓组合时的组合原则有所不同:在原则ⅱ中,要求轮廓形心连线组成的多边形不与其他图元有交叉,如图12(a)中△CDE不与其他图元交叉。
⑥依次做层间一对四分叉,一对五分叉直至一对N分叉,方法与一对三分叉相同;分叉求解终止的条件是在做一对N+1分叉时无解,所谓无解是指在求解过程中没有找到符合原则ⅰ和ⅱ的轮廓组合或没有找到与层心空间向量平行的对象空间向量。
以上即为求解圆分叉和组合分叉层间匹配的所有步骤。
3.3层间轮廓退化匹配
在完成所有以上的所有轮廓匹配步骤(轮廓一一匹配和分叉匹配)之后,将剩余的轮廓集合记为T,这些轮廓的层间匹配只有层间退化一种情况,如图13所示。
实际上层间轮廓退化更多的是一种轮廓完全退化的情况,即轮廓在到达另一层之前已退化完毕,而考虑到在ICT图像序列中层间距充分小和相邻ICT图像轮廓之间很相似的情况,轮廓退化在另一层中的匹配形状用一点来近似。退化点的求取方法示意如图13:过层II中未匹配轮廓形心O
X作与层心空间向量
r平行的直线XO
X,该直线与层I平面的交点X即为未匹配圆O
X在层I中的退化点。
实施例4实验结果及分析
图14(a)为茶壶工件39~46层ICT切片图像(层间距为1mm),图14(b)所示为各层切片图像对应的矢量化轮廓,是由直线段和圆弧构成。图14(b)所示即为实验输入数据,实验开发工具为matlab,在matlab中编程实现本文所述层间轮廓匹配方法。
图15展示了实验的层间一一匹配的结果,图16展示了实验的层间分叉匹配的结果,从图中可以看出,无论是简单的轮廓和复杂嵌套轮廓,本发明都能进行有效的层间匹配。
对像茶壶等具有复杂拓扑结构的工件,用在引言中列举的轮廓匹配方法是实现不了层间匹配的,只有用本发明所述方法进行层间轮廓匹配,所以此发明对逆向工程中的层轮廓的层间匹配方法领域还是有一定贡献的。