一种基于机器视觉对表面检测的方法与流程

文档序号:11832940阅读:371来源:国知局

本发明涉及领域,特别涉及一种基于机器视觉对表面检测的方法。



背景技术:

在传统的产品生产过程中,一般情况下对产品的表面缺陷检测是采用人工检测的方法。随着科学技术的不断发展,特别是计算机技术的发展,出现了计算机视觉检测技术。利用这种新技术设计出来的系统不受恶劣环境和主观因素的影响,能快速、准确地检测产品的质量,完成人工无法完成的检测任务。机器视觉检测结合了计算机图像处理和模式识别理论,它综合了计算机技术、数据结构、图像处理,模式识别和软件工程等不同领域的相关知识。

在对金属表面检测的过程中,受限于拍摄环境的限制,拍摄出的金属表面划痕在黑色背景区域中显示为高亮,而金属边缘显示也是高亮,就目前的技术很难细致准确通过机器视觉技术做到严格地区分。



技术实现要素:

本发明所要解决的技术问题是提供一种基于机器视觉对表面检测的方法,本方法检测表面缺陷,更好的降低了图像采集过程中,受限于环境光线的干扰;能最精细化地分离出金属缺陷与同为高亮显示的边缘,以解决现有技术中导致的上述多项缺陷。

为实现上述目的,本发明提供以下的技术方案:一种基于机器视觉对表面检测的方法,包括以下步骤:

1)采用LED环形灯直接暗视场正面照明方式采集图像;

2)使用动态阈值分割法将表面区域中划痕检测的感兴趣区域提取出来;

3)再通过使用区域特征、区域形态学对表面区域使用腐蚀运算去掉分割区域中杂点和小的突出物,确保计算上有足够的精度;

4)最后使用放射变换、图像平滑、连通区域提取等算法检测出划痕并显示其结果。

优选的,所述步骤2)中,图像阈值化的目的是按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性,阈值分割操作被定义为

S={(r,c)∈Rgmin≤fr,c≤gmax};

因此,阈值分割将图像ROIR内灰度值处于某一指定灰度值范围内全部点选到输出区域S中,使gmin=0或gmax=2b-1,如果光照能保持恒定,阈值gmin和gmax能在系统设置时被定选且永远不用被调整.阈值分割分为固定阈值分割和动态阈值分割;

动态阈值分割将图像与其局部背景进行比较的操作被称为动态阈值分割处理,用fr,c表示输入图像,用gr,c表示平滑后的图像,则对亮物体的动态阈值分割处理如下

S={(r,c)∈Rfr,c-gr,c≥gdiff};

而对暗物体的动态阈值分割处理是S={(r,c)∈Rfr,c-gr,c≤-gdiff}。

优选的,所述步骤3)中,采用的算法为a=R=∑(r,c)∈R1=∑ni-1cei-csi+1;

由上式可知,区域的面积a就是区域内的点数R。

优选的,所述步骤4)中,是把数字图像或数字序列中一点的值用该点的一个拎域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点;

方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列,阈值分割的结果中含有噪声,这并不是最后结果,噪声的处理,通过使用图像平滑来进行抑制。

优选的,所述步骤4)中,检测结果在去除噪声的过程中,所有少于4个像素的连通区域被看作噪声并被去除,为了区分噪声和缺陷,假设噪声是均匀分布的,而同属一个划痕的缺陷是彼此靠近的,因此,可以通过膨胀将缺陷区域中小的缝隙闭合.为了能够计算出连通区域,必须定义合适两个像素应被视为彼此连通。

采用以上技术方案的有益效果是:本发明的方法检测表面缺陷,更好的降低了图像采集过程中,受限于环境光线的干扰,最精细化地分离出了金属缺陷与同为高亮显示的边缘。不仅如此,本方法简单易操作,可行性性非常强。

附图说明

图1是本发明的控制框图。

具体实施方式

下面结合附图详细说明本发明的优选实施方式。

图1出示本发明的具体实施方式:一种基于机器视觉对表面检测的方法,包括以下步骤:

1)采用LED环形灯直接暗视场正面照明方式采集图像;

2)使用动态阈值分割法将表面区域中划痕检测的感兴趣区域提取出来;

3)再通过使用区域特征、区域形态学对表面区域使用腐蚀运算去掉分割区域中杂点和小的突出物,确保计算上有足够的精度;

4)最后使用放射变换、图像平滑、连通区域提取等算法检测出划痕并显示其结果。

所述步骤2)中,图像阈值化的目的是按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性,阈值分割操作被定义为

S={(r,c)∈Rgmin≤fr,c≤gmax};

因此,阈值分割将图像ROIR内灰度值处于某一指定灰度值范围内全部点选到输出区域S中,使gmin=0或gmax=2b-1,如果光照能保持恒定,阈值gmin和gmax能在系统设置时被定选且永远不用被调整;阈值分割分为固定阈值分割和动态阈值分割;

动态阈值分割将图像与其局部背景进行比较的操作被称为动态阈值分割处理,用fr,c表示输入图像,用gr,c表示平滑后的图像,则对亮物体的动态阈值分割处理如下

S={(r,c)∈Rfr,c-gr,c≥gdiff};

而对暗物体的动态阈值分割处理是S={(r,c)∈Rfr,c-gr,c≤-gdiff}。

所述步骤3)中,采用的算法为a=R=∑(r,c)∈R1=∑ni-1cei-csi+1;

由上式可知,区域的面积a就是区域内的点数R。

所述步骤4)中,是把数字图像或数字序列中一点的值用该点的一个拎域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点;

方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列,阈值分割的结果中含有噪声,这并不是最后结果,噪声的处理,通过使用图像平滑来进行抑制。

所述步骤4)中,检测结果在去除噪声的过程中,所有少于4个像素的连通区域被看作噪声并被去除,为了区分噪声和缺陷,假设噪声是均匀分布的,而同属一个划痕的缺陷是彼此靠近的,因此,可以通过膨胀将缺陷区域中小的缝隙闭合.为了能够计算出连通区域,必须定义合适两个像素应被视为彼此连通。

本发明的方法检测表面缺陷,更好的降低了图像采集过程中,受限于环境光线的干扰。最精细化得分离出了金属缺陷与同为高亮显示的边缘。不仅如此,本方法简单易操作,可行性性非常强。

通过采用LED环形灯直接暗视场正面照明方式采集图像,然后使用动态阈值分割法将表面区域中划痕检测的感兴趣区域提取出来,再通过使用区域特征、区域形态学对表面区域使用腐蚀运算去掉分割区域中杂点和小的突出物,确保计算上有足够的精度,最后使用放射变换、图像平滑、连通区域提取等算法检测出划痕并显示其结果。

照明的方向性通常有两种:漫射和直接照射。

漫射时,光在各个方向的强度几乎是一样的。直接照射时,光源发出的光集中在非常窄的空间范围内。本文检测对象是表面划痕,由于此类缺陷检测面积小,划痕不明显等条件,明场照明方式下,难以得到理想的划痕图像。因此本次检测采用LED环形灯直接暗视场照明方式,环形光与物体表面呈非常小的角度,这样可以突出被测物的缺口及凸起,所以划痕、纹理或雕刻文字等被增强,看得更加清晰。

采集到的图像不能提供图像中包含物体的信息。为了得到图像中的物体信息,必须进行图像分割,图像分割就是将图像划成一些区域,在同一区域内,图像的特征相近;而不同的区域内,图像特征相差较大。图像特征可以是图像本身的特征,如像素的灰度、边缘轮廓和纹理等。图像阈值化分割是一种最常用,同时也是最简单的图像分割方法。图像阈值化的目的是按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。阈值分割操作被定义为

S={(r,c)∈Rgmin≤fr,c≤gmax}

因此,阈值分割将图像ROIR内灰度值处于某一指定灰度值范围内全部点选到输出区域S中。使gmin=0或gmax=2b-1。如果光照能保持恒定,阈值gmin和gmax能在系统设置时被定选且永远不用被调整。阈值分割分为固定阈值分割和动态阈值分割。动态阈值分割将图像与其局部背景进行比较的操作被称为动态阈值分割处理,用fr,c表示输入图像,用gr,c表示平滑后的图像,则对亮物体的动态阈值分割处理如下

S={(r,c)∈Rfr,c-gr,c≥gdif}

而对暗物体的动态阈值分割处理是

S={(r,c)∈Rfr,c-gr,c≤-gdiff}

在动态阈值分割处理中,平滑滤波器的尺寸决定了能被分割出来的物体的尺寸。如果滤波器尺寸太小,那么在物体的中心估计出的局部背景将不理想。

经过前面的处理,可以得到从图像中提取到的区域或亚像素精度轮廓。但它们只包含了对分割结果的原始描述。后面还必须从分割结果中选出某些区域或轮廓,作为分割结果中不想要的部分去除。到目前为止,最简单的区域特征是区域的面积:

a=R=∑(r,c)∈R1=∑ni-1cei-csi+1

由上式可知,区域的面积a就是区域内的点数R。如果区域用一幅二值图像表示,那么用公式中的第一个求和等式计算区域的面积;如果区域是用行程编码表示的,那么用公式4中的第二个求和等式计算区域的面积。一个区域能够被视为其所有行程的一个并集,而每个行程的面积是极容易计算的。注意第二个累加式的项比第一个累加式的少很多。所以,区域的行程表示法可以使区域面积的计算速度快很多,这个特点对几乎所有的区域特征都适用。

通过前面一系列的处理过后,可以对感兴趣区域进行缺陷检测,需要再次使用动态阈值分割操作来检测缺陷,可以用中值滤波器来估计背景。

中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个拎域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。阈值分割的结果中含有噪声,这并不是最后结果。噪声的处理,通过使用图像平滑来进行抑制。

通过上述操作,表面划痕检测基本结束,由于在去除噪声的过程中,所有少于4个像素的连通区域被看作噪声并被去除。为了区分噪声和缺陷,假设噪声是均匀分布的,而同属一个划痕的缺陷是彼此靠近的,因此,可以通过膨胀将缺陷区域中小的缝隙闭合。为了能够计算出连通区域,必须定义合适两个像素应被视为彼此连通。以上便是本次检测过程,通过上述操作,就能得到所想要的检测结果。

从指定目录中连续读入表面划痕图像的模板,并对图像大小进行设置,使用LED环形光直接暗视场照明所得表面划痕图。

划痕在黑色背景区域中显示为高亮,但是表面的边缘以及表面平面部分中的4个内部正方形的边缘也是高亮的,为了区分划痕与表面的边缘,首先分割出亮的边缘区域。然后从表面的区域中减去分割出的区域,从而将划痕检测的感兴趣区域缩小到相减后的区域。

通过以上处理,下一步来确定需要检测的平面,因此要对感兴趣区域进行提取。需要从分割结果中去掉表面的亮边界和中间4个小的正方形的亮边界。首先必须知道表面在图像中的方向和大小,为得到表面的方向和尺寸,再次使用区域形态学分割出内部的4个正方形。首先使用2次闭运算填充前面分割出的内部正方形边缘上的小空洞,内部正方形边界上有缝隙。

至此,划痕任在分割出的亮的边界区域中。为了能够检测出划痕,需要将划痕从分割结果中分离出来。由于已知内部正方形的边界区域的形状,可以使用合适的结构元素开运算去除划痕。为此生成一个结构元素,由二个轴平行的矩形组成,代表内部正方形的两个对边。

当在合适的方向生成矩形时,结构元素可以不作旋转。但是需要根据方向变换矩形中心。

开运算可以用作模板匹配,会返回输入区域内所有与结构元素相匹配的点。正如所期待的,结果含有内部正方形边界。然而结果任含有表面部分外边界,这是因为内正方形到表面边界的距离与内正方形的边长大小一样。为了去掉为边界部分,取开运算的结果和腐蚀后的表面区域交集。

这样得到仅含有4个内部正方形边界的区域RegionSquares。最后要检查的表面就是表面区域与内正方形边界的差。

在计算差值之前,使用圆形结构元素对表面区域进行腐蚀以去除边界。圆的半径为Border-Width与BorderTolerance的和,这两个值都是事先定义的。半径加上BorderTolerance是为了检测时去掉与边界非常靠近的像素,这些像素灰度会受到边界的影响,可能被错误地判断缺陷。同理,代表内正方形边界区域也要膨胀一些。得到的含有表面检测平面的感兴趣区域Re-gionSurface。注意表面白色边界和内正方形白色边界没有包含在区域中。

经过上面的处理,现在可以对感兴趣区域进行缺陷检测了:再次使用动态阈值分割操作来检测缺陷,此时可以用中值滤波器来估计背景。基于已知的最大划痕宽度ScratchWidthMax,利用Scratch-WidthMax作为中值滤波器半径去除所有划痕。由于采用暗视场正面照明,划痕在图像中为亮的区域,可以容易地使用预先定义的ScratchGrayDiffMin作为阈值分割。

在这种情况下,所有少于4个像素的连通区域被看做噪声并被去除。并不是所有噪声都完全被去除了,进一步提高阈值可能会同时去除部分不连续的缺陷区域。为了区分噪声和缺陷,假设噪声是均匀分布的,而同属一个划痕的缺陷是彼此靠近的,因此,可以通过膨胀将缺陷区域中小的缝隙闭合。原来断开的缺陷经过膨胀后连在一起了,对膨胀后的区域重新计算连通区域。为了得到缺陷的原始形状,取未膨胀前的原始区域与连通区域的交集。

注意交集运算不影响各成分的连通性,于是,通过膨胀仅增加了连通区域的轮廓。最后选出所有比预定最小划痕大的区域。

以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1