DIY编程器网

标题: 机器视觉在大型工件自动探伤检测中的应用 [打印本页]

作者: admin    时间: 2015-4-27 23:34
标题: 机器视觉在大型工件自动探伤检测中的应用
1引言
       
        机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品将被摄取目标转换成图像信号,再传送给专用信息处理装置作进一步加工的软、硬件设备。由于机器视觉系统可以快速获取大量信息,而且易于自动处理,和便于与加工控制信息集成,因此,在现代自动化生产过程中,人们将机器视觉系统广泛地用于工况监视、成品检验和质量控制等领域。机器视觉系统的特点是自动、客观、非接触、精度高,可方便地提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。由于机器视觉易于实现信息集成,是实现计算机集成制造的基础技术之一。总之,随着机器视觉技术自身的成熟和发展,可以预计它将在现代和未来制造企业中得到越来越广泛的应用。
       
        众所周知,工业CT技术作为一种先进的无损检测技术,它不仅可以用于工件内部结构和缺陷的无损检测、质量评定、定性分析和判断,还可以通过对工业CT图像的测量来实现工件内部结构尺寸和缺陷尺寸进行测量和定量分析,测量精度高,可重复性好。近年来,从定性检测向定量测量方向发展是工业CT技术的一个重要研究方向,并且已取得了很大的进展。但是,目前国内外对工业CT图像的测量大都还依赖于手工方法进行,不仅测量的可重复性差而且测量精确度不高,越来越难以适应大批量的图像处理工作的需要。因此,文章结合工程实践,文中针对手工测量存在的一些问题,对工业CT图像自动测量方法作些探讨,根据工业CT图像的自身特点提出了一种基于边缘提取的自动测量方法。
       
        2 Canny的边缘检测原理简介
       
        通过工业CT机获得大型金属工件的断层图像,然后传输给中央管理系统,系统利用图像处理技术,对获取的图片进行分析,提取工件缺陷相关尺寸信息,存储在数据库中,供图像分析系统对金属或其它材料的基体组织、杂质含量、组织成分、缺陷大小等进行精确、客观地分析,为产品质量提供可靠的依据。
       
        从信号采集角度考虑,透射被测工件的光子经探测器转换成模拟信号后,再经过A/D转换成数字信号,在上述过程中,原工件不同材质区域的边缘[1],根据CT卷积反投影重建算法[2]中的点扩散原理可知,真实边界在数字图中的边缘范围3个像素。
       
        Canny把边缘检测问题转换为检测单位函数极大值的问题[3].在高斯噪声中,一个典型的边缘代表一个阶跃的强度变化。
       
        (1)一个好的边缘检测算子应具有三个指标:
       
        低失误概率,既要少将真正的边缘丢失,也要少将非边缘判为边缘;高定位精度,检测出的边缘应在真正的边缘位置上;对每个边缘有唯一的响应,得到的边缘为单像素宽。
       
        (2) Canny提出了判定边缘检测算子的三个准则[4]:
       
        良好的信噪比:良好的信噪比准则即将非边缘点判为边缘点的概率要低,将边缘点判为非边缘点的概率要低。信噪比的数学表达式:(1)
       
        其中,f(x)是边界为[-ω,+ω]的滤波器脉冲响应,G(-x)代表边缘函数,σ是高斯噪声的均方差,若信噪比大,则边缘提取质量好。
       
        定位精度准则。定位精度是指检测出的边缘点要尽可能在实际边缘的中心。定位精度的数学表达式为:(2)
       
        其中,G'(x)和f'(x)分别表示G(x)和f(x)的一阶导数。如果Localization值越大,那么表明边缘定位精度就高。
       
        单边响应准则。即要保证单边缘只有一个像素响应,检测算子的脉冲响应导数的零交叉点平均距离D(f')应满足f"(x)(为f(x)的二阶导数)
       
        (3)
       
        最后,Canny用泛函求导方法推导出高斯函数的一阶导数,此即为该最佳函数的最好近似,计算方法简便。
        3 Canny边缘检测算法
       
        Canny算法实际采用双门限方法实现边缘提取,其中两个门限分别为h1与h2.Canny建议h2为h1的2~3倍。算法流程如下[5]:
       
        Step1:初始化边缘点位置EdgeDot=(col, vol), col=0,vol=0.定义边缘图figureedge数组,大小为nWidth×nHeight,初始化为全255(非边缘);Step2:在非最大抑制所得图中查看EdgeDot点的值,并赋给IfEdge;Step3:if(IfEdge=noedge)then Step7;Step4:查看梯度图中EdgeDot点的值,并赋给magni- tude;Step5:if(magnitudeStep6:在记录结果的边缘图中记下EdgeDot点并设置非最大抑制图对应点值为noedge,然后在梯度图中查看EdgeDot点的八邻域点梯度magnitudenear,若magnitudenear>h1,重复执行Step6,否则执行Step7;Step7:col++;if(col>=nWidth) then vol++;if(vol>=nHeight) then end;(程序结束)
       
        执行Step2.
       
        算法中门限的选择直接影响着Canny算子的性能。
       
        作者用Visual C++ 6.0实现了该算法,主要包括:图象平滑(image smoothing,这里使用高斯滤波)、微分(differentiation)处理、非最大值抑制non-maximum suppression)、边缘阈值化(edge thresholding)等步骤。选取CT图像序列中的一切片(如图1所示)该图像分割算法在实际应用中效果如图1所示:
         
       
        图1边缘提取效果图4工业CT图像的自动测量
       
        在工业CT图像中不同区域的物质表现为灰度值异于周围物质的灰度值。所以,研究者们常通过边缘检测技术和图像分割技术把这个区域分离出来,使之成为一个独立的分析对象,然后再进行准确测量。目前,常见的面积测量大都依赖于手工完成,主要通过用户使用鼠标点击所测面积区域的周围来得到一个闭合的区域,将该区域近似为待测的面积区域,而后通过统计该区域内像素点的个数来近似计算面积。而常见的周长和极径测量也是如同面积测量一样仅能得到一个近似值。显然,这些测量方法由于人为原因或算法本身的缺点,给测量带来了较大的误差,并不具有可重复操作性,使得成批的图像测量难以实现。
       
        因此,以下通过对工业CT图像进行准确地分割得到边缘,并在此基础上提出针对大型金属工件的CT图像面积、周长以及极径等几何尺寸的自动测量方法。
       
        4.1面积测量
       
        由于区域的面积与其内部灰度级的变化无关,而只与该区域边界有关,因此只要确定了区域边界点的坐标,就可利用边界坐标来计算区域的面积。在Green定理中指出,在x-y平面内的一个封闭曲线包围的面积由其轮廓积分给定,即(4)
       
        其中,积分沿着该封闭曲线进行。Green公式表明,只要确定了一条封闭曲线的各点坐标,就可以根据这些坐标点计算出该曲线包围的区域的面积。
       
        由上述原理可得到面积计算的方法如下:由于工业CT图像是一种离散化的数据形式,那么区域的边缘也是一个离散的点集,因此需要将Green定理离散化后才能计算区域的面积。Green定理的离散形式如下:(5)
       
        该离散形式表达式实质上是将封闭边缘曲线确定的区域看成一个多边形,并以区域中一点为中心点将其分成多个三角形,然后计算所有三角形的面积。
       
        4.2周长测量
       
        区域的周长是分割出的区域的边界长度。边界通常可以用隙码、链码和面积表示。其中隙码方法表示时,测量长度过程中包含了许多的转弯,从而夸大了实际周长值;而面积方法表示时,仅统计边界点数,这样又忽略了每一个像素的边界长度,从而缩小了实际周长值;而链码方法表示时,它既考虑了每个像素的边界长度,又把转弯变成一条直线,这样周长的测量精度就提高了。边界链码测量的主要思想如下:链码是从在物体边界上任意选取的某个起始点坐标开始的。该起始点有8个邻接点,其中至少有一个是边界点。边界链码规定了从当前边界点走到下一个边界点这一步骤必须采用的方向。由于有8种可能的方向,因此可以将它们从0到7编号[6],如图2所示。边界链码包含了起始点的坐标以及用来确定围绕边界路径走向的编码序列。
        在这个边界链码中,编号为0,2,4,6的像素点称为偶步像素,而编号为1,3,5,7的像素点称为奇步像素。
       
        由该理论得出周长计算的方法是:将区域边界定义为以各边界像素中心为顶点的多边形。于是,相应的周长就是一系列横竖向(△p1=l)和对角线方向()的间隔之和[7].一个缺陷的周长可表示为:(6)
       
        其中Ne和No分别是边界链码中约定的走偶步(0、2、4、6)与走奇步(1、3、5、7)的数目。
       
        4.3极径测量
       
        极径是工件指定区域尺寸规格的描述。最直接的极径测量方法如下:由于工业CT图像是一种离散化的数据形式,因此区域上各点的极径就是区域的几何中心到区域边界点的距离。求极径的实质是求边界点的坐标和区域几何中心的坐标。然而,边界点的坐标可以由边缘提取所得到的边缘图像得到,区域的几何中心坐标则可以通过将区域看成无数个边界点到几何中心所构成的三角形的所有几何中心坐标的平均值来求取。因此,利用Green定理和三角形几何中心的算法可以得到任意区域的几何中心的离散形式为(7)
       
        (8)
       
        4.4面积、周长以及极径的自动测量
       
        基于上述理论,文中将自动测量分为对工件感兴趣区域的半自动测量和工件所有不同区域的全自动测量。
       
        该方法的主要思想是:通过自动识别工业CT图像中的不同区域,从区域的角度定义不同材质的物质,从而进行区域测量。
       
        具体实现步骤为:第一步,自动获取得到工业CT图像的边缘图像;第二步,自动搜索边缘图像中所有的闭合曲线以及非闭合曲线轨迹;第三步,利用所有的闭合曲线创建工业CT图像中所有的不同材质的区域以及标记所有非闭合曲线轨迹;最后,通过自动辨识不同区域并对这些区域进行面积、周长和极径的测量。
       
        经实验论证:在工业CT图像自动测量中,面积测量精度平均达到97.6%,周长测量精度达到98.2%,在标准圆和椭圆图像的极径测量中测量精度达到100%.
       
        整幅CT图像的自动测量时间与图像各个区域的面积相关,即:图像区域面积越大,图像区域创建的时间就越大,总的测量时间越长。在给定工件的批量(1500幅)CT图像的测量中,全部测量所用时间为17分钟。
       
        5结束语
       
        从上述对工件的实际测量结果可以看出,文中提出的方法对于工业CT图像的不同材质区域的测量以及缺陷的测量不仅能够达到较为理想的精度,而且还具有很高的可重复性等特点。它不但适用于对工件感兴趣区域(如:缺陷)的几何尺寸测量,而且还适用于批量工件的工业CT图像内部结构尺寸的测量。因此,机器视觉在大型工件自动探伤检测中的应用前景是令人乐观的。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2