蔡聪艺
(漳州职业技术学院,福建 漳州 363000)
金属作为工业产品的重要原材料之一,在加工过程中不可避免地会出现裂纹、划痕等损伤,金属表面的损伤会带来产品的质量和美观缺陷,严重的会导致企业的品牌质量下降、成本增大等问题[1-2]。传统的人工检测主观因素影响较大,存在漏检、成本高以及效率低等突出问题。随着机器视觉技术和图像处理技术的发展,基于计算机图像分析处理的金属表面缺陷自动检测系统已经得到了广泛应用,该系统能够有效地提高检测的精度和速度。
早期的金属表面缺陷检测主要分为传统的图像处理方法和基于人工提取特征的机器学习方法[3],与传统的人工检测相比,机器视觉技术在一定程度上改善了人工检测效率低、准确度差的缺陷。但是容易受到周围环境的影响,因此难以大范围应用。随着计算机视觉技术的不断发展,采用深度学习方法来检测金属表面缺陷受到了国内外学者的广泛关注,文献[4]提出了基于聚类的Faster R-CNN算法,利用K-MeansII聚类生成锚点方案,提高零件表面的检测精度;文献[5]利用YOLOv3检测铝型材表面缺陷,将原始图像与预处理后的图像融合,增强鲁棒性;文献[6]结合金字塔与残差融合的方法对YOLOv3算法进行改进,提高了钢材表面划痕的检测精度。基于YOLO系列的改进算法在数据处理和网络筛选方面均具有较好的效果,可以通过增强原始数据抽取、对数据集进行聚类划分、引入损失函数等方法来提高缺陷检测的准确性。然而,在金属表面缺陷检测中,仍然存在缺陷尺度过小导致的检测不灵敏、结果无效和漏检等问题。
本文结合现有深度学习目标检测的方法,在原有的YOLOv5网络上结合了PSO算法优化网络的颈部部分,同时应用了自适应锚框计算并使用反向传播神经网络对图像进行训练,得到最终的深度卷积神经网络,以期进一步提高小目标情况下的缺陷检测精度。
YOLOv5是YOLOv4的迭代版,是以Darknet-53为特征的网络结构作为特征提取网络,提高了检测的精度、速度,目前普遍应用于视频和实时目标等的检测中[7]。与之前的YOLO模型相比,YOLOv5的模型所占内存大幅度减小,可以说YOLOv5以最小的网络拥有了最快的速度和AP精度,图1是YOLOv5的结构示意图。
图1 YOLOv5结构示意图
从图1可以看出,YOLOv5由输入端、基准网络端、Neck网络、Head输出端和代表输入图像的输入端组成。输入端阶段通常包括图像预处理阶段,在此阶段,输入图像被缩放到网络的输入端并归一化。在网络训练阶段,YOLOv5使用Mosaic数据提高了操作增强模型的训练速度和网络精度[8]。此外,对基准网络部分进行改进,添加了基准网络Focus结构和Neck网络,使基准网络增强了提取通用特征的特异性和鲁棒性。
YOLOv5利用特征金字塔网络(FPN)来提取多尺度特征图层,有针对性地提高小目标的被检测概率。YOLOv5将浅、深层特征相互融合,可以得到3个特征图,3个特征图均具有不同比例,可检测3种尺度目标物,通过区分来提高检测精度。利用3个比例尺的特征图探测目标,每个比例尺产生3个Anchor Box,共9个Anchor Box。在预测过程中,通过PSO算法预测Anchor Box的尺寸,图2是预测框示意图。
图2 预测框示意图
如图2所示,输入图像首先被划分为S×S网格,每个网格的宽度、高度分别为cx、cy,相对于锚盒偏移量的网格输出分别为tx、ty、tw、th,然后预测框坐标公式为:
其中:bx、by是预测框的原点坐标;bw、bh分别为预测框的宽度和高度;pw、ph分别是Anchor Box的宽和高。
在此基础上,应用基于统计学习理论中最小二乘支持向量机(LS-SVM)算法对图像进行分类[9],通过加入激活函数Sigmoid的使用将预测值tx和ty映射到[0,1]范围内,然后设置置信度阈值,筛选出不符合的预测框,最后用非极大值抑制方法去除冗余预测框[10]。
YOLOv5一般按三种不同尺度(32×32、16×16和8×8)对特征图层进行划分,此方法虽然可以一定程度提高多目标的检测,但仍然对金属可能出现的表面缺陷检测不敏感,因此有必要对YOLOv5进行改进,来提高小缺陷目标检测的精确性。基于此技术缺陷,本文提出了一种基于多尺度融合深度学习的改进算法来实现金属零件表面缺陷的自动检测[11]。
针对网络结构部分,基于传统YOLOv5网络结构,本文新增图层以提高目标检测能力。通过分析不同类型噪声与原始图像之间的差异,提出了基于深度学习框架下的去噪方法,并将其应用于增强现实系统,最后利用实验数据验证该方案的有效性及实用性。改进后的网络模型如图3所示,虚线框为新增尺度为104×104的特征图层。
图3 改进后的算法结构
在Darknet-53中,经过两次向上采样,将第二个残差块的浅层输出融合网络的深层输出,然后通过卷积得到一个104×104的新特征图层,缩小了原始图像的尺寸,从而能得到更多的网格,使网络具有更好的提取特征性能。
因为网格大小对目标物的尺寸具有敏感性,通过将浅层、深层特征相融合,创建有利于检测小目标的特征层,提高模型检测小目标的能力,提高模型整体精度。在网络中,增加1个特征图层使Anchor Box数目增加到12个,也提高了检测密度。
最后利用上述算法来进行验证,在多个真实数据集上分别实现了基于深度卷积神经网络的多尺度、高分辨率遥感影像的道路识别和分类。可以看到,特征层数目的叠加可以增多划分缺陷目标的尺寸层次,从而提高了网络对多缺陷目标的综合检测能力。
已有的缺陷检测算法可以有效检测缺陷,然而需要在多次训练过程中不断调节以达到最好的训练效果。粒子群算法(Particle Swarm Optimization,PSO)是一种群智能算法,由于其收敛速度快、全局寻优能力强等多方面的优点受到了广泛关注[12]。它通过迭代找到随机粒子群的最优解,每次迭代来跟踪粒子的“极值”来更新位置和速度信息。粒子速度计算公式如下:
其中:i=1,2,…,N,N是群中粒子的总数,vi表示粒子的速度,xi是粒子的当前位置,c1、c2是学习因子,rand()是介于(0,1)之间的随机数。
结合粒子群优化算法和YOLOv5改进对金属表面进行缺陷检测,具体步骤如下:
(1)在YOLOv5算法中增加一个特征图层,尺度为104×104,比原算法多一尺度,即形成一个四尺度的预测模型,有效解决了小目标检测的敏感性问题,进一步提升表面缺陷检测精度和准确性。
(2)引入DIoU损失函数,使边界框的距离测量和交叉问题得到处理,从而使模型的运动轨迹更加精确,模型收敛速度加快。
(3)利用PSO网络对网络的特征提取模块进行优化,进一步提高特征提取的精度,获取最优的特征类型,减少网络损失,从而提升网络的检测精度。
实验运行环境如表1所示。
表1 实验硬件描述
数据集来源:漳州职业技术学院自行收集整理的NEU-DET钢材表面缺陷数据集[13]。
图像类别:包含6种类型的缺陷,即裂纹、杂质、斑块、Pitted_surface、Rolled-in_scale和划痕。
图像数量:每种类型的缺陷图片包含300幅尺寸为1800×416的图像,共计1800张。
图像增强技术:提取的图像进行90度和180度旋转,调整图像的饱和度和对比度。
缺陷定位:使用xml格式定位缺陷位置并对其进行分类。
图像预处理:包括灰度化处理和二值化处理等一系列操作。
数据集划分:数据集按8:2的比例随机分为训练集和测试集,即1440张图像划分训练集和360张图像划分测试集。
根据本文提出的改进PSO-YOLOv5算法,该算法的初始设置情况为:初始学习率值为1/1000,为防止数据出现过拟合,设置权重衰减系数为5倍的初始学习率值[15],当训练迭代次数达到960次时,学习率相应地减少10倍。实验前期共设置了2批次尺寸,batch_size设置为4。模型训练目标的类别置信度阈值是0.5,DIoU阈值是0.45。当两个预测框之间的DIoU值超过了设置阈值时,则删除该预测框。最后将输入图像进行分类处理后,输出结果作为最终结果。
评价指标主要分为速度指标和精度指标两大类。速度指标为同一运行条件下每秒处理的图片数量或单张图片处理所需时间。精度指标采用精确率(Precision,P)、召回率(Recall,R)和平均准确率(Mean Average Precision,MAP)三项作为网络模型的性能指标。P、R和MAP公式如下:
式中:TP—正确预测的正例;FP—错误预测的负例;FN—错误预测的正例;N—检测类别数的数量;AP—每种检测类型的准确性。
为了验证本文方法的优越性,首先将其与主流算法进行了性能比较,然后通过消融实验验证了改进PSO-YOLOv5算法的有效性。
(1)与当前主流算法的对比实验
改进PSO-YOLOv5与Faster R-CNN等4种算法的评价指标详见表2。
表2 算法的计算结果对比
所有模型均是在初始学习率0.001,DIoU阈值为0.5的条件下计算,共训练了1080个epoch。由表2计算结果可知:本文提出的改进PSO-YOLOv5算法以67.76%的平均准确率、68.56%的精确率、75.89%的召回率均排各项第一,证明改进的PSOYOLOv5算法在金属缺陷检测时,在相同条件下能够获得更高的准确率、更好的鲁棒性以及更快的收敛速度,其综合性能优于其他几种算法。在运行效率方面,本文方法的FPS为31.6frames/s,快于Faster RCNN的13frames/s和SSD的29.7frames/s。虽 与YOLOv2和YOLOv3的检测速率相比稍低,但由于改进的大规模输出网络结构、DIoU损失和PSO网络的改进,检测精度最高。
综上,相较于目前主流的金属表面缺陷检测算法,如Faster R-CNN、YOLOv3等,本文所提出的改进PSO-YOLOv5算法具有最高的检测精度,同时检测速度也适中。结合检测精度与检测速度这两个指标,本文提出的PSO-YOLOv5整体效果最优。
(2)消融实验
为了进一步验证本文提出的改进算法的有效性,将改进的PSO-YOLOv5金属缺陷检测方法与原始YOLOv5算法进行性能对比,实验结果如图4所示。
图4 PSO-YOLOv5和YOLOv5检测结果对比
对比检测所有的小缺陷目标,改进的PSO-YOLOv5比YOLOv5算法在六项表面缺陷类型的检测上均具有较好的检测精度。根据图4可知,在裂纹、杂质等6项金属表面缺陷类型中,PSO-YOLOv5比YOLOv5的检测精度高。其中氧化铁皮压入和裂纹类型检测精度提高较多,均超过14%,且氧化铁皮压入精度提高值最大,达15.24%;斑块类缺陷检测精度提高值最小,为6.88%。改进的PSO-YOLOv5算法的平均检测精度为79.97%,YOLOv5算法的平均检测精度为69.60%,PSO-YOLOv5较其提高了10.37%,表明改进PSO-YOLOv5算法可以显著提高金属表面缺陷检测的精度。
本文算法融合增加了特征图层的尺度,引入DIoU损失函数和PSO算法,最后通过加入卷积层增强图像细节处理得到一种新的基于YOLOv5与CNN结合的金属表面缺陷检测方法。实验结果表明,本算法在平均准确率、精确率、召回率方面均比目前流行的如YOLOv5、Faster R-CNN等算法具有较大的优越性,极大提高了金属表面缺陷的检测精度和准确性,满足了金属缺陷检测精度的要求。