纺织品生产中, 织物缺陷检测是质量控制的重要环节[1].传统的检测方法以人工检测为主, 受检测人员的主观因素影响大, 准确率低.为了提高检测精度、缩短检测时间、提高生产效率, 纺织品的自动缺陷检测算法的研究倍受关注.
近几年, 国内外的研究学者为此已经开展了大量的研究工作并从中取得一些研究成果.缺陷检测算法大致分为四大类:统计法、结构法、频域法和基于模型的方法.基于统计的缺陷检测算法如Sezer等[2]使用独立分量分析提取子块特征以检测缺陷, 该方法仅适用于灰度均匀的纹理织物;结构法基于纹理基元及排列规则提取特征参数[3], 由于织物纹理结构易变形及纹理多样性, 不能实现织物缺陷的快速自动检测;基于模型的缺陷检测算法常用模型主要包含马尔科夫随机场模型、自回归模型、分形模型等, 模型的参数估计仍是利用模型法对织物进行缺陷检测的难点所在[4];基于频域的算法因其计算的简便性运用广泛, 如Chan和Pang [5]采用傅立叶分析来定位灰度图像缺陷;Kumar和Pang [6]利用多通道Gabor滤波器和有监督学习方法对有纹理的材质进行缺陷检测,由于Gabor滤波器需要大量的计算, 不同信息通道的最佳融合仍然是难以解决的问题; Ngan等[7]将小波变换用于检测和定位不同类型的纹理缺陷, 然而该方法采用手动选取的自适应阈值方法, 有一定局限性.
针对上述问题, 文中提出一种NSCT和NBC相结合的缺陷检测算法.利用该算法对灰度均匀织物以及净色纹理织物进行缺陷检测, 实验证明, 提出的算法具有较高的准确性和适用性.
1 特征提取 1.1 NSCT小波变换在时域和频域同时具有良好的局部化特点, 但是小波变换只存在3个方向, 会显著影响其在图像处理领域的应用效果, 因此多尺度几何分析理论正在逐步发展.轮廓波变换[8-9]是利用拉普拉斯金字塔分解和方向滤波器组相结合的一种多分辨率、多方向性的图像表示方法, 该方法可以捕获到自然图像的定向信息.由于轮廓波变换采用下采样操作, 因此变换后的图像缺乏平移不变性, 利用阈值对图像进行滤波去噪时, 会导致奇点附近产生伪吉布斯现象[10].
为了弥补上述缺点, Cunha等提出NSCT[11].该方法是由非下采样金字塔(nonsubsampled pyramid, NSP)和非下采样方向滤波器组(nonsubsampled directional filter bank, NSDFB)相结合, 通过迭代非下采样滤波器组获得平移不变、多尺度、多方向特性, 能够有效表达图像的纹理特征.首先由NSP对输入图像进行塔形分解, 分解为高频子带和低频子带.然后由NSDFB将高频子带分解为多个方向子带, 低频子带继续进行上述分解.NSCT原理示意图如图 1所示.
1.2 MoGG模型当一个随机变量x∈R时, 广义高斯分布(generalized Gaussian distribution, GGD)的概率密度函数(probability density function, PDF)[12]如式(1)~(3) 所示.
$ p\left( {x\left| {\mu, \sigma, \beta } \right.} \right) = \left( {\beta \sqrt {\frac{{\mathit{\Gamma }\left( {3/\beta } \right)}}{{\mathit{\Gamma }\left( {1/\beta } \right)}}} /2\sigma \mathit{\Gamma }\left( {1/\beta } \right)} \right)\exp \left( { - A\left( \beta \right) {{\left| {\frac{{x - \mu }}{\sigma }} \right|}^\beta }} \right), $ | (1) |
$ A\left( \beta \right) = {\left[{\frac{{\mathit{\Gamma }\left( {3/\beta } \right)}}{{\mathit{\Gamma }\left( {1/\beta } \right)}}} \right]^{\beta /2}}, $ | (2) |
$ \mathit{\Gamma }\left( X \right) = \int_0^\infty {{\tau ^{x - 1}}\exp \left( { - \tau } \right){\rm{d}}\tau } . $ | (3) |
式中:Γ(·)表示Gamma函数, μ和σ分别是GGD的平均值和标准差.β是决定PDF峰度值的形状参数.当β→∞时, 趋于均匀分布; 当β→0时, PDF的分布趋于以μ为中心的三角函数; 当β=2时, 广义高斯分布为高斯分布.
Allili等[13]提出一种MoGG模型用来处理多模态数据.当数据样本x=(x1, x2, …, xn)时, x的边缘分布为MoGG模型, 给定K个分量的MoGG模型如公式(4)~(6) 所示.
$ p\left( {x\left| \theta \right.} \right) = \sum\limits_{i = 1}^K {{\pi _i}p\left( {x\left| {{\mu _i}, {\sigma _i}, {\beta _i}} \right.} \right)} . $ | (4) |
$ \theta = \left\{ {{\pi _i}, {\mu _i}, {\sigma _i}, {\beta _i}, i = 1, 2, \cdots, K} \right\}, $ | (5) |
$ \sum\limits_{i = 1}^K {{\pi _i} = 1, 0 < {\pi _i} \le 1} . $ | (6) |
MoGG模型选择和参数估计[14]是利用最小消息长度(MML, minimum message length)方法来实现一种完全无监督模式的选择[15], 选择能够产生整体消息长度最小的参数为模型.在模型复杂性和给定数据样本x=(x1, x2, …, xn)的拟合精度之间, MML方法提供了一种最优的平衡, 如式(7) 所示.
$ MessL = - \ln p\left( {\bar \theta } \right) + \frac{1}{2}\ln \left| {I\left( {\bar \theta } \right)} \right| + \frac{c}{2}\left( {1 + \ln \frac{1}{{12}}} \right) - \ln p\left( {\frac{x}{{\bar \theta }}} \right). $ | (7) |
其中, p(θ)表示参数θ的先验分布, l(θ)表示Fisher信息矩阵,
KLD是两个概率分布P和Q之间差异的一种非对称度量.当一个随机变量x∈R时, 两个概率分布之间的KLD定义如公式(8) 和(9) 所示.
$ {\rm{KLD}}\left( {P\left\| Q \right.} \right) = \int {P\left( x \right)\ln \left( {\frac{{P\left( x \right)}}{{Q\left( x \right)}}} \right){\rm{d}}x}, $ | (8) |
$ P\left( x \right) = \sum\limits_{i = 1}^K {{\pi _i}p\left( {x\left| {{\theta _i}} \right.} \right)}, Q\left( x \right) = \sum\limits_{j = 1}^K {{\pi _j}q\left( {x\left| {{\theta _j}} \right.} \right)} . $ | (9) |
当给定数据样本x=(x1, x2, …, xn)时, MoGG模型具有多个参数, 因此本文使用蒙特卡洛采样方法近似求解KLD[16], 由式(10) 给出.
$ {\rm{KL}}{{\rm{D}}_{mc}}\left( {P\left\| Q \right.} \right) = \frac{1}{n}\sum\limits_{i = 1}^K {\ln \left( {\frac{{P\left( x_i \right)}}{{Q\left( x_i \right)}}} \right)} \approx {}_{n \to \infty }{\rm{KLD}}\left( {P\left\| Q \right.} \right). $ | (10) |
NBC是一种基于有监督学习的概率分类器[17], 其假设每个特征属性对于给定类标记的影响独立于其他特征属性.
NBC将训练集作为输入, 训练集中的每一个样本特征向量包括自身特征属性和所属类别, 具体形式为{a1, a2, …, am, c}, 其中, a1, a2, …, am表示样本的m个特征属性取值, c∈C为该训练样本的类标记, C为一有限集合.由于各特征属性值是独立的[18], 所以朴素贝叶斯假设如式(11) 所示.
$ P\left( {{a_1}, {a_2}, \cdots, {a_m}\left| c \right.} \right) = \prod\limits_{j = 1}^m {P\left( {{a_j}\left| c \right.} \right)} . $ | (11) |
对于待分类新样本x, 给定描述样本的特征属性值为{a1, a2, …, am}, 得到最可能的类标记c(x), 则朴素贝叶斯的分类公式可表示为式(12).
$ c\left( x \right)\mathop {\arg \max }\limits_{c \in C} P\left( c \right)\prod\limits_{j = 1}^m {P\left( {{a_j}\left| c \right.} \right)} . $ | (12) |
式中, aj为x的第j个属性值, P(c)和P(aj|c)可以通过计算训练集中不同类和特征属性值组合的出现频率来简单计算, 如式(13) 和(14) 所示.
$ P\left( c \right) = \sum\limits_{i = 1}^n {\delta \left( {{c_i}, c} \right)/n}, $ | (13) |
$ p\left( {{a_j}\left| c \right.} \right) = \left( {\sum\limits_{i = 1}^n {\delta \left( {{a_{ij}}, {a_j}} \right)\delta \left( {{c_i}, c} \right)} } \right)/\sum\limits_{i = 1}^n {\delta \left( {{c_i}, c} \right)} . $ | (14) |
其中, n为训练样本的个数, ci为第i个训练样本的类标记, aij为第i个训练样本的第j个特征属性值, 当ci=c时, 二值函数δ(ci, c)的值为1, 否则为0.
大多数情况下, 上述方法可以实现良好的概率估计, 但当接近零频频率的特征属性值出现时, 这种基于频率比例的估计方法会产生一个过低估计概率.针对该问题, 文中利用Laplace估计来平滑上述得到的概率, 平滑后概率如式(15) 和(16) 所示.
$ P\left( c \right) = \frac{{\sum\limits_{i = 1}^n {\delta \left( {{c_i}, c} \right)} + 1}}{{n + {n_c}}}, $ | (15) |
$ P\left( {{a_j}\left| c \right.} \right) = \left( {\sum\limits_{i = 1}^n {\delta \left( {{a_{ij}}, {a_j}} \right)\delta \left( {{c_i}, c} \right)} + 1} \right)/\left( {\sum\limits_{i = 1}^n {\delta \left( {{c_i}, c} \right)} + {n_j}} \right). $ | (16) |
式中, nc为类的个数, nj为训练样本第j个特征属性的取值个数.
综上所述, 朴素贝叶斯分类器算法逻辑简单, 分类过程易于实现, 对于不同的数据特点其分类性能差别不大, 模型健壮性较好.
2.2 算法流程算法分为2个阶段,其流程图如图 2所示.
2.2.1 学习阶段(1) 提取有缺陷织物的子块集合Bd={Bd1, Bd2, …, Bdm}和无缺陷织物的子块集合Bf={Bf1, Bf2, …, Bfm};(2) 对所有子块进行非下采样轮廓波变换; (3) 提取每个子块的MoGG模型; (4) 选取一标准无缺陷子块Bds, 计算其与每个子块间的KLD系数, 得到特征集合KLDd={KLDd1, KLDd2, …, KLDdm}, KLDf={KLDf1, KLDf2, …, KLDfn}, (5) 利用得到的KLDd和KLDf训练朴素贝叶斯分类器; (6) 利用经过训练的朴素贝叶斯分类器对Bd和Bf进行检测, 得到分类误差ε.
2.2.2 检测阶段(1) 将待检测图像分割成与学习样本相同大小的子块; (2) 对所有子块进行非下采样轮廓波变换; (3) 提取每个子块的MoGG模型; (4) 计算Bd与每个子块之间的KLD系数, 得到特征集合KLDs; (5) 利用经过训练的朴素贝叶斯分类器对KLDs进行分类, 并输出缺陷检测结果.
3 结果与分析实验选取TILDA织物纹理数据库中C1R1、C2R2两类织物样本和广州溢达纺织有限公司生产的净色织物进行检测, 仿真平台为Matlab R2011a.由于织物纹理和缺陷类型的差异, 针对C1R1、C2R2两类织物样本, 实验选取待检测织物图像大小为512×512像素, 分割子块大小为32×32像素, 缺陷类型包括破洞、经纬纱疵、接头、污渍、断头等.选取净色织物的待检测图像大小为256×256像素, 分割子块大小为16×16像素, 缺陷类型包括脱纬、接头、错色、带纱、污渍、棉球、骚损、破洞、密路等.
该算法包括学习阶段和检测阶段.首先在学习阶段分别提取三类织物的无缺陷织物子块集合, 以及包含所有类型缺陷的织物子块集合; 然后分别对两个集合进行特征提取; 最后根据提取的特征进行学习, 训练NBC.在检测阶段, 将待检测图像分割为和图像子块大小相同的子块, 提取出每一个子块的特征, 利用经过训练的NBC对子块进行分类, 分为有缺陷和无缺陷两类, 并输出缺陷检测图.由于该算法包含学习功能, 任一类型有缺陷子块特征都会与无缺陷子块特征有差异, 因此可以将不同类型的缺陷共同提取至有缺陷织物子块集合中, 并不需要对每一类缺陷进行单独提取特征.样本学习结果如表 1所示, 缺陷检测结果如图 3~5所示.
织物类型 | m | n | 错分数 | ε/% |
C1R1 | 114 | 1 166 | 99 | 7.73 |
184 | 2 376 | 110 | 4.30 | |
290 | 3 550 | 91 | 2.37 | |
C2R2 | 79 | 1 201 | 76 | 5.94 |
92 | 2 468 | 77 | 3.01 | |
108 | 3 752 | 55 | 1.43 | |
净色织物 | 58 | 1 222 | 86 | 6.72 |
91 | 2 469 | 83 | 3.24 | |
126 | 3 714 | 68 | 1.77 |
表 1中, m, n和ε分别表示有缺陷、无缺陷子块数和样本分类误差.由表 1可知, 针对C1R1、C2R2和净色织物三类织物样本, 实验分别选取1 280、2 560和3 840个样本进行学习, 其缺陷检测精度分别可以达到92%, 95%, 97%.实验结果表明, 样本数量越多, 分类误差越小, 因此对于上述三类织物类型, 均选取3 840个样本用于训练NBC.利用NBC的分类方法, 缺陷检测精度可以达到97%.
图 3~5均为部分实验结果.图 3和图 4中, 第1行和第3行为有缺陷织物图像, 第2行和第4行为检测结果图像.图 5中, 第1, 3, 5行为有缺陷织物图像, 第2, 4, 6行为检测结果图像.通过图 3和图 4可知, 该算法对于灰度均匀的图像检测结果良好, 不受织物纹理方向的影响.图 4(b)中待检测图像中出现两种完全不同类型的缺陷时, 利用该算法可以同时将两种缺陷类型检测出来.由图 5可知, 该算法对于不同颜色的净色织物均有良好的检测结果, 检测结果完整.由图 3~5的缺陷检测结果可知, 该算法不仅适用于灰度均匀的纹理织物, 对于净色纹理织物的缺陷检测也同样适用, 并且检测结果不受织物纹理方向影响.该算法对于破洞、错色、脱纬、接头、污渍、骚损、带纱、密路等多种缺陷类型均有良好的检测效果, 适用范围广泛, 检测精度高.
4 结论针对灰度均匀织物和净色纹理织物的缺陷检测, 提出基于NSCT与NBC相结合的检测方法.该算法分为学习阶段和检测阶段, 对于同种织物, 只需在学习阶段进行一次学习, 就可得到训练好的NBC.因此在检测阶段可以直接利用训练好的NBC对后续待检测织物进行检测, 检测效率可大大提升.实验结果表明, 该算法能够有效提取织物纹理特征, 并对其进行分类.并且该算法不仅适用于灰度均匀的纹理织物, 对于净色纹理织物的缺陷检测也同样适用, 并且检测结果不受织物纹理方向影响.该算法可以成功检测多种类型的织物缺陷, 同时检测精度可达到97%, 进一步证实了该算法的有效性、适用性以及高精度特性, 能够满足工业生产需求, 未来可以将该算法应用在工业现场.
[1] |
韩其睿, 池楠. 编织物疵点检测及类型识别[J].
计算机工程与应用, 2014, 50(21): 234-237 HAN Qirui, CHI Nan. Knitted fabric defect detection and type identification[J]. Computer Engineering and Applications, 2014, 50(21): 234-237 DOI:10.3778/j.issn.1002-8331.1401-0393 |
[2] | SEZER O G, ERCIL A, ERTUZUN A. Using perceptual relation of regularity and anisotropy in the texture with independent component model for defect detection[J]. Pattern Recognition, 2007, 40(1): 121-133 DOI:10.1016/j.patcog.2006.05.023 |
[3] |
祝双武, 郝重阳. 一种基于纹理方向性分析的织物疵点检测方法[J].
西安工程大学学报, 2010, 24(3): 261-266 ZHU Shuangwu, HAO Chongyang. Fabric defect detection approach based on texture directionality analysis[J]. Journal of Xi'an Polytechnic University, 2010, 24(3): 261-266 |
[4] |
刘绥美, 李鹏飞. 基于稀疏编码字典学习的疵点检测[J].
西安工程大学学报, 2015, 29(5): 594-599 LIU Suimei, LI Pengfei. Defect detection based on sparse coding dictionary learning[J]. Journal of Xi'an Polytechnic University, 2015, 29(5): 594-599 |
[5] | CHAN C, PANG G K H. Fabric defect detection by Fourier analysis[J]. IEEE Transactions on Industry Applications, 2000, 36(5): 1267-1276 DOI:10.1109/28.871274 |
[6] | KUMAR A, PANG G K H. Defect detection in textured materials using Gabor filters[J]. IEEE Transactions on Industry Applications, 2002, 38(2): 425-440 DOI:10.1109/28.993164 |
[7] | NGAN H Y T, PANG G K H, YUNG S P, et al. Wavelet based methods on patterned fabric defect detection[J]. Pattern Recognition, 2005, 38(4): 559-576 DOI:10.1016/j.patcog.2004.07.009 |
[8] | DO M N, VETTERLI M. The contourlet transform:An efficient directional multiresolution image representation[J]. IEEE Transactions on Image Processing, 2005, 14(12): 2091-2106 DOI:10.1109/TIP.2005.859376 |
[9] | DO M N, VETTERLI M.Contourlets:a directional multiresolution image representation[C]//Proceedings of the 2002 International Conference on Image Processing, New York:IEEE, 2002:357-360. |
[10] |
黄涛, 薛丰昌, 钱洪亮, 等. 基于NSCT和自适应模糊阈值遥感图像去噪算法[J].
计算机技术与发展, 2016, 26(1): 65-69 HUANG Tao, XUE Fengchang, QIAN Hongliang, et al. Remote sensing image denoising algorithm based on NSCT and adaptive fuzzy threshold[J]. Computer Technology and Development, 2016, 26(1): 65-69 |
[11] | CUNHA D L, ZHOU J P, DO M N. The nonsubsampled contourlet transform:theory, design, and applications[J]. IEEE Transactions on Image Processing, 2006, 15(10): 3089-3101 DOI:10.1109/TIP.2006.877507 |
[12] | MILLER J, THOMAS J. Detectors for discrete-time signals in non-Gaussian noise[J]. IEEE Transactions on Information Theory, 1972, 18(2): 241-250 DOI:10.1109/TIT.1972.1054787 |
[13] | ALLILI M S, ZIOU D, BOUGUILA N, et al. Image and video segmentation by combining unsupervised generalized Gaussian mixture modeling and feature selection[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2010, 20(10): 1373-1377 DOI:10.1109/TCSVT.2010.2077483 |
[14] | ALLILI M S. Wavelet modeling using finite mixtures of generalized gaussian distributions:application to texture discrimination and retrieval[J]. IEEE Transaction on Image Processing, 2012, 21(21): 1452-1464 |
[15] | WALLACE C S. Statistical and inductive inference by minimum message length[M]. Germany: Springer Science & Business Media, 2005: 3-5. |
[16] | ALLILI M S, BAAZIZ N, MEJRI M. Texture modeling using contourlets and finite mixtures of generalized Gaussian distributions and applications[J]. IEEE Transactions on Multimedia, 2014, 16(3): 772-784 DOI:10.1109/TMM.2014.2298832 |
[17] | PERNKOPF F. Detection of surface defects on raw steel blocks using Bayesian network classifiers[J]. Pattern Analysis and Applications, 2004, 7(3): 333-342 DOI:10.1007/s10044-004-0232-3 |
[18] |
张亚萍, 陈得宝, 侯俊钦, 等. 朴素贝叶斯分类算法的改进及应用[J].
计算机工程与应用, 2011, 47(15): 134-137 ZHANG Yaping, CHEN Debao, HOU Junqin, et al. Improvement and application of Naive Bayesian classification[J]. Computer Engineering and Applications, 2011, 47(15): 134-137 DOI:10.3778/j.issn.1002-8331.2011.15.037 |