张五一,杨 扬,林 聪, 温盛军
(中原工学院, 郑州 450007)
在帘子布生产过程中,布面疵点决定产品质量,布匹表面疵点检测是生产过程中一个重要环节。长期以来,织物疵点的检测工作几乎都是由人工视觉来实现的,检测结果受验布人员主观因素影响,导致误检率、错检率较高[1]。基于图像分析的织物疵点自动检测技术已代替传统的人工视觉,成为织物疵点检测领域研究的热点。
本文结合从企业得到的帘子布疵点图像与国内外相关研究文献,利用Gabor滤波器组、最大熵阈值分割和BP神经网络原理,提出了一种新的帘子布疵点检测方法。该方法采用Gabor滤波器组对图像进行滤波,对滤波后的模值图像使用最大熵阈值分割[2],提取疵点图像轮廓的长、宽、长宽比和面积等特征值。将上述特征值作为BP神经网络的输入,经过大量的数据训练,最终实现对疵点的识别和分类。实验证明该方法能够检测、识别出绝大多数常见的疵点。
Gabor变换是一类重要的时频分析方法,它是Gabor D在1946年研究声波的传播与压缩时提出来的。Gabor滤波器的主要特征是:不同纹理一般具有不同的中心频率和带宽,根据这些频率和带宽设计一组Gabor滤波器,对纹理图像进行滤波。每个滤波器只允许与其频率相对应的纹理通过,其他纹理则受到抑制。从每个滤波器的输出结果中提取疵点纹理特征,用于疵点分类[3-4]。Gabor滤波器实质上是一个带通滤波器,其冲击响应函数为
(1)
(x′,y′)=(xcosθ+ysinθ,-xsinθ+ycosθ)
(2)
(3)
(u′,v′)=(ucosθ+vsinθ,-usinθ+vcosθ)
(4)
图1 Gabor核函数的二维图像
用图1中的8组滤波器对正常纹理(图2a)和疵点分类为浆斑的帘子布图像(图2b)进行滤波处理,结果如图3、图4所示。
由图4可知,当方向角与布匹纹理方向一致时,织物疵点处的图像灰度变化显著,由此可判断出疵点的位置与纹理特性。
a 正常纹理图片 b 浆斑纹理图片
图3 正常纹理图像经过Gabor滤波器组滤波后的图像
熵是信息论中事件出现概率的不确定性的量度,能够有效反映事件包含的信息,最大熵阈值化是一种自动的非参数、无监督的阈值选择法。它将分割后物体与背景灰度分布的信息熵之和作为最大优化测度准则,来选择图像分割的阈值[5-7]。
图4 浆斑疵点图像经过Gabor滤波器组滤波后的图像
假设阈值T将图像分为两类:目标C0与背景C1,其中C0灰度空间为[0,T],C1灰度空间为[T+1,255],则C0和C1的信息熵H0(T)和H1(T)定义为
(5)
(6)
对应的最大熵测度准则φ(T)为
(7)
最佳的阈值T′应该满足
φ(T′)=max
1≤T≤255{φ(T)}
(8)
OpenCV是一个开源的跨平台计算机视觉库,是由一系列 C 函数和少量 C++ 类构成的,同时提供Python、Ruby、Matlab等语言的接口,能够实现图像处理和计算机视觉方面的很多通用算法[8]。
由图4可知,疵点大都集中在经向方向,在其他方向上没有明显的纹理特征。根据实验结果,同时为了减少计算量,本文采用相同模版大小的两个方向角的Gabor滤波器组成滤波器组对常见疵点中的浆斑、接头、经线粘连进行滤波处理。
基于OpenCV的Gabor滤波器的滤波核函数如图5所示。
(a) 方向角为的Gabor核函数二维图像 (b)方向角为π的Gabor核函数二维图像
对浆斑、接头、经线粘结3种常见的疵点进行测试,疵点图像的大小为256×276个像素,测试结果如图6—图8所示,其中图(a)表示原图,图(b)表示Gabor滤波后的模值图,图(c)表示最大熵阈值分割后的图像,图(d)表示疵点图像的最小外接矩形。
BP神经网络,又称反向传播网络,是一种研究较为成熟、应用较为广泛的神经网络,主要用于模式识别、分类、数据压缩、函数逼近等方面,其主要思想是从后向前(反向)逐层传播输出层的误差,以间接地算出隐含层误差。其工作原理是:当信号输入时,传到隐层节点,经过激励函数后,把隐层节点的输出信号传播到输出层节点,经过处理后给出输出结果。它的学习过程是一种误差反向传播修正过程,由正向传播和反向传播组成。在正向传播过程中,输入信号从输入层经隐层单元逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,将输出信号的误差沿原来的连接通路返回,通过修改各层神经元的权值,使得信号的误差最小达到期望误差[9]。
(a) (b) (c) (d)
(a) (b) (c) (d)
(a) (b) (c) (d)
在经过图像分割后,可以得到疵点所在区域的最小外接矩形,根据矩形大小可以求出疵点的长、宽、长宽比、面积等特征值。将上述特征值归一化后分为两类,一类作为训练样本,一类作为测试样本。神经网络具有按照期望目标自动分类和识别的能力,可进行疵点的分类识别。本文利用三层BP神经网络(如图9所示),选用训练样本对神经网络进行训练学习,然后再将测试样本输入训练好的神经网络进行分类识别。
图9 三层BP神经网络的结构图
图10是运用120个训练样本进行BP神经网络的训练学习结果,其中浆斑输出值为0.5~1.5,接头输出值为1.5~2.5,经线粘结输出值为2.5~3.5。
用训练好的BP神经网络对30个样本特征进行辨识,结果如图11所示。
图10 训练样本输入BP神经网络输出图
图11 测试样本输入BP神经网络输出图
根据测试样本输出结果,可以得出疵点特征。进行疵点分类,分类识别率达94%。
本文结合Gabor滤波器、最大熵阈值分割算法和BP神经网络,提出了用OpenCV与Matlab实现帘子布疵点图像的检测与分类的方法。实验证明,这种方法可实现浆斑、接头、经线粘结等主要疵点的检测与分类。
参考文献:
[1] 纪惠军,张小栋,杨建民.基于机器视觉的织物疵点检测技术探讨[J].现代纺织技术,2011(2):11-15.
[2] 赵波,郑立新. 改进的基于最大熵和Gabor滤波器的织物疵点检测[J]. 微型机与应用,2011,30(13):29-35.
[3] 邹超,汪秉文,孙志刚. 基于 Gabor 滤波器组的实时疵点图像分割[J].计算机工程与应用,2010,46(12):185-187.
[4] 韩润萍,孙苏榕,姜玲. 基于 Gabor 滤波器组的织物疵点检测方法[J].计算机工程与应用,2007,43(7):211-214.
[5] 张家树. 灰度图像的最大最小优化熵阈值分割[J].电讯技术,1955,35(6):42-45.
[6] 沈晶,杨学志. 一种新的基于纹理分水岭的纺织品缺陷检测方法[J].中国图象图形学报,2009, 14(10):1997-2003.
[7] 卿湘运,段红,魏俊民. 基于局部熵的织物疵点检测与识别的研究[J].纺织学报,2004, 25(5):57-59.
[8] Bradski G,Kaehler A. Learning OpenCV [M]. 于任瑛,刘瑞祯, 译. 南京:东南大学出版社,2009.
[9] 飞思科技产品研发中心. MATLAB 7 辅助控制系统设计与仿真[M]. 北京:电子工业出版社,2005.