刘 虎, 林晓斌
(闽江学院 物理与电子信息工程学院, 福建 福州 350108)
在制造加工过程中需对工件进行检测,传统的检测方法人工干预多,处理程序慢,生成报表固定,自动化程度低且无法批量检测,耗时长,因此在生产制造中应采用更有效的方法来取代传统的检测方法,提高检测的时效性。随着计算机技术、检测技术和图形学技术的发展,逆向工程技术应运而生,3D扫描技术作为其分支之一,已在工件检测领域体现了巨大价值。
在逆向工程技术的基础上,结合CAD设计模型,研发基于3D扫描的工件自动检测方法,减少传统工件检测中的人工干预,实现工件检测的数字化、可视化和自动化,解决传统人工工件检测各种问题。基于3D扫描的工件自动检测方法由软硬件系统构成,硬件系统是构建一套基于主动式结构光的自动3D扫描系统,捕捉图像形变和相对位置,运用三角测量或相位分析计算工件表面空间信息重构工件3D点云数据。软件系统包括相机标定、3D点云数据获取和处理、STL扫描件与CAD设计模型的自动定位对齐以及自动比较检测。应用基于3D扫描的工件自动检测方法对工件进行自动检测,测试结果显示准确率达到98%,自动检测效果良好。
日益激烈的竞争对制造业提出了苛刻的要求,即TQCS[1]:最短时间(Time)、最优质量(Quality)、最低成本(Cost)和最好售后(Service)。为赢得客户和市场,诞生了许多前沿的制造加工技术,逆向工程便是新兴的技术之一。逆向工程将工件转化为CAD设计模型的数字化、几何模型重构和产品制造技术的总述[2],在工程上应用越来越广泛,主要应用于快速设计复杂工件、复制已有工件、复原损坏工件、提高模型精度和工件可视化检测[1]。文中将逆向工程应用于工件可视化检测,即基于主动式结构光的自动3D扫描系统扫描工件,获取工件表面数字化点云数据,处理数字化点云数据,将数字化的模型和工件的原始CAD设计模型比对,显示二者差异,实现工件的快速可视化及检测,有助于改善制造工艺,降低制造成本,提高效益。
基于3D扫描的工件自动检测方法由硬件系统和软件系统组成,硬件系统是构建一套基于主动式结构光的自动3D扫描系统,获取工件3D点云数据。在硬件系统的基础上研发基于3D扫描的工件自动检测软件系统。
检测识别工件上的所需特征,需要获得工件的3D点云数据,因此必须对工件进行扫描测量,需构建一套3D扫描硬件系统。用于获取工件3D点云数据的扫描测量硬件设备种类众多,原理也各不相同。不同的扫描测量方法具有不同的测量成本、速度和精度,对应获取的数据类型及处理方式也不同。非接触式光学三维扫描技术分为三角测量法、结构光法、激光法和计算机视觉法四类,从测量精度、速度、成本、可测轮廓复杂度和对材料是否有限制等方面进行比较,比较结果见表1。
表1 主要测量方法各指标比较
根据表1比较结果可知,综合各项指标,结构光法更适合用于构建本项目所需的3D扫描系统。
构建一套基于主动式结构光的3D扫描系统为硬件系统,主动式结构光的立体视觉系统由一个数字投影仪和两个CCD摄像机组成[3],数字投影仪选用HG300G-JE数码光显投影仪。其基本原理是投影仪投射光栅条纹到工件表面,两个摄像机捕捉不同角度投射后十几组工件表面的图像进行立体匹配,立体匹配通过每组图像间的对应关系,运用三角测量原理得到视差图,根据投影模型计算原图像的深度信息和三维信息,重构工件获取 3D点云数据。主动式结构光的立体视觉系统具有大视野和避免遮挡的优势,结合结构光模板编码,方便构建投影模型与其图像上的投影点间的对应关系,在后续的工作中能够降低匹配难度,优化匹配速度和精度,有利于工件重构获取3D点云数据。
软件系统致力于自动化处理3D扫描仪系统扫描工件后生成的3D点云数据和自动比较检测,减少人工干预,自动快速检测工件,耗时短、准确率高。该软件系统的功能模块包括相机标定,3D点云数据获取和处理,STL扫描件与CAD设计模型的自动定位对齐以及自动比较检测。
2.2.1 相机标定[4]
为了获取最佳检测效果,扫描工件前必须对工件表面进行标定。由于扫描工件表面形状不同,需扫描识别的特征在工件表面分布位置不固定,且测量的硬件系统本身的测量精度、测量速度和测量范围等要求不同,所以在测量扫描工件前要对扫描工件表面形状和硬件测量系统的要求进行定位分析,并将硬件测量系统归零回位,为后续准确扫描工件表面奠定良好的基础,保证良好的检测效果。采用张正友标定法[5]对工件标定,具体标定步骤如下:调整标定物或摄像机,拍摄不同方向和位置若干张标定板图像,提取这些图像中标定的特征点[6],通过闭式解算法,即根据摄像机坐标系、图像坐标系和世界坐标系三者之间关系估算出摄像机的5个内参参数和所有外参参数,最后应用最大似然估计优化所有参数,包括优化镜片径向畸变而引起的畸变参数,提升标定精度。工件表面准确的标定可获得高估计精度的内参、外参和畸变参数,这些参数信息为畸变矫正、图像校正和重构3D点云数据奠定良好的基础。
2.2.2 3D点云数据获取和处理
完成工件表面标定后,启动基于主动式结构光的3D扫描系统扫描获取工件表面点云数据。主动式结构光的3D扫描系统是基于双目立体视觉方法,基本原理是投影仪投射光栅条纹到工件表面,两个摄像机捕捉不同角度投射后十几组工件表面的图像进行立体匹配,立体匹配通过每组图像间的对应关系,运用三角测量原理得到视差图,根据投影模型计算原图像的深度信息和三维信息,获取工件 3D点云数据。
自动化处理系统对工件3D点云数据处理包括预处理、点云表示和点云重构三个部分。扫描工件获得的3D点云数据存在着固有的噪声、盲点、密度不均和数据缺失等扫描问题[7],这些问题都是3D点云数据处理面临的难点,因此需对其进行预处理。3D点云数据预处理由法向估算、噪声去除和特征增强三个部分组成,本项目中扫描的工件都是薄面结构,采用局部权值优化投影因子(WLOP)算法[8]估算法向量,噪声通过移动最小二乘法[9]去除,特征增强运用点云重采样法[10]保持3D点云数据尖锐特征。采用椭圆加权平均抛雪球方法[11]实现对3D点云数据表示,传统渲染显示是通过光线追踪法实现,但构建场景到达一定数量时,基本图元量过多,导致渲染时许多面片退化,浪费空间资源且绘制速率受限。为解决上述问题,引入新的基本图元——点,构建场景模型,在点云密度足够大的情况下,点云就可表示模型。点云重构是基于导入3D点云数据自动构造出网格模型,这些网格模型易储存、渲染和操作控制,同时修复缺失数据,还原模型形状。采用多层次整体划分法[12],基于自适应八叉树结构划分数据域,用二次函数在每个数据子域内拟合曲面形状,再根据划分的权重将局部形状函数混合,即可重构3D点云数据,并将其以STL格式输出。
2.2.3 STL扫描件与CAD设计模型的自动定位对齐
获得工件STL扫描件即完成对工件的数字化测量,需对工件扫描结果进行自动检测。原CAD设计模型作为参考模型,以最小包容法对其检测。由于CAD设计模型与数字化扫描的3D点云数据处于不同坐标系,需对二者进行自动对齐再比较。二者自动定位对齐的基本原理是通过工件的几何特征标定将扫描工件所得的3D点云数据定位到原CAD设计模型。工件图像的几何特征轮廓提取是工件几何特征定位的关键技术[13]。本项目自动检测的工件最显著特征是圆孔,因此提取圆孔轮廓和确定圆心位置作为定位的几何特征。采用Canny算子边缘提取算法[14]在图像域求出圆孔图像轮廓,然后通过最小二乘法拟合圆确定圆心位置,并对圆孔轮廓和圆心进行标定即可完成STL扫描件与CAD设计模型的自动定位对齐。
2.2.4 自动比较检测
STL扫描件与CAD设计模型的自动定位对齐后,就可对二者进行自动比较检测。设置产生误差图形形式、最大计算范围和角度值等,在自动比较检测时,二者之间的距离超过设定值,则忽略结果。
将设计实现的基于3D扫描的工件自动检测方法对工件进行自动检测,验证其有效性。以汽车钣金工件为检测实例,部分自动检测结果如图1所示。
图1中汽车钣金工件共有27个小尺寸圆孔,全部被自动定位对齐,且用白色实心点标定圆心,红色圈标定圆孔轮廓。将研发的自动检测方法检测500块汽车钣金工件,准确率高达98%。目前传统检测方法完成一个汽车钣金工件检测大约1 h,运用该自动检测方法完成同一个汽车钣金工件的检测时间可控制在15 min以内,大幅度提高生产检测效率。
图1 基于3D扫描的工件自动检测方法结果
基于逆向工程技术,结合CAD设计模型研发了基于3D扫描的工件自动检测方法。基于3D扫描的工件自动检测方法解决了传统检测方法处理程序慢、人工干预多、报表固定、自动化程度低、无法批量检测等问题,可大幅度节省检测时间,降低生产成本,提高产品数量和质量,减轻检测人员的劳动强度。