计算机系统应用  2019, Vol. 28 Issue (3): 140-145   PDF    
基于Fisher准则的深层卷积神经网络织物疵点检测
史甜甜     
浙江理工大学 信息学院, 杭州 310018
摘要:针对当前的算法无法满足具有周期性图案织物疵点分类检测, 鉴于此, 提出基于Fisher准则的深层卷积神经网络织物疵点检测算法. 首先, 利用深度可分离卷积设计小型的深层卷积神经网络(DCNN); 其次, 对DCNN网络的Softmax增加Fisher准则约束, 通过梯度算法更新整个网络参数, 得到深层卷积神经网络(FDCNN); 最后, 在TILDA和彩色格子数据集上分类率分别为98.14%和98.55%. 实验结果表明: FDCNN模型既可以减小网络参数和降低运行时间, 又可以提高织物疵点分类率.
关键词: 深层卷积神经网络    深度可分离卷积    Fisher准则约束    梯度算法    织物疵点分类    
Deep Convolutional Neural Network Fabric Defect Detection Based on Fisher Criterion
SHI Tian-Tian     
College of Informatics and Electronics, Zhejiang Sci-Tech University, Hangzhou 310018, China
Abstract: In view of the fact that the current algorithm can not meet the needs of fabric defect classification detection with periodic pattern characteristics, a deep convolutional neural network fabric defect detection algorithm based on Fisher criterion is proposed. First, a small Deep Convolutional Neural Network (DCNN) is designed by using depthwise separable convolution. Further, the Softmax loss function of DCNN adds Fisher criterion constraint and updates the whole network parameters through gradient algorithm to get Deep Convolutional Neural Network (FDCNN). Finally, the classification rates of TILDA and pink plaid fabric database were 98.14% and 98.55%. The experimental results show that the FDCNN model can not only effectively reduce network parameters and running time, but also improve fabric defect classification rate.
Key words: Deep Convolutional Neural Network (DCNN)     depthwise separable convolution     Fisher criterion constraint     Gradient algorithm     fabric defect classification    

在纺织品领域中, 织物疵点检测占据着举足轻重的地位, 它是衡量成品的质量以及价格的评判依据. 传统的织物疵点检测主要依赖于人工的肉眼, 人工检测容易产生疲劳, 从而导致检测精度低、误检率高. 这几年来, 随着计算机视觉和图像处理技术突飞猛进的发展, 纺织品领域使用织物疵点自动检测技术已成为必然趋势. 频谱法、统计法、结构法、模型法、神经网络和深度学习是织物疵点主要检测方法. 基于频谱法、结构法以及神经网络的织物缺陷分类, 仍然是该领域的研究重点. 傅里叶变换、小波变换和Gabor变换是频谱法常用的经典变换方法, 它们通常与其他相关算法组合应用. 李东等人[1]结合傅里叶方法和支持向量机方法提出了一种多分类方法. 由于小波变换[2]具有很明显的局部时频特点, 在织物检测方面, 它受到广泛应用. 该方法在突出边缘的缺陷中具有良好的效果, 但在具有平滑灰度差异的缺陷中表现不佳. Gabor滤波器适用于模拟人眼的生物学特征, 织物检测经常用到该方法. 考虑到Gabor滤波器在进行滤波操作时有多方向和多尺度的特点从而引发高计算复杂性, 实时要求难以得到满足. 文献[3,4]通过采用遗传算法来构建最优Gabor滤波器达到降低计算复杂性的目的, 但是该滤波器执行的特点仅在一个方向和一个尺度上, 导致性能不佳. Jing等人[5]使用遗传算法构建的最佳Gabor滤波器对图案化图像进行滤波, 并对处理后的图像进行阈值化处理. 文献[6]通过HOG算子提取图像块特征, 再利用低秩分解模型实现了织物疵点检测. 文献[7]考虑了织物纹理和疵点特性, 利用LBP算子实现了织物疵点准确分割. 近年来, 神经网络也被用于织物缺陷检测和分类[8]. 除了经典的反向传播(BP)网络之外, 新兴的神经网络, 即脉冲耦合神经网络(PCNN)[9,10].

传统的浅层神经网络结构主要由一个输入层、一个隐藏层和一个输出层构成. 与浅层网络结构相比, 具有多个隐含层的神经网络, 简称为深层网络. Hinton等人[11]在2006年提出逐层贪婪算法, 该算法通过初始化深度网络结构权重, 达到改善网络性能的目的. Hinton引发了深度学习在研究和应用领域的热潮, 引起了学者们广泛的反响, 具有创历史的意义. 流行的深度学习模型框架如AlexNet[12]、Vgg-16[13]、GoogleNet[14]和Inception V3[15]等深层网络已成功用于图像分类. Vgg-Face[16]网络结构被用作一个非常深的网络例子, 在实验中证明了它成功地学习面部特征来进行面部验证. 然而, 由于高计算复杂性, 导致计算机硬件设备无法满足需求. 随后, Chollet[17]提出的Xception网络证明了利用深度可分离滤波器可超越Inception V3网络性能. 另外Howard等人[18]利用深度可分离卷积设计了MobileNet并在手机端进行应用. Li等人[19]将Fisher准则融合到LSTM中实现了高效的识别分类. Li等人[20]提出对栈式去噪自编码器加入Fisher准则来进一步提高织物疵点的检测率, 但是当样本数量增加时, 准确率有所下降.

本文为了对具有周期性图织物实现自动化疵点分类检测, 提出了基于Fisher准则的深层卷积神经网络, 其利用深度可分离卷积设计一个小型的深层卷积神经网络(DCNN), 相比较于大型卷积神经网络, 不仅大大地降低网络参数、计算量和分类运行时间, 还保证了织物疵点分类率较高; 其次, 对深层卷积神经网络的Softmax损失函数增加Fisher准则约束, 减小类内间距, 增大类间间距, 通过梯度算法更新整个网络参数, 得到深层卷积神经网络(FDCNN); 最后, 分别将2类织物疵点数据集送入FDCNN网络中进行疵点分类检测. 实验结果表明: 深度可分离卷积可有效地减小网络参数、计算量以及运行时间, 且通过对深层卷积神经网络增加Fisher准则约束, 可有效提高织物疵点分类率.

1 深度可分离卷积

本文的网络模型主要基于深度可分离卷积, 核心就是将标准卷积因式分解为深度卷积和逐点卷积. 深度可分离卷积先考虑区域, 再考虑通道, 实现了通道和区域的分离, 其与标准卷积相比网络参数和计算量减小. 将 ${{{D}}_F} \times {{{D}}_F} \times {{M}}$ 特征图 ${{F}}$ 作为输入, 经过标准卷积核 ${{K}}$ 大小为 ${{{D}}_K} \times {{{D}}_K} \times {{M}} \times {{N}}$ , 并输出 ${{{D}}_F} \times {{{D}}_F} \times {{N}}$ 特征图 ${{G}}$ , 其中 ${{{D}}_F}$ ${{{D}}_K}$ ${{{D}}_G}$ 分别是输入特征图、卷积核和输出特征图的宽和高, ${{M}}$ 是输入通道, ${{N}}$ 是输出通道, 则标准卷积层的输出特征图和计算量如下式(1)(2):

${G_{k,l,n}} = \displaystyle\sum\limits_{i,j,m} {{K_{i,j,m,n}}} \cdot {F_{k + i - 1,l + j - 1,m}}\;$ (1)
${{{D}}_K} \cdot {{{D}}_K} \cdot {{M}} \cdot {{N}} \cdot {{{D}}_F} \cdot {{{D}}_F}$ (2)

利用深度可分离卷积将标准卷积分解为深度卷积和逐点卷积, 通过1×1的逐点卷积将深度卷积输出特征图线性输出, 深度可分离卷积的计算量为深度卷积和逐点卷积之和, 即深度卷积的输出特征图、计算量和深度可分离卷积的计算量分别如下式(3)(4)(5):

${{\hat{ G}}_{k,l,m}} = \displaystyle\sum\limits_{i,j} {{{{\hat{ K}}}_{i,j,m}}} \cdot {{{F}}_{k + i - 1,l + j - 1,m}}$ (3)
${{{D}}_K} \cdot {{{D}}_K} \cdot {{M}} \cdot {{{D}}_F} \cdot {{{D}}_F}$ (4)
${{{D}}_K} \cdot {{{D}}_K} \cdot {{M}} \cdot {{{D}}_F} \cdot {{{D}}_F} + {{M}} \cdot {{N}} \cdot {{{D}}_F} \cdot {{{D}}_F}$ (5)

其中, ${\hat{ K}}$ 是大小为 ${{{D}}_K} \times {{{D}}_K} \times {{M}}$ 的深度卷积核, ${{m}}$ 为输出特征图 ${{G}}$ 的第 ${{m}}$ 个通道.

2 Fisher准则

假设由 ${{m}}$ 个样本构成的训练数据集 $ \{ ({{{x}}^1},{{{y}}^1}), \cdot \cdot \cdot ,$ $({{{x}}^m},{{{y}}^m})\} $ , 有 ${{{y}}^i} \in \{ 1,2, \cdot \cdot \cdot ,{{k}}\} $ , ${{k}}$ 为要分类的数量, 则Softmax损失函数可表示为:

${{{L}}_s} = - \dfrac{1}{{{m}}}\displaystyle\sum\limits_{i = 1}^m {\displaystyle\sum\limits_{j = 1}^k {1\{ {{{y}}^{_i}} = {{j}}\} } \log \dfrac{{{{{e}}^{^{\omega _j^{\rm T}{x^i}}}}}}{{\displaystyle\sum\limits_{j = 1}^k {{{{e}}^{\omega _j^{\rm T}{x^i}}}} }}} $ (6)
$1({{{y}}^i} = {{j}}) = \left\{ {\begin{array}{*{20}{c}} {1,\;\;{{{y}}^i} = {{j}}{\text{为真}}}\\ {0,\;\;{{{y}}^i} = {{j}}{\text{为假}}} \end{array}} \right.$ (7)

其中, $\omega $ 为Softmax的参数.

为了进一步提高深层卷积神经网络的分类性能, 提出对深层卷积神经网络的损失函数进行Fisher准则约束, 基于Fisher线性判别提出了新Fisher判据, 即表示为:

${{{L}}_f} = \dfrac{1}{2}\displaystyle\sum\limits_{i = 1}^m {\displaystyle\sum\limits_{j = 1}^k {||{{{O}}_i} - {{{u}}_{{y^i}}}||_2^2} } - \dfrac{\delta }{2}\displaystyle\sum\limits_{i = 1}^m {\displaystyle\sum\limits_{j = 1,{{t}} = 1}^m {||{{{u}}_{{j^i}}} - {{{u}}_t}||_2^2} } $ (8)

其中, ${{{u}}_{{y^i}}}$ 是第 $i$ 类平均值, ${{{O}}_i}$ 为网络输出值, $\delta $ 为判别式因子. 减小类内间距, 增大类间间距, 使得 ${{{L}}_f}$ 达到最小. 当深层卷积神经网络不断更新 ${{{u}}_{{y^i}}}$ , 则Softmax损失函数增加Fisher准则约束可表示为:

${{L}} = {{{L}}_s} + \theta {{{L}}_f}$ (9)

其中, $\theta $ 介于0和1之间. 在前向传播和反向传播过程中, ${{w}}$ 为损失参数, $\theta $ 参数标量, $\lambda $ 为学习率, 迭代次数为 ${{e}}$ . 通过式(10)和式(11)计算基于Fisher准则约束的深层卷积神经网络在每一次迭代过程中的误差值和 ${{w}}$ :

$\dfrac{{\partial {{{L}}^e}}}{{\partial {{O}}_i^e}} = \dfrac{{\partial {{L}}_s^e}}{{\partial {{O}}_i^e}} + \theta \dfrac{{\partial {{L}}_f^e}}{{\partial {{O}}_i^e}}$ (10)
${{{w}}^{e + 1}} = {{{w}}^e} - {\lambda ^e} \cdot \dfrac{{\partial {{L}}_f^e}}{{\partial {{{w}}^e}}}$ (11)
3 基于FDCNN的织物疵点检测

织物疵点分类检测主要步骤: (1)构建织物疵点训练集和测试集; (2)利用深度可分离卷积设计14层的深层卷积神经网络, 输入织物疵点样本训练DCNN模型; (3)对DCNN网络的Softmax函数增加Fisher准则约束, 根据反向传播梯度下降不断迭代更新权值进行训练微调, 得到FDCNN模型; (4)将测试集的织物疵点图像输入到训练好的FDCNN模型中进行分类识别. FDCNN算法具体流程如图1所示.

图 1 FDCNN算法流程图

3.1 实验环境与实验数据集

实验运行环境: Intel(R) Xeon(R) E5-2620 V4@2.10 GHZ, 64 GB, 在MATLAB2018a环境下编写代码. 本文的织物疵点数据集主要来源于: TILDA织物数据集和彩色格子织物疵点样本集, 如图2图3所示.

图2为TILDA数据库织物, 通过数据增强方法增加图片样本量, 使得深层卷积神经网络可以学到更多图像特性, 减小深层卷积神经网络过拟合的可能性. 本文采用旋转变换、翻转变换、平移变换等操作将样本数量扩充至原来10倍, 再从原始图像中随机截取若干小块图像, 并归一化. 实验随机选择6460张为训练集, 2490张为测试集. 图3为实验室环境下, 使用工业相机实时采集的彩色格子织物数据集, 彩色格子织物数据集共收集2768张. 同样采用上述的数据增强方法, 对疵点样本进行扩充6倍. 随机选取6869张为训练集, 2640张为测试集.

图 2 TILDA织物

3.2 深层卷积神经网络结构

由于传统CNN网络采用的是标准卷积层和池化层, 导致网络参数、计算量大, 无法满足计算机硬件需求. 深度可分离卷积将标准卷积层分解为深度卷积层和逐点卷积层, 使得计算量和网络参数减小. 为了满足在有限的织物疵点库上提高织物疵点分类率, 本文以Vgg-16网络结构为基础, 结合深度可分离卷积设计出14层的深层卷积神经网络结构(不包括输入层、BN、ReLu、池化层、Softmax层以及输出层), 降低网络模型中的参数数量和计算量, 节省了运行占用内存, 加快运行速度, 减小分类时间. 深层卷积神经网络(DCNN)结构流程如图4所示.

图 3 彩色格子织物

图 4 DCNN算法流程图

3.3 训练FDCNN

为了进一步提高DCNN网络模型的性能, 对其Softmax损失函数增加Fisher准则约束, 将 $\theta = 0.1$ $\delta = 0.05$ $\alpha = 0.5$ 在TILDA织物疵点数据集上进行训练微调过程, 最后输出织物疵点分类结果. 在进行反向传播过程中增加Fisher准则约束减小类内间距, 增大类间间距, 在迭代更新权值时考虑误差和损失值最小化, 从而更加有利于网络进行分类识别. FDCNN训练过程如图5所示.

图 5 FDCNN训练过程

4 实验结果与分析 4.1 FDCNN网络模型分析

表1为使用不同的分辨率因子作用于FDCNN在两种织物数据集上的实验结果, 输入层分辨率为224、192、128和64, 批量大小为32, 学习率为0.001, 迭代次数为975次, 训练周期为6.

表1可知: 1)通过输入不同分辨率的图片, 当输入层分辨率不断减小时, 网络参数不变, 织物疵点分类运行时间逐渐降低. 2)当FDCNN-128时, 织物疵点分类率最高, 在TILDA和彩色格子织物数据集上分类率分别为98.14%和98.55%. 由上可知, 本文的FDCNN模型输入层图片分辨率选取为 $128 \times 128$ .

表 1 基于不同的分辨率因子的深层卷积神经网络

表 2 本文算法与流行网络结构的对比

表 3 本文算法与传统算法的分类率对比(单位: %)

4.2 FDCNN算法与其他算法进行比较

将FDCNN算法与当前流行的深层网络模型、传统算法在TILDA和彩色格子织物数据集上进行比较. 选取AlexNet、Vgg-16和Inception V3流行网络结构进行对比, 实验结果如表2所示. 使用了2种传统的特征提取方法, 选取的特征包括方向梯度直方图(HOG)特征和局部二值模式(LBP)特征, 实验结果如表3所示.

表2可以看出: 1) FDCNN模型与流行网络结构相比, 网络参数最小为1.8百万, 运行时间最短为1781 s. 深度可分离卷积可以节省网络参数和运行时间, 解决了网络训练时计算机硬件设备不足的困难. 2) FDCNN模型在TILDA织物数据集上分类率为98.14%, FDCNN分类率比AlexNet提高0.38%, 比Vgg-16和Inception V3分别下降0.18%和0.46%; 3) FDCNN模型在彩色格子织物数据集上分类率为98.55%, FDCNN分类率比AlexNet和Vgg-16分别提高0.13%和0.25%, 比Inception V3下降0.2%; 综上可知, 从网络参数、运行时间和分类率上考虑, FDCNN模型最有效.

表3可知: 1) FDCNN和DCNN模型比传统算法分类率高. 当传统算法与FDCNN均使用Softmax作为分类器, 深层卷积神经网络通过非线性映射学习自动提取织物疵点的深层特征, 其深层特征优于传统算法提取特征特性, 其具有较强的识别能力. TILDA和彩色格子织物纹理结构较为丰富, 采用两种传统的特征描述算子不能提取有效织物疵点特征, 不利于Softmax分类器进行分类识别. 2)在TILDA和彩色格子织物数据集上, FDCNN模型分类率分别为98.14%和98.55%, 比DCNN模型分别提高2.62%和2.47%. 由实验结果表明, 与大型卷积神经网络模型相比, 对DCNN模型的Softmax层增加Fisher准则约束减小类内间距, 增大类间间距, 不仅提高织物疵点分类率还大幅度降低了网络参数、计算量和运行时间, 所以, FDCNN模型设计是合理的, 在实际检测中是可行的.

5 结论

针对纹理结构复杂的织物疵点检测人工提取特征的困难和检测率低的不足, 本文提出的基于Fisher准则的深层卷积神经网络织物疵点检测算法. 该方法不仅可以自动提取织物疵点的特征, 还利用深度可分离卷积有效减小网络参数量和降低运行时间, 并通过对DCNN的Softmax层损失函数增加Fisher准则约束, 减小类内间距, 增大类间间距, 进而不断更新整个网络参数, 得到最优化的FDCNN网络模型, 有效提高织物疵点分类精度. 在TILDA和彩色格子织物数据集上, FDCNN模型分类率分别为98.14%和98.55%. 实验结果表明: FDCNN算法采用深度可分离卷积可减小网络参数量和降低运行时间, 且通过增加Fisher准则约束, 不断进行迭代更新微调参数, 对不同纹理背景的织物疵点图像实现分类识别, 具有泛化性.

在后续工作中, 将通过改进算法来训练出更好的深层卷积神经网络模型, 使其对纹理更为复杂和疵点类型更多样化的图像库中进行分类识别, 并将探讨如何将此方法检测应用到自动检测系统中.

参考文献
[1]
李东, 万贤福, 汪军. 采用傅里叶描述子和支持向量机的服装款式识别方法. 纺织学报, 2017, 38(5): 122-127.
[2]
Li PF, Zhang HH, Jing JF, et al. Fabric defect detection based on multi-scale wavelet transform and Gaussian mixture model method. The Journal of the Textile Institute, 2015, 106(6): 587-592. DOI:10.1080/00405000.2014.929790
[3]
Tong L, Wong WK, Kwong CK. Differential evolution-based optimal Gabor filter model for fabric inspection. Neurocomputing, 2016, 173: 1386-1401. DOI:10.1016/j.neucom.2015.09.011
[4]
Hu GH. Automated defect detection in textured surfaces using optimal elliptical Gabor filters. Optik, 2015, 126(14): 1331-1340. DOI:10.1016/j.ijleo.2015.04.017
[5]
Jing JF, Yang PP, Li PF, et al. Supervised defect detection on textile fabrics via optimal Gabor filter. Journal of Industrial Textiles, 2014, 44(1): 40-57. DOI:10.1177/1528083713490002
[6]
李春雷, 高广帅, 刘洲峰, 等. 应用方向梯度直方图和低秩分解的织物疵点检测算法. 纺织学报, 2017, 38(3): 149-154.
[7]
周建, 王静安, 高卫东. 应用局部纹理特征的无监督织物瑕疵检测算法. 纺织学报, 2016, 37(12): 43-48.
[8]
景军锋, 范晓婷, 李鹏飞, 等. 应用深度卷积神经网络的色织物缺陷检测. 纺织学报, 2017, 38(2): 68-74.
[9]
宋寅卯, 袁端磊, 卢易枫, 等. 基于最优PCNN模型的织物疵点自动检测. 仪器仪表学报, 2008, 29(4): 888-891. DOI:10.3321/j.issn:0254-3087.2008.04.042
[10]
祝双武, 郝重阳. 一种基于改进型PCNN的织物疵点图像自适应分割方法. 电子学报, 2012, 40(3): 611-616.
[11]
Hinton GE, Osindero S, Teh YW. A fast learning algorithm for deep belief nets. Neural Computation, 2006, 18(7): 1527-1554. DOI:10.1162/neco.2006.18.7.1527
[12]
Krizhevsky A, Sutskever I, Hinton GE. ImageNet classification with deep convolutional neural networks. Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe, NV, USA. 2012. 1097–1105.
[13]
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
[14]
Szegedy C, Liu W, Jia YQ, et al. Going deeper with convolutions. Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA. 2014. 1–9.
[15]
Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 2818–2826.
[16]
Parkhi OM, Vedaldi A, Zisserman A. Deep face recognition. Proceedings of the 26th British Machine Vision Conference. Swansea, UK. 2015. 41.1–41.12.
[17]
Chollet F. Xception: Deep learning with depthwise separable convolutions. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 1800–1807.
[18]
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861, 2017.
[19]
Li C, Xie CY, Zhang BC, et al. Deep fisher discriminant learning for mobile hand gesture recognition. Pattern Recognition, 2017, 77: 276-288.
[20]
Li YD, Zhao WG, Pan JH. Deformable patterned fabric defect detection with fisher criterion-based deep learning. IEEE Transactions on Automation Science and Engineering, 2017, 14(2): 1256-1264. DOI:10.1109/TASE.2016.2520955