刘孝保,张嘉祥,阴艳超,刘 佳
(昆明理工大学 机电工程学院,云南 昆明 650500)
铝型材在生产过程中要经过圆铸锭铸造加工、挤压与淬火、生产试制样品、取样检测、阳极氧化、检测等工艺流程。因为工艺的复杂性,所以不可避免地会造成擦花、漏底、碰伤等缺陷,且不同缺陷因产生原因的不同,使其在纹理和外观形状方面均存在较大差异。在铝型材表面缺陷检测方面,目前大多数企业采用人工检测的方法,但该方法存在效率低和准确度差等问题。由于计算机视觉技术的高效准确等技术优势,基于计算机视觉技术的表面质量检测研究应用备受关注。
近年来,基于计算机视觉的表面缺陷检测方法可以概括为3类[1-2]:①传统的图像处理方法,该方法主要利用不同缺陷的图像特征差异进行直接识别,其中主要包括阈值方法、光谱方法、光谱方法和结构方法等[3];②基于图像处理和浅层特征提取的机器学习方法,该方法通过提取输入图像的特征并建立特征向量,然后将特征向量输入分类器中,从而确定是否有缺陷[4],主要包括区域特征提取(Local Binary Patter, LBP)算法[5]、方向梯度直方图(Histogram of Oriented Gradient, HOG)[6]、基于可变型部件的模型(Deformable Part Model, DPM)[7]以及Harr等具有良好性能的特征提取及分类器;③基于卷积神经网络的缺陷检测方法,该方法以经典结构的卷积神经网络(ResNet[8],VGGNet[9],FPN[10])为基础骨架处理图像,进而生成深层特征图,最后完成缺陷检测,主要包括基于快速区域的卷积神经网络[11](Fast Region Convolutional Neural Network, Fast-RCNN)以及更快的基于区域卷积神经网络[12](Faster-RCNN)的二阶检测网络和一阶检测网络。如REDMON等[13]提出YOLO检测模型,并借鉴Faster-RCNN与YOLO模型的思想,提出了SSD检测模型;黄凤荣等[14]利用Faster-RCNN对发动机零件表面缺陷进行检测,在检测精度和速度上有了较大提升;李维刚等[15]针对目前热轧钢带表面缺陷检测过程中存在精度低的问题,通过对YOLO v3算法进行改进,在性能上优于多种检测模型;熊红林等[16]利用多尺度卷积神经网络对玻璃表面缺陷完成检测。尽管上述研究对表面缺陷检测进行了深入的研究应用,但是因缺陷检测网络只关注缺陷的纹理特征和梯度信息,而忽略形状次要特征,从而导致识别精度较低。
为此,本文提出一种融合图像纹理特征及梯度信息等主要特征和形状特征等次要特征的缺陷检测模型。该模型包含了通过优化UNet图像分割模型对图像中缺陷区域定位的图像分割模块;通过融合卷积神经网络、BP神经网络与模糊神经网络构建出基于数据融合的图像分类模块,进而完成缺陷区域的分类。最后,基于阿里天池铝型材数据集对该模型进行验证,其分类的平均精度高达97.2%,验证了该模型的可行性和有效性。
由于铝型材表面进行了特殊处理,导致铝型材缺陷样本容易出现照明不均匀、强反射和背景噪声等问题,且因工艺的复杂多样性造成的不同缺陷在形状、尺度上均存在差异,铝型材缺陷样本如图1所示。在样本纹理特征上,不同缺陷的样本其纹理存在相似性问题,尤其是在外界因素(如强反射)的影响下,擦花样品缺陷区与样品边缘几乎一致(如图1a),漏底与凸粉样品缺陷区域与非缺陷区域相似度较高(如图1b和图1c)。
为此,整合缺陷区域的纹理信息、梯度信息和形状信息,并以此作为表面缺陷检测的依据,本文建立了基于主从特征融合的缺陷检测模型。通过构建集成融合缺陷定位层、缺陷主从特征融合分类层,构建了主从特征驱动的缺陷检测模型,模型结构如图2所示。在该模型中每种分支模型可以根据自身特点,提取缺陷图像样本中不同层次的图像特征。缺陷定位层用来定位铝型材样本中缺陷区域的具体位置,制作出只包含缺陷区域与背景的掩膜图像,进而提取出图像的缺陷区域。缺陷主从特征融合分类层,利用图像的纹理特征、梯度信息与形状特征,以及数据融操作,完成缺陷分类。
缺陷检测包含缺陷定位和缺陷识别两部分,因此缺陷定位的准确性也是缺陷检测过程中的重要指标。在缺陷定位上采用UNet模型,对铝型材缺陷样本进行分割,完成对样本中的缺陷区域进行准确定位。
由于数据为单类别缺陷的一个或多个实例,缺陷区域的面积占比主要分布在10∶1~20∶1之间,正样本(缺陷区域)与负样本(背景区域)的占比已经超过了4∶1,打破了图像分割时正负样本分布平衡的界限。因此通过采用Focal Loss损失函数降低负样本在训练过程中的权重,使正负样本达到平衡状态,其优化的方式通过可变因子乘以原始的交叉熵损失函数,如式(1)所示。
(1)
式中:α为平衡因子;y′为经过激活函数处理的结果,范围在0~1之间;γ为调节负样本权重降低的速率。当γ=0时,损失函数为交叉熵损失函数,γ变化时,调变因子(1-y′)γ也会随之变化,从而起到降低负样本权重,平衡样本权重的作用。
为了评估检测结果的优劣程度,选择交并比(IoU值)与像素精度(PA)进行评价。交并比(IoU)表示原始分割结果与原始图像真值的重合程度,在实验中可以理解为分割模型的预测值与标注值的图像的重合度[15],其计算如式(2)所示:
(2)
式中:GT为铝型材缺陷区域的标注框,PM为分割模型对铝型材样本缺陷区域的预测框。像素精度(PA)表示正确分割图像的像素数量与像素总数之间的比率,其计算如式(3)所示:
(3)
式中nii表示实际类型为i,预测类型为i的像素总数。
铝型材缺陷样本形状差别大,因此将铝型材的纹理特征与梯度信息作为主要识别特征的同时,引入缺陷的形状特征参数作为辅助特征,以此获得更好的分类效果。利用紧凑的卷积神经网络对纹理特征与梯度信息进行提取并分类,同时构建可以自动提取图像形状特征的神经网络对形状特征进行提取并分类。主从特征缺陷预分类网络的具体结构如图3所示。
(1)纹理主特征分类网络
在图像的纹理特征与边缘梯度特征的提取方法中主要是对图像进行卷积运算,卷积运算是卷积神经网络的基本计算[17]。浅层的卷积神经网络会提取图像的颜色特征,但是随着网络层的不断叠加,网络所提取的特征主要是对纹理特征和边缘梯度特征的高度抽象化,同时弱化了图像的其他特征。
卷积神经网络相对于普通神经网络具有局部感知域、共享权重和池化等特点,卷积神经网络可以在不经过前期人工复杂处理的情况下,提取出待检测图像的多样非线性特征,是针对图像分类和识别特别设计的一种深度学习方法。
如图3所示的基于纹理特征分类网络结构包含了输入层、卷积层、池化层与全连接层。其中输入层接收分辨率为224×224的图像,通过叠加卷积核大小为3×3、5×5、7×7的卷积层和3×3的最大池化层,提取图像的特征矩阵,使用ReLU激活函数对特征矩阵进行非线性化,并在卷积和池化处理时进行dropout处理和Batch Normal处理从而避免过拟合,最后使用全连接层和Softmax函数进行分类。
(2)形状从特征分类网络
形状特征是图像的一个重要特征,对于形状特征差别大的图像具有决定性作用,对于形状特征差别小的图像具有辅助作用。利用经过分割后的掩膜图像,提取缺陷区域的周长、椭圆度、矩形度、面积和离散度等特征,处理为对缺陷特征高度概括的形状特征参数。
反向传播神经网络(Back Propagation Neural Network, BPNN)是前馈神经网络中最为成熟且应用最广的网络,可以有效地实现任何复杂非线性映射的功能。因此,利用BP神经网络可以对铝型材缺陷的形状特征参数进行有效分类。
通过引入缺陷图像特征自动提取模块,克服了传统神经网络在图像分类过程中不能自动提取图像特征的缺点。形状特征分类网络如图3所示,其结构包含图像特征提取层、输入层、隐藏层和输出层。其中输入层接受维度为1×4的向量,采用神经元个数为8和6的两个隐藏层,使用ReLU激活函数进行非线性化处理,经隐藏层处理后,经过Softmax函数分类并输出。
(3)主从特征融合分类层
由于铝型材表面缺陷与背景信息有着较高的相似度,在使用基于缺陷纹理特征分类时会造成较高的分类误差。当不同类别缺陷的形状差异较大时,将缺陷的形状特征作为主要特征;当缺陷的形状特征相似时,便将缺陷的纹理特征作为主要特征;当形状特征与纹理特征的分类结果一致时,即将该结果认定为最终结果。这些条件处于过渡状态中,彼此之间有联系,分界线不清晰,因此很难使用精确的尺度进行划分。
针对以上两种形式之间的差异性的存在,通过构建适应于本次实验的模糊规则的模糊神经网络,进行类别的模糊分类。一个完整的模糊神经网络包含输入层、模糊化层、规则适用度计算层、适用度归一化层、模糊规则输出层和输出层,其具体结构如图4所示。
将纹理特征与形状特征的预分类结果作为模糊神经网络的训练集,表示为集合X={x1,…,xi,xn}与Y={y1,…,yi,yn},i=2,3,…,n-1,xi={xi1,xi2,xi3,xi4,xi5}并且yi={yi1,yi2,yi3,yi4,yi5},将集合X,Y作为输入量,g为模型的输出值。针对5类缺陷分类实验,系统模型的模糊规则构建如下:
R1:ifxiisF11andyiisF21then
g1=p11xi+p21yi+r1
R2:ifxiisF12andyiisF22then
g2=p12xi+p22yi+r2
⋮
R5:ifxiisF15andyiisF25then
g5=p15xi+p25yi+r5
R6:ifxiisF11andyiis notF21then
g1=p16xi+p26yi+r6
⋮
Rm:ifxiis notF15andyiis notF25then
g5=p1mxi+p2myi+rm
(1)模糊化层 也称为隶属函数层,主要通过隶属函数,将精确的输入数据分量xi与yi转化为模糊集,如式(4)所示:
(4)
j=1,2,…,m。
(5)
式中αi与βi分别表示规则所对应的第i个特征的均值与方差。
μF22(y)…μF2m(y)…,l=1,2,…,m;i=1,2,…,n;j=1,2,…,m。
(6)
(7)
(8)
(9)
通过上述步骤可将形状特征、纹理特征与梯度信息结合,作为图像分类的依据,避免了单一卷积神经网络在添加硬注意力机制时,造成的损失函数和注意力机制在结合过程中不可导,使其在反向传播算法训练时无法使用,同时也避免了在使用软注意力机制时忽略通道局部信息,以及使用掩膜权重之后由于信息减少破坏网络深层特征信息的问题。
为了验证基于主从特征融合的铝型材缺陷检测模型对铝型材表面缺陷检测的效果,采用阿里天池比赛的铝型材数据集,并结合铝型材在生产过程中常见的缺陷类别进行实验验证,原始样本种类及数量分布如表1所示,样本的大小为2 560×2 560。
表1 原始样本数量分布
由于原始图像样本具有数据量不足与图像形状参数信息没有被提取出的缺点,需要对样本进行数据增强处理和图像形状参数提取,图像样本预处理的主要步骤如下:
(1)数据增强 因为每一类样本数量缺乏,不能满足模型训练的数量,所以在模型训练之前需要对图像样本进行数据增强处理,通过旋转、裁剪、仿射变化、引入噪声、改变色彩饱和度等方法,将每一类样本扩充至600张。
(2)缺陷区域标注 利用Labelme软件对图像样本的缺陷区域进行标注,用于图像分割,以减小图像背景对缺陷区域的影响。
(3)形状特征参数提取 利用原图像和UNet模型分割的图像进行掩膜提取,通过OpenCV 3.4.7构建缺陷形状特征提取模块,并将此模块嵌入神经网络中,使神经网络可以自动提取缺陷的形状特征,原始图、语义分割图与掩模图如图5所示。
如图5所示为分割结果图,其中(a1~e1)表示原始图像;(a2~e2)表示经过UNet模型处理分割后的图像;(a3~e3)表示利用分割后图像作为掩膜处理原始图像后得到的结果。从图中可以直观看出,图像分割模型可有效地将缺陷区域进行定位域分割。
以搭载Intel酷睿i5-9400F CPU,内存大小为8 G,Nvidia1660 GPU的计算机作为实验硬件基础,实验软件环境基于Windows 10操作系统、Tensorflow 1.14.0深度学习框架、Python 3.6.5搭建的主从特征融合驱动的缺陷检测框架。
根据图像特征和参数特征,自行构建了融合卷积神经网络与BPNN网络的网络模型,对图像进行分类,通过多次调整分类模型的网络结构和参数,以获得较优结果,其网络的部分实验参数设置如表2所示。
表2 网络模型的部分实验参数表
为了评估主从特征融合驱动的铝型材表面缺陷检测模型的性能,分别验证图像缺陷区域分割定位模块和缺陷分类模块。利用经过Labelme标注的铝型缺陷样本,对改进的UNet网络模型进行训练,其损失函数变化与准确率变化规律如图6所示。
为了分析改进的UNet网络模型铝型材图像分割效果,选择常用SegNet网络模型和UNet网络模型进行对比分析,其对比效果如表3所示。从表3可以看出,改进的UNet模型PA与mIoU得分最佳,分割效果最好。
表3 PA与mIoU评估得分 %
针对缺陷分类问题,在相同数据集上基于GoogLenet模型、Resnet 50模型和本文模型进行实验对比,其GoogLenet采用对特征并行地执行多个大小不同的卷积运算与池化,最后再拼接到一起,由于1×1、3×3和5×5的卷积运算对应不同的特征图区域,因此可以得到更好的图像特征。而Resnet 50的思想在于引入了一个深度残差框架来解决梯度消失问题,即让卷积网络去学习残差映射,而不是期望每一个堆叠层的网络都完整地拟合潜在的映射(拟合函数)。3种分类模型的实验测试精度如图7所示,模型训练完成后5次测试精度的平均值如表4所示。
表4 3种分类模型的详细分类结果
图7与表4展示了3种方法的详细分类结果,从中可以看出Resnet50模型的平均分类精度比GoogLenet模型的平均分类精度高9.8%,基于主从驱动的分类模型的平均分类精度比Resnet50模型高3.26%。从模型的角度来看,Resnet50模型与GoogLenet模型的主要差别在于对残差的优化比直接优化潜在的映射更为容易,即下采样提取图像特征的同时,对未进行下采样的图像进行融合,构建出缺陷样本特征图,但是基于主从特征缺陷分类模型考虑到了可量化的直观形状差异与潜在的差异,使得主从特征缺陷分类模型分类精度更加准确。对于擦花、凸粉、碰伤和漏底等缺陷种类来说,缺陷的纹理与渐变信息接近,并且铝型材加工处于复杂的工业场景下,难以通过纹理和梯度特征完全表示实际缺陷的特征。因此考虑到分类模型与样本的特征这两个方面,实验采用的形状特征、纹理特征与梯度信息相结合的模式,同时融入了专家经验的思想,最终得到的识别精度在各个类别上都得到了极大限度的提升。
同时,为了体现设计模型对缺陷的识别速度,对实验所用的3种模型进行对比,对比结果如表5所示。
表5 3种分类模型的分类时间
从表中可看出,尽管本文模型在精度上比GoogLenet和Resnet50高,但其分类识别时间并没有明显增加,其识别时间略高于GoogLenet,而远低于Resnet50。
主从特征驱动的表面缺陷检测模型可以对复杂工业场景的铝型材表面缺陷完成高精度检测和分类任务。为了解决样本不平衡问题,通过优化UNet网络的原始损失函数模块,将原始的缺陷图像转化为缺陷区域突出的蒙版图像,进而提取出图像的缺陷区域,达到了减小背景及其他干扰信息和缺陷定位的目的,实验中IoU分数和PA值可以达到87.3%与94.91%。为了提高实际应用效率,构建了紧凑的CNN与BPNN结合的分类模型,以达到快速识别。同时,考虑到纹理特征和梯度信息对缺陷区表达不完全,从而引入了缺陷的形状特征,并利用模糊神经网络进行最终分类,其识别精度可以达到97.2%,证明了本模型的有效性和实用性。
由于深度卷积神经网络在训练前的标签设定需要耗费大量的时间,因此可通过半监督学习和无监督学习减少数据标签,并且进一步提高模型在多种缺陷检测问题中的适用能力和检测效率。