加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

实时布匹瑕疵检测系统瑕疵检测算法研究

(2013-12-09 17:10:06)
标签:

it

视觉检测

武汉三维

   专注视觉检测15年,武汉三维光之洋

 


 在瑕疵检测领域中,机器视觉的主要任务是把特征图像从背景中区分出来,这就涉及到图像分割问题。它涉及到视觉信息处理的初期和中期过程。许多学者将机器视觉研究的重点放在诸如ShpaefomrX等问题上,这些技术都隐含地假设分割问题已经解决或者认为不存在分割问题,而大量的实际问题说明这些假设是不正确的。不解决分割问题,机器视觉技术就不可能成功应用在实际的瑕疵检测系统中。

    20多年来,研究人员提出了许多不同的基于机器视觉的检测方法,主要体现在不同的分割算法上。分割算法主要分为四种:基于灰度同现矩阵的统计方法、基于傅立叶变换的检测算法、基于Gabor滤波器的纹理分割算法和基于香农(Shannon)小波分解的纹理主频检测方法。本文介绍基于Gabor滤波器的瑕疵检测方法。

1基于Gabor滤波的瑕疵检测并行算法的主要原理和结构

    该算法模仿了人类视觉系统的早期工作原理,采用了多分辨率多方向(多通道)Gabor变换方法。对采集的图像在4个分辨率,2个方向上进行处理,形成金字塔结构。再经过重建目标图像即可生成瑕疵检测的结果。

2Gabor滤波算法

Gabor变换(GT)是由STFT发展而来,它的基本函数(GEF)由一均值为零的高斯函数与和一给定频率和方向的弦波函数调制而成,其中高斯包络提供空域定位能力,弦波函数则提供频域分析能力二维GEF函数如下式:

http://s8/mw690/0043KZF5ty6ERl6WXr1a7&690

为了方便,经常考虑情况下的Gabor函数,他的高斯函数具有环形对称性,与正弦项的相位差为0,以原点为中心,表达式如下:

http://s1/bmiddle/0043KZF5ty6ERl7BBhSd0&690 

Gabor滤波算法采用对无瑕疵布匹图像和待检测布匹图像做多分辨率多方向的Gabor变换(一般取4种分辨率和4个方向),并将所有这些信息融合以得到一幅图像,图像中像素的灰度值即指示了瑕疵存在的可能性大小。该方法模仿生物视觉系统对视网膜上信息进行多频道多方向分解的功能,取得了较好的效果。

3设计Gabor滤波器

二维Gabor滤波运算复杂度过大,不适合应用在实时系统中。实践证明,通过把一次二维的Gabor滤波转换成两次在空域中的一维滤波,可以在大幅降低计算量的同时保证滤波的质量。在实际滤波过程中,使用两个不同的n位卷积模板,它们分别对应二维Gabor滤波器的实部和虚部,用这两个模板对输人图像进行卷积运算,分别得到处理结果的实部和虚部,两者的和即为图象的处理结果。Gabor滤波器的实部和虚部表示如下:

http://s10/bmiddle/0043KZF5ty6ERl8qLtT49&690 

这里gx,gy代表一维高斯函数,比如gx=exp(πax2)。通过在频域中以450为步长旋转并对频率在空域中进行减半采样,就可以建立经典的金字塔模型。其中金字塔每层都包括2个方向的通道。尽管在多数情况下随着层数和方向数的增加检测效果会相应的提高,但相应的计算量也会大幅度的增加。所以在多数实际应用中为了保证图像大小的规范化而采用了4层金字塔结构。另外,由于原始布匹基本上都是按照经纬方向织成的,在对角方向没有明显的纹理特征,所以测试中仅采用对水平和垂直两个方向进行滤波,进一步减小了计算量。

4Gabor滤波器的瑕疵检测方法

4.1建立图像的金字塔模型

对布匹瑕疵检测所使用多分辨率的过程可以转化为建立金字塔模型的过程,具体是通过在频域中以450为步长旋转并对频率在空域中进行减半采样而获得的。也就是需要对当前层的原始图像进行减半采样,以获得下一层金字塔的原始图像。在减半采样之前,要先对上层的原图像进行一次低通滤波,以消除高频率噪声的影响。基于图像大小规范化和计算量的考虑,在算法实现时采用了4层金字塔结构。在建立的4层金字塔图像模型中,金字塔每层又包含有4幅图像,分别代表布匹在0°90°45°135°4个方向上的特性,共计16个通道。对金字塔每层的原始图像在上述四个方向上使用一维的卷积模板进行滤波运算,就可以得到该层中4个通道图像。

4.2图像融合与二值化

融合就是把这16个通道的图像按照一定的算法进行叠加,得到最终的一幅融合图像。这个最终融合结果综合反映了16个通道下的布匹纹理特性。也就是说,它体现出了不同频率、不同方向下瑕疵呈现出的纹理和形状特征。这也正是采用多通道方法检测瑕疵的优点。

二值化操作很简单,阂值=meanxMean是布匹图像的灰度平均值,由设计者根据采集图像的明暗程度定制a在系统初始化时由软件计算。采集的图像为256级灰度,在二值化过程中,如果像素灰度值大于阑值,则置为255,小于阑值则置为O

4.3瑕疵存在性判断

人眼可以很容易的根据处理结果二值图,判断出图中是否存在瑕疵及其个数和大概位置等。但是计算机本身却不具备这种判断力。所以必须寻找一种方法,既能使计算机准确做出判断又具有比较高的计算效率。在此,我们讨论连通成分序贯算法。

序贯算法通常要求对图像进行两次处理。由于这一算法一次仅运算图像的两行,因此,当图像以文件的形式存储且空间不允许把整幅图像加载到内存时,也能使用这一算法。这一算法可以查看某一点的邻点,并且可以给像素值为1的邻点分配一个已经使用过的标记。如果图像的邻点有两种不同的标记,则用一个等价表来记录所有的等价标记。在第二次处理过程中,使用这一等价表来给某一连同成分中所有像素点分配唯一的标记。

在从左到右、从上到下扫描图像时,该算法仅能查询到某一像素点的4邻点中的2个邻点,即上点和左点。设算法已经查到了该像素的这两个邻点,此时出现三种情况。

一是如果这两个邻点中没有一点为1,则该像素点需要一个新的标记。

二是如果这两个邻点中只有一点为1,且分配了标记L,那么该像素点的标记也为L

三是如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是;L但是当邻点被分配了不同标记MN,则这两个标记被用于了同一组元,应该把他们合并。在这种情况下,应把其中的一个标记(一般选用最小的那个标记)分配给该像素点,并在等价表中登记为等价标记。

等价表包含了给每一连通成分分配唯一标记的信息。在第一次扫描中,所有属于同一连通成分的标记被视为是同等的。在第二次扫描中从一个等价集中选择一个标记并分配给连通成分中所有像素点。通常将最小的标记分配给一个连通成分。第二次扫描将给每一个连通成分分配唯一的标记。

http://s7/bmiddle/0043KZF5ty6ERl99mfkf6&690 

http://s9/bmiddle/0043KZF5ty6ERlaFTS0e8&690 

在找到所有的连通成分后,应该统计等价表,以便删除其中的空格;然后将等价表作为查找表对图像重新进行扫描,一般重新统计图像中的标记。计算每一连通成分的面积、一阶矩、二阶矩是序贯连成分算法的一个部分。当然,必须使用分离变量来累加每一区域的矩信息。当区域合并后,每一区域的矩累计值也应该加到一起。

实践证明,上述算法能够准确的判断瑕疵的存在。由于仅需扫描图像两次,所以时间复杂度是图像分辨率的2,而且能够以流水线方式工作。但是等价表在FPGA设计中比较难以实现,所以在具体应用中需要对算法作一定修改和近似,以适合具体硬件结构。

5实验结果

为了进行测试,我们选用的布匹均为具有规则,均匀纹理结构的白布。实验图像通过线性CCD采集而得,输人图像大小均为512x512,256级灰度。图1、图2、图3为三组实验结果。实验结果表明该算法计算量小、性能稳定、瑕疵检测率达到90%

6小结

该系统采用了基于Gar滤波器的方法,通过在多分辨率和多方向上分别对布匹图像进行Gabor滤波,建立金字塔图像表示结构,并对滤波后的多幅图像进行融合与重建,把瑕疵区域从布匹背景中提取出来,从而实现了布匹瑕疵的实时检测。


更多相关的视觉检测内容,可以浏览我公司网站

www.whswgzy.com

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有