基于改进Faster_RCNN模型的织物瑕疵目标检测算法
Fabric Defect Target Detection Algorithm Based on Improved Faster_RCNN Model
DOI: 10.12677/AAM.2023.125260, PDF, HTML, XML, 下载: 179  浏览: 1,603 
作者: 张天鹏, 王会敏*:绍兴文理学院数理信息学院,浙江 绍兴
关键词: 织物瑕疵检测卷积神经网络Faster-RCNN模型轻量化Fabric Defect Detection Convolutional Neural Network Faster-RCNN Model Lightweight
摘要: 采用卷积神经网络技术来取代传统的人力织物瑕疵检测,可大大降低织物瑕疵的发现和修复的成本,从而极大地改善生产的效率和质量。本文提出了用n × n网格代替原始Faster_RCNN模型中的RPN层,并使用FPN结构调整网格尺寸,最终生成较少的候选区域,以减少对于后续的数据传递以及处理的负担,节省检测的时间。用已经收集整理好的织物瑕疵数据集进行模型的训练、学习,最后将经过多次训练以及参数调整的模型与当前通用的目标检测模型在相同条件下进行织物瑕疵目标检测实验对比。试验表明使用n × n网格代替RPN的改进Faster_RCNN模型织物瑕疵目标检测的总体map值为74.1%,单张图片的检测速度为230.7 ms,相比于原始Faster_RCNN模型检测精度稍稍下降,但检测速度提高了约4倍。说明用n × n网格代替RPN层可以在保证一定织物瑕疵目标检测精度的前提下,加快了检测的效率。
Abstract: The use of convolutional neural network technology to replace the traditional manual fabric defect detection can greatly reduce the cost of fabric defect detection and repair, thus greatly improving the efficiency and quality of production. In this paper, an n × n mesh is proposed to replace the RPN layer in the original Faster_RCNN model, and the FPN structure is used to adjust the mesh size. Fi-nally, fewer candidate regions are generated to reduce the burden of subsequent data transmission and processing, and save the detection time. The collected fabric defect data set was used to train and learn the model. Finally, the fabric defect target detection experiment was compared between the model after multiple training and parameter adjustment and the current common target detec-tion model under the same conditions. Experiments show that the overall map value of the im-proved Faster_RCNN model for fabric defect target detection by using n × n mesh instead of RPN is 74.1%, and the detection speed of a single image is 230.7 ms. Compared with the original Fast-er_RCNN model, the detection accuracy is slightly reduced, but the detection speed is increased by about 4 times. It shows that using n × n mesh instead of RPN layer can speed up the detection effi-ciency under the premise of ensuring a certain accuracy of fabric defect target detection.
文章引用:张天鹏, 王会敏. 基于改进Faster_RCNN模型的织物瑕疵目标检测算法[J]. 应用数学进展, 2023, 12(5): 2593-2602. https://doi.org/10.12677/AAM.2023.125260

1. 引言

纺织类产品一旦存在一个细小的瑕疵,就会导致整件产品变成劣质,严重损害了消费者的利益,并给企业带来负面的评价。因此,在制造纺织物的过程中,进行有效的产品质量监控至关重要,能够有效地发现和纠正任何存在的问题,从而有效地降低企业的经济风险 [1] 。常见的织物瑕疵有断经、断纬、破洞、结头、污渍等,这些瑕疵能通过它们的瑕疵名字一下子明白它们是如何出现的、如何形成的,但它们在织物图像中是需要用形状、颜色、纹理来区分的,如图1所示。

Figure 1. Illustration of some common defects

图1. 几种常见瑕疵示意图

传统的瑕疵检测方法在实际应用中存在一些问题。例如,传统的统计分析方法 [2] 和频域分析方法 [3] [4] 都存在一些局限性,而高斯–马尔可夫随机场(GMRF)等 [5] [6] [7] 模型方法也有一些瑕疵。通过设计特定参数或计算方法,这些方法可以有效地检测特定对象,但是由于其适用性和特征提取能力有限,传统方法的计算复杂性和检测速度都较慢,因此无法满足实际应用的需求。

近年来,卷积神经网络已成为计算机视觉技术的重要组成部分。2012年,AlexNet [8] 架构的出现,极大地提升了卷积神经网络模型的性能,它通过多次的卷积操作,从不同的空间尺度中提取出多样的特性,从而实现模型的多维性和可扩展性。之后,随着Faster RCNN [9] 、SSD [10] 、YOLO [11] 等先进的卷积神经网络模型的不断涌现,它们已成为当今瑕疵目标检测技术的重要组成部分,并且受到广泛的认可与应用。卷积神经网络可以有效地解决特征提取和瑕疵分类之间的矛盾,它可以通过深层网络结构自动提取特征,并且可以根据内部参数的变化,实现对复杂情况的准确预测 [12] 。

本文提出了改进Faster_RCNN模型的织物瑕疵目标检测算法,通过生成较少的候选区域,减少对于后续的数据传递以及处理的负担。实验表明经过改进的Faster_RCNN模型可以在保证一定瑕疵检测精度的前提下,提高检测速度。

2. 研究方法

2.1. 用n × n网格代替原始Faster_RCNN模型中的RPN层

Faster RCNN算法流程可分为3个步骤1) 将图像输入网络得到相应的特征图;2) 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵;3) 将每个特征矩阵通过ROI pooling层缩放到7 × 7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。如图2所示。

Figure 2. Flow chart of the Faster RCNN algorithm

图2. Faster RCNN算法流程图

其中候选框(proposal)是根据Region Proposal Network (RPN)层计算出的anchor的类别误差(Classification loss)和边界框误差(Bounding-box regression loss)得到可能包含前景(需要检测的目标)的候选区域。

Region Proposal Network (RPN)生成候选框(proposal)的具体流程是,用3 × 3的滑动窗口在特征图上的每个点的滑动,得到每个点深度(通道数)不变的1维向量。其实就是用卷积核大小3 × 3,步幅为1,个数为特征图通道数的卷积层处理特征图。然后再分别2个卷积核大小为1 × 1的卷积层计算出以滑动窗口中心点对应原始图像上的点为中心点的anchor boxes的类别误差(Classification loss)和边界框误差(Bounding-box regression loss)。如图3所示,其中k为相同中心点的anchor的数量。

Figure 3. The RPN layer generates anchor information

图3. RPN层生成anchor信息

图3中,用于预测类别的卷积层每一点输出2k个类别分数(是前景的概率和是背景的概率),用于预测真实目标边框回归参数的卷积层输出每一点输出4k个回归参数,分别计算每个候选区域的中心位置和宽高。

对于一张1000 × 600 × 3的图像,大约有60 × 40 × 9 (约20000)个anchor,忽略跨越边界的anchor以后,剩下约6000个anchor。对于RPN生成的候选框之间存在大量重叠,基于候选框的类别得分,采用非极大值抑制,重合率设为0.7,这样每张图片只剩2000个候选框。

虽然2000个候选框已经是基于候选框的类别得分,采用非极大值抑制筛选过后的了,但这对于后续的数据传递以及处理还是有很大的负担,特别是在处理织物瑕疵这种场景下。由于背景相对简单单一,且要检测的织物瑕疵占全图的面积相对较小,所以生成2000个候选框显然是得不偿失的。

如果可以用较少的候选框把一张图中的瑕疵都挑选出来,同时让这些候选框的面积尽量小,那就可以减少对于后续的数据传递以及处理的负担,减小运行网络占用处理器内存空间,提高检测速度。基于以上思想,用n × n网格代替RPN中的anchor。如图4所示。其中绿色方框为要预测的真实目标方位,红色方框为匹配到该目标的网格。

Figure 4. n × n mesh generates mesh information

图4. n × n网格生成网格信息

当要检测的目标边界框的与某一网格中的重合率达到事先定好的阈值时,网格标记为候选框,网格最终输出的信息包括网格对匹配到的真实目标边框的类别分数(class scores)和回归参数(regression coordinates)。

这样最后生成的候选区域数量一定小于等于n × n = n2个,而且由于网格匹配的方式是尽量将落入网格中的所有目标都包含进去,所以最后生成的所有候选区域理论上包含所有前景的信息。当然上述情况生成的候选区域可以在后续进行分类和回归的条件是检测目标相较于背景是“稀疏的”,即每张图像上目标种类较少,且相对集中。而进行检测织物瑕疵的图像绝大部分都是符合的,这点可以在后面的实验结果对比图(图7)上看到。

2.2. 使用FPN结构进行多尺度特征提取

在卷积神经网络中,越深的网络就代表会有越多的卷积层、池化层来对输入图像进行特征提取、融合,最后生成的特征图尺寸大小也会随着网络的深度成倍缩小,像是Faster_RCNN模型中基础网络(backbone)最终生成的特征图尺寸大小相较于原图像缩小了32倍。在大量的卷积、池化操作过后,尺寸相对较小且不突出的瑕疵特征就很可能会被尺寸相对较大且明显瑕疵特征盖过。

Feature Pyramid Networks (FPN) [13] 结构将最高阶特征层的输出与次高阶特征层的输出相融合,再将融合结果与下一阶结果融合,最终将每次融合结果和最高阶特征层结果输出。这样低阶特征层输出的大尺度特征图中也包含了高阶特征层的语义信息。

本文所使用的原始Faster_RCNN模型也使用了FPN结构。如图5所示。

Figure 5. Structure diagram of backbone and FPN

图5. Backbone与FPN结构示意图

图5中的ResNet50网络 [14] 为Faster_RCNN模型的基础网络(backbone),通过FPN结构得到P2,P3,P4,P5,P6五种不同尺度的特征图。其中不同阶特征层输出的特征图融合方法是先通过1 × 1卷积核来调整特征图的通道数,再将小尺度的特征图通过上采样扩大到要与之融合的特征图的尺度一致,一般为尺度扩大一倍,通过相加的方式完成融合,然后使用融合后的结果重复上述步骤,直到除了最高阶特征层的所有特征层输出都进行了融合。最后将所有融合结果再通过卷积核大小为3 × 3卷积操作得到最终的一系列特征图P2,P3,P4,P5,P6。

将之前提出的n × n网格应用于FPN结构。由于使用FPN获得了不同尺度的特征图,其中特征图中特征信息的特点也会根据其尺度而有所不同,尺度大的特征图中的特征信息往往都是小尺度瑕疵的,尺度小的特征图则是大尺度瑕疵的。所以在特征图上用于生成候选区域的n × n网格也可以根据特征图的尺度来调整网格数量,也就是n的值。

网格数量n值分别取1、2、3、4、5,得到5个不同网格数量的n × n网格,用n = 1的1 × 1网格在尺度最小的特征图P6上生成候选区域;用n = 2的2 × 2网格在尺度最小的特征图P5上生成候选区域;用n = 3的3 × 3网格在尺度最小的特征图P4上生成候选区域;用n = 4的4 × 4网格在尺度最小的特征图P上3生成候选区域;用n = 5的5 × 5网格在尺度最小的特征图P2上生成候选区域。最终得到的候选区域数量小于等于 1 × 1 + 2 × 2 + 3 × 3 + 4 × 4 + 5 × 5 = 55 个,远少于初始RPN层生成的2000个候选区域。

2.3. Logistic回归预测算法

通过使用logistic回归预测每个边界框中对象的得分 [15] 。在训练时找到正样本所匹配的目标框,然后使用正样本网格中的信息预测匹配到的目标边界。每个网格预测的边界框回归参数为 ( t x , t y , t w , t h ) ,然后用公式(1)得到预测的边界框 ( b x , b y , b w , b h )

b x = σ ( t x ) + C x b y = σ ( t y ) + C y b w = p w e t w b h = p h e t h (1)

( b x , b y , b w , b h ) 是预测边界框的中心点坐标和长度、宽度; σ sigmoid函数; ( t x , t y ) 是目标中心点相对于所在网格左上角的偏移量; ( C x , C y ) 是点所在网格的左上角和左上角之间相差的格数; ( p w , p h ) 是网格的边缘长度。

n × n网格使用平方和误差进行损失计算,即损失函数为所有单元格预测值和真实值的均方差。包括坐标误差、类别误差,其中类别误差仅判断是否为前景,故类别只有前景和背景两类。损失函数表示公式(2)所示:

Loss = E r r o r c o o r d + E r r o r c l s (2)

其中 E r r o r c o o r d 为边界框损失函数,由中心坐标的误差和边界框宽与高的误差构成,计算公式为公式(3)所示:

E r r o r c o o r d = λ c o o r d i p i * ( t i t i * ) 2 (3)

其中 λ c o o r d 定义为坐标误差的权重;i为第i个网格; p i * 表示第i个网格的类别,当网格为前景时为1,为背景时为0; t i = ( t x , t y , t w , t h ) 表示预测第i个网格的边界框回归参数, E r r o r c o o r d 只计算为前景的网格的边界框损失。

其中 E r r o r c l s 为类别损失函数,计算公式为公式(4)所示:

E r r o r c l s = [ p i * log ( p i ) + ( 1 p i * ) log ( 1 p i ) ] (4)

其中 p i * 表示第i个网格的类别,当网格为前景时为1,为背景时为0; p i 表示预测第i个网格为前景的概率。

通过预测每个边界框的偏移量和为前景的概率来获得边界框的坐标值以及是否为候选框 [16] 。相较直接预测坐标的方法,预测偏移量的方法简化了预测问题,有利于神经网络的学习。

3. 实验结果

本实验织物瑕疵数据集主要来源于各公开的织物瑕疵数据集,将收集的织物瑕疵图像根据需要裁剪分割成512 × 512的子图像。使用网络爬虫技术收集与织物实际生产情况相似的织物瑕疵图像,以便降低数据集对网络模型训练与测试的影响,同时尽可能提高数据集的多样性,来保证模型的泛化能力。通过多角度转置、多位置切割等操作,将收集到的织物图像扩充到12000张,其中有2000张完好的正常织物图像,剩余的为有瑕疵的织物图像,最终形成一个完整的织物瑕疵图像数据集。

3.1. 训练参数

超参数设置:所有样本图像尺寸为512 × 512 × 3;采用批量梯度下降法,BatchSize = 8权重衰减系数设置为0.0005,最大迭代步数为10万步;基础学习率为0.001,此后每迭代10,000步,学习率减小十倍,通过自主减小学习率,让网络参数在网络训练后期能够更好地逼近最优值,网络输出的预测值越来越接近真实值,同时抑制过拟合现象。

实验环境:硬件使用Intel Xeon (R) E5-2650-v4 CPU处理器和NVIDIA Quadro M5000图形处理单元(GPU)加速训练。本实验是在Windows 10和64的操作系统上运用python进行编程,并在pytorch深度学习框架的支持下,构建高效的、可靠的深度学习模型并进行网络训练。所使用的计算工具包有:CUDA、CUDNN、Numpy和OpenCV等。

3.2. 实验结果与分析

在训练参数以及网络模型都设置好后,就可以开始对改进Faster RCNN模型进行训练,网络模型训练过程如图6所示。从该图可以看出,网络模型在随训练次数(epoch)而逐步收敛并整体趋于稳定,训练的损失函数值趋近于0,验证的map值超过0.7并接近0.8,说明模型已经具备了一定的织物瑕疵检测能力。

本实验在使用相同的织物瑕疵数据集的条件下,分别使用SSD模型、YOLO-V3、用n × n网格代替RPN的改进Faster_RCNN模型和原始Faster_RCNN模型在相同的硬件上进行织物瑕疵检测,并收集检测结果进行对比。部分检测结果如图7所示。

经过实验证明,采用n × n网格取代RPN的改进Faster_RCNN模型,能够较为准确地检测出各种类型的织物瑕疵,检测效果接近原始Faster_RCNN模型,比其他的模型更加出色。模型具体性能对比如下表1所示。

通过本次实验,我们发现,用n × n网格代替RPN的改进Faster_RCNN模型,能够有效地检测出织物上的各种瑕疵,整体检测精度达到74.1%,虽然相比原始Faster_RCNN模型,该模型检测精度稍低一点,但比使用OneStage 目标检测算法的SSD、YOLO-V3模型要高,保障了一定的检测精度,而且还能够大大加快检测的速度,检测速度已经较为接近使用OneStage目标检测算法的YOLO-V3模型。由此可见,改进Faster_RCNN模型在实际生产场景下相比其他传统模型具有一定的优势。

Figure 6. Training losses and verifying map values in Mesh-Faster RCNN

图6. Mesh-Faster RCNN训练损失与验证map值

(a) (b) (c) (d) (e)

Figure 7. Comparison of defect detection results. (a) Original test images; (b) SSD detection results; (c) YOLO-V3 detection results; (d) Faster_RCNN detection results with n × n mesh instead of RPN; (e) Original Faster RCNN detection results

图7. 瑕疵检测结果对比。(a) 原始测试图像;(b) SSD检测结果;(c) YOLO-V3检测结果;(d) 用n × n网格代替RPN的Faster_RCNN检测结果;(e) 原始Faster RCNN检测结果

Table 1. Comparison of map value and detection speed of each model in fabric defect detection task

Table 1. Comparison of map value and detection speed of each model in fabric defect detection task

表1. 织物瑕疵检测任务中各模型检测map值、检测速度比较

4. 结论

本文对原始Faster_RCNN模型进行改进,用n × n网格代替原始Faster_RCNN模型中的RPN层。用网格来生成较少的候选区域,减少模型参数,提高检测效率。利用FPN生成不同尺度的特征图来提取不同尺度的瑕疵特征,保障模型的检测精度。通过改进的方法,我们的模型不仅能够满足精确性的要求,还更快的检测速度,这样就可以更快地处理复杂的问题。此外,这种方法还能够减小网络的复杂性,更好地识别出织物上的缺陷,节省计算成本。改进Faster_RCNN模型兼顾了织物瑕疵目标检测的精度与速度,能够更好的适应实际生产环境。后续的研究重点可以放在改进正负样本匹配方式和基础网络结构上,找到更适合n × n网格的模型结构以及样本匹配方式,并且通过扩充织物瑕疵数据集,训练出拥有更高检测精度、更快检测速度的织物瑕疵目标检测模型。

NOTES

*通讯作者。

参考文献

[1] Shi, M., Fu, R., Guo, Y., et al. (2011) Fabric Defect Detection Using Local Contrast Deviations. Multimedia Tools & Applications, 52, 147-157.
https://doi.org/10.1007/s11042-010-0472-8
[2] Shi, M., Fu, R., Huang, S., et al. (2009) A Method of Fabric Defect Detection Using Local Contrast Deviation. Proceedings of 2009 2nd International Congress on Image and Signal Processing, Tianjin, 17-19 October 2009, 1-5.
https://doi.org/10.1109/CISP.2009.5305722
[3] Xia, D., Jiang, G., Li, Y. and Ma, P. (2016) Warp-Knitted Fabric Defect Segmentation Based on Non-Subsampled Contourlet transform. Journal of the Textile Institute Proceedings & Abstracts, 108, 239-245.
https://doi.org/10.1080/00405000.2016.1161700
[4] Tolba, A.S. (2011) Fast Defect Detection in Homogeneous Flat Surface Products. Expert Systems with Applications, 38, 12339-12347.
https://doi.org/10.1016/j.eswa.2011.04.012
[5] Li, M., Cui, S. and Xie, Z. (2015) Application of Gaussian Mix-ture Model on Defect Detection of Print Fabric. Journal of Textile Research, 36, 94-98.
[6] Allili, M.S., Baaziz, N. and Mejri, M. (2014) Texture Modeling Using Contourlets and Finite Mixtures of Generalized Gaussian Distributions and Applications. IEEE Transations on Multimedia, 16, 772-784.
https://doi.org/10.1109/TMM.2014.2298832
[7] 杨晓波. 基于GMRF模型的统计特征畸变织物缺陷识别[J]. 纺织学报, 2013, 34(4): 137-142.
[8] Krizhevsky, A., Sutskever, I. and Hinton, G.E. (2017) ImageNet Classification with Deep Convolutional Neural Networks. Communications of the ACM, 60, 84-90.
https://doi.org/10.1145/3065386
[9] Ren, S., He, K., Girshick, R., et al. (2017) Faster R-CNN: Towards Re-al-Time Object Detection with Region Proposal Networks. IEEE Transactions on Pattern Analysis and Machine Intelli-gence, 39, 1137-1149.
https://doi.org/10.1109/TPAMI.2016.2577031
[10] Liu, W., Anguelov, D., Erhan, D., et al. (2016) SSD: Single Shot MultiBox Detector. In: Leibe, B., Matas, J., Sebe, N. and Welling, M., Eds., ECCV 2016: Computer Vision-ECCV 2016, Lecture Notes in Computer Science, Vol. 9905, Springer, Cham, 21-37.
https://doi.org/10.1007/978-3-319-46448-0_2
[11] Redmon, J. and Farhadi, A. (2018) YOLOv3: An Incremental Improvement. Computing Research Repository. ArXiv abs/1804.02767.
[12] Jia, J., Jing, J., Zhang, H., et al. (2012) Fabric Defect Detection Using Gabor Filter and Defect Classification Based on LBP and Tamura Method. Journal of the TextileInstitute, 104, 18-27.
https://doi.org/10.1080/00405000.2012.692940
[13] Lin, T., Dollar, P., Girshick, R., et al. (2017) Feature Pyramid Networks for Object Detection. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, 21-26 July 2017, 936-944.
https://doi.org/10.1109/CVPR.2017.106
[14] He, K., Zhang, X., Ren, S. and Sun, J. (2016) Deep Residual Learn-ing for Image Recognition. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, 26 June-1 July 2016, 770-778.
[15] Xu. Y.Z., Yu, G.Z., Wang, Y.P., Wu, X. and Ma, Y. (2017) Car De-tection from Low-Altitude UAV Imagery with the Faster R-CNN. Journal of Advanced Transportation, 2017, Article ID: 2823617.
https://doi.org/10.1155/2017/2823617
[16] Han, S., Liu, X., Mao, H., et al. (2016) EIE: Efficient In-ference Engine on Compressed Deep Neural Network. Proceedings of 2016 ACM/IEEE 43rd Annual International Sym-posium on Computer Architecture (ISCA), Seoul, 18-22 June 2016, 243-254.
https://doi.org/10.1145/3007787.3001163