2.793

2018影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于深度学习的纹理布匹瑕疵检测方法

许玉格 钟铭 吴宗泽 任志刚 刘伟生

许玉格, 钟铭, 吴宗泽, 任志刚, 刘伟生. 基于深度学习的纹理布匹瑕疵检测方法. 自动化学报, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
引用本文: 许玉格, 钟铭, 吴宗泽, 任志刚, 刘伟生. 基于深度学习的纹理布匹瑕疵检测方法. 自动化学报, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
Xu Yu-Ge, Zhong Ming, Wu Zong-Ze, Ren Zhi-Gang, Liu Wei-Shen. Detection of detecting textured fabric defects based on deep learning. Acta Automatica Sinica, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
Citation: Xu Yu-Ge, Zhong Ming, Wu Zong-Ze, Ren Zhi-Gang, Liu Wei-Shen. Detection of detecting textured fabric defects based on deep learning. Acta Automatica Sinica, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148

基于深度学习的纹理布匹瑕疵检测方法


DOI: 10.16383/j.aas.c200148
详细信息
    作者简介:

    华南理工大学自动化科学与工程学院副教授. 主要研究方向为机器学习与智能计算. E-mail: xuyuge@scut.edu.cn

    华南理工大学自动化科学与工程学院硕士研究生. 主要研究方向为深度学习, 计算机视觉. E-mail: tdlming@163.com

    广东工业大学自动化学院教授. 主要研究方向有自动控制, 大数据, 知识自动化, 人工智能. 本文通信作者. E-mail: zzwu@gdut.edu.cn

    广东工业大学自动化学院讲师. 主要研究方向有最优控制, 知识自动化, 人工智能. E-mail: renzhigang@gdut.edu.cn

    西安交通大学电信学院硕士. 深圳禾思众成科技有限公司CTO, 主要从事深度学习在工业质检领域的研究. E-mail: liuweisheng1992@outlook.com

  • 基金项目:  国家自然科学基金(61703114, 61673126, U1701261, 51675108)资助

Detection of Detecting Textured Fabric Defects Based on Deep Learning

More Information
  • Fund Project:  Supported by the National Natural Science Foundation of China through grants (61673126, 61703114, U1701261, 51675108)
  • 摘要: 布匹瑕疵检测是纺织工业中产品质量评估的关键环节, 实现快速、准确、高效的布匹瑕疵检测对于提升纺织工业的产能具有重要意义. 在实际布匹生产过程中, 布匹瑕疵在形状、大小及数量分布上存在不平衡问题, 且纹理布匹复杂的纹理信息会掩盖瑕疵的特征, 加大布匹瑕疵检测难度. 本文提出基于深度卷积神经网络的分类不平衡纹理布匹瑕疵检测方法, 首先建立一种基于通道叠加的ResNet50卷积神经网络模型(ResNet50+)对布匹瑕疵特征进行优化提取; 其次提出一种冗余特征过滤的特征金字塔网络对特征图中的背景特征进行过滤, 增强其中瑕疵特征的语义信息; 最后构造针对瑕疵数量进行加权的Multi Focal Loss损失函数, 减轻数据集不平衡对模型的影响, 降低模型对于少数类瑕疵的不敏感性. 通过实验对比, 本文提出的方法能有效提升布匹瑕疵检测的准确率及定位精度, 同时降低了布匹瑕疵检测的误检率和漏检率, 明显优于当前主流的布匹瑕疵检测算法.
  • 图  1  纹理布匹瑕疵样本图片

    Fig.  1  Samples of jacquard fabric defects

    图  2  纹理布匹瑕疵形状分布

    Fig.  2  Shape Distribution of jacquard fabric defects

    图  3  ITF-DCNN模型的整体结构图

    Fig.  3  Structure of detection model

    图  4  Resnet50网络结构图

    Fig.  4  Model structure of ResNet50

    图  5  残差模块

    Fig.  5  Model structure of residual block

    图  6  特征图过滤方式

    Fig.  6  Methods to filtering feature maps

    图  7  模型的Loss收敛曲线图

    Fig.  7  The loss curves of models

    图  8  ITF-DCNN模型检测结果图

    Fig.  8  Experimental results of the proposed method ITF-DCNN

    图  9  MFL在少数类上的检测结果图

    Fig.  9  Experimental result of MFL based on minority classes

    图  10  模板图片

    Fig.  10  Template Images

    图  11  FPN和F-FPN的泛化性实验对比图

    Fig.  11  Comparison of FPN and F-FPN generalization experiments

    表  1  增强前后数据集中的样本分布

    Table  1  Samples distribution of the data set before and after data augmentation

    瑕疵类别沾污花毛虫粘破洞蜡斑网折其他正常总计
    训练集增强前243239820812273775227566118
    训练集增强后972815948344902923062061102624476
    验证集增强前14133126254420623
    验证集增强后56213448226221416722490
    下载: 导出CSV

    表  2  数据集增强前后模型准确率对比实验结果

    Table  2  Experimental results of model on accuracy before and after data set enhancement

    瑕疵类别沾污花毛虫粘破洞蜡斑网折其他正常均值
    数据集增强前88.24%83.36%87.56%89.36%83.78%88.21%89.65%98.66%88.61%
    数据集增强后90.56%85.51%90.35%91.42%87.64%89.24%90.02%99.81%90.57%
    下载: 导出CSV

    表  3  数据集增强前后模型mAP对比实验结果

    Table  3  Experimental results of model on mAP before and after data set enhancement

    瑕疵类别沾污花毛虫粘破洞蜡斑网折其他正常均值
    数据集增强前69.06%58.51%81.50%83.44%33.33%63.70%45.51%62.15%
    数据集增强后70.04%59.12%83.23%83.54%35.78%63.70%47.31%63.25%
    下载: 导出CSV

    表  4  不同模型在布匹瑕疵数据集上的实验结果

    Table  4  Experimental results of different models on the jacquard fabric defect data set

    DetectorBackbonemAP准确率误检率漏检率
    Faster R-CNNResnet5065.56%87.40%12.60%1.42%
    Cascade R-CNNResnet5063.77%90.55%9.45%2.85%
    RetinaNetResnet5065.60%53.86%46.13%0.20%
    Faster R-CNNResnet10163.85%88.72%11.28%2.24%
    Cascade R-CNNResnet10164.60%90.35%9.65%1.83%
    RetinaNetResnet10166.52%56.23%43.77%0.12%
    GLCM64.63%35.37%6.87%
    Gabor83.87%16.13%1.67%
    GMM81.32%18.68%1.77%
    PTIT[38]92.56%7.44%0.94%
    CAE-SGAN[41]85.01%14.99%2.65%
    SurfNet[42]84.82%15.18%1.79%
    ITF-DCNNResnet5073.41%97.56%2.44%1.65%
    ITF-DCNNResnet10173.92%97.66%2.34%1.14%
    下载: 导出CSV

    表  9  改进后的ResNet50+网络性能对比实验

    Table  9  Experimental performance result of ResNet50+

    mAP准确率误检率漏检率
    ResNet5063.77%90.55%9.45%2.85%
    ResNet50+I63.68%91.76%8.24%2.66%
    ResNet50+C64.14%92.31%7.69%3.43%
    ResNet50+64.72%92.78%7.22%2.91%
    下载: 导出CSV

    表  5  F-FPN性能验证实验结果

    Table  5  Experimental performance result of F-FPN

    mAP准确率误检率漏检率
    Top-Down FPN63.77%90.55%9.45%2.85%
    PANet65.69%92.23%7.77%2.56%
    加性F-FPN70.31%93.65%6.53%1.95%
    卷积F-FPN71.42%96.72%3.28%1.25%
    下载: 导出CSV

    表  6  Multi Focal Loss的性能验证实验结果

    Table  6  Experimental performance result of Multi Focal Loss

    Loss Function$ \alpha $$ \gamma $$ \omega $mAP准确率误检率漏检率
    CE 63.77% 90.55% 9.45% 2.85%
    FL 0.25 5 52.53% 70.23% 29.77% 9.56%
    FL 0.25 2 65.62% 92.86% 7.14% 2.02%
    FL 0.25 1 64.88% 91.91% 8.09% 2.12%
    FL 0.5 0.5 64.74% 91.55% 8.45% 2.33%
    FL 0.75 0.2 59.27% 83.02% 16.98% 8.50%
    FL 0.75 0.1 58.11% 80.85% 19.15% 7.56%
    FL 0.75 0 58.01% 81.22% 18.78% 7.66%
    MFL 1 0.618 68.21% 94.39% 5.61% 1.44%
    MFL 2 0.618 70.12% 95.32% 4.68% 1.68%
    MFL 5 0.618 68.11% 94.50% 5.50% 1.56%
    MFL 2 0.1 67.22% 93.68% 6.32% 2.26%
    MFL 2 0.3 69.03% 94.88% 5.12% 1.56%
    MFL 2 1.0 69.22% 95.17% 4.83% 1.29%
    MFL 2 2.0 68.81% 94.35% 5.65% 1.68%
    MFL 2 5.0 64.38% 92.41% 7.59% 2.42%
    下载: 导出CSV

    表  7  采用F-FPN的模型在不同模板上的泛化性分析

    Table  7  Generalization Analysis of Models Using F-FPN on Different Templates

    模板1模板2模板3模板4模板5模板6模板7模板8模板9模板10均值
    准确率95.87%96.79%99.67%93.56%91.74%91.11%93.66%99.12%98.23%93.65%95.34%
    mAP69.12%69.73%75.37%68.97%67.46%68.12%68.24%75.96%76.82%68.02%70.78%
    下载: 导出CSV

    表  8  采用FPN的模型在不同模板上的泛化性分析

    Table  8  Generalization Analysis of Models Using FPN on Different Templates

    模板1模板2模板3模板4模板5模板6模板7模板8模板9模板10均值
    准确率91.63%91.04%92.38%90.39%88.34%88.12%91.25%91.75%91.42%89.11%90.54%
    mAP62.43%61.75%65.86%62.01%61.99%61.08%62.51%65.63%66.74%61.46%63.07%
    下载: 导出CSV
  • [1] 张慧, 王坤峰, 王飞跃. 深度学习在目标视觉检测中的应用进展与展望. 自动化学报, 2017, 48(4): 1289−1305

    Zhang Hui, Wang Kun-Feng, Wang Fei-Yue. Advances and perspectives on applications of deep learning in visual object detection. Acta Automatica Sinica, 2017, 48(4): 1289−1305
    [2] Ajay Kumar. Computer-vision-based fabric defect detection: A survey. IEEE Transactions on Industrial Electronics, 2008, 55(1): 348−363 doi:  10.1109/TIE.1930.896476
    [3] Chi-ho Chan and Grantham KH Pang. Fabric defect detection by fourier analysis. IEEE Transactions on Industry Applications, 2000, 36(5): 1267−1276 doi:  10.1109/28.871274
    [4] Kazım Hanbay, Muhammed Fatih Talu, and Ömer Faruk Özgüven. Fabric defect detection systems and methods—a systematic literature review. Optik, 2016, 127(24): 11960−11973 doi:  10.1016/j.ijleo.2016.09.110
    [5] Dmitry Chetverikov and Allan Hanbury. Finding defects in texture using regularity and local orientation. Pattern Recognition, 2002, 35(10): 2165−2180 doi:  10.1016/S0031-3203(01)00188-1
    [6] Henry YT Ngan, Grantham KH Pang, and Nelson HC Yung. Automated fabric defect detection—a review. Image and Vision Computing, 2011, 29(7): 442−458 doi:  10.1016/j.imavis.2011.02.002
    [7] Daniel Yapi, Mohand Saïd Allili, and Nadia Baaziz. Automatic fabric defect detection using learning-based local textural distributions in the contourlet domain. IEEE Transactions on Automation Science and Engineering, 2017, 15(3): 1014−1026
    [8] S Abdolkarim Hosseini Ravandi and Koichiro Toriumi. Fourier transform analysis of plain weave fabric appearance. Textile Research Journal, 1995, 65(11): 676−683 doi:  10.1177/004051759506501108
    [9] Jaume Escofet, Maria Sagrario Millan Garcia-Verela, Hector C Abril, and E Torrecilla. Inspection of fabric resistance to abrasion by fourier analysis. In Optics in Computing'98, volume 3490, pages 207−210. International Society for Optics and Photonics, 1998.
    [10] Ido Zachevsky and Yehoshua Y Zeevi. Model-based color natural stochastic textures processing and classification. In 2015 IEEE Global Conference on Signal and Information Processing (GlobalSIP), pages 1357-1361. IEEE, 2015.
    [11] 李敏, 崔树芹, 谢治平. 高斯混合模型在印花织物疵点检测中的应用. 纺织学报, 2015, 36(08): 94−98

    LI Min and CUI Shuqin and XIE Zhiping. Application of Gaussian mixture model on defect detection of print fabric. Journal of Textile Research, 2015, 36(08): 94−98
    [12] Mohand Said Allili, Nadia Baaziz, and Marouene Mejri. Texture modeling using contourlets and finite mixtures of generalized gaussian distributions and applications. IEEE Transactions on Multimedia, 2014, 16(3): 772−784 doi:  10.1109/TMM.2014.2298832
    [13] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems, pages 1097−1105, 2012.
    [14] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv: 1409.1556, 2014.
    [15] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jon Shlens, and Zbigniew Wojna. Rethinking the inception architecture for computer vision. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2818−2826, 2016.
    [16] Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, and Alexander A Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. In Thirty-First AAAI Conference on Artificial Intelligence, 2017.
    [17] Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. arXiv preprint arXiv: 1502.03167, 2015.
    [18] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. Going deeper with convolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1−9, 2015.
    [19] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770−778, 2016.
    [20] Gao Huang, Zhuang Liu, Laurens Van Der Maaten, and Kilian Q Weinberger. Densely connected convolutional networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 4700−4708, 2017.
    [21] Zhaowei Cai and Nuno Vasconcelos. Cascade r-cnn: Delving into high quality object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 6154−6162, 2018.
    [22] Mingxing Tan, Ruoming Pang, and Quoc V Le. Efficientdet: Scalable and efficient object detection. arXiv preprint arXiv: 1911.09070, 2019.
    [23] Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2117−2125, 2017.
    [24] 周波, 李俊峰. 结合目标检测的人体行为识别. 自动化学报, 2019: 1−11 doi:  10.16383/j.aas.c180848

    Zhou Bo and Li Jun-Feng. Human Action Recognition Combined With Object Detection. Acta Automatica Sinica, 2019: 1−11 doi:  10.16383/j.aas.c180848
    [25] 范家伟, 张如如, 陆萌. 深度学习方法在糖尿病视网膜病变诊断中的应用. 自动化学报, 2019

    FAN Jia-Wei and ZHANG Ru-Ru and LU Meng and, et al. Applications of Deep Learning Techniques for Diabetic Retinal Diagnosis. Acta Automatica Sinica, 2019
    [26] 陈文帅, 任志刚, 吴宗泽. 基于深度学习的极性电子元器件目标检测与方向识别方法. 自动化学报, 2019: 1−10 doi:  10.16383/j.aas.c190037

    Chen Wen-Shuai, Ren Zhi-Gang, Wu Zong-Ze, Fu Min-Yue. Detecting Object and Direction for Polar Electronic Components via Deep Learning. Acta Automatica Sinica, 2019: 1−10 doi:  10.16383/j.aas.c190037
    [27] 吴高昌, 刘强, 柴天佑, 秦泗钊. 基于时序图像深度学习的电熔镁炉异常工况诊断. 自动化学报, 2019, 45(8): 1475−1485

    Wu Gao-Chang, Liu Qiang, Chai Tian-You, Qin S. Joe. Abnormal condition diagnosis through deep learning of image sequences for fused magnesium furnaces. Acta Automatica Sinica, 2019, 45(8): 1475−1485
    [28] 张芳, 王萌, 肖志涛, 吴骏, 耿磊, 童军, 王雯. 基于全卷积神经网络与低秩稀疏分解的显著性检测. 自动化学报, 2019, 45(11): 2148−2158

    Zhang Fang, Wang Meng, Xiao Zhi-Tao, Wu Jun, Geng Lei, Tong Jun, Wang Wen. Saliency detection via full convolution neural network and low rank sparse decomposition. Acta Automatica Sinica, 2019, 45(11): 2148−2158
    [29] 李良福, 马卫飞, 李丽, 陆铖. 基于深度学习的桥梁裂缝检测算法研究. 自动化学报, 2019, 45(9): 1727−1742

    Li Liang-Fu, Ma Wei-Fei, Li Li, Lu Cheng. Research on detection algorithm for bridge cracks based on deep learning. Acta Automatica Sinica, 2019, 45(9): 1727−1742
    [30] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal loss for dense object detection. In Proceedings of the IEEE International Conference on Computer Vision, pages 2980−2988, 2017.
    [31] Jiahui Yu, Yuning Jiang, Zhangyang Wang, Zhimin Cao, and Thomas Huang. Unitbox: An advanced object detection network. In Proceedings of the 24th ACM International Conference on Multimedia, pages 516−520. ACM, 2016.
    [32] H İbrahim Çelik, L Canan Dülger, and Mehmet Topalbekiroğlu. Fabric defect detection using linear filtering and morphological operations. 2014.
    [33] Michael K Ng, Henry YT Ngan, Xiaoming Yuan, and Wenxing Zhang. Patterned fabric inspection and visualization by the method of image decomposition. IEEE Transactions on Automation Science and Engineering, 2014, 11(3): 943−947 doi:  10.1109/TASE.2014.2314240
    [34] Ruoxu Ren, Terence Hung, and Kay Chen Tan. A generic deep-learning-based approach for automated surface inspection. IEEE Transactions on Cybernetics, 2017, 48(3): 929−940
    [35] Hİ Çelik, LC Dülger, and M Topalbekiroğlu. Development of a machine vision system: real-time fabric defect detection and classification with neural networks. The Journal of The Textile Institute, 2014, 105(6): 575−585 doi:  10.1080/00405000.2013.827393
    [36] Lucia Bissi, Giuseppe Baruffa, Pisana Placidi, Elisa Ricci, Andrea Scorzoni, and Paolo Valigi. Automated defect detection in uniform and structured fabrics using gabor filters and pca. Journal of Visual Communication and Image Representation, 2013, 24(7): 838−845 doi:  10.1016/j.jvcir.2013.05.011
    [37] Yundong Li, Weigang Zhao, and Jiahao Pan. Deformable patterned fabric defect detection with fisher criterion-based deep learning. IEEE Transactions on Automation Science and Engineering, 2016, 14(2): 1256−1264
    [38] Jun-Feng Jing, Hao Ma, and Huan-Huan Zhang. Automatic fabric defect detection using a deep convolutional neural network. Coloration Technology, 2019, 135(3): 213−223 doi:  10.1111/cote.12394
    [39] Jagdish Lal Raheja, Bandla Ajay, and Ankit Chaudhary. Real time fabric defect detection system on an embedded dsp platform. Optik-International Journal for Light and Electron Optics, 2013, 124(21): 5280−5284 doi:  10.1016/j.ijleo.2013.03.038
    [40] Xian Tao, Dapeng Zhang, Wenzhi Ma, Xilong Liu, and De Xu. Automatic metallic surface defect detection and recognition with convolutional neural networks. Applied Sciences, 2018, 8(9): 1575 doi:  10.3390/app8091575
    [41] He Di, Xu Ke, Zhou Peng, and Zhou Dongdong. Surface defect classification of steels with a new semi-supervised learning method. Optics and Lasers in Engineering, 2019, 117: 40−48 doi:  10.1016/j.optlaseng.2019.01.011
    [42] Arikan, Selim and Varanasi, Kiran and Stricker, Didier. Surface Defect Classification in Real-Time Using Convolutional Neural Networks. arXiv preprint arXiv: 1904.04671, 2019.
  • [1] 罗浩, 姜伟, 范星, 张思朋. 基于深度学习的行人重识别研究进展[J]. 自动化学报, doi: 10.16383/j.aas.c180154
    [2] 林金花, 姚禹, 王莹. 基于深度图及分离池化技术的场景复原及语义分类网络[J]. 自动化学报, doi: 10.16383/j.aas.2018.c170439
    [3] 李良福, 马卫飞, 李丽, 陆铖. 基于深度学习的桥梁裂缝检测算法研究[J]. 自动化学报, doi: 10.16383/j.aas.2018.c170052
    [4] 李策, 张栋, 杜少毅, 朱子重, 贾盛泽, 曲延云. 一种迁移学习和可变形卷积深度学习的蝴蝶检测算法[J]. 自动化学报, doi: 10.16383/j.aas.c190104
    [5] 田娟秀, 刘国才, 谷珊珊, 鞠忠建, 刘劲光, 顾冬冬. 医学图像分析深度学习方法研究与挑战[J]. 自动化学报, doi: 10.16383/j.aas.2018.c170153
    [6] 吴志勇, 丁香乾, 许晓伟, 鞠传香. 基于深度学习和模糊C均值的心电信号分类方法[J]. 自动化学报, doi: 10.16383/j.aas.2018.c170417
    [7] 张号逵, 李映, 姜晔楠. 深度学习在高光谱图像分类领域的研究现状与展望[J]. 自动化学报, doi: 10.16383/j.aas.2018.c170190
    [8] 袁文浩, 孙文珠, 夏斌, 欧世峰. 利用深度卷积神经网络提高未知噪声下的语音增强性能[J]. 自动化学报, doi: 10.16383/j.aas.2018.c170001
    [9] 李文英, 曹斌, 曹春水, 黄永祯. 一种基于深度学习的青铜器铭文识别方法[J]. 自动化学报, doi: 10.16383/j.aas.2018.c180152
    [10] 陈伟宏, 安吉尧, 李仁发, 李万里. 深度学习认知计算综述[J]. 自动化学报, doi: 10.16383/j.aas.2017.c160690
    [11] 张慧, 王坤峰, 王飞跃. 深度学习在目标视觉检测中的应用进展与展望[J]. 自动化学报, doi: 10.16383/j.aas.2017.c160822
    [12] 胡长胜, 詹曙, 吴从中. 基于深度特征学习的图像超分辨率重建[J]. 自动化学报, doi: 10.16383/j.aas.2017.c150634
    [13] 罗建豪, 吴建鑫. 基于深度卷积特征的细粒度图像分类研究综述[J]. 自动化学报, doi: 10.16383/j.aas.2017.c160425
    [14] 随婷婷, 王晓峰. 一种基于CLMF的深度卷积神经网络模型[J]. 自动化学报, doi: 10.16383/j.aas.2016.c150741
    [15] 朱煜, 赵江坤, 王逸宁, 郑兵兵. 基于深度学习的人体行为识别算法综述[J]. 自动化学报, doi: 10.16383/j.aas.2016.c150710
    [16] 奚雪峰, 周国栋. 面向自然语言处理的深度学习研究[J]. 自动化学报, doi: 10.16383/j.aas.2016.c150682
    [17] 段艳杰, 吕宜生, 张杰, 赵学亮, 王飞跃. 深度学习在控制领域的研究现状与展望[J]. 自动化学报, doi: 10.16383/j.aas.2016.c160019
    [18] 郭潇逍, 李程, 梅俏竹. 深度学习在游戏中的应用[J]. 自动化学报, doi: 10.16383/j.aas.2016.y000002
    [19] 田渊栋. 阿法狗围棋系统的简要分析[J]. 自动化学报, doi: 10.16383/j.aas.2016.y000001
    [20] 王伟凝, 王励, 赵明权, 蔡成加, 师婷婷, 徐向民. 基于并行深度卷积神经网络的图像美感分类[J]. 自动化学报, doi: 10.16383/j.aas.2016.c150718
  • 加载中
计量
  • 文章访问数:  9
  • HTML全文浏览量:  3
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-03-20
  • 录用日期:  2020-06-19

基于深度学习的纹理布匹瑕疵检测方法

doi: 10.16383/j.aas.c200148
    基金项目:  国家自然科学基金(61703114, 61673126, U1701261, 51675108)资助
    作者简介:

    华南理工大学自动化科学与工程学院副教授. 主要研究方向为机器学习与智能计算. E-mail: xuyuge@scut.edu.cn

    华南理工大学自动化科学与工程学院硕士研究生. 主要研究方向为深度学习, 计算机视觉. E-mail: tdlming@163.com

    广东工业大学自动化学院教授. 主要研究方向有自动控制, 大数据, 知识自动化, 人工智能. 本文通信作者. E-mail: zzwu@gdut.edu.cn

    广东工业大学自动化学院讲师. 主要研究方向有最优控制, 知识自动化, 人工智能. E-mail: renzhigang@gdut.edu.cn

    西安交通大学电信学院硕士. 深圳禾思众成科技有限公司CTO, 主要从事深度学习在工业质检领域的研究. E-mail: liuweisheng1992@outlook.com

摘要: 布匹瑕疵检测是纺织工业中产品质量评估的关键环节, 实现快速、准确、高效的布匹瑕疵检测对于提升纺织工业的产能具有重要意义. 在实际布匹生产过程中, 布匹瑕疵在形状、大小及数量分布上存在不平衡问题, 且纹理布匹复杂的纹理信息会掩盖瑕疵的特征, 加大布匹瑕疵检测难度. 本文提出基于深度卷积神经网络的分类不平衡纹理布匹瑕疵检测方法, 首先建立一种基于通道叠加的ResNet50卷积神经网络模型(ResNet50+)对布匹瑕疵特征进行优化提取; 其次提出一种冗余特征过滤的特征金字塔网络对特征图中的背景特征进行过滤, 增强其中瑕疵特征的语义信息; 最后构造针对瑕疵数量进行加权的Multi Focal Loss损失函数, 减轻数据集不平衡对模型的影响, 降低模型对于少数类瑕疵的不敏感性. 通过实验对比, 本文提出的方法能有效提升布匹瑕疵检测的准确率及定位精度, 同时降低了布匹瑕疵检测的误检率和漏检率, 明显优于当前主流的布匹瑕疵检测算法.

English Abstract

许玉格, 钟铭, 吴宗泽, 任志刚, 刘伟生. 基于深度学习的纹理布匹瑕疵检测方法. 自动化学报, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
引用本文: 许玉格, 钟铭, 吴宗泽, 任志刚, 刘伟生. 基于深度学习的纹理布匹瑕疵检测方法. 自动化学报, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
Xu Yu-Ge, Zhong Ming, Wu Zong-Ze, Ren Zhi-Gang, Liu Wei-Shen. Detection of detecting textured fabric defects based on deep learning. Acta Automatica Sinica, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
Citation: Xu Yu-Ge, Zhong Ming, Wu Zong-Ze, Ren Zhi-Gang, Liu Wei-Shen. Detection of detecting textured fabric defects based on deep learning. Acta Automatica Sinica, 2020, 45(x): 1−15. doi: 10.16383/j.aas.c200148
  • 随着人工智能的发展, 相关技术的不断成熟, 人工智能的应用领域不断扩展, 以深度卷积神经网络为代表的深度学习方法在大量的工业界实际应用场景中展示了优于传统方法的性能[1]. 在布匹瑕疵检测领域中, 传统的瑕疵检测手段主要是采用人工检测的方式, 这种方式要求检测工人站在流水线旁边使用人眼检测布匹瑕疵, 该方法存在诸多缺陷, 如检测效率低下, 检测速度仅仅达到$0.18 \sim $0.36 m/s[2], 漏检率高, 瑕疵检出率只有70%左右[3], 检测效率随工作时长而下降等. 基于此, 研究自动化的检测系统取代人工检测在纺织工业中有着重要的意义.

    目前的布匹瑕疵自动化检测的算法主要可分为三大类[4]: 基于统计的方法[5, 6], 基于频谱的方法[3, 7-9] 和基于模型的方法[10-12]. 统计法通过对布匹瑕疵图片中的纹理特征进行统计分析, 判断输入图片有无瑕疵, 该方法目前只在分辨率较小的瑕疵图片中有所应用, 且其对瑕疵的位置计算不准确. 频谱法是在实际布匹瑕疵检测中使用较多的一类方法, 该方法将图片特征从空间域转换到频率域中, 在频率域中图片特征将得到增强, 由此完成布匹瑕疵的分类, 但是该方法目前只能实现对输入图片有无瑕疵的判断, 无法定位瑕疵的位置. 模型法通过假设布匹图片纹理由规则纹理和随机纹理组成, 使用随机过程建模方法对图片特征进行描述从而完成分类, 但是该方法只在少量样本中取得好效果, 对于实际工业生产中大量样本的情况, 尚未有研究表明其可行性. 基于上述方法进行的研究对布匹瑕疵缺陷检测问题有很好的借鉴作用, 但是其研究往往局限于小规模的小分辨率布匹瑕疵图片数据集, 因此参考价值有限. 综上所述, 传统方法存在着瑕疵分割性能差、错检率高、噪声敏感等问题, 随着深度学习的发展, 采用卷积神经网络解决布匹瑕疵检测问题是当前研究的热点之一.

    基于深度卷积神经网络(Deep Convolutional Neural Network, 简称DCNN)的方法在目前取得了极大的进展. 2012年Krizhevsky等人提出的AlexNet[13], 突破了大规模的视觉识别挑战赛(ILSRVC)中的图片分类准确度记录.2014年Simonyan和Zisserman提出VGG[14]系列模型, 该模型通过深层卷积神经网络对图片特征进行提取, 最后使用全连接层进行分类, 在当年的ImageNet Challenge上取得了巨大成功. 随后Google提出InceptionNet[15-18] 系列模型, 该模型通过对网络结构的精心设计从而在减小模型参数量的同时提升了模型的表达能力. 2015年Kaiming He等人提出ResNet[19], 通过引入残差模块, 解决了梯度消失的问题, 大大加深了网络的深度.2016年Gao Huang等人提出DenseNet[20], 其采用Dense Block对每层的特征图进行复用, 加强网络中特征的传递, 提高网络表现的同时减少网络的参数量. 在这之后, 对网络结构的改进算法大量涌现, 如Feature Pyramid Networks(FPN), Cascade R-CNN, BiFPN等[21-23]. 对网络结构的不断改进, 使得DCNN在目标检测领域中的应用不断成熟, 已有大量算法实际应用于工业检测系统中[24-29]. 与此同时对于损失函数的改进, 如Focal Loss[30]和IOU Loss[31]等进一步增强了深度学习模型在检测任务中的表现.

    基于以上工作基础, 本文提出一种基于深度卷积神经网络的分类不平衡纹理布匹瑕疵检测方法(Detecting Defects in Imbalanced Texture Fabric Based on Deep Convolutional Neural Network, 简称ITF-DCNN), 来解决布匹瑕疵检测中提取到的图片特征难以用于准确的瑕疵检测以及检测模型训练过程中瑕疵样本不平衡的问题. 本文的主要贡献在以下几方面: 1)针对原始的ResNet中残差模块会造成信息流失, 导致特征图对瑕疵特征表达能力不足的问题, 提出了使用特征通道叠加后采用卷积融合的方式对残差模块进行改进; 2)为充分利用数据集中已有的布匹模板图片, 构造特征过滤金字塔网络( Filter-Feature Pyramid Networks, 简称F-FPN), 通过布匹模板图片对布匹瑕疵图片中的冗余背景特征进行过滤; 3)基于数据集中各类瑕疵样本分布存在着极度不平衡的问题, 提出改进的损失函数Multi Focal Loss (MFL)来解决模型对于少数类瑕疵样本检测准确率不高的问题.

    本文的组织架构如下: 第一节对布匹瑕疵检测的相关工作进行介绍. 第二节对布匹瑕疵检测中的问题进行描述, 阐明检测模型难以取得精确检测结果的原因. 在第三节中介绍本文采用的布匹瑕疵检测模型, 包括其中特征提取网络的构造, 特征过滤网络的建立, 以及数据集不平衡的解决方案. 第四节将基于构建的布匹数据集进行实验分析, 验证本文提出的模型在布匹瑕疵缺检测任务中的有效性, 同时为证明各改进结构对模型性能的提升, 将基于各改进结构进行单独的纵向对比实验. 第五节用于对全文的工作进行总结和展望.

    • 在瑕疵检测领域中, 被检测物体可被分为有纹理材料和无纹理材料[2], 布匹作为一种典型的有纹理材料, 其瑕疵检测问题引起了大量专家学者的关注, 目前针对布匹瑕疵检测过程中存在的布匹材料变形、背景问题复杂、类内瑕疵多样性大、类间瑕疵极度相似等问题, 已有许多方法尝试对其进行解决[32-36]. 2016年, Yundong Li和Weigang Zhao[37]等人针对纹理变形的布匹瑕疵检测问题, 提出了一种基于Fisher标准的深度学习方法, 该方法首先构造一个基于Fisher准则的堆叠式自动降噪编码器(FCSDA), 然后将布匹图片分割成等大小的若干份, 分割后的瑕疵图片和无瑕疵图片都将参与FCSDA的训练, 编码器训练完成后, 待检测图片被分割成同样大小的若干份进行预测, 最后通过结合重建后图片与缺陷之间的残差和预先设定的阈值来对缺陷进行定位, 该方法虽然可以完成纹理图片的瑕疵检测, 但是检测前需要将图片进行分割, 且训练过程过于繁琐. 2018年, Jun-Feng Jing和Hao Ma[38] 等人提出一种基于卷积神经网络的纹理布匹瑕疵检测方法PTPI(Patches Training and Image Testing), 该方法首先通过距离匹配函数计算出训练时对瑕疵进行分割的最佳尺寸, 随后利用该尺寸将样本图片中的瑕疵逐一分割出来并进行标注, 再将构建好的卷积神经网络模型在手写数字数据集上进行预训练, 预训练完成后利用分割后的数据集进行学习, 最后模型在测试图片上进行滑动, 从而完成瑕疵检测, 此方法的关键在于分割时尺寸的计算, 要求设计出的尺寸既能够使得分割后的图片完全具有缺陷的特征, 又不能包含太多的背景像素, 对于瑕疵尺寸变化不大的情况, 该方法能取得较好的检测效果, 但是该方法并没有对网络模型进行优化, 无法适应瑕疵分布复杂的情况. Jagdish[39]等人通过灰度共生矩阵对布匹图片特征进行提取, 辅以滑窗技术计算出待检测图片的纹理信息, 之后将所得信息和参考阈值进行对比, 若纹理信息超出阈值范围则认定为瑕疵图片, 该方法简单易行计算量小, 可在嵌入式DSP系统中实现, 但是该方法依赖于手工设计的特征, 实际检测过程中可能会有很多有效信息流失. 此外, Tao[40]等人提出使用一种两阶段的方法进行物体表面瑕疵的检测, 首先使用一种级联的自动编码器来对输入图片的每个像素进行预测, 随后只需再确定一个阈值便可实现对缺陷的分割, 该方法为Tao的团队首次提出, 在提取出缺陷部位后使用一个CNN模型对缺陷进行分类, 该方法能够实现对瑕疵特征的准确提取, 检测准确率高, 然而要求数据集具有缺陷的掩膜标注信息, 大部分缺陷检测的应用场景难以满足该要求, 且分割模型和分类模型要单独训练, 无法端到端的进行, 过程稍显繁复. Di[41]等人使用卷积自动编码器和半监督的生成对抗网络组合来对缺陷进行检测, 该方法首先利用大量的无标签样本训练一个卷积自动编码器, 随后利用该编码器用于特征提取, 将提取到的特征输入到softmax层进行分类, 最后结合SGAN模型提升网络的泛化性, 这种半监督的方式可以改善标签样本较少的情况下模型的分类性能, 但是对于样本类别不平衡的问题并没有进行考量. Selim Arikan[42] 等人提出一种基于卷积神经网络的方法对物体表面的瑕疵进行实时识别, 该卷积网络通过大卷积核以及跳级连接尽可能多的准确获取缺陷的信息, 且使用了一种新的数据增强方法, 并通过实验验证了该方法的有效性, Selim Arikan的方法能够满足检测的实时性要求, 单张图片的检测时间仅为1.9 ms, 可是构造的卷积网络比较精简, 并不适用于背景复杂的样本.

    • 布匹瑕疵检测的自动化是一个集布匹瑕疵特征提取, 瑕疵分类和瑕疵定位的多任务过程. 具体来说, 检测算法要实现三个方面的功能: 一是判断输入的布匹图片有无瑕疵; 二是对有瑕疵布匹图片中的瑕疵进行定位; 三是对定位出来的布匹瑕疵进行分类. 常见的布匹瑕疵样本如图1所示, 其主要存在以下三个特征: 1)布匹表面包含大量的花色, 且花色种类繁多, 同时其分布不具有规律性, 造成布匹图片纹理信息复杂, 瑕疵特征提取困难; 2)布匹中的一些瑕疵特征极其相似, 难以用肉眼进行判别, 如图中的“虫粘”类瑕疵和“破洞”类瑕疵; 3)布匹中的各类瑕疵形状各不相同, 尺寸跨度极大, 其形状分布如图2所示. 除此之外, 纹理布匹瑕疵检测还存在着大量其他问题, 如在纹理布匹瑕疵检测问题中, 由于图片背景的复杂性, 为降低瑕疵检测的难度, 通常会采用图片分割的手段, 得到分辨率较小的图片后再进行检测, 但是这无疑会加大瑕疵检测的工作量, 从而影响检测的速度, 且大部分经典的检测方法仅支持检测单张图片中只存在单个瑕疵的情形, 对于单张图片中存在多个不同种类瑕疵的情况仍不能很好的判别. 此外目前大部分基于深度学习进行布匹瑕疵检测的相关工作中, 仅仅给出了对布匹图片是否含有瑕疵的判断结果, 并未对有瑕疵图片中含有的瑕疵进行具体的分类, 或者仅实现对易于检测的瑕疵类别的判断. 而对于布匹瑕疵数据集中各类样本的数量不均衡, 从而导致模型对于少数类样本的检测性能较差的问题, 目前还没有文献进行研究.

      图  1  纹理布匹瑕疵样本图片

      Figure 1.  Samples of jacquard fabric defects

      图  2  纹理布匹瑕疵形状分布

      Figure 2.  Shape Distribution of jacquard fabric defects

      正是由于布匹瑕疵数据集的这些特性, 使得人工检测及传统的瑕疵检测方案难以达到理想的检测效果, 因此本文在对ResNet, Cascade RCNN, FPN等模型研究的基础之上, 提出一种基于深度卷积神经网络的纹理布匹瑕疵检测方法, 针对大分辨率的纹理布匹进行自动的瑕疵特征提取, 并将经过预处理后的瑕疵特征图输入到分类模型和回归模型中, 实现纹理布匹的瑕疵检测.

    • 考虑到布匹瑕疵检测算法对精度与速度的要求, 本文采用的特征提取网络框架为基于ResNet50改进后的ResNet50+. 利用ResNet50+对输入的布匹瑕疵图片进行特征的提取, 同时选用提取过程中产生的第2、3、4、5、6阶段的特征图构建F-FPN网络模型. F-FPN网络模型将对不同层级的特征图进行融合, 增强底层特征图的语义信息, 同时利用模板特征图对瑕疵特征图中的复杂背景信息进行过滤, 随后得到的特征图经由RPN (Region Proposal Network)网络提取得到约2000个候选框, 将得到的2000个候选框进行ROI (Region of Interest) pooling得到输出大小一致的候选框. 在此基础上使用级联的分类器和回归器对候选框进行分类和回归, 提升检测模型对瑕疵的定位精度. 模型的整体结构如图3所示, 其中 “FC” 代表全连接层,“$ C_i $”,“$ B_i $”, $ i = 1 $, $ 2 $, $ 3 $分别代表分类网络和回归网络.

      图  3  ITF-DCNN模型的整体结构图

      Figure 3.  Structure of detection model

    • 本文采用的特征提取网络的原型为Resnet50, 其网络结构如图4所示. 该网络可分为5个阶段, 第一个阶段由卷积层, Batch Normalization (BN)层, ReLU激活层和$ 7\times 7 $的pooling层构成, 其后的4个阶段都可视为由Identity Block和Conv Block组成的残差模块级联构成. 在原始的Resnet50中, Conv Block的结构如图5a)所示, 特征图输入后经过两个通道, 相减后输出, 在该过程中使用的ReLU激活函数如式(1)所示:

      图  4  Resnet50网络结构图

      Figure 4.  Model structure of ResNet50

      图  5  残差模块

      Figure 5.  Model structure of residual block

      $$ ReLU(x) = \left\{ \begin{array}{l} x\rm{\; \; \; \; \; if\; \; x}\ge \rm{0} \\ 0\rm{\; \; \; }otherwise \label{con:ReLU} \end{array} \right.$$ (1)

      之后经过一个卷积核为$ 1 \times 1 $, stride = 2的卷积层, 输出后的特征图大小为:

      $$ \begin{split} &{W_o} = \dfrac{{{W_i} - 1}}{2} + 1\\ &{H_o} = \dfrac{{{H_i} - 1}}{2} + 1 \end{split} $$ (2)

      $ ({W_i},{H_i}) $表示输入特征图的长宽, $ ({W_o},{H_o}) $表示输出特征图的长宽, 卷积核的步长为2, 卷积核尺寸为1将导致最多达$ \dfrac{3}{4} $的信息流失. 为避免这个问题, 本文对Conv Block的结构进行改进, 将其中的下采样卷积层后移, 并把$ 3 \times 3 $的卷积核的stride设置为2来达到下采样的目的, 同时将shortcut中的$ 1 \times 1 $卷积核替换成$ 3 \times 3 $卷积核, 改进后的Conv Block结构如图5b)所示. 与此同时Resnet50采用级联的Identity Block模块来代替原本的卷积层, Identity Block模块的引入可以解决随着网络模型的加深而出现的梯度消失问题. 原始的Identity Block模块如图5c)所示, 输入经过两通道后相加, 再进入ReLU做一个非线性激活, 这导致Identity Block的输出只能为正数, 极大制约模型的表达能力. 因此, 本文采用如图5d)所示的改进结构, 将ReLU层移到通道内部, 且特征图直接相加替换为两通道特征图叠加后使用卷积核来进行残差的提取, 从而提升模型对瑕疵特征的表达能力.

    • 在深度卷积神经网络中, 进行多尺度特征融合目的在于将不同分辨率的特征信息结合起来, 弥补高分辨率的特征图语义信息低的弱点. 给定输入特征层$ {{\vec{C}}_{in}} = \{C_{_{{{l}_{1}}}}^{in},C_{_{l2}}^{in},\cdots,C_{_{{{l}_{n}}}}^{in}\} $, 其中$ C_{_{{{l}_{i}}}}^{in} $代表第$ i $层的输入特征层, 融合的实质是找到一种由输入特征层到输出特征层的映射关系, 该过程可表示为: $ {\vec P_{out}} = f({\vec C_{in}}) $. 在传统的特征金字塔网络中, 取每张输入图片的5个特征层$ {\vec C_{in}} = \{ C_2^{in},C_3^{in},\cdots,C_6^{in}\} $, 每个特征层的分辨率为输入特征图尺寸的$ 1/{2^i} $, 各个特征层经过一个$ 1 \times 1 $卷积层后将通道数进行统一, 最后采用一种自上而下的融合方式进行融合, 该过程具体可见图6a).

      图  6  特征图过滤方式

      Figure 6.  Methods to filtering feature maps

      其中 “$ 2 \times $” 表示进行两倍的上采样. 在布匹瑕疵检测中, 由于布匹图片存在大量的纹理特征, 造成背景复杂, 使用传统的FPN卷积网络生成瑕疵图片的特征图, 容易提取出大量的冗余特征, 增大瑕疵检测的难度. 为解决特征图中存在的特征冗余问题, 可使用特征过滤的方法, 消除无关特征对检测模型的影响. 一种简单的特征过滤方式是将瑕疵布匹图片像素值减去模板图片(模板图片中不含瑕疵, 但是包含对应的复杂背景信息)的像素均值, 从而在一定程度上消除背景的影响, 即:

      $$ {p_d}(i,j) = {p_d}(i,j) - avg({p_t}) $$ (3)
      $$ avg({p_t}) = \frac{{\sum\limits_{i = 0}^m {\sum\limits_{j = 0}^n {{p_t}(i,j)} } }}{{m \times n}} \quad$$ (4)

      其中$ avg({p_t}) $表示模板图片的像素均值, $ {p_d}(i,j) $, $ {p_t}(i,j) $分别表示瑕疵图片和模板图片第i行第j列的像素值, 且满足$ i < m,j < n $, $ m \times n $表示图片的分辨率. 但是该方法没有考虑纹理在布匹图片中的空间分布差异, 对于纹理单一的布匹图片可以取得较好的效果, 当布匹图片的纹理较复杂时, 往往难以奏效. 使用深度卷积神经网络对布匹图片进行卷积, 可以提取布匹图片一定空间范围内的特征, 进行多次重复卷积, 可以获取高语义信息的特征, 即在一定程度上消除布匹的纹理特征在空间分布上的差异. 因此使用卷积网络对瑕疵布匹图片和模板图片分别进行特征提取, 为缓解瑕疵图片和模板图片在纹理信息上的差异性, 将输入到网络中的模板图片进行随机1至10个像素上的抖动, 使得瑕疵图片和模板图片对齐, 得到相关特征图后, 利用模板图片特征对瑕疵布匹图片特征进行冗余特征过滤. 基于此, 本文结合FPN网络提出两种过滤的方式:

      加性过滤: $ {O_i} = I_d^i + I_t^i $, 其中$ {O_i} $代表过滤后的输出特征图, $ {I_d^i} $$ {I_t^i} $分别代表瑕疵布匹图片和模板图片的特征图, $ i $代表特征图的通道数. 该过滤方式直接对应特征图中的各个特征进行操作, 并不改变特征图的维数, 但是可以增强每一维特征中瑕疵的语义信息, 过程具体可见图6b). 加性过滤方式直接对特征图中的每一维特征进行相加, 并没有考虑每一维特征在输出特征图中应当占据的权重, 这可能导致某些对检测有益的特征语义信息反而减弱, 基于此提出了卷积过滤.

      卷积过滤: $ {O_i} = concatenate(I_d^i,I_t^i)*{K_i} $, 其中$ concatenate(I_d^i,I_t^i) $表示对$ I_d^i,I_t^i $的特征图进行叠加, “$ * $” 表示卷积操作, $ {K_i} $表示$ 1 \times 1 $卷积核. 该过滤方式通过$ 1 \times 1 $卷积核的引入, 使得网络可以自适应的对不同的特征信息进行加权求和, 避免了有效瑕疵特征语义信息的流失, 其具体过程如图6c)所示.

    • 在布匹瑕疵检测中, 不同种类的瑕疵在数量上分布极不平衡, 其中最常见的瑕疵为“沾污”, 数量最少的瑕疵为“其他”, 两者的不平衡比例高达$\tilde 47:1$. 瑕疵种类的不平衡性对于模型的检测效果会产生较大影响, 模型对于样本数量更多的瑕疵能取得更好的检测效果, 而对于样本数量较少的瑕疵, 由于难以学得较好的特征表达, 使得模型对该类瑕疵的检测准确率不高, 定位精度较差.

      为缓解模型中参与训练的正负样本不平衡问题, 体现不同样本的难易分程度, Kaiming He等人在2017年提出了Focal Loss损失函数[30]:

      $$ FL({p_t}) = - {\alpha _t}{(1 - {p_t})^\gamma }\log ({p_t}) $$ (5)
      $$ {p_t} = \left\{ {\begin{array}{*{20}{c}} {p,{\rm{\; \; \; if\; \; y = 1}}}\\ {1 - p,{\rm{ \; \; \; otherwise}}} \end{array}} \right.\quad\quad$$ (6)

      其中$ p{\rm{ }} $表示对anchor的预测置信度, 该损失函数针对正负类anchors不均衡及不同anchors的难易分程度进行特殊处理, 在损失函数中$ {\alpha _t} $被当作平衡正负类anchors的加权系数, 同时可通过$ \gamma $值来调节难分anchors在总损失中的占比, 在一定程度上解决样本不平衡的问题. 但是Focal loss并没有考虑到数据集中各类样本的不平衡度, 仅仅依靠人工对参数的调节, 往往难以把控模型学习的方向, 最终导致模型的检测性能过于依赖参数$ {\alpha _t} $$ \gamma $的选取, 想要依靠Focal Loss训练得到性能优良的检测模型, 往往需要花费大量的时间在超参数的调整上.

      为适应多分类不平衡数据集, 同时优化超参数的选取, 本文结合Focal Loss提出了改进的Multi Focal Loss(MFL)损失函数. 为使得该损失函数可对不同类别的瑕疵进行加权, 将原本的二分类加权系数$ {\alpha _t} $移除, 并添加多类样本加权系数$ {\beta _c} $, $ {\beta _c} $可针对不同瑕疵样本在数据集中的占比自动调整, 从而控制对应样本在损失函数中的所占据的比重. 本文提出的$ {\beta _c} $计算方式为:

      $$ {\beta _c} = \frac{\omega }{{{N_c}}} $$ (7)

      其中$ \omega $表示平衡系数, $ {N_c} $表示类别为$ c $的样本数量. $ {\beta _c} $的引入使得数据集中的每个大类样本的损失在总损失中所占的比例相对较小, 防止数据集的极度不平衡性导致大类样本完全主导梯度更新方向的情况发生. 改进后的损失函数可表示为:

      $$ MFL({p_t}) = - {\beta _c}{(1 - {p_t})^\gamma }\log ({p_t}) $$ (8)

      其中$ {p_t} $的取值如式(5)所示.

    • 本文所采用的数据集来自广东省某纺织企业, 数据集共包含有瑕疵图片2259张, 模板图片68张, 模板图片中只含有背景纹理信息, 不包含瑕疵, 图片的分辨率为$ 4\;096 \times 1\;810 $, 在实验中, 将其中的2 015张瑕疵图片划分为训练集, 剩下的244张作为验证集. 在本数据集中包含7种布匹瑕疵, 分别为沾污、花毛、虫粘、破洞、蜡斑、网折、其他, 在训练过程中背景将单独作为一个类别参与训练, 因此实际是一个8分类的模型.

      深度学习模型的训练需要大量的样本, 为达到理想的训练效果, 需对原始的数据集进行数据增强, 本文采用的数据增强方法为: 1)对原始的瑕疵样本图片进行$ 2 \times 2 $的切割; 2)对切割后的数据集分别进行水平和垂直方向上的翻转. 数据增强后的样本量为原始数据集的8倍. 增强前后数据集中的样本分布如表1所示. 表1真实反映了数据集中的各类瑕疵在数量上存在极度不平衡问题, 其中“沾污”类瑕疵数量最多,“其他”类瑕疵数量最少, 这种类别失衡问题将导致模型在学习过程中梯度被多数类瑕疵主导, 使得模型对少数类瑕疵的检测性能较差.

      表 1  增强前后数据集中的样本分布

      Table 1.  Samples distribution of the data set before and after data augmentation

      瑕疵类别沾污花毛虫粘破洞蜡斑网折其他正常总计
      训练集增强前243239820812273775227566118
      训练集增强后972815948344902923062061102624476
      验证集增强前14133126254420623
      验证集增强后56213448226221416722490

      本文实验采用的计算机配置为Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, NVIDA GeForce 1080TI GPU, 操作系统为Ubuntu18.04. 本实验的网络模型基于Pytorch框架搭建, 实验中设置batch size为2, 训练步数为600000, 初始学习率为0.0025, 动量为0.9, 衰减系数设置为0.0001. 实验可分为六部分, 第一部分为数据集增强前后模型检测性能对比实验. 第二部分用于比较本文提出的改进模型和其他模型的性能差异, 参与比较的模型有主流的深度学习检测方法, 传统的布匹瑕疵检测方法以及目前常用的布匹瑕疵检测方法. 第三部分用于分析ResNet50+网络结构对纹理复杂的布匹瑕疵进行特征提取的有效性. 第四部分用于验证F-FPN结构在布匹瑕疵检测上的有效性, 并对两种过滤方法的性能进行比较, 在实验中采用的模型框架为Resnet50+FPN+Cascade R-CNN. 第五部分用于验证Multi Focal Loss对于解决布匹瑕疵检测中瑕疵类别不平衡问题的有效性, 并分析损失函数中参数的选取对模型性能的影响. 第六部分则是对ITF-DCNN在不同的模板上泛化性能的分析.

    • 如4.1节所述, 为使用深度学习模型达到理想的训练效果, 需对原始数据集进行增强, 增强前后的数据集样本分布如表1所示, 为验证数据增强对模型性能的影响, 采用Cascade R-CNN和ResNet50搭建训练模型, 分别使用增强前和增强后的数据集对模型进行训练, 实验结果如表2表3所示, 从表中可以看出增强后的数据集在各个类别上的检测性能均有所提升, 检测准确率平均提升2.21%, mAP平均提升1.77%, 其中“蜡斑”类瑕疵的检测性能提升最大, 准确率和mAP分别上涨了4.61%和7.35%, 原因在于“蜡斑”类瑕疵在原本的数据集中样本较少, 且该类瑕疵特征简单, 所使用的数据增强方法有利于模型对该类瑕疵的特征进行学习.

      表 2  数据集增强前后模型准确率对比实验结果

      Table 2.  Experimental results of model on accuracy before and after data set enhancement

      瑕疵类别沾污花毛虫粘破洞蜡斑网折其他正常均值
      数据集增强前88.24%83.36%87.56%89.36%83.78%88.21%89.65%98.66%88.61%
      数据集增强后90.56%85.51%90.35%91.42%87.64%89.24%90.02%99.81%90.57%

      表 3  数据集增强前后模型mAP对比实验结果

      Table 3.  Experimental results of model on mAP before and after data set enhancement

      瑕疵类别沾污花毛虫粘破洞蜡斑网折其他正常均值
      数据集增强前69.06%58.51%81.50%83.44%33.33%63.70%45.51%62.15%
      数据集增强后70.04%59.12%83.23%83.54%35.78%63.70%47.31%63.25%
    • 在本实验中, 为验证本文提出的改进模型对布匹瑕疵检测的有效性, 将结合不同的detector和backbone进行对比实验, 其中参与实验的detector有Faster R-CNN、Cascade R-CNN和RetinaNet, 参与实验的backbone有ResNet50和ResNet101, 本文所提出的改进模型将基于Cascade R-CNN进行搭建. 为验证深度学习模型和传统的布匹瑕疵检测模型在本数据集上的性能差异, 选择3种传统的瑕疵检测方法进行对比实验, 分别是, 基于灰度共生矩阵(Gray-level Co-occurrence Matrix, 简称GLCM)的瑕疵检测方法, 其中灰度等级设置为256, 基准窗口尺寸设置为(3,5,7), 移动方向设置为$ (0,\dfrac{\pi}{4},\dfrac{\pi}{2},\dfrac{3\pi}{4}) $, 采用的统计属性包括对比度、非相似性、同质性、角二阶矩以及能量; 基于Gabor滤波器的瑕疵检测方法, 其中滤波方向选择为$ (0,\dfrac{\pi}{4},\dfrac{\pi}{2}, \dfrac{3\pi}{4}) $, 滤波中心频率选择为$ (\dfrac{1}{8},\dfrac{1}{16},\dfrac{1}{32}) $; 基于高斯混合模型(Gaussian Mixture Model, GMM)的瑕疵检测方法, 其中高斯模型的个数设置为3. 为保证经典模型的检测效果, 实验采用的图片分辨率为$ 280 \times 280 $. 为进一步比较本文所提出的算法与目前其他的缺陷检测算法之间性能的差异, 将对文献[38, 41-42]中所描述的PTIT方法、CAE-SGAN和SufNet进行实验, 实验采用的图片分辨率设置为$ 280 \times 280 $. PTIT方法中, 对每一类瑕疵样本通过距离匹配函数求解得到patchs的尺寸后进行平均, 最终patchs的大小为$ 45 \times 45 $. 在CAE-SGAN的实验中, 各类缺陷样本分别取500张进行CAE的训练, 对于某些类别样本不足的情况, 使用添加随机噪声的方法生成新样本. SufNet模型的训练迭代次数和学习率将参照原文设置, 分别为100和0.0007, 损失函数采用交叉熵损失函数, 此外由于文献[38, 41-42]的方法无法对缺陷进行精确的定位, 因此只对检测准确率进行比较分析.

      实验结果如表4, 图7, 图8所示. 表4显示所有参与实验的方法的检测结果, 图7显示了backbone分别为ResNet50和ResNet101时的模型Loss收敛曲线图, 由loss收敛曲线图可看出, 模型的损失在训练次数达到240000次时基本上趋于稳定, 且最终稳定在一个比较小的值. ITF-RCNN在测试集上的可视化结果如图8所示, 其中细线框和右上角的数字分别表示真实瑕疵的位置、类别及置信度, 粗线框和右下角的数字分别表示预测瑕疵的位置、类别及置信度, 由此图可以看出模型对于瑕疵类别及位置的预测比较可靠. 从表4中可以看出, 在backbone相同时, Cascade R-CNN因为在对RPN输出的框进行检测时采用级联的结构, 逐步提升检测框的IOU阈值, 所以检测准确率要优于Faster R-CNN和RetinaNet. 在backbone不同时, 模型性能并不总是随着网络结构的加深而增强, 可见detector的设计也是影响模型性能的一个关键因素. GLCM、Gabor、GMM等传统的瑕疵检测模型, 其检测效果总体上不如ITF-DCNN模型, 原因在于数据集中布匹图片存在多种花色纹理, 背景复杂, 导致滤波效果不佳, 且瑕疵在形状、大小等属性上的特征呈现多样性, 即使同一种瑕疵在尺寸和形状上也存在着多种分布, 使得模型难以得到完整表征瑕疵特征的统计量. PIPT方法检测准确率为92.56%, 该方法将布匹图片中的瑕疵使用合适的尺寸切割出来后用于CNN分类器的训练, 虽然可以加快模型的训练速度及提取瑕疵特征的能力, 但是本文的数据集中各类瑕疵形状差异极大, 分割时采用一个固定尺寸无法使得模型达到最优的检测效果, CAE-SGAN的检测准确率为85.01%, 该模型将CAE和SGAN结合, 利用SGAN生成的样本对CAE进行优化, 在训练样本较小的时候该策略确实比较有效, 但并不能解决背景复杂及类别不平衡的问题, SurfNet训练速度和测试速度均很快, 但该网络原本是针对二分类问题进行设计的, 将其迁移到多分类问题上检测性能有所损失, 且该网络的设计过于简单, 对于具有复杂背景的检测目标无法完整的将特征从背景中分离出来, 因此这3个模型的检测准确率都低于ITF-DCNN的检测准确率. 对于本文提出的ITF-DCNN模型, 对比backbone为ResNet50的Cascade R-CNN, 其mAP提升了15.11%, 检测准确率和误检率提升了7.74%和74.18%, 将backbone替换为ResNet101后, ITF-DCNN模型性能同样存在提高, 可见该模型对于分类不平衡的纹理复杂布匹的瑕疵检测确实有效, 但更换网络结构更深的backbone并没有带来明显的收益, 原因在于改进后的残差网络和F-FPN网络已经可以提取到瑕疵布匹图片的大部分有效特征.

      表 4  不同模型在布匹瑕疵数据集上的实验结果

      Table 4.  Experimental results of different models on the jacquard fabric defect data set

      DetectorBackbonemAP准确率误检率漏检率
      Faster R-CNNResnet5065.56%87.40%12.60%1.42%
      Cascade R-CNNResnet5063.77%90.55%9.45%2.85%
      RetinaNetResnet5065.60%53.86%46.13%0.20%
      Faster R-CNNResnet10163.85%88.72%11.28%2.24%
      Cascade R-CNNResnet10164.60%90.35%9.65%1.83%
      RetinaNetResnet10166.52%56.23%43.77%0.12%
      GLCM64.63%35.37%6.87%
      Gabor83.87%16.13%1.67%
      GMM81.32%18.68%1.77%
      PTIT[38]92.56%7.44%0.94%
      CAE-SGAN[41]85.01%14.99%2.65%
      SurfNet[42]84.82%15.18%1.79%
      ITF-DCNNResnet5073.41%97.56%2.44%1.65%
      ITF-DCNNResnet10173.92%97.66%2.34%1.14%

      图  7  模型的Loss收敛曲线图

      Figure 7.  The loss curves of models

      图  8  ITF-DCNN模型检测结果图

      Figure 8.  Experimental results of the proposed method ITF-DCNN

    • 本文所使用的数据集中, 布匹图片存在着复杂的背景纹理信息, 某些特征明显的背景纹理很有可能将需要检测的瑕疵的特征掩盖, 使得特征提取网络无法提取出用于检测瑕疵的关键信息, 这对于布匹瑕疵的检测明显是不利的. 为解决上述问题, ResNet50+网络基于ResNet50进行改进, 目的在于针对具有复杂背景的布匹图片, 进一步提升网络对于图片特征的表达能力. 为验证改进后的网络对于模型性能的影响, 本节将把ResNet50中的Conv Block和Identity Block分别替换成本文提出的改进结构, 用于分析替换前后模型的性能差异, 同时为检验ResNet50和ResNet50+的性能差异, 也将对这两个模型进行对比实验, 实验中除了Conv Block和Identity Block有所不同外, 其余的网络结构设置、参数设置以及所使用的数据均相同. 实验结果如表9所示, 其中ResNet50+C和ResNet50+I分别表示将ResNet50中的Conv Block和Identity Block替换后的模型, 替换后的模型的检测准确率分别提升了1.94%和1.34%, 而ResNet50+对比ResNet50, 其检测准确率和mAP提升幅度分别为2.46%和1.49%. 可见经过改进后的ResNet50+确实对布匹图片的特征具有更强的表达能力, 原因在于改进后的网络解除了ReLU激活函数对Identity Block输出的限制, 且通过卷积的方式对特征图进行融合, 为模型提供了更多的可能性.

      表 9  改进后的ResNet50+网络性能对比实验

      Table 9.  Experimental performance result of ResNet50+

      mAP准确率误检率漏检率
      ResNet5063.77%90.55%9.45%2.85%
      ResNet50+I63.68%91.76%8.24%2.66%
      ResNet50+C64.14%92.31%7.69%3.43%
      ResNet50+64.72%92.78%7.22%2.91%
    • 在4.3节的实验中, ITF-DCNN模型同时使用了改进后的残差结构ResNet50+、F-FPN和Multi Focal Loss, 实验证明了其对布匹瑕疵检测性能提升的有效性. 本次实验将验证单独使用F-FPN网络结构对模型性能的提升, 同时对在F-FPN中使用不同的过滤方式所带来的性能提升进行比较. 实验中各个模型使用的backbone均为ResNet50, 并且都使用Cascade R-CNN级联网络, 损失函数统一为多分类交叉熵损失函数:

      $$ Loss = - \sum\limits_{i = 1}^N {\sum\limits_{j = 0}^{C - 1} {{y_{ij}}\log ({p_{ij}})} } $$ (9)

      其中$ N $为样本量, $ C $为类别数, $ {y_{ij}} $表示第$ i $个样本的one hot标签中的第$ j $个分量, $ {p_{ij}} $表示样本$ i $被分为第$ j $类的概率. 实验结果如表5所示, 可见原始的Top-Down FPN因为其特征流动方向的限制, 导致其性能在所有模型中最差. 而PANet相比Top-Down FPN结构, 其增加了一个自下而上的特征流动方向, 使得提取得到的特征图更加适合进行布匹瑕疵的检测, 而对于本文提出的加性过滤和卷积过滤的F-FPN网络, 虽然其特征流动是单向的, 但是其在特征传递的过程中不断对特征图的冗余信息进行过滤, 仅保留对检测有益的特征, 对比Top-Down FPN其取得了更好的检测效果, 且卷积过滤的F-FPN因为可以自动的调整不同特征的过滤程度, 对比加性过滤的F-FPN其检测效果更好, 对比Top-Down FPN其mAP提升了12.00%, 检测准确率提升了6.81%.

      表 5  F-FPN性能验证实验结果

      Table 5.  Experimental performance result of F-FPN

      mAP准确率误检率漏检率
      Top-Down FPN63.77%90.55%9.45%2.85%
      PANet65.69%92.23%7.77%2.56%
      加性F-FPN70.31%93.65%6.53%1.95%
      卷积F-FPN71.42%96.72%3.28%1.25%
    • Multi Focal Loss基于不同类别的瑕疵数量对该类瑕疵的损失进行加权, 加权系数为$ {\beta _c} = \dfrac{\omega }{{{N_c}}} $, 为验证Multi Focal Loss对模型性能的影响, 同时找到最佳的平衡系数$ \omega $, 采用Cascade R-CNN为detector, ResNet50为backbone构建模型, 分别选用多分类交叉熵损失函数, Focal Loss和Multi Focal Loss进行对比试验, 实验结果如表6所示. 实验显示, Focal Loss对模型检测性能的提升受到参数$ \alpha $$ \gamma $的制约较大, 当使用较好的$ \alpha $$ \gamma $时, 模型性能可以得到提升, 但是当$ \alpha $$ \gamma $的选定不适当时, 反而会大大影响模型的性能, 依据表6中所选定的参数, 计算得模型检测准确率和mAP的变化幅度分别为32.22%和23.51%, 使用Multi Focal Loss时, 其准确率和mAP的变化幅度为3.14%和8.92%, 同时实验表明, 当$ \gamma $ = 2, $ \omega $ = 0.6时, 模型可取得最好的性能, 此时模型的mAP和准确率对比损失函数为交叉熵损失函数时上涨了11%和5.27%. 图9显示了模型分别取CrossEntropy Loss和Multi Focal Loss时, 对数据集中的少数类瑕疵的检测结果, 由此图中可以看出使用Multi Focal Loss可以有效改善瑕疵类别不平衡对模型检测性能的影响.

      表 6  Multi Focal Loss的性能验证实验结果

      Table 6.  Experimental performance result of Multi Focal Loss

      Loss Function$ \alpha $$ \gamma $$ \omega $mAP准确率误检率漏检率
      CE 63.77% 90.55% 9.45% 2.85%
      FL 0.25 5 52.53% 70.23% 29.77% 9.56%
      FL 0.25 2 65.62% 92.86% 7.14% 2.02%
      FL 0.25 1 64.88% 91.91% 8.09% 2.12%
      FL 0.5 0.5 64.74% 91.55% 8.45% 2.33%
      FL 0.75 0.2 59.27% 83.02% 16.98% 8.50%
      FL 0.75 0.1 58.11% 80.85% 19.15% 7.56%
      FL 0.75 0 58.01% 81.22% 18.78% 7.66%
      MFL 1 0.618 68.21% 94.39% 5.61% 1.44%
      MFL 2 0.618 70.12% 95.32% 4.68% 1.68%
      MFL 5 0.618 68.11% 94.50% 5.50% 1.56%
      MFL 2 0.1 67.22% 93.68% 6.32% 2.26%
      MFL 2 0.3 69.03% 94.88% 5.12% 1.56%
      MFL 2 1.0 69.22% 95.17% 4.83% 1.29%
      MFL 2 2.0 68.81% 94.35% 5.65% 1.68%
      MFL 2 5.0 64.38% 92.41% 7.59% 2.42%

      图  9  MFL在少数类上的检测结果图

      Figure 9.  Experimental result of MFL based on minority classes

    • 在布匹瑕疵检测中, 布匹的纹理信息多种多种, 不同的纹理将给布匹瑕疵检测带来不同程度的干扰, 为验证ITF-DCNN模型在具有不同纹理信息模板上的泛化性, 选取10种具有不同纹理信息的模板进行实验, 所选取的模板图片如图10所示, 实验中采用Cascade R-CNN为detector, ResNet50为backbone, Focal Loss为损失函数, 并分别结合卷积F-FPN和FPN构建模型. 实验过程中, 为加快模型的训练速度, batch size设置为4, 初始学习率设置为0.005, 动量设置为0.9, 衰减系数设置为0.0001, 梯度优化算法选择为Adam优化器, 训练步数为600 000. 实验结果如表7表8图11所示. 由实验结果可见, 具有不同纹理信息的模板将对模型的检测性能造成一定的影响, 但采用本文所提出的改进方法, 在不同的模板上模型的检测性能均有所提升, 其中模板5、模板6、模板10, 对比模板3、模板8、模板9的提升幅度更小, 其原因在于后者的纹理信息更加简单, 背景特征和瑕疵特征对比明显, 更有利于F-FPN对其中的背景特征进行过滤.

      图  10  模板图片

      Figure 10.  Template Images

      表 7  采用F-FPN的模型在不同模板上的泛化性分析

      Table 7.  Generalization Analysis of Models Using F-FPN on Different Templates

      模板1模板2模板3模板4模板5模板6模板7模板8模板9模板10均值
      准确率95.87%96.79%99.67%93.56%91.74%91.11%93.66%99.12%98.23%93.65%95.34%
      mAP69.12%69.73%75.37%68.97%67.46%68.12%68.24%75.96%76.82%68.02%70.78%

      表 8  采用FPN的模型在不同模板上的泛化性分析

      Table 8.  Generalization Analysis of Models Using FPN on Different Templates

      模板1模板2模板3模板4模板5模板6模板7模板8模板9模板10均值
      准确率91.63%91.04%92.38%90.39%88.34%88.12%91.25%91.75%91.42%89.11%90.54%
      mAP62.43%61.75%65.86%62.01%61.99%61.08%62.51%65.63%66.74%61.46%63.07%

      图  11  FPN和F-FPN的泛化性实验对比图

      Figure 11.  Comparison of FPN and F-FPN generalization experiments

    • 对于纺织工业中存在着的布匹瑕疵检测问题, 本文提出了一种基于深度学习的布匹瑕疵检测方法. 该方法使用改进后的ResNet50+进行瑕疵特征的提取, F-FPN网络结构通过在FPN层中使用模板布匹图片特征, 对瑕疵布匹图片特征中的冗余信息进行加性过滤或卷积过滤, 从而增强特征图对瑕疵信息的表达能力. 同时为解决布匹图片数据集中存在着的瑕疵样本类别不平衡问题, 提出基于Focal Loss改进的Multi Focal Loss损失函数. 该损失函数根据每类瑕疵的数量对其在模型中产生的损失进行加权, 从而增强模型对于少数类瑕疵样本的学习能力. 基于本文提出的方法在布匹瑕疵数据集上进行实验, 并和传统的缺陷检测算法以及目前主流的表面瑕疵检测算法进行对比, 实验结果验证了本文提出方法的有效性. 尽管本文提出的方法在布匹瑕疵检测中取得了良好的效果, 其仍然有很大的改进空间, 主要集中在两个方面, 一个是瑕疵类别增多的问题, 在纺织工中布匹的瑕疵种类超过70种, 虽然常见的瑕疵种类不多, 但是使模型能够对更多种类的瑕疵进行检测仍然是一个值得研究的方向; 二是检测速度的问题, 使用深度学习模型进行布匹瑕疵检测, 可取得很好的瑕疵定位精度和检测准确率, 但是因为模型复杂, 存在大量参数, 往往使得检测时间较长, 因此寻找合适的方法缩短检测时间也是亟需解决的问题.

WeChat 关注分享

返回顶部

目录

    /

    返回文章
    返回