随着国内制造业的发展,汽车中铝铸件的需求量也逐年攀升,在铝铸件生产过程中,不可避免地会出现一些缺陷,如磨损、凹陷、冲蚀等。传统铝铸件表面缺陷的检测主要依赖人工,需要花费大量的成本,且存在标准不统一、识别能力有限、检测的准确率不高等问题。因此铝铸件自动检测具有重要的研究意义。
随着计算机技术的发展,机器视觉在缺陷检测领域中的应用也逐年增长。汽车铝铸件图像缺陷处理主要包括缺陷区域提取、缺陷分割、缺陷分类,缺陷分割是图像缺陷处理中的重要环节,缺陷分割质量影响对铝铸件的判定。
在基于图像处理的缺陷检测方法中,H F NG使用最大类间方差实现了基于原始图像自动阈值化的缺陷检测。BAI X L等对原始图像进行傅里叶变化,增强了缺陷区域的显示,同时实现了对图像无缺陷区域的衰减,提高了对铝铸件缺陷位置的定位准确度。LUO X C提出了一种混合SVM-QPSO的缺陷检测算法判断铝铸件的缺陷。V REBUFFEL等通过试验证明,与二阶导数和形态学操作相比,二维小波变换是一种更稳健的自动分割铝铸件典型内部缺陷的方法[7]。上述方法无法对缺陷区域信息进行精确提取,只能识别缺陷的大致位置、大小等信息,要求精确提取缺陷,传统图像处理方法一般使用背景差分法,从预处理图像中减去背景图像以留下包含缺陷和随机噪声的残差图像。LI X L等将背景差分法用于焊接缺陷检测,取得了良好的效果,但背景差分法对图像定位及随机图像噪声比较敏感。
将深度学习引入缺陷检测领域是近年来发展的一个方向,由于深度学习模型普遍泛化能力强,在不同领域图像之间兼容性高,避免了工业生产应用中数据采集困难、数据量小的缺点,将深度学习技术引入工业领域也是当前的趋势。刘力哲、 J MASCI等提出了用于检测铝铸件缺陷的卷积神经网络,并对比了不同的池化函数,但是卷积神经网络只能检测铝铸件的表面缺陷位置信息,不能实现缺陷分割。LIU R X等提出了用于提取高位特征空间中的孔隙率信息的深度学习网络,并引入参数传递机制减轻神经网络中的过拟合现象,该网络可以相对提高精度检测缺陷,但需要大量原始标记数据集。WANG T等、YAO Y等提出了可以自动从缺陷区域提取几何特征的深度卷积神经网络,但几何特征提取精度低,限制了缺陷等级的判定精度。O RONNEBERGER等针对生物医学图像分割问题提出UNet网络,过对称的U形网络结构构造对称的编码器与解码器,还使用了跳跃连接,将解码器与编码器中具有相同分辨率的子模块的输出进行连接,作为解码器中下一个采样的输入,该方法实现了像素的精确定位,克服了小训练集边缘不够精确的难点。ZHOU Z W等在UNet网络结构的基础上提出了UNet++结构,抓取不同层次的特征,使分割结果进一步精细化。UNet系列网络在裂纹检测、矿石分割领域均表现优秀,但较少有研究者将其用于铝铸件表面缺陷分割。
生成对抗网络(generative adversarial networks,GAN)是通过生成器与判别器相互博弈对数据进行学习的方法。P LUC等提出将对抗网络用于语义分割任务,通过判别器结果与语义分割网络的博弈来提高分割网络的性能,与对抗网络结合后的语义分割网络在查准率和查全率上均超出原方法的3%~5%,表明将GAN与原始分割结果相结合具有更好的分割精度与鲁棒性。汽车铝铸件生产过程中产生的缺陷具有边缘复杂、不确定性强的特点,且现有公开缺陷数据集没有图像标记,需要手动标记,因此需要寻找一种对样本需求量小,分割效果好的图像分割方法。现旨在用少量样本集获得更精确的分割结果,提出一种基于GAN-UNet++的铝铸件缺陷检测方法,首先对图像进行预处理,并通过Labelme进行图像分割制作标记图,再将UNet++网络作为生成器,将生成器结果与标签图同时输入判别器网络,通过提取图像特征判断图像来源,通过生成器和判别器的相互博弈,提升图像分割质量,通过试验验证并与UNet、UNet++、GAN-UNet 分割结果进行对比,表明了GAN-UNet++的可行性。
1基于UNet++与生成对抗网络算法
1.1 UNet++网络生成器
UNet网络是一种语义分割卷积神经网络,主要由3个部分组成:编码器、解码器和连接底层信息与高层信息的跳跃连接,UNet网络结构组成如图 1 所示,其工作原理如下。
图1 UNet网络结构
(1)将汽车铝铸件的缺陷图与缺陷标记图作为网络的输入进行编码。利用卷积神经网络提升图像深度并提取图像特征,再通过池化操作压缩图像面积,经过四层卷积池化操作后获得最底层图像,保留最小图像特征。
(2)将图像通过反卷积操作进行解码,并与编码过程中位于同一深度的图像合并,再使用一定的卷积核操作进行图像反卷积,各层操作类似,直至在最后一层输出分割图像。
观察UNet网络结构可知,UNet网络将下采样过程中获得的特征图与上采样过程中相同深度的图像进行跳跃连接。
UNet++是对原UNet的优化[18],其网络结构如图2所示。UNet++对UNet的改进主要体现在跳跃连接部分。以UNet网络中X0,4为例,在UNet网络中X0,4只与X0,0卷积单元相连接,而UNet++网络中,X0,4同时和X0,0、X0,1、X0,2、X0,3卷积单元相连。在UNet++中,各个深度的特征都被兼顾,将判断特征重要性的任务交给网络。此外在UNet++网络中,只需训练一个编码器,通过不同路径的解码还原不同层次的特征。假设Xi,j代表Xi,j节点的输出特征图,Xi,j的计算可表示为:
(1) |
其中,i表示下采样过程中的第i层;j表示相同深度的连接层中第j个卷积单元;H()表示带有激活函数的卷积运算;u()表示上采样过程;[]代表叠加操作。
图2 UNet++网络结构
UNet++在UNet网络原有结构基础上,添加了密集跳跃连接,使底层信息和高层信息之间实现多层次融合,这将使待检测区域的细节更为完整的保留,从而被分割出来。图像缺陷分割区域细节丰富,不同分割精度影响铝铸件缺陷等级判定,因此相对于UNet,UNet++网络更适用于图像缺陷语义分割。
1.2 生成对抗网络
生成对抗网络(GAN)由判别器和生成器两部分组成。生成器用来生成拟合真实图像,判别器用于判断生成器产生的图像是否真实,通过两者之间相互博弈对抗,实现近似于真实图像的输出。
GAN的目标优化函数为:
(2) |
其中,x为真实数据,真实数据x符合
分布;z为噪声数据,噪声数据z符合Pz(z)分布;D(x)表示x被判别为真的概率;G(z)为生成器生成数据;D(G(z))表示生成器生成数据被判别为真的概率。
在训练开始阶段,由于生成器还没有开始训练,生成效果较差,此时判别器D判断真实图像的能力强,辨别生成图像能力弱,即此时D(x)和D(G(z))都接近于1,
的值趋近于负无穷大,生成器需要减小
的值,使生成器获得较大的梯度来更新模型参数。生成器不断训练更新,生成更接近真实的图像,判别器的梯度也相应发生改变,不断更新模型以减小D(G(z)),由此判别器与生成器不断博弈,形成一个对抗过程,GAN结构如图3所示。
图3 GAN结构
1.3 缺陷分割网络整体构成
采用UNet++结合生成对抗网络的优化方法,解决缺陷分割图像中的边缘细节错分、缺分问题,提出基于GAN-UNet++的缺陷图分割方法,提升了分割精确度。
将UNet++作为GAN的生成器,产生图像分割数据。常用判别器网络为卷积网络,分析对抗网络需求,选取多层卷积神经网络作为判别器网络。将生成器UNet++输出图像和标签图像作为判别依据分别输入多层神经网络判别器。采用全连接卷积分别求出生成器分割图像和分割标签图像对应的判别器值,并使用交叉熵计算判别器网络损失值,采用Adam方法进行网络学习优化,在四层卷积网络中选择步长为2,长宽为4×4的卷积核。
在UNet++结构中,每层都会产生一个伪图像,现只选用最后一层的伪图像输入判别器,因此判别器的主要目标函数为:
(3) |
虽然UNet++其他层生成的伪图像不需要用于训练判定网络,但它们仍然要用于训练各自层的网络。为了保证伪图像与真实图像更加相似,每层UNet++中都加入了L1损失,因此生成器的目标函数为:
(4) |
(5) |
2试验与结果分析
2.1 试验数据集
首先对数据集的样本图进行分析,铝铸件缺陷处理区域集中,使用传统的图像处理方法对铝铸件图像缺陷分割存在一定的局限性。在深度学习处理图像缺陷分割问题时,待分割图像需要手工标注分割区域,使用标注工具Labelme对图像缺陷进行标注。对物体逐点标注形成分割图像并形成json文件,对json文件转换后得到缺陷标注图。
随机选取其中的90幅为训练集,12幅为测试集,在GAN-UNet网络训练过程中,对预处理后的图像进行图像增强,扩充训练集多样性,图像增强操作包括随机翻转、高斯模糊、仿射变换、图像截取和填充等。
模型进行30 000次迭代训练,每个训练队列使用9个样例。整体网络学习率为0.000 1,采用0.5的丢弃率以减少网络过拟合现象,并使用Adam梯度下降法进行网络训练。
2.2 分割结果评价指标
对于分割图像质量的评价方法,选取Dice系数、平均像素精度(mean pixel accuracy)、准确率Rprecision、召回率Rrecall、F1-score来进行评估。
Dice用于计算分割结果与参考图像之间的相似度,取值范围在[0,1],计算公式为:
(6) |
其中,X表示输出结果图像;Y表示参考图像。
准确率Rprecision、召回率Rrecall、F1-score指标计算公式为:
(7) |
(8) |
(9) |
其中,NTP表示正确检测属于缺陷区域的像素;NFP表示错误检测属于缺陷区域的像素;NFN表示错误检测属于背景区域的像素。
平均像素准确度在实际应用中更为广泛,它通过累加每个类别的预测正确像素占比并求平均:
Aaccuracy= | (10) |
其中,Pii代表i类的像素被预测为i类;Pij代表i类的像素被预测为j类,k为总类别数,取值为4。
2.3 4种网络结果比较
将缺陷图像分别进行UNet、UNet++、GAN-UNet、GAN-UNet++等分割,分别选取3类缺陷分割结果各1幅进行分析。
划痕类分割结果如图4所示,对比图4中的试验结果,GAN-UNet算法检测结果与原始缺陷差异较大,如图4中间的方框内,GAN-UNet检测结果有明显的粘连现象,而提出的GAN-UNet++算法检测结果划痕连接处更清晰。UNet算法与UNet++算法对于较小划痕检测能力偏弱,相较于GAN-UNet++还原度较低。
图4 划痕缺陷检测结果
(a)原 图 (b)GAN-UNet++ (c)GAN-UNet (d)UNet (e)UNet++
斑块类分割结果如图5所示,斑块类缺陷边缘较为模糊,UNet和UNet++分割时易出现过拟合现象,不利于正确判断斑块类型。在这一缺陷类别中,GAN-UNet++与GAN-UNet表现较好,GAN-UNet边缘较为平滑,对于小区域识别能力偏弱。
图5 斑块缺陷检测结果
(a)原 图 (b)GAN-UNet++ (c)GAN-UNet (d)UNet (e)UNet++
夹杂类分割结果如图6所示,同划痕类缺陷分割结果类似,GAN-UNet检测结果粘连现象明显,容易误判夹杂缺陷的数量和大小。UNet算法与UNet++算法检测结果较GAN-UNet好,但仍有部分粘连现象存在,二者的还原度均弱于提出的GAN-UNet++算法。
图6 夹杂缺陷检测结果
(a)原 图 (b)GAN-UNet++ (c)GAN-UNet (d)UNet (e)UNet++
根据参考文献[22],将Dice=0.95,Rprecision=0.90, Rrecall=0.98,Aaccuracy=0.97作为分割得分75分的参考值,根据线性插值计算4项误差的得分Wsc,绘制标准箱体图,如图7所示,虚线表示75分,小正方形表示平均值Wal,UNet、UNet++、GAN-UNet和GAN-UNet++各项指标均在75分之上,可知UNet系列网络及变体在铝铸件缺陷分割领域表现良好。
图7 采用所提方法分割结果的各项指标得分和加权总得分
对测试集的图像分割结果进行分析,统计不同算法Dice、Rprecision、Rrecall、Aaccuracy的平均值如表1所示。由表1可知,所提出的GAN-UNet++与标记图相似度达到了97.6%,网络模型分割结果与参考图相比较,Dice、Rprecision和Aaccuracy的值均优于其他3种算法,Rrecall略低于GAN-Unet。
表 1 不同网络的检测结果
▍原文作者:张靖 1俞锡光 1郑东旭 1施定威 1潘洲民 2
▍作者单位:1. 宁波合力科技股份有限公司; 2. 浙江大学
本文暂时没有评论,来添加一个吧(●'◡'●)