实时布匹瑕疵检测系统瑕疵检测算法研究
标签:
it视觉检测武汉三维 |
1基于Gabor滤波的瑕疵检测并行算法的主要原理和结构
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层金字塔结构。另外,由于原始布匹基本上都是按照经纬方向织成的,在对角方向没有明显的纹理特征,所以测试中仅采用对水平和垂直两个方向进行滤波,进一步减小了计算量。
4于Gabor滤波器的瑕疵检测方法
4.1建立图像的金字塔模型
对布匹瑕疵检测所使用多分辨率的过程可以转化为建立金字塔模型的过程,具体是通过在频域中以450为步长旋转并对频率在空域中进行减半采样而获得的。也就是需要对当前层的原始图像进行减半采样,以获得下一层金字塔的原始图像。在减半采样之前,要先对上层的原图像进行一次低通滤波,以消除高频率噪声的影响。基于图像大小规范化和计算量的考虑,在算法实现时采用了4层金字塔结构。在建立的4层金字塔图像模型中,金字塔每层又包含有4幅图像,分别代表布匹在0°、90°、45°和135°4个方向上的特性,共计16个通道。对金字塔每层的原始图像在上述四个方向上使用一维的卷积模板进行滤波运算,就可以得到该层中4个通道的图像。
4.2图像融合与二值化
融合就是把这16个通道的图像按照一定的算法进行叠加,得到最终的一幅融合图像。这个最终融合结果综合反映了16个通道下的布匹纹理特性。也就是说,它体现出了不同频率、不同方向下瑕疵呈现出的纹理和形状特征。这也正是采用多通道方法检测瑕疵的优点。
二值化操作很简单,阂值=meanx台Mean是布匹图像的灰度平均值,由设计者根据采集图像的明暗程度定制a在系统初始化时由软件计算。采集的图像为256级灰度,在二值化过程中,如果像素灰度值大于阑值,则置为255,小于阑值则置为O。
4.3瑕疵存在性判断
人眼可以很容易的根据处理结果二值图,判断出图中是否存在瑕疵及其个数和大概位置等。但是计算机本身却不具备这种判断力。所以必须寻找一种方法,既能使计算机准确做出判断又具有比较高的计算效率。在此,我们讨论连通成分序贯算法。
序贯算法通常要求对图像进行两次处理。由于这一算法一次仅运算图像的两行,因此,当图像以文件的形式存储且空间不允许把整幅图像加载到内存时,也能使用这一算法。这一算法可以查看某一点的邻点,并且可以给像素值为1的邻点分配一个已经使用过的标记。如果图像的邻点有两种不同的标记,则用一个等价表来记录所有的等价标记。在第二次处理过程中,使用这一等价表来给某一连同成分中所有像素点分配唯一的标记。
在从左到右、从上到下扫描图像时,该算法仅能查询到某一像素点的4邻点中的2个邻点,即上点和左点。设算法已经查到了该像素的这两个邻点,此时出现三种情况。
一是如果这两个邻点中没有一点为1,则该像素点需要一个新的标记。
二是如果这两个邻点中只有一点为1,且分配了标记L,那么该像素点的标记也为L。
三是如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是;L但是当邻点被分配了不同标记M与N,则这两个标记被用于了同一组元,应该把他们合并。在这种情况下,应把其中的一个标记(一般选用最小的那个标记)分配给该像素点,并在等价表中登记为等价标记。
等价表包含了给每一连通成分分配唯一标记的信息。在第一次扫描中,所有属于同一连通成分的标记被视为是同等的。在第二次扫描中,从一个等价集中选择一个标记并分配给连通成分中所有像素点。通常将最小的标记分配给一个连通成分。第二次扫描将给每一个连通成分分配唯一的标记。
http://s7/bmiddle/0043KZF5ty6ERl99mfkf6&690
http://s9/bmiddle/0043KZF5ty6ERlaFTS0e8&690
在找到所有的连通成分后,应该统计等价表,以便删除其中的空格;然后将等价表作为查找表对图像重新进行扫描,一般重新统计图像中的标记。计算每一连通成分的面积、一阶矩、二阶矩是序贯连通成分算法的一个部分。当然,必须使用分离变量来累加每一区域的矩信息。当区域合并后,每一区域的矩累计值也应该加到一起。
实践证明,上述算法能够准确的判断瑕疵的存在。由于仅需扫描图像两次,所以时间复杂度是图像分辨率的2倍,而且能够以流水线方式工作。但是等价表在FPGA设计中比较难以实现,所以在具体应用中需要对算法作一定修改和近似,以适合具体硬件结构。
5实验结果
为了进行测试,我们选用的布匹均为具有规则,均匀纹理结构的白布。实验图像通过线性CCD采集而得,输人图像大小均为512x512,256级灰度。图1、图2、图3为三组实验结果。实验结果表明该算法计算量小、性能稳定、瑕疵检测率达到90%。
6小结
该系统采用了基于Ga阮r滤波器的方法,通过在多分辨率和多方向上分别对布匹图像进行Gabor滤波,建立金字塔图像表示结构,并对滤波后的多幅图像进行融合与重建,把瑕疵区域从布匹背景中提取出来,从而实现了布匹瑕疵的实时检测。
更多相关的视觉检测内容,可以浏览我公司网站
www.whswgzy.com

加载中…