摘 要:在分析逆向工程系统模型的基础上,提出一种基于局部曲面重建的逆向工程系统模型,可以根据现有产品的测量数据直接显示三维图象和快速成型,大大缩短逆向工程所需的时间,免除了大量复杂曲面建模的困难。同时分析了基于光线追踪的体绘制算法的原理和影响显示效率的因素,设计了光线追踪显示体数据的新求交算法。实验结果表明,该算法具有较强的实用价值,对于进一步推动逆向工程的研究和实用化具有重要的意义。
关键词:逆向工程;三维重建;体绘制
0 引言
快速原型技术(Rapid Prototyping Technology,RPT)是集计算机辅助设计(CAD)技术、数控技术、激光技术、材料科学,以及机械电子工程为一体的综合技术。它可以快速、准确地将设计思想转变为具有一定功能的原型或者零件,以便进行快速评估、修改及功能测试,从而大大缩短产品的研制周期及开发费用,加快新产品推向市场的进程[1]。
随着社会需求的多样化和短时性,将多样化的产品快速地推向市场,已成为制造商把握市场先机、求得生存的重要保障。目前,常用的四种快速原型方法有:光固化立体造型(Stereo Lithography,SLA);层片物体制造法(Laminated Object Manufacturing,LOM);选择性激光烧结(Selected Laser Sintering,SLS);熔融沉积造型(Fused Deposition Modeling,FDM)。它们的共同特点是:产品信息均来自于CAD系统。此外,有的产品信息还可以通过另外两种方式得到:①根据市场需要的创新设计;②实物零件/几何模型。其中由实物零件/几何模型转换成CAD模型,并制造出产品的过程称之为,逆向(反求)工程(Reverse Engineering,RE)。
逆向工程技术在实践中有广泛的应用前景。主要是由于不少产品外型复杂,如汽车(飞机)覆盖件、人造假肢、陶瓷产品、塑料制品、玻璃器皿、艺术雕塑品和各种复杂零件等,其曲面的设计表达或数学模型的建立都十分困难,现有的CAD系统尚难进行严格的几何描述。因此,如何将这些实物零件/几何模型经过数据测量和图形图象处理,实现模型重构和交互设计、修改,以便于快速成型投放市场,是逆向工程研究的关键。对此,本文在分析典型的逆向工程系统模型的基础上[2],结合体视化技术的最新成果[3,4],提出了一种基于局部曲面重建的逆向工程系统模型(简称局部逆向),可以根据现有产品的测量数据(体数据),直接显示三维图象和快速成型。同时,分析了基于光线追踪的体绘制(direct volume rendering)算法的原理和影响显示效率的因素[5],提出了改善机械产品体绘制效率的新方法。
1 基于局部曲面重建的逆向工程系统模型
图1是典型的基于图象的机械产品逆向工程系统模型。由图1可见,复杂曲面重构及几何建模是建立该模型必不可少的关键环节,其重构曲面的质量直接影响到后续过程和整个系统的成败。 (图片) 目前,比较典型的曲面构造方法有:①以B-Spline或NURBS曲面为基础的曲面构造方案;②以三角Bezier曲面为基础的曲面构造方案;③以多面体方式来描述曲面物体。但是,到目前为止,由于理论和方法上的限制,一般还很难达到理想的曲面拟合精度。同时,处理尺寸较大的实物零件时需要的交互太多,整个建模过程显得十分繁琐。针对上述情况,提出基于局部曲面重建的逆向工程系统模型(如图2),可以解决传统逆向工程大量曲面建模的困难。对于不需要修改的实物零件(或几何模型),可将其各个截面的轮廓以STL格式传送到快速成型机,则可直接获得原实物的拷贝。如果原模型需要局部修改,只需将欲修改之处进行曲面重建,而无须生成所有的曲面(即局部曲面重建),这样,可大大缩短逆向工程所需的时间。同时,在物体显示方面采用了直接体绘制算法,避免了重构物体表面,而是直接地对体数据进行显示。(图片) 1.1 产品信息的获取方法和几何模型的体素化
产品数字化是逆向工程首先要解决的问题。目前,数字化方法主要分为接触式和非接触式测量。接触式测量是指测量头与实物表面有接触,采用设备主要有:三坐标测量机(Coordinate Measuring Machine,CMM);数控机床(NC)加上测量装置;专用数字化仪(digitizer)等。这种方式比较成熟,但测量速度和精度比较低,而且不适合柔软实物的测量。随着计算机和光电技术的发展,以计算机图象处理为主要手段的非接触式测量技术得到飞速发展,如光栅法、全息法、深度图象三维测量法和激光三角形等。投影光栅法和激光三角形一般用于对实物原型的外部形状进行测量,对于物体内部轮廓的测量却无能为力。而利用计算机断层扫描成像机(Industrial Computed Tomography ,ICT),能产生非常薄的断层图象(目前厚度可以小于1mm),图象清晰度较高,速度也非常快,可以直接获取物体的截面数据。同时还可获得物体复杂内轮廓的信息。因此,虽然工业CT目前成本较高,但不损伤实物,是测量没有备件和复制品的复杂形状实物的好方法。
体数据(volume data)是有限空间中对一种或多种物理属性的一组离散采样,当空间维数为3时,称为三维体数据,而体素(voxel)是组成体数据的最基本单位。因此,三维体数据是由大量体素组成的。由于体数据在计算机中的表示方法不同,将直接影响后续的体绘制算法等,为了保证图象显示精度,我们采用了结构数组的方式表示三维体数据(其他的方法还有多边形边表、八叉树等)。这种表示方式比较直观,体素的灰度值与结构数组的下标相对应。体素化的任务是把物体的连续几何描述转换成最接近该物体的体素表示形式的离散数据集。由于在转换过程中不可避免地造成信息丢失,因此在设计体素化算法时,精度(减少或消除走样)是首要考虑的问题,其次是拓扑关系的不变性和算法效率等。
1.2 体数据的预处理及断层图象的滤波
断层图象的滤波和图象插值构成了体数据的预处理环节。由于在断层图象的获取过程中,影像设备中各个电子器件的随机扰动,不可避免地会带来噪声。而断层图象的滤波或者平滑就是要抑制噪声,增强图象特征,提高信噪比。早期常用的平滑处理方法有线性滤波器,如低通滤波器、邻域平均法等。这类滤波器能有效地去除噪声,但同时会使图象轮廓模糊。中值滤波器是一种很好的非线性滤波算法,在去除图象噪声的同时,能有效地保持图象轮廓清晰。但是,由于中值滤波器采用的滤波窗口是预先确定的,形状固定不变,因此,对于点、线、角点和纹理较多的图象,不能有效地保护这些细节特征。
针对以上缺点,本文采用了一种新的自适应中值滤波算法,这种算法采用中值滤波的框架结构,同时引入自适应机制。这种自适应机制建立在多个子窗口之上,通过比较每个子窗口的灰度一致性,选择最适宜的子窗口作为当前的滤波窗口。由观察可见,象素点的值在上述多个子窗口的某个子窗口会表现出较高的一致性(即子窗口内象素点的灰度值相差较小)。因此在处理每个象素时,可将多个子窗口同时作用于该象素的灰度进行比较,然后选择灰度一致性较高的子窗口的中值,作为处理后的该象素的灰度值,以达到滤除噪声和保护细节的目的。
当断层图象之间的距离比断层图象内象素之间的距离大得多时,就需要用图象插值方法在原有断层图象之间再生成一些中间断层图象。比较常用的插值方法有线性加权平均法、轮廓插值法等。由于图象插值过程随意性较大,因此,在选择和设计时应考虑约束条件,确保算法有确定解。
1.3 局部曲面重构和体数据的匹配
由图2可知,当需要对原始模型进行修改时,必须进行局部曲面重构,恢复蕴藏在三维体数据中的物体的几何信息,以便于分析、处理和交互设计。目前,从体数据进行曲面重构的方式主要有两种:从轮廓重建物体表面和从体素重建物体表面。从轮廓重建物体表面是从一组断层图象的平面轮廓,重构出通过这些轮廓的曲面,即以断层图象作为处理对象,提取边界轮廓,通过轮廓拼接来获得通过这组轮廓的物体表面。由于在CAD系统中常用一组放样轮廓来描述形体,因此曲面重构后,可以获得局部曲面的参数化表示(如NURBS曲面),按IGES或者STEP标准传送到CAD系统中,进行编辑或者补充造型。
另外,还可以采用比较成熟的CAD软件来完成曲面重构,如英国DELCAM软件中的CopyCAD(该模块与Microsoft可视化开发工具Visual Baic和Visual C++有二次开发接口,可以通过二次开发来 实现对某些特殊曲面的重构),这样可以减少很多工作量。而从体素重建物体表面,首先确定物体表面在每个体素内的小面片,然后将这些小面片连接起来,就构成了物体的表面。
经过修改的局部曲面体素化后,存在体数据的匹配问题,即实现数据融合。到目前为止,已提出的大量体数据匹配方法,相互之间差异较大。完全的全自动匹配方法还处于研究阶段,因此,一般通过人为设置标记来实现匹配。
2 基于光线追踪的机械产品体绘制技术
体数据的显示方法主要有两种:一是基于面绘制算法(surface rendering),即首先从体数据中构造出它所含的物体表面,然后用传统的计算机图形学中的显示技术,对重建的物体表面进行显示;另一种是体绘制算法(volume rendering),即不需要三维重建来恢复体数据中的物体表面,而是直接对体数据进行显示。由于体数据的存储量大,在绘制过程中所有的信息均参与了运算,故计算量大,显示速度慢,很难达到实时显示。因此,如何提高显示速度就成为体绘制算法的核心问题。
2.1 基于光线追踪的体绘制原理和求交运算
基于光线追踪方式的体绘制算法是:从象平面上的每个象素出发,沿视线方向发出一根光线,并进入体素空间。随着光线的传播,把它所遇到的体素的颜色和阻光度进行累计与合成,当阻光度累计到1(其中0表示光线全通过,1表示光线全被阻挡)或光线已经穿过体素空间时,就停止光线传播,并把当前合成的颜色显示出来。因此,物体最终所显示出来的象素色彩都是体素的影响在此象素上的叠加后形成的结果。算法流程如图3所示。其中,光线与物体之间的求交是一个比较关键的环节,其算法的好坏直接影响显示的效率。(图片) 求交计算的目的,是为了找到光线进入包围体数据的长方体后在物体内截得的线段,以便下一步对该截线进行点采样,从而计算出最终的颜色。因此,必须根据光线与长方体的位置关系求出交点。通常,求交点有以下几种情况:①当光线与长方体交于一点时,按照体绘制的光学模型,这时光线的颜色向量就是背景颜色向量,不需要进行求交运算;②由于体数据所处的长方体为凸性,光线不可能与长方体交于三点或三点以上;③当光线与长方体交于两点时,这是最复杂的情况。一般的解决办法是,先确定光线是否与包含平行四边形的平面相交,如果是,再确定是否与平行四边形相交(如交点落在平行四边形的延长面上,就不是真正的交点,必须去除)。将平行四边形和交点都投影到由两个坐标轴定义的平面上,先确定要丢弃三个坐标轴中的哪一个,然后将平行四边形和交点投影到由其他两个坐标轴构成的平面上,与长方体六个外表面的每一个平行四边形的四条边分别进行计算。由此可见,这种求交算法与平行四边形各点存放的数据结构无任何联系,计算方法非常繁琐,同时编程实现也较为困难。
2.2 简化的求交算法
由于采用了结构数组存放三维体数据的坐标和灰度值,则体素的灰度值只与数组的下标(体素的坐标值)相对应。当物体在空间进行平移、旋转等变化时,通过计算体素的坐标值就可以查找到变换后的体素的灰度值。因此,可以利用数据存放的这种规律性,通过坐标差值判断结点的有效性来决定交点,从而化简求交计算:
输入:经过平移、旋转和缩放后的三维体数据
输出:三维图象
Calculate_Intersection_Min();CalculateIntersection_Max();/*计算光线与包围物体的长方体6个交点(其中4个是假交点)的最大最小值*/sort();/*对6个交点沿射线方向从小到大排序*/Voxel_struct Intesection[2];/*只有2个真实交点*/for(i=1;i<=6;i++){
Intersection_Reverse_Translate();
Intersection_Reverse_Rotate();
/*将交点与长方体的(0,0,0)点通过反向平移和旋转变换*/
Voxel[z][x][y]= 交点与长方体的(0,0,0)点的差值;
if ((z<=z-max) && (x<=x-max) && (y<=y-max)){
Voxel[z][x][y]是交点;
Intersection[number]= Voxel[z][x][y];
number++;}
else Voxel[z][x][y]不是交点,丢弃;}
可见,这样的判断简单明了,在程序编制上也较易实现。运算量稍多的部分在于交点的反向平移Intersection_Reverse_Translate()和旋转Intersection_Reverse_Rotate(),但最多只有6个这样的运算,这样的运算量是可以接受的。本研究采用Visual C++6.0开发了一套实验系统(如图4),实现了上述算法。其主界面中采用了两个视窗(view),最左边的视窗相当于一个导航器(navigator),右边的视窗用于显示各种处理结果,这两个视窗由一个分隔器窗口(CSplitterWnd)管理,支持流行的分裂视窗风格。为了验证上述算法的正确性,由MDT设计三维端盖实体模型,再由计算机生成60层二维断层图象。最终得到183×135×60的体素,绘制结果如图4所示。实验证明,该方法大大提高了求交速度,在一定程度上改善了体绘制的显示效率。(图片) 3 结论
本文提出的基于局部曲面重建的逆向工程系统模型,可以解决传统逆向工程大量曲面建模的困难,大大缩短逆向工程所需时间。同时,在物体显示方面采用直接体绘制算法,避免了重构物体表面,以保证不会丢失体数据所包含的信息,使得人们可以从一幅图象获得整体的信息。虽然对该算法做了一些改进,但真正要达到实时显示还存在一定的差距。
参考文献:
[1] 陈永华,殷国富.快速原型制造技术的集成应用方法[J].机械与电子,1998,(5):9-12.
[2] BIDABDA B, HONSNI Y A. Reverse engineering and its relevance to industrial engineering: a critical review[J]. Computer and Engineer,1994,26(2):343-348.
[3]KAUFMAN A. 3D volume visualization[M]. Germany:Springer-Verlag,1991.
[4] 管伟光. 体视化技术及其应用[M]. 北京:电子工业出版社,1998.
[5] 文四立,唐卫清,刘慎权.光线追踪显示体数据的新求交算法[J].计算机学报,1994,17(4):241-249.
[6] 李江雄,柯映林,程耀东.基于实物的复杂曲面产品反求工程中的CAD建模技术[J].中国机械工程,1999,4(4):390-393.
11/11/2005
|