基于S-YOLOV3模型的织物实时缺陷检测算法 下载: 1632次
1 引言
纺织产业是我国重要的民生产业,对我国经济的发展具有重大意义。纺织品的质量检测是纺织产业链中十分重要的一个环节,缺陷检测又是质量检测中的重要阶段。但是织物具有纹理图案复杂和缺陷种类多样化的特点,这增加了织物缺陷检测的难度。传统的织物缺陷检测是依靠人工目测来完成,具有成本高、效率低和鲁棒性低的缺点,难以满足实际生产需求,利用机器视觉检测织物缺陷已成为国内外诸多学者的一个研究热点。
现阶段对织物缺陷检测的算法主要包含传统的图像识别和深度学习两种方式。传统方法主要分为基于统计的方法、基于频域特征提取的方法和基于结构的方法[1]。文献[ 2]提出了一种基于低阶表示的织物缺陷检测方法,将织物图像分解为表示织物纹理的低阶矩阵和表示缺陷的稀疏矩阵,并对稀疏矩阵进行二值化处理,可以清晰地显示缺陷区域。文献[ 3]提出了一种多向二值模式与灰度共生矩阵结合的织物缺陷检测方法,先提取非缺陷织物图像的多方向纹理特征矩阵,再基于特征之间的相似性来确定检测阈值,该方法适用于各种灰度织物图像,但不适用于具有复杂纹理的织物图像,具有一定的局限性。文献[ 4]将积分图像集成到埃洛(ELO)分级算法中,从无缺陷图像中提取黄金子块并分配初始ELO点,ELO积分在每次匹配后进行更新,并对最终ELO点进行阈值化处理以获得明亮、暗缺陷和无缺陷区域,该方法可检测多种织物的缺陷区域,但在检测速度方面还有待提升。文献[ 5]提出了一种稀疏主成分热成像的方法,利用主成分热成像技术可以增强缺陷区域与无缺陷区域的对比度,从而有效地分离缺陷并实现对缺陷区域的识别。文献[ 6]提出了一种多纹理分级融合的织物缺陷检测算法,利用该算法可提取图像块的局部相位量化(LPQ)特征和Tamura粗糙度特征,通过融合这两种特征增强了对织物缺陷的表达优势,减少了漏检和误检情况的发生。传统方法在实施过程中需要对图像进行复杂的预处理,并且需要手工设置参数,这会产生巨大的人工和时间消耗,而且利用传统方法对不同纹理织物进行缺陷检测,通用性较差。
深度学习是一种自动提取特征的方法,将特征学习融入到建立模型的过程中,减少人为设计特征的不完备性,其在缺陷检测领域得到广泛应用。文献[ 7]提出了一种应用深度卷积神经网络(CNN)的织物缺陷检测算法,对织物缺陷种类平均的检测成功率可达到87.5%,但是该方法只实现了对缺陷的分类,并未实现对缺陷的准确定位。文献[ 8]提出了一种基于激活层嵌入CNN的织物缺陷检测方法,为解决精确定位细小结构和处理不平衡数据集的问题,在CNN中引入了一种新的双电位激活层,可以对复杂特征的织物进行高精度的缺陷分割,但其检测速度有待提高。文献[ 9]提出了一种基于CNN的SAR(Synthetic Aperture Radar)图像舰船目标检测算法,用来检测多场景下的多尺度舰船目标,通过对深层特征图进行上采样并与底层特征图相融合,同时使用了新的二分类损失函数,实现对不同场景下多尺度舰船目标的准确检测,但检测速度仅为29 frame/s。文献[ 10]提出了一种压缩传感与CNN相结合的织物缺陷分类方法,根据压缩采样定理对小样本数据进行压缩和扩充,利用CNN对数据特征进行直接分类,但未能实现对织物缺陷的检测。文献[ 11]针对几种常见的织物缺陷提出了一种紧凑的CNN结构,通过多尺度分析、滤波因子分解和参数归约等技术来构造微体系结构,提高了模型的检测精度,但未能实现对复杂纹理织物的缺陷检测。
针对以上方法中存在的问题,本文提出一种基于S-YOLOV3(Slimming You Only Look Once Version 3)模型的织物缺陷检测算法。首先对目标边框使用K均值(K-means)算法进行维度聚类,加快网络的学习速度;再利用批归一化(BN)层中的缩放因子γ评价上层输出贡献的大小,对贡献较小的冗余卷积核进行剪枝,从而得到S-YOLOV3模型,达到模型压缩和加速的效果;最后对S-YOLOV3模型进行微调以进一步提升准确率,满足了实际生产对目标检测的准确性和速度的要求。
2 S-YOLOV3模型的原理
YOLOV3模型的性能在检测领域中取得了显著的成绩,但是这些优越的性能需要较多的计算量和较大的存储空间,因此提出一种基于S-YOLOV3模型的织物缺陷检测算法,其识别流程如
图 1. S-YOLOV3模型识别织物缺陷的流程
Fig. 1. Flow diagram for S-YOLOV3 model to identify fabric defects
2.1 传统YOLOV3模型
在YOLOV3模型中需设定一组宽高固定的初始候选框,对初始候选框进行选择会直接影响网络模型对目标检测的精度和速度。利用K-means[12]聚类算法在训练集上对初始候选框进行聚类,得到9个不同尺寸的候选框,从而加快网络的收敛速度,聚类准则函数可表示为
式中:xi表示第i个样本;cj表示j个聚类中心;n表示样本的总个数;k表示簇的个数;E表示数据库中所有对象的平方误差的总和。
YOLOV3模型中的特征提取网络为Darknet53,由一系列大小为1×1和3×3的卷积核组成,因为网络中有53个卷积层,即Darknet53。Darknet53的结构如
Darknet53可加深网络层数,增强特征的提取能力,并根据残差学习[13]的思想,在网络结构中添加5个残差块,每个残差块由多个残差单元组成,其中残差单元包含卷积、BN和带泄露线性整流函数(leaky ReLU)[14]。引入残差单元可避免在训练过程中因网络层数的加深而造成梯度爆炸的现象,从而达到更好的训练效果。
2.2 S-YOLOV3模型
网络层数的加深提升了网络特征的提取能力,但这会使模型预测的耗时更长。在YOLOV3模型的基础上提出S-YOLOV3模型,通过减少参数的数量,删除深度网络中的冗余特征,极大地缩减了模型尺寸,提高了检测速度。S-YOLOV3模型训练流程如
实验在BN层中引入卷积核的γ和平移参数β,并将BN层的γ作为YOLOV3模型剪枝的缩放因子,BN层的转换公式为
式中:xk和yk分别表示BN层的输入和输出,k表示层数;
γ代表卷积核的重要程度,即γ值越小,卷积核的重要程度越低,删减γ值接近于零的卷积核,裁剪过程如
式中:x,y分别表示训练的输入和输出;W表示可训练的权重;
3 实验结果与对比分析
3.1 实验环境
实验环境配置:Intel(R) Core(TM) i7-6800K处理器,128 G内存,NVIDIA GeForce GTX1080Ti显卡,CUDA版本为10.0,OpenCV版本为3.4,操作系统为Windows 10。最终在PyCharm工具上使用S-YOLOV3模型来训练。
网络参数配置:动量为0.9,权重衰减系数为0.0005,迭代次数为1000次,学习率为0.01%,学习率衰减系数为0.8,交并比(IOU)阈值为0.5。
3.2 数据集
为了验证基于S-YOLOV3模型的织物缺陷检测算法的有效性,实验使用两种数据集,分别为FID(Fabric Image Dateset)和YID (Yarned Fabric Image Dateset),并对每类缺陷图像选取50张,织物图像的尺寸均为256 pixel×256 pixel。
FID[15]是香港大学自动化实验室的样本库,由三种不同纹理的织物(方格织物、圆点织物和星型织物)组成,其包含5种织物缺陷类型,分别是断头疵(broken-end)、破洞(hole)、多网(netting-multiple)、密路(thick-bar)和稀路(thin-bar)。使用K-means聚类算法对其训练集中目标框的宽高进行聚类,得到9个尺寸不同的初始候选框,其宽和高分别为(41,122)、(23,94)、(18,33)、(228,24)、(121,26)、(168,54)、(24,233)、(52,73)和(42,36),并在S-YOLOV3模型下进行训练,输出类别为5类,分别为断头疵、破洞、多网、密路和稀路。FID织物缺陷的样本如
YID是包含迷彩印花、网格、条纹及坯布的图像织物数据库。其中迷彩印花、网格和条纹图案织物的缺陷类型为毛丝;坯布织物的缺陷类型为毛丝(broken filament)、破洞、断经(broken-picks)、断纬(cracked-ends)、浆斑(pulp-stain)、结丝(filaments)、污渍(stain)、开车疵(driving-defects)和褶皱(wrinkle)。使用K-means聚类算法对其训练集中目标框的宽高进行聚类,得到9个尺寸不同的初始候选框,宽和高分别为(299,37)、(60,19)、(34,50)、(53,52)、(34,409)、(91,88)、(27,29)、(414,29)和(414,55),并在S-YOLOV3模型上进行训练,输出类别为12类,分别为毛丝1、毛丝2、毛丝3、毛丝4、破洞、断经、断纬、浆斑、结丝、污渍、开车疵和褶皱。YID织物缺陷的样本如
3.3 评价指标
实验选择平均精确率均值(mAP)作为评价指标,mAP的表达式为
式中:xAP, C表示每类缺陷的平均精确率;C表示数据集的类别;Nclasses表示总的类别数目。
检测速度也是判定性能的重要指标之一,实验使用每秒检测帧数(FPS)作为速度评价指标。FPS的表达式为
图 5. FID织物缺陷的样本。(a)断头疵;(b)破洞;(c)多网;(d)密路;(e)稀路
Fig. 5. Samples of FID fabric defects. (a) Broken-end; (b) hole; (c) netting-multiple; (d) thick-bar; (e) thin-bar
图 6. YID织物缺陷的样本。(a)毛丝1;(b)毛丝2;(c)毛丝3;(d)毛丝4;(e)破洞;(f)断经;(g)断纬; (h)浆斑;(i)结丝;(j)污渍;(k)开车疵;(l)褶皱
Fig. 6. Samples of YID fabric defects. (a) Broken filament 1; (b) broken filament 2; (c) broken filament 3; (d) broken filament 4; (e) hole; (f) broken-picks; (g) cracked-ends; (h) pulp-stain; (i) filaments; (j) stain; (k) driving-defects; (l) wrinkle
式中:FCount表示检测的总帧数;T表示检测的总时长。
3.4 结果与分析
3.4.1 YOLOV3模型检测框架的选择
为了对比网络框架对模型检测性能的影响,分别在Darknet53框架和Mobilenet1.0框架中进行训练,检测性能如
表 1. 不同的检测框架在测试集上的性能对比
Table 1. Performance comparison of different detection frameworks on test sets
|
以Darknet53为基础网络的YOLOV3检测框架在FID和YID上的平均准确率分别为93%和95%,均高于Mobilenet1.0检测框架。Mobilenet1.0检测框架主要利用分组卷积和点卷积来替换Darknet53检测框架中的标准卷积,极大地消减主干网络中卷积运算的部分,使得网络的整体计算量会减少,检测速度高于Darknet53检测框架,但是其mAP明显低于Darknet53检测框架,为保证缺陷检测的mAP,实验选择YOLOV3模型的Darknet53检测框架。
3.4.2 不同检测模型对比
将YOLOV3模型与现有的缺陷检测模型进行对比,结果如
表 2. 不同模型在测试集上的性能对比
Table 2. Performance comparison of different models on test set
|
3.4.3 YOLOV3模型与S-YOLOV3模型的检测结果对比
将传统的YOLOV3模型与剪枝后的S-YOLOV3模型分别在FID和YID数据集上进行测试,通过对检测结果取均值来表征最终的实验结果,结果如
表 3. YOLOV3与S-YOLOV3检测结果对比
Table 3. Comparison of test results between YOLOV3 and S-YOLOV3
|
3.4.4 S-YOLOV3模型的检测结果
基于S-YOLOV3模型的检测方法可以准确地检测多种织物的不同缺陷,是一种可行的织物缺陷实时检测方法。在FID数据集上,当mAP达到93%时,织物缺陷类别为断头疵、破洞、多网、密路和稀路,检测的准确率如
在YID数据集上,当mAP达到95%时,织物缺陷类别为毛丝、破洞、断经、断纬、浆斑、结丝、污渍、开车疵和褶皱,检测的准确率如
织物缺陷的检测结果如
FID数据集中缺陷的检测结果如
YID数据集中缺陷的检测结果如
图 10. FID缺陷的检测结果。(a)断头疵;(b)破洞;(c)多网;(d)密路;(e)稀路
Fig. 10. FID defect detection results. (a) Broken-end; (b) hole; (c) netting-multiple; (d) thick-bar; (e) thin-bar
图 11. YID缺陷的检测结果。(a)毛丝1;(b)毛丝2;(c)毛丝3;(d)褶皱;(e)断经;(f)污渍;(g)浆斑;(h)开车疵
Fig. 11. YID defect detection results. (a) Broken-filament 1; (b) broken-filament 2; (c) broken-filament 3; (d) wrinkle; (e) broken-picks; (f) stain; (g) pulp-stain; (h) driving-defects
针对织物中存在多种尺度的缺陷,S-YOLOV3模型使用K-means聚类算法对数据集进行聚类以确定目标先验框,从而获得更好的特征提取效果。从
4 结论
由于织物的纹理图案复杂、缺陷种类多样化以及对缺陷检测实时性的要求,提出一种基于S-YOLOV3模型的织物缺陷检测算法。使用基于欧氏距离的K-means算法聚类初始目标边框,提升先验框分布的准确率;利用BN层中的γ评价网络中卷积核的重要性,将低于阈值的卷积核进行剪枝,从而得到最佳性能的网络模型。实验结果表明:所提算法具有很好的检测效果,检测准确率和速度分别达到94%和55 FPS。
[1] 卢荣胜, 吴昂, 张腾达, 视觉, 等. 检测技术及其在缺陷检测中的应用综述[J]. 光学学报, 2018, 38(8): 0815002.
[2] Li P, Liang J L, Shen X B, et al. Textile fabric defect detection based on low-rank representation[J]. Multimedia Tools and Applications, 2019, 78(1): 99-124.
[3] Li F, Yuan L N, Zhang K, et al. A defect detection method for unpatterned fabric based on multidirectional binary patterns and the gray-level co-occurrence matrix[J]. Textile Research Journal, 2020, 90: 776-796.
[4] Kang X J, Zhang E H. A universal defect detection approach for various types of fabrics based on the Elo-rating algorithm of the integral image[J]. Textile Research Journal, 2019, 89: 4766-4793.
[5] Wu J Y, Sfarra S, Yao Y. Sparse principal component thermography for subsurface defect detection in composite products[J]. IEEE Transactions on Industrial Informatics, 2018, 14(12): 5594-5600.
[6] 朱浩, 丁辉, 尚媛园, 等. 多纹理分级融合的织物缺陷检测算法[J]. 纺织学报, 2019, 40(6): 118-125.
Zhu H, Ding H, Shang Y Y, et al. Defect detection algorithm for multiple texture hierarchical fusion fabric[J]. Journal of Textile Research, 2019, 40(6): 118-125.
[7] 景军锋, 范晓婷, 李鹏飞, 等. 应用深度卷积神经网络的色织物缺陷检测[J]. 纺织学报, 2017, 38(2): 68-74.
Jing J F, Fan X T, Li P F, et al. Yarn-dyed fabric defect detection based on deep-convolutional neural network[J]. Journal of Textile Research, 2017, 38(2): 68-74.
[8] Ouyang W B, Xu B G, Hou J, et al. Fabric defect detection using activation layer embedded convolutional neural network[J]. IEEE Access, 2019, 7: 70130-70140.
[9] 杨龙, 苏娟, 黄华, 等. 一种基于深层次多尺度特征融合CNN的SAR图像舰船目标检测算法[J]. 光学学报, 2020, 40(2): 0215002.
[10] Wei B, Hao K R, Tang X S, et al. A new method using the convolutional neural network with compressive sensing for fabric defect classification based on small sample sizes[J]. Textile Research Journal, 2019, 89(17): 3539-3555.
[11] Li Y, Zhang D, Lee D J. Automatic fabric defect detection with a wide-and-compact network[J]. Neurocomputing, 2019, 329: 329-338.
[12] Zhang Y, Shen Y L, Zhang J. An improved tiny-yolov3 pedestrian detection algorithm[J]. Optik, 2019, 183: 17-23.
[13] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE, 2016: 770- 778.
[14] 鞠默然, 罗海波, 王仲博, 等. 改进的YOLO V3算法及其在小目标检测中的应用[J]. 光学学报, 2019, 39(7): 0715004.
[15] Ngan H Y T, Pang G K H. Robust defect detection in plain and twill fabric using directional Bollinger bands[J]. Optical Engineering, 2015, 54(7): 073106.
[16] 李明, 景军锋, 李鹏飞. 应用GAN和Faster R-CNN的色织物缺陷识别[J]. 西安工程大学学报, 2018, 32(6): 663-669.
Li M, Jing J F, Li P F. Yarn-dyed fabric defect detection based on GAN and Faster R-CNN[J]. Journal of Xi'an Polytechnic University, 2018, 32(6): 663-669.
[17] Jing JF, LiM, LiX, et al.Research on yarn-dyed fabric defect detection based on regression using deep learning[C]∥10th Textile Bioengineering and Informatics Symposium, May 16-19, 2017, Wuhan, China.Beijing: China Binary Information Press, 2017: 1030- 1036.
Article Outline
周君, 景军锋, 张缓缓, 王震, 黄汉林. 基于S-YOLOV3模型的织物实时缺陷检测算法[J]. 激光与光电子学进展, 2020, 57(16): 161001. Jun Zhou, Junfeng Jing, Huanhuan Zhang, Zhen Wang, Hanlin Huang. Real-time Fabric Defect Detection Algorithm Based on S-YOLOV3 Model[J]. Laser & Optoelectronics Progress, 2020, 57(16): 161001.