APP下载

基于深度卷积神经网络的手机玻璃盖板表面缺陷分类检测研究

2021-12-08吴闯于大泳

软件工程 2021年12期
关键词:迁移学习

吴闯 于大泳

摘  要:为了实现手机玻璃盖板表面点缺陷、线缺陷和块状缺陷的分类检测,主要研究可以自动提取特征的深度卷积神经网络模型。首先针对数据缺乏问题,提出子图像划分和随机缺陷合成算法,构建了MPGC-DET数据集。为了提高模型的泛化性,以现代成熟的深度卷积神经网络模型为基础,并结合迁移学习和SE模块,搭建手机玻璃盖板表面缺陷分类检测模型。实验表明,最终分类准确率达96.40%,并且使用了Grad-CAM技术进行可视化分析,结果显示模型是根据缺陷所在区域特征进行预测的,说明没有出现过拟合现象。

关键词:玻璃盖板;深度卷积神经网络;迁移学习;SE模块;分类检测

中图分类号:TP391     文献标识码:A

Abstract: In order to realize the classified detection of point defects, line defects and block defects on the glass cover surface of mobile phone, this paper proposes to study deep convolutional neural network (DCNN) model that can automatically extract features. First, to address the problem of data lack, this paper proposes to use sub-image division and random defect synthesis algorithms, and construct the MPGC-DET (Mobile Phone Glass Cover-Detection) data set. In order to improve the generalization of the model, this research takes modern and mature deep convolutional neural network model as the basis and combines transfer learning and SE modules, to build a classified detection model of mobile phone glass cover surface. Experiments show that final classification accuracy rate is 96.40%. Grad-CAM (Gradient-weighted Class Activation Mapping) technology is used for visual analysis. Results show that the proposed model performs prediction based on the characteristics of the area where the defect is located, which indicates that there is no sign of over-fitting.

Keywords: glass cover; deep convolutional neural network; transfer learning; SE module; classified detection

1   引言(Introduction)

手机屏作为用户与智能手机直接交互的部件,其外观质量直接影响用户对产品的体验。智能手机屏主要由显示模块、触控模块、玻璃盖板三部分组成,在生产过程中产生的表面缺陷主要集中于显示模块和玻璃蓋板。手机玻璃盖板(Mobile Phone Glass Cover, MPGC)表面结构如图1所示,主要由印刷区、可视化区和其他功能孔洞区组成[1]。

由于人工目检效率低,目前逐渐使用基于机器视觉的检测方法[2-3]。大多数基于图像处理的视觉检测算法只能判断MPGC表面是否有缺陷,无法判断缺陷的具体类别。为了能够判断缺陷的具体类别,过去常见的做法是手工设计特征提取函数,然后结合机器学习方法,比如支持向量机等[4]。但手工设计特征提取函数有一定的主观性,分类准确率和通用性不高,因此本文将研究可以自动提取特征的深度学习算法,完成对MPGC表面缺陷的分类检测。

2   研究现状(Research status)

近些年来,随着深度学习理论的不断发展,计算机视觉领域开始广泛使用深度学习算法,并且都表现出了良好的性能,尤其是基于局部相关性和权值共享的思想,运用卷积神经网络(Convolutional Neural Network,CNN)实现自动提取图像高层特征,并依据这些特征对图像进行检测和分类。如今,为了实现产品质量检测的智能化,许多工业领域中的自动检测系统都逐渐采用卷积神经网络替代传统图像处理算法[5-6]。目前针对不同的应用场景,研究人员主要通过改变成熟的深度卷积网络结构和参数来提高模型检测的准确性。HE等利用ResNet网络提取钢板表面缺陷特征[7],通过多级特征融合的方法,将获取到的特征送入RPN网络,实现钢板表面缺陷的分类与定位。其中,划痕缺陷检测精度最高,而对于钢板表面的氧化区域检测效果较差,并且构建数据集时需要大量的人力成本标注数据。RACKI等设计了一个包含分段和分类的紧凑网络结构模型[8],分段由三个固定卷积大小的卷积块组成,提取到的特征用于纹理表面缺陷分类和异常分割。为了克服最大池化分割较小缺陷的不足,作者加入了平均池化层。CHEON等针对晶圆表面缺陷设计了一种包含四个卷积层、两个池化层、一个全连接层、一个输出层的网络结构[9],还将训练好的CNN模型结合最近邻算法来识别未知缺陷。针对多晶硅晶圆表面缺陷,HAN等使用RPN提取缺陷候选区域,送入U-net网络中进行缺陷分割[10]。作者对比了不同大小图像的分割结果,结果表明,256×256大小的分割效果较好。在压敏电阻表面缺陷检测中,YANG等提出一种基于深度卷积神经网络(Deep Convolutional Neural Network, DCNN)的端到端的检测方法[11],即在ILSVRC-2012数据集上保持预训练网络参数不变,修改VGG16模型的卷积层数量,并在最后添加全局平均池化层。实验表明,在保证检测精度的情况下参数数量有所下降,检测效率得到提升。DCNN在上述工业产品检测中得到了很好的应用。

但在MPGC表面缺陷检测领域中,深度学习算法的应用较少。一方面,由于训练神经网络需要大量的数据样本,对于MPGC来说,收集包含不同种类缺陷的图像是非常困难的,并且人工标注数据代价昂贵;另一方面,手机更新换代快,训练好的模型可能不适用于下一个型号的产品,需要重新收集数据,重新训练模型,时间成本高。但深度学习强大的自主学习能力可以有效提高分类检测准确率。针对上述问题,本文提出一种随机缺陷合成算法,生成伪样本,构造出MPGC表面缺陷分类检测数据集,并且结合迁移学习的概念对模型进行微调,改进DCNN模型,实现对MPGC表面缺陷的分类检测。

3  缺陷分析及数据生成(Defect analysis and data generation)

3.1   缺陷分析

制作MPGC的材料主要是玻璃和油墨,虽然外形简单,但仍有10多道工序。首先使用CNC对玻璃原片进行开料,然后进行外形雕刻和打孔;为了使MPGC具备一定的硬度,还要进行钢化处理;接着进行抛光处理,使其表面更光洁;最后使用油墨印刷玻璃表面;另外还有清洗、镀膜等环节。其加工工艺复杂,稍有不慎就会导致玻璃盖板表面产生划痕、裂纹、脏污、黑点和白点等不同种类的缺陷。

在实际检测中,对不同的缺陷进行分类,可以找出产生缺陷最多的工艺,进而改善工艺流程。玻璃盖板表面缺陷种类非常多,并且有的缺陷种类产生频率高,有的缺陷产生频率低,但是按照具体的形状,可以大致分为点缺陷、线缺陷和不规则的块状缺陷。由于现代工艺的进步,在实际生产过程中缺陷占比相对少,大多数情况下,一张MPGC图像上只会产生一种类型的缺陷。为此,本文将按照图像级别的标签对点缺陷、线缺陷和块状缺陷的MPGC图像进行分类检测。

3.2   数据生成

深度学习本质上是一个数据驱动的算法,数据量越多意味着泛化性能越好。但对于MPGC来说,收集数量足够且平衡的样本是非常困难的,这在一定程度上限制了深度学习在工业检测领域中的应用。

为了解决样本稀缺的问题,从而更好地研究深度学习算法在缺陷检测上的应用,本部分提出结合子图像划分和随机缺陷合成算法来构造MPGC表面缺陷检测数据集。首先用工业相机采集某型号MPGC表面无缺陷图像,如图2(a)所示,采集到的图像分辨率为1080×1808。为了后续方便处理,通过图像缩放和仿射变换的方式提取图像感兴趣区域,如图2(b)所示,最终图像分辨率为226×477。

接着使用128×128的滑动窗口按照步长为10的距离,分别在X轴和Y轴方向上进行滑动,截取子图像,如图3所示。采用滑动窗口分块图像不仅能增加样本数量,而且可以保证送入神经网络模型训练的图像尺寸大小相等,避免模型训练时因全连接层参数数量不一致而报错。

按照上述方法最终生成了1,403 张无缺陷的MPGC子图像,然后利用本文提出的随机缺陷合成算法在无缺陷的图像上分别增加点缺陷、线缺陷和不规则的块状缺陷。随机缺陷合成算法流程如表1所示,输入为无缺陷的样本数量,即前文利用滑动窗口生成的子图像数,表示子图像集合,然后利用随机数生成器RNG,随机选择颜色信息、坐标信息,以及缺陷数量和缺陷大小;接着将作为参数分别送入线缺陷生成函数、点缺陷生成函数和块状缺陷生成函数中,随机生成的缺陷与无缺陷图像叠加,与此同时,利用loc函数生成缺陷类别和相关位置信息分别赋给、和;最后输出线缺陷子圖像及其标签信息、点缺陷子图像及其标签信息、块状缺陷子图像及其标签信息。

按照以上方法生成了1,403 张无缺陷图像、1,403 张线缺陷图像、1,403 张点缺陷图像和1,403 张块状缺陷图像,构建了总计包含5,612 张图像的MPGC表面缺陷分类检测数据集,本文将其命名为MPGC-DET,图4展示了随机缺陷的合成效果。

4  基于DCNN的缺陷分类模型(Defect classification model based on DCNN)

4.1   缺陷分类模型搭建

基于局部相关性和权值共享的卷积神经网络具备强大的自动特征提取能力,而图像特征正是区分图像类别的重要依据。假设输入图像为X,则CNN提取特征图的核心表达式定义为:

其中,O为输出特征图,W为卷积层的权重参数,b为偏置项,*表示卷积运算,表示激活函数,用来增强非线性数据的表征能力。本文将选取ReLU为激活函数,另外加入池化层和批归一化层可以进一步改善CNN模型的特征提取能力。DCNN模型就是网络层数较深的CNN模型,现代成熟的DCNN模型结构有AlexNet、VGGNet和ResNet等[12-14]。其中ResNet创造性地加入了残差跳连结构,解决了深层模型的梯度弥散和梯度爆炸问题,使得准确率进一步提升。

为了保证模型的通用性和准确性,本文以ResNet34为基础搭建MPGC表面缺陷分类模型[14],并将其标记为MDCM(MPGC Defect Classification Model)。模型整体结构如表2所示。

相较于原论文的ResNet34模型,本文将第二层的最大池化层改成了全局平均池化层,从而可以保证在提取缺陷特征时不会剔除关键像素点。Conv1_x是一个包含多个卷积层和批归一化层的块结构,并且最后输出特征与输入特征相加,避免了梯度值为零的情况。Conv2_x、Conv3_x和Conv4_x与Conv1_x的结构类似,在此不再赘述。但值得注意的是,本文在Conv4_x中嵌入了SE(Squeeze-and-Excitation)模块[15],这样做是为了学习通道的权重,从而增强缺陷的特征信息;然后经过平均池化层和全连接层输出长度为4的特征向量;最后加入了Softmax函数,保证每个输出值都在0到1之间,且输出之和为1。Softmax函数定义为:

其中,表示第i 个类别的输出值,d表示类别个数。

4.2   迁移学习与微调

现代成熟的DCNN模型都是以ImageNet数据集为基础展开模型训练的,ImageNet是由研究人员花费了大量时间和资金收集的具有百万数量级的数据集,而且大都是包含自然界中常见物体的图像。MPGC属于工业产品,优良的加工工艺不可能产生太多包含缺陷的MPGC表面图像,这就导致以ImageNet为基础的DCNN模型没有过多的数据去学习和更新参数,从而不能充分提取用于分类的MPGC表面缺陷特征。为了能够更好地发挥MDCM在MPGC表面缺陷分类检测上的作用,本文使用迁移学习(Transfer Learning, TL)的方式解决因参数不足而导致模型泛化能力弱的问题。TL实际上是将模型从源数据集学习到的知识迁移到目标数据集中去,虽然ImageNet中的图像与MPGC表面图像差别很大,但根据传统图像处理理论,任何图像都包含边缘、纹理、角点和形状等可以直观察觉到的特征信息,而DCNN模型的底层便是从这些直观特征信息开始学起,直到高层学习更抽象的特征,才作为物体的分类依据,所以TL可以帮助MPGC缺陷分类模型初始化一些底层特征参数。常见的TL方式有:(1)载入预训练权重,训练所有参数;(2)载入预训练权重,只訓练最后几层参数;(3)载入预训练权重后,修改或者添加最后的全连接层,然后只训练全连接层参数,这种方式实际上被称为微调(Fine Tuning, FT)。如图5所示,是基于微调的迁移学习原理示意图。

5   实验分析(Experiment analysis)

5.1   实验环境与评价指标

本文实验的硬件环境如下:CPU为8核的Intel酷睿i7,GPU为NVIDIA的RTX 2060,GPU内存为6 GB。软件环境如下:PyTorch作为深度学习框架,Python作为开发语言,Pycharm作为编程环境。

为了充分评价缺陷分类模型的性能,本文引入准确率Accuracy、精确率Precision、召回率Recall和F-Score分数作为评价指标。数学表达式定义为:

其中,TP表示真实值为正样本、预测值为正样本的个数;FP表示真实值为负样本、预测值为正样本的个数;FN表示真实值为正样本、预测值为负样本的个数;TN表示真实值为负样本、预测值为负样本的个数。

5.2   训练策略与结果分析

本文按照7:3的比例将MPGC-DET划分为训练集和测试集。训练模型时选择的损失函数为交叉熵(Cross Entropy,CE)函数,其数学表达式定义为:

其中,y为输出概率值。优化器选择带有一阶动量的随机梯度下降法(Stochastic Gradient Descent with Momentum, SGDM)。动量超参数设置为0.9,初始学习率设置为0.005,每5 个迭代轮数将初始学习率乘以0.33。同时为了防止过拟合,本文使用L2正则化,将权重衰减系数设置为0.0005。然后根据图5的迁移学习原理,首先加载在ImageNet数据集上预训练好的模型权重,然后冻结MDCM的特征提取层,单独训练MDCM的全连接层。

同时,本文选取了未加入迁移学习的VGG16和ResNet34模型作为实验对比。经过30 轮次的迭代,训练结果如图6所示。

图6(a)为训练集的损失函数变化曲线,图6(b)为测试集的准确率变化曲线。从图中可以看出,本文结合基于微调的迁移学习原理搭建的MDCM模型损失函数能快速收敛,准确率也在5 个迭代轮数后逐渐收敛,并维持在较高值。直接使用VGG16模型训练MPGC-DET数据集时,损失函数不能收敛,准确率也一直维持在30%左右;而直接使用ResNet34模型训练MPGC-DET,损失函数虽然快速减小,但测试集的准确率只能维持在40%左右,且不稳定,说明模型的泛化性能较弱。

根据式(3)—式(6)计算出的评价指标结果如表3所示,其中本文提出的MDCM方法在MPGC-DET测试集上的准确率为96.40%,均高于VGG16和ResNet34模型;精确率为96.42%,召回率为95.37%,F-Score得分为95.89%,均高于VGG16和ResNet34模型。另外ResNet34模型的各指标都高于VGG16模型,说明带有残差结构的模型更适合分类检测MPGC表面缺陷,但准确率依然不高。MDCM的训练结果表明,结合迁移学习和SE模块可以进一步提升MPGC表面缺陷分类检测准确率。

5.3   Grad-CAM可视化

为了更直观地展示本文提出的模型在MPGC缺陷分类检测上的有效性,本文利用梯度类加权激活映射(Gradient-weighted Class Activation Mapping, Grad-CAM)可视化技术分析特征图与预测特征图之间的关系[16],判断模型最终提取到的预测特征图是否更多地关注缺陷所在区域,从而防止过拟合的发生。

从图7中可以看到,当模型预测MPGC表面存在缺陷的类别时,更多地关注了MPGC表面缺陷所在区域,说明提取到的分类特征是缺陷所在区域的特征,证明模型没有产生过拟合的现象,有一定的泛化性。

6   结论(Conclusion)

研究了基于深度卷积神经网络的手机玻璃盖板表面缺陷分类检测方法,最终实验显示,本文搭建的分类检测模型在MPGC-DET数据集上的分类准确率达96.40%,精确率达96.42%,召回率达95.37%,F-Score得分达95.89%,均优于直接使用成熟的深度卷积神经网络模型方法。但本文合成的伪缺陷不能保证与真实缺陷完全一致,所以未来可以继续收集真实缺陷,进一步提升实际应用价值。

参考文献(References)

[1] YUAN Z C, ZHANG Z T, SU H, et al. Vision-based defect detection for mobile phone cover glass using deep neural networks[J]. International Journal of Precision Engineering and Manufacturing, 2018, 19(6):801-810.

[2] 简川霞.手机玻璃屏表面缺陷机器视觉检测与分类方法研究[D].广州:广东工业大学,2017.

[3] LI D, LIANG L Q, ZHANG W J. Defect inspection and extraction of the mobile phone cover glass based on the principal components analysis[J]. International Journal of Advanced Manufacturing Technology, 2014, 73(9/10/11/12):1605-1614.

[4] SINDAGI V A, SRIVASTAV A S. Domain adaptation for automatic OLED panel defect detection using adaptive support vector data description[J]. International Journal of Computer Vision, 2016, 122(2):1-19.

[5] CHA Y J, CHOI W. Deep learning-based crack damage detection using Convolutional Neural Networks[J]. Computer Aided Civil and Infrastructure Engineering, 2017, 32(5):361-378.

[6] PARK J K, KWON B K, PARK J H, et al. Machine learning-based imaging system for surface defect inspection[J]. International Journal of Precision Engineering and Manufacturing Green Technology, 2016, 3(3):303-310.

[7] HE Y, SONG K, MENG Q, et al. An end-to-end steel surface defect detection approach via fusing multiple hierarchical features[J]. IEEE Transactions on Instrumentation and Measurement, 2020, 69(4):1493-1504.

[8] RACKI D, TOMAZEVIC D, SKOCAJ D. A compact convolutional neural network for textured surface anomaly detection[C]// BOWYER K. IEEE Winter Conference on Applications of Computer Vision. Piscataway: IEEE, 2018:1331-1339.

[9] CHEON S, LEE H, CHANG O K, et al. Convolutional neural network for wafer surface defect classification and the detection of unknown defect class[J]. IEEE Transactions on Semiconductor Manufacturing, 2019, 32(2):163-170.

[10] HAN H, GAO C, ZHAO Y, et al. Polycrystalline Silicon wafer defect segmentation based on deep convolutional neural networks[J]. Pattern Recognition Letters, 2020, 130:234-241.

[11] YANG T, PENG S, HUANG L. Surface defect detection of voltage-dependent resistors using convolutional neural networks[J]. International Journal of Material Forming, 2020, 79(9/10):6531-6546.

[12] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6):84-90.

[13] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. Computer Vision and Pattern Recognition, 2014, 6(3):1-14.

[14] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[J]. Computer Vision and Pattern Recognition(CVPR)2016, 2016(12):770-778.

[15] HU J, SHEN L, SUN G, et al. Squeeze-and-excitation networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 42(8):2011-2023.

[16] SELVARAJU R R, COGSWELL M, DAS A, et al. Grad-CAM: Visual explanations from deep networks via gradient-based localization[J]. International Journal of Computer Vision, 2020, 128(2):336-359.

作者簡介:

吴   闯(1994-),男,硕士生.研究领域:图像处理,机器视觉.

于大泳(1977-),男,博士,高级工程师.研究领域:并联机构精度分析标定,电磁兼容.

猜你喜欢

迁移学习
《宋史·曾公亮传》传主形象论析
基于深度神经网络的人体动作识别研究
威斯顿相互作用法在社会保险学课程教学中的实践
基于卷积神经网络的图像分类技术
迁移学习在专业课程教学中的实践研究
迁移学习研究综述
从认知角度探讨大学英语网络教学模式
奇异值分解与移移学习在电机故障诊断中的应用
一种基于迁移极速学习机的人体行为识别模型
大数据环境下基于迁移学习的人体检测性能提升方法