李 墨,陈志豪,张 勰
(1.广东工业大学 计算机学院,广州 510006;2.广东工业大学 自动化学院,广州 510006;3.华南理工大学 电力学院,广州 510641)
随着科技的不断进步及工业的快速发展,玻璃制品已经成为众多行业中不可或缺的重要组成部分。玻璃作为一种需求量日益增加的特殊材料,细微缺陷就会影响其机械特性和光学性质,从而降低甚至破坏玻璃产品的使用价值。因此,玻璃外观质量检测是玻璃质量检测中最重要的环节,这也是保证产出高品质、高性能的玻璃产品的关键环节。传统的玻璃面板缺陷检测方法主要依赖于高级技工的人工检验。随着玻璃生产制造需求逐渐增大,传统的人工检验方法无法满足高速生产带来的庞大的质量检测需求,因此发展高质量的自动化玻璃缺陷检测系统变得尤为重要。随着人工智能技术的发展,许多大型企业在玻璃面板缺陷检测中引入机器视觉方法代替人工检测,以提高企业的产品质量和生产效率。但机器视觉的应用也存在一些弊端,它不仅需要针对特定的应用场景定制,无法适应一系列复杂动态的工业制造场景,而且缺乏自主学习和技能迁移能力[1-9]。
近年来,在深度学习算法中,基于卷积神经网络的语义分割方法在缺陷检测方面得到了广泛的应用[10-17]。该类方法可以准确提取复杂背景中的特征,快速分割人体肉眼难以识别的不明显缺陷,从而实现玻璃面板的有效缺陷检测。2015年,Ronneberger 等[18]提出了一种名为U-Net的网络,该网络基于语义分割技术,可以实现对生物医学图像进行像素级别的分类。然而此网络模型的学习参数较多,训练难度较大,且需要进行大量的图像标注工作;参考文献19利用了卷积神经网络中的VGG Net模型对手机屏幕缺陷进行了检测,然而该研究发现,在4种主要缺陷的检测中,漏检率达到了6%~9%,最高的检测率仅有94%,这种检测精度无法满足相关领域的高要求[19];针对现有的语义分割方法在面对不规则数据时存在的计算复杂度高、语义特征信息提取不充分问题。提出了一种结合超像素技术与残差分类网络的预处理方法,同时,将金字塔池化模块PPM嵌入到U-Net模型中,构成了一种全流程的新的语义分割方法。
目前的语义分割模型主要存在以下几个问题:
1)缺陷样本图像的高度复杂性和可变性使得提取特征信息具有挑战,导致分割性能差。
2)由于缺陷样本图像的特殊性非目标训练图像占用了训练资源,导致训练速度变慢,损失函数收敛速度变慢。
3)多变场景时获取全局信息不充分,造成语义分割时出现不匹配关系、混淆类别和不显著类别的缺陷误判,未判和错判等问题。
本文模型基于经典U-Net模型,对输入图像进行数据预处理,并使用PPM对U-Net网络特征处理层进行融合,有效降低了模型对数据集的依赖,降低模型的训练复杂度、提高了分割精度和速率。其总体模型框架如图1所示。
图1 总体模型框架图
本文主要关键技术如下:
1)由于图像特征信息的复杂性和可变性使得特征信息的提取具有挑战性,导致分割性能较差。因此,本文提出采用对输入图像进行超像素预处理。超像素[20-22]是一个5维特征向量,它将彩色图像转换为CIELAB颜色空间和XY坐标。此外,对5维特征向量构建距离测量准则,对图像像素进行局部聚类。且SLIC[20]是基于纹理、颜色、亮度等相似的相邻像素快速生成紧凑干净的超像素块,通过构造一个简单的线性迭代聚类图像预处理模块,解决了图像特征信息复杂多变的问题,使邻域特征的表示更加容易。它不仅可以降低图像的维数,还可以捕获冗余信息,消除像素异常点。
2)由于输入图像的特殊性,在语义分割前对缺陷图像进行分类,能在一定程度上降低后续图像语义分割的复杂度,提升网络模型的训练速度及分割准确率。该方法使用带有残差结构ResNet50[23-26]网络对缺陷图像进行初步分类。其独特的残差结构创建了不同网络层之间的快速连接(shortcut connection)。它解决了深层网络中梯度弥散和精度下降(训练集)的问题,使网络能够越来越深,既保证了精度,又控制了速度。
3)全卷积网络(FCN)的缺点是需要一种合适的策略来利用全局场景分类信息的特征。为了解决上述问题,提出了U-pyramid pooling module-Net(U-P-Net)。该方法引入金字塔池化模块PPM[27-28],在4个不同的粗细尺度上进行特征融合,利用多样化的卷积尺寸,提取到的特征更具多样性,且能够聚合不同区域的上下文信息,进一步提高获取全局信息的能力,避免关系错误匹配、类别混淆以及细小对象的类别被忽略问题。
该框架由3个模块组成:SLIC超像素预处理模块[22]、分类网络模块和U-P-Net模块。每个模块将在以下部分中详细描述。
手机玻璃屏幕数据集中样本图像的高复杂性和高分辨率使得提取特征信息具有挑战性,导致分割性能较差。考虑到图像中目标特征的复杂性,采用超像素算法进行图像预处理。SLIC[22]通过构造一个简单的线性迭代聚类图像预处理模块,解决了图像特征信息复杂多变的问题。SLIC[22]基于纹理、颜色、亮度等相似的相邻像素快速生成紧凑干净的超像素块,使邻域特征的表示更加容易。SLIC[20]预处理效果如图2所示。
图2 SLIC预处理效果图
图3 PPM金字塔池化模块结构图
SLIC具体步骤如下:
1)初始化(撒种子):根据图像大小及其他参数确定超像素数目,在图像内均匀分配种子。
2)聚类中心选择:在聚类中心内计算所有像素点的梯度值,并选择梯度最小的像素点作为新的聚类中心。
3)分配像素到超像素:每个像素必须与之位置重叠的最近聚类中心之间相关联,将其分配到间距最近的超像素。
4)距离的度量:包括像素之间的颜色距离和空间距离,其度量方法如下:
(1)
(2)
(3)
(4)
5)迭代过程:重复执行3)和4),直到超像素中心位置不再发生变化或达到最大迭代次数。
6)聚类优化:解决经过迭代后存在的与聚类中心不属于同一连通域的孤立像素点。具体步骤为:利用连通算法将相邻的超像素合并成一个超像素,如果合并后的超像素与某个邻居超像素的距离小于一定阈值,则将其合并。
手机玻璃屏幕数据集中存在一些非目标训练图像,这些图像会占用训练资源,导致训练速度变慢,并且损失函数的收敛速度也变慢。这种情况会严重影响训练效率和准确性,因此需要采取相应措施来解决非目标训练图像对训练过程的影响,提高训练效率和准确性。本文选用了一种名为ResNet50[23]的残差网络作为手机玻璃屏幕图像的分类网络。ResNet50是一种深度残差网络,具有易优化、计算负担小等优点,在计算机视觉领域得到了广泛的应用。与传统的卷积神经网络相比,残差块(residual block)的引入是ResNet50解决梯度消失和退化问题的重要方法之一,它有效地提高了网络的性能。
具体来说,残差块通过引入跳跃连接来绕过了某些卷积层和激活函数层,线性层拟合残差映射,使得神经网络的信息流能够更加顺畅地传递。这种结构的引入使得ResNet50网络可以更加深层次地学习特征,达到充分训练底层网络的效果,同时减轻了梯度消失和过拟合的问题。ResNet50网络结构如图4所示,由49个卷积层和1个全连接层组成。其中,第二至第五个阶段中的ID BLOCK x2是指包含两个不改变维度的残差块,而CONV BLOCK则是指包含添加维度的残差块。每个残差块均由3个卷积层组成,因此整个网络包含49个卷积层。
图4 ResNet50网络结构图
手机玻璃屏幕在生产过程中容易受到环境的影响,导致产生气泡、划痕、锡灰等各种形状和大小的缺陷。这些缺陷的语义分割存在关系不匹配、混淆和对象类别小等问题,给模型的准确分割造成了挑战。为了解决上述问题,提出了U-P-Net模块。该模块可以有效地处理这些异形的缺陷,提高语义分割的准确性和可靠性。
U-P-Net的结构如图5所示。通过在U-Net网络的主干特征提取部分和增强特征提取部分之间引入了金字塔池化模块,以进一步提高网络的性能。该模块可以将不同大小的特征图进行池化,从而捕获更多的上下文信息,提高网络的感受野和特征表达能力,避免语义分割问题中的误分类、错分类、未分类等问题。
图5 U-P-Net模型结构图
PPM[27]的结构如图3所示,是一种多尺度特征融合的方法,其基本原理是在原始特征图上进行4个不同粗细尺度的池化操作,然后将不同尺度的特征融合在一起,其中最粗尺度产生单格输出;加细尺度产生多格输出。金字塔池化会对输入图像进行多次下采样,从而得到不同尺度的特征图,然后低维特征图通过双线性插值进行上采样,以获得相同大小的特征图。最后,将这些特征图(包括原始特征图)在通道维度上进行拼接,生成一个综合了多种尺度信息的复合特征图,从而达到兼顾全局语义信息与局部细节信息的目的。
U-P-Net具体步骤如下:
1)输入图像进入主干特征提取网络,由两个3×3的卷积层(RELU)再加上一个2×2的maxpooling层组成一个下采样的模块,一共经过4次这样的操作,得到初步有效特征层feature map;
2)对骨干提取的feature map(channel =N)做池化得到特征金字塔;
3)然后通过1*1深度卷积降通道分别得到1*1,2*2,4*4,6*6的channel = 1/N的特征图;
4)对特征图进行双线性插值填充上采样到原Feature map尺寸;
5)与Feature map进行通道拼接(也叫级联)得到channel数增加1倍的特征图;
6)再利用1*1卷积核将上述拼接后的特征图深度卷积降通道得到与输入特征图Feature通道数一致的结果得到最终的金字塔池化全局特征;
进入加强特征提取部分,由一层反卷积+特征拼接concat+两个3×3的卷积层(ReLU)反复构成,一共经过4次这样的操作,对得到的金字塔池化全局特征进行上采样,并且进行特征融合,最后接一层1*1卷积,降维处理即将通道数降低至特定的数量,获得一个最终的,融合了所有特征的有效特征层的目标图。
损失函数是对框架的预测值与实际值不一致的计算。它是非负的实值函数。损失函数越小,框架的训练性能越好,鲁棒性越好。损失函数是训练结果连续接近实际值时必须使用的函数。其中,损失函数是神经网络通过梯度下降等方法调整权重参数。本文框架中使用的损失函数为加权交叉熵损失函数:
E=∑x∈ωω(x)log(Plx(x))
(5)
其中:Ω→{1,...,K}为像素点的标签值,plx(x)为softmax损失函数。ω为∈R为像素点的权值,为图像中靠近边界点的像素赋予更高的权值。
(6)
其中:plx(x)为softmax函数。alx(x)是第k个特征通道(类别的数量等于特征通道的数量,总共k个)。
(7)
其中:ωc为∈R是平衡类别比的权值,d1为∈R是像素点到其最近像素点的距离,d1为∈R是像素点到距离其第二近像素点的距离。ω0和σ为常数值,实验中ω0≈10,σ≈5 。
本实验中使用的手机玻璃屏幕数据集是在实验室液晶显示器(LCD)屏幕缺陷检测设备上采集的手机玻璃屏幕图像。数据集包含3种类型的缺陷:划痕(scratch)、气泡(bubble)和锡灰(tin_ash)。图6显示了3种手机玻璃屏幕的表面缺陷样例。
图6 手机玻璃屏幕缺陷划痕、气泡和锡灰样例图
由于原始手机玻璃屏幕数据集的图像分辨率为6 400×6 400,分辨率过高,难以分割缺陷且分割效果较差。因此,对原始图像进行图像分割和数据增强,得到分辨率为640×640的图像。并对其进行数据增强和数据扩充,其中包括增加噪声、亮度调整、图像模糊和图片旋转等方法,以解决样本分辨率过高以及样本不均衡所导致的分割效果较差和模型泛化能力低的问题。
本实验设置手机玻璃屏幕数据集来验证本文框架的性能。手机玻璃屏幕数据集的训练集、验证集和测试集的数量分布如表1所示。该数据集是一个用于手机玻璃屏幕缺陷语义分割的图像数据集,其中包含了各种常见的屏幕缺陷,如气泡、划痕、锡灰。数据集的训练集共有600张图像,用于训练模型的参数。验证集共100张图像,用于选择最佳的模型超参数。测试集共有200张图像,用于测试模型的性能表现。在训练集中,各种缺陷的数量分布如表二所示。气泡缺陷的数据图像共206张,划痕缺陷的数据图像共167张,锡灰缺陷的数据图像共227张。
表1 手机玻璃屏幕数据集的数据分布
表2 手机玻璃屏幕训练集缺陷分布
在实际的语义分割任务中,语义分割框架的预测性能评价指标为交集除以并集(IoU)、像素精度(PA)、平均交集过并(mIoU)和平均像素精度(mPA)。在性能评估计算公式中,真正TP (true positive)是指对某一类缺陷,语义分割框架正确分割出的缺陷数量。假阳性(FP)是指语义分割框架对这种缺陷错误所分割出的缺陷数量。假阴性(FN)是没有被语义分割框架分割的缺陷的数量,对于这类缺陷是正确的。真负(TN)是没有被语义分割框架分割且不属于这种类型的缺陷的数量,通常为0。
1)IoU是像素点的真值与预测值的交集除以像素点的真值与预测值的拼接。计算公式如下:
(8)
2)PA用于计算正确分类的像素数与像素总数的比值。计算公式如下:
(9)
3)mIoU是数据集中各类相交比的平均值。计算公式如下:
(10)
4)mPA分别是计算每一类正确分类像素的比例。计算公式如下:
(11)
其中:i为真实值。j表示预测值。pij表示i作为j的预测,k是类别的数量。
该液晶屏缺陷检测设备由运动控制模块、图像采集模块、光源控制模块、信号产生模块组成。运动控制模块采用三菱PLC和伺服驱动进行运动控制。图像采集模块采用海康威视CH 10 GbE工业面阵相机。光源控制模块采用双面低角度LED光源作为检测环节的除尘灯。信号产生模块采用信号发生器模拟手机主板给予手机玻璃面板的电信号,实现面板的不同颜色变换。其中信号产生模块只选择了一个场景。
为了加快网络的训练速度,本文采用单个GPU (NVIDIA GeForce RTX 3 080)来提高计算效率。使用Python实现改进U-Net[18]。提出的框架是用python进行训练和测试的。整个实验采用开源深度学习框架PyTorch实现。初始获取的每张图像大小为640 × 640。优化算法采用Adam算法,发生器和鉴别器学习率均设置为0.000 1,beta1为0.5;超参数设置为0.5;训练步数设置为3 000步。在获得足够的数据后,使用自适应矩估计(Adam)优化算法进行训练,动量为0.9,权值衰减为0.000 1,beta1为0.9,beta2为0.999。学习率为1×10-3。训练批数设置为16,以避免局部极小值。
在本节中,我们验证了本文提出的框架在手机玻璃屏幕数据集上的有效性,并将其性能与其他流行的语义分割框架进行了比较。实验涉及的主流框架为U-Net[18]、PSPNet[29]和DeepLab V3[30]。
图7显示了文本提出的框架在标准手机玻璃屏幕数据集下的收敛曲线。由图7可知,曲线在大约800 Epoch收敛。
图7 模型训练中框架的收敛曲线
本文提出的框架是针对手机玻璃屏幕缺陷检测任务设计的,经过在标准数据集上的训练和测试,取得了较为优秀的性能表现。各缺陷的IoU和总mIoU指标如图8所示,PA和总mPA指标如图9所示。其中,对于气泡缺陷,IoU指标为57.88%,PA指标为59.90%;对于划痕缺陷,IoU指标为52.75%,PA指标为54.01%;对于锡灰缺陷,IoU指标为82.25%,PA指标为87.59%。此外,本文提出的框架在背景区域的分割上也取得了较高的IoU和PA指标,分别为95.67%和98.12%。
图8 本框架在标准手机玻璃屏幕数据集中的MIoU指标
图9 本框架在标准手机玻璃屏幕数据集中的mPA指标
综合各个缺陷类型的性能表现,本文提出的框架在总mIoU和总mPA指标上分别达到了71.14%和74.91%,相比于传统方法和现有的深度学习方法,具有更高的检测准确率和更强的鲁棒性。
表3展示了本文提出的框架与其他主流框架在标准手机玻璃屏幕数据集上各种缺陷语义分割的性能对比。与经典U-Net[18]网络相比,该框架的mPA和mIoU性能指标分别提高了4.89%和5.49%。与PSPNet[29]网络相比,该框架的mPA和mIoU性能指标分别提高了46.96%和44.25%。与DeepLabv3[30]网络相比,该框架的mPA和mIoU性能指标分别提高了38.87%和34.92%。该框架提出的超像素预处理
表3 本文采用U-Net、PSPNet和DeepLabv3作为本文提出的框架的比较框架
模块利用超像素预处理和ResNet50[23]残差网络分类,简化了输入图像的复杂性和冗余度。提高了后续图像缺陷语义分割框架的准确性和鲁棒性。另一方面,在该框架下提出的U-P-Net可以利用多样化的卷积大小提高框架的特征提取能力,并可以聚合不同区域的上下文信息,进一步增强获取全局信息的能力,有效提高分割效率,优化分割效果。
为了验证本文框架中各个模块的有效性,整个实验采用了3种不同的烧蚀方案。比较了U-Net、超像素预处理模块、分类网络模块和U-P-Net模块。3种方案在标准移动屏幕数据集上的性能指标如表4所示,其中“+”表示该模块的添加。方案1选用经典的U-Net[18]作为整个框架;方案2在U-Net语义分割前对图像进行超像素预处理和分类。方案3是本文提出的框架。
表4 使用不同方案在标准手机表面数据集上的性能 %
从表中可以看出,方案2在增加图像数据预处理模块(SLIC[22]+ResNet50[23])后,mIoU和mPA的性能较方案1分别提高了4.05%和1.7%。
且在加入图像数据预处理模块后模型对锡灰这一类缺陷的分割效果,大幅度提升。相比U-Net网络对锡灰缺陷的分割,SLIC和ResNet50的加入解决了锡灰缺陷存在的特征信息复杂多变的问题,使其邻域特征的表示更加容易,降低了锡灰缺陷的图像复杂度,提升模型的分割效果。与方案2相比,方案3在此基础上引入了U-P-Net模块。U-P-Net模块融合了缺陷图像的深层和浅层特征,提高了网络获取全局信息的能力,避免了关系不匹配、类别混淆和小对象类别被忽略等问题。mIoU和mPA性能较方案1分别提高4.23%和2.07%,较方案2分别提高4.23%和2.07%。综上所述,在分别引入U-P-Net模块和图像数据预处理模(SLIC+ResNet50)后,各项指标均有不同程度的提升,而方案的三项性能明显优于方案一和方案二。
鉴于现有缺陷检测的语义分割算法存在分割不准确、语义信息提取不足、面对不规则数据收敛时间长等问题。提出了一种实用的手机玻璃屏幕缺陷分割框架。在数据预处理方面,结合超像素技术和残差分类网络的数据预分类方法可以有效降低模型对数据集的依赖,降低后续图像处理的计算复杂度。U-P-Net的合理提出,使所提出的模型能够有效地聚合不同区域的上下文信息,提高模型获取全局信息的能力,避免了语义分割中的误分类和漏分类问题。框架在缺乏足够数据集的情况下显示出良好的性能。它在分割效率和精度方面优于许多主流模型,可以应用于手机玻璃屏幕表面生产。接下来的步骤是如何在分割中更好地结合超像素,如何在单张图像中分割多个缺陷,以及如何将其应用于不同材料的图像。