基于机器视觉和深度学习的钢板表面缺陷检测研究综述
2022-10-27李雪露杨永辉储茂祥
李雪露,杨永辉,储茂祥
(辽宁科技大学 电子与信息工程学院,辽宁 鞍山 114051)
受生产环境和机器装置的影响,钢板易产生麻点、划伤、裂纹等缺陷。这些缺陷使钢板的抗腐蚀和耐磨性能变差,产品质量降低,美观程度大打折扣[1]。随着“工业4.0”“中国制造2025”等概念的提出,我国对制造业生产提出了更高的要求,不仅要求产品的使用性能要加强,对其质量、形状、美观也提出较高标准。发展制造业必须提升企业综合素质,强化行业创新能力,加强产品质量检测。其中,钢板表面缺陷检测对降低生产成本,提高生产效率和产品质量有着重要意义[2]。
早期的钢板表面缺陷检测方法主要包括人工检测法、涡流检测法[3]、红外线检测法[4]、漏磁检测法[5]、超声波检测法[6]等。尽管这些方法取得了一定的成就,但是仍有许多不足,检测效率低、适用范围小、难以实现自动化检测。近年来,随着以卷积神经网络为工具的深度学习技术的快速发展,已经有很多深度学习网络模型应用于钢板表面缺陷检测中,但在一些评价指标和小目标检测上效果表现较差,同时检测速度也比较慢。针对上述检测技术存在的问题,本文对基于机器视觉的钢板表面缺陷检测算法进行全面、细致的梳理,既包括传统机器视觉的钢板表面缺陷检测算法,也包括深度学习的钢板表面缺陷算法,重点阐述基于深度学习表面缺陷检测算法及其改进的算法。
1 基于传统机器视觉的钢板表面缺陷检测算法
机器视觉是一种无接触的自动检测技术,是实现装置自动化检测、智能化检测的有效手段,主要特点是安全准确、使用范围大、不受检测物件形状的影响、检测效率高。传统机器视觉检测技术主要由图像采集和缺陷检测两方面构成。图像采集部分主要是选择合适的光源、专业摄像头、以及合适的图像采集卡实现对样本的图片采集。受图像采集装置、摄像头拍照角度、光源变化等环境因素的影响,会采集到不同质量的钢板缺陷。采集的图像质量,决定了图像处理的难易程度[7]。缺陷检测部分主要包括图像去噪、图像增强、边缘检测、图像分割、特征提取、目标检测和分类等几个方面。不同的图像处理方法将直接影响钢板表面缺陷检测的正确率和漏检率。传统机器视觉检测流程图如图1所示。
传统机器视觉自动检测技术广泛用于钢板表面缺陷检测。Wen等[8]提出一种将灰度图像和3D深度信息相结合的检测方法。测试结果表明,该算法对凹坑类型钢板缺陷检测效果较好。为了实现对厚钢板表面缺陷的检测,Yun等[9]提出了一种双重照明结构的缺陷检测系统,通过表面噪声区分不均匀缺陷和颜色变化,图像处理算法由检测切换模式的Gabor滤波器组成,并采用二值化方法提取缺陷形状,在厚钢板图像上验证了该方法的有效性。Wang等[10]提出一种基于引导模板的带钢表面缺陷检测算法,依据大量无缺陷图像,获取正常纹理的统计特征,利用高斯函数拟合无缺陷钢板图像的直方图,并搭建缺陷匹配模板,通过与匹配模板进行减法运算、反向排序和自适应阈值运算,准确找到缺陷位置,在1 500张测试图像的数据集上达到96.2%的平均检测率。为了提高缺陷识别的局部变形能力,Song等[11]采用基于小波变换的散射卷积网络(Scattering convolution network,SCN)对热轧带钢表面缺陷进行检测,检测正确率为98.60%。Sun等[12]提出一种基于缺陷图像奇异值分解的钢板检测方法,可以有效检测及定位缺陷的位置。Hou等[13]提出二阶锥规划(Second-order cone programming,SOCP)优化多核相关向量机(Multiple kernel relevance vector machine,MKRVM)的带钢表面缺陷检测方法,可以对核函数进行更优的选择,提高分类精度和泛化能力,实验结果表明SOCP-MKRVM算法在精度和运行速度上都有显著的优势。Tian等[14]提出改进的极限学习机(Extreme learning machine,ELM)算法和遗传算法相结合的热轧钢板表面缺陷识别算法,将ELM隐层的输出矩阵作为染色体处理,并添加一些新的迭代规则,采用1 675个热轧钢板试样对该算法进行测试,训练集和测试集的最高识别准确率分别为98.46%和94.30%。
虽然传统机器视觉检测技术在钢板表面缺陷检测方面得到很好应用,但也存在着一些不足。第一,设备通用性较低,检查尺寸一致且制造精良的带钢试样时能够可靠运行,但在缺陷形状特殊时,将无法检测缺陷;第二,对光源环境和图像采集设备等硬性条件要求过高;第三,缺陷检测装置需要较高使用和维护成本。
2 基于深度学习的钢板表面缺陷检测算法
深度学习检测技术因通用性广、适应力强、省时高效等优点被广泛应用于钢板表面缺陷检测。深度学习理论包含多种网络模型,例如多层感知机(Multilayer perceptron,MLP)[15]、卷积神经网络(Convolutional neural network,CNN)[16]、循环神经网络(Recurrent neural network,RNN)[17]、深层置信网络(Deep belief networks,DBN)[18]、生成式对抗网 络(Generative adversarial networks,GAN)[19]等。不同网络模型适用于不同的场景,MLP适用于分类预测和回归预测,CNN适用于图像处理,RNN适用于语音识别,DBN适用于图像识别,GAN适用于数据增强。不同网络模型应用在不同的领域。网络模型总体框架如图2所示。
2.1 缺陷分类
在钢板制造生产中,受光源条件和检测目标的形状、颜色、灰度、背景等复杂因素的影响,使钢板表面缺陷分类成为一项艰巨的任务,深度学习网络具有的强大特征提取能力可以较好地解决这一问题。根据缺陷样本有无标签,深度学习分类模型分为有监督学习模型、半监督学习模型和无监督学习模型[20]。
2.1.1 有监督学习模型 卷积神经网络在分类领域避免了对图像的复杂前期预处理,可以直接将原始图像输入,降低网络模型的复杂度,减少权值的数量。采用局部连接和共享权值的方式,使网络易于优化,也降低了过拟合的风险。卷积神经网络结构包括卷积层、采样层和全链接层,基本结构图如图3所示。
卷积神经网络是有监督学习分类模型的经典代表之一,广泛用于解决钢板表面缺陷分类问题。Liu等[21]提出一种基于CNN和长短时记忆(Long short-term memory,LSTM)的缺陷检测方法。将CNN提取到的缺陷特征输入到LSTM分类网络中,检测识别率为81.9%。
He等[22]提出一种分类优先网络(Classification priority network,CPN)的钢板表面缺陷分类方法。使用多组卷积神经网络(MG-CNN)进行图像分类,提取不同种类缺陷的特征,根据分类结果,将可能包含缺陷的特征映射组单独输入到另一个基于YOLO构建的神经网络中,回归相应缺陷边界框。在不同钢铁生产线上进行大量试验表明,热轧钢平均表面缺陷检测率均在94%以上,分类率均在96%以上。
Liu等[23]提出一种基于深度卷积神经网络的缺陷分类方法,采用GoogLeNet作为网络基础模型,并添加身份映射,同时对数据集进行数据增强,对六种类型缺陷进行检测,准确率达到98.57%。
He等[24]提出一种基于深度学习的缺陷检测系统,采用CNN提取缺陷特征,并利用多级特征融合网络(Multilevel feature fusion network,MFN)将多个层次特征融合为一个特征,采用区域建议网络用于感兴趣区域的生成,由检测器产生最终检测结果。该算法在NEU-DET数据集上进行验证,不仅实现了较高的检测精度,还具有实时检测的潜力。
Zhou等[25]提出利用CNN学习多种有用的特征,用于从低级到高级的分类,利用稀疏自编码器学习的滤波核对卷积核进行初始化,在训练过程中同时学习判别特征向量和softmax回归的单个多类分类器,经测试,平均分类准确率高达99%。
Yi等[26]提出一种端到端带钢表面缺陷识别系统,由对称环绕显著图和CNN组成,CNN在原始缺陷图像上训练,并从网络训练中学习到缺陷特征,避免特征提取和缺陷分类之间的分离,从而形成端到端的缺陷识别系统,实验结果表明该系统检测和识别效果良好。
2.1.2 半监督学习模型 在钢板表面缺陷分类方法中,同时使用标记和未标记的样本进行模型训练的半监督式分类方法也有一定的发展。He等[27]提出一种基于GAN(Generative adversarial network)和残差网络的半监督学习(Semi-supervised learning,SSL)缺陷分类方法。使用GAN生成大量未标记的样本,将有标记和未标记样本都集成到SSL中,经过多次训练进行分类,分类准确率达到99.56%。
Gao等[28]提出一种基CNN的半监督学习方法识别钢材表面缺陷,利用少样本、未标记的数据进行训练,同时利用伪标签对CNN进行改进,该方法在标注数据有限的情况下,识别准确率达到90.7%。
Di等[29]提出一种基于卷积自动编码器(Convolutional auto encoder,CAE)和半监督生成对抗网络(Semi-supervised generative adversarial networks,SGAN)的钢板表面缺陷分类方法,通过大量未标记的数据训练一个堆叠的CAE,利用CAE提取特征,训练结束后,将CAE的编码器网络作为特征提取器,并将其送入softmax层,形成新的分类器。为了进一步提高泛化能力,引入SGAN进行半监督学习,测试结果表明,CAE-SGAN算法与传统方法相比具有更高的性能。
2.1.3 无监督学习模型 有监督和半监督的学习方式需要大量有标签的缺陷图像样本进行训练,然而,由于有标签的缺陷图像样本不足,会导致训练性能减弱。利用无标签缺陷图像样本进行训练的无监督式学习,可以较好解决这一问题。Liu等[30]提出一种Haar-Weibull-variance(HWV)模型,以无监督方式检测钢材表面缺陷。利用各向异性扩散模型消除伪缺陷的影响,利用新建立的HWV模型表征图像中每个局部补丁的纹理分布。HWV模型只需两个参数即可将每个补丁的纹理分布投影到低维空间中,通过参数分布的形成,提取可靠背景,进一步优化模型参数,确定自适应阈值将缺陷与背景区分开,平均检测率为96.2%。
2.2 目标检测
目标检测可以理解为是对缺陷识别和定位的综合性任务,不仅要识别出缺陷的类别,还要准确定位缺陷具体位置。随着人工智能的发展和模型的优化,深度学习技术在缺陷识别、军事领域、无人驾驶[31]等多个领域有着广泛应用。目标检测算法分两类,一类是双阶段算法,主要模型有RCNN[32]、SPP-Net[33]、Fast RCNN[34]、Faster R-CNN[35]等;另一类是单阶段算法,主要模型有Yolov1[36]、Yolov2[37]、Yolov3[38]、Yolov4[39]、Yolov5[40]、Yolox[41]、SSD(Single shot multibox detector)[42]、Retina-Net[43]等。相关模型的信息列在表1中。
表1 目标检测网络模型Tab.1 Target detection network models
2.2.1 双阶段算法 Faster R-CNN算法流程图如图4所示。首先,缺陷输入图像经过骨干网络输出特征图;然后,将生成的特征图送入感兴趣区域;最后得到缺陷的定位和类别结果。
Faster R-CNN是双阶段算法的代表,检测效果好,在钢板表面缺陷检测领域应用较广。Li等[44]改进Faster R-CNN和FPN网络,并采用多尺度特征融合来鼓励低级特征的重用,检测平均精度达到98.26%。Ren等[45]针对带钢表面缺陷的实时检测问题,构建一个更轻量化的Faster R-CNN检测算法,用深度可分离卷积代替Faster R-CNN卷积层,在原始损失函数中加入中心损失,以提高网络区分不同类型缺陷的能力,在一个包含6类4 655张表面缺陷图像的数据集上进行训练测试,测试精度达到98.32%。Wang等[46]提出一种将改进的ResNet50与改进的Faster R-CNN相结合的方法,以减少平均运行时间,提高准确率,将图像输入到改进的ResNet50模型中,对有缺陷和无缺陷的样本进行分类,当存在缺陷的概率小于0.3时,算法直接输出无缺陷的样本,否则将样本进一步输入到改进的Faster R-CNN中,判断有无缺陷,通过对实际工厂环境中获得的数据集进行测试,该方法的准确率可达98.2%。
Yang等[47]提出一种基于CNN的红外热成像钢板裂纹检测方法,将经过红外处理的数据传入数据库,在数据库上对CNN进行训练和验证,对原有Faster R-CNN网络进行改进,检测准确率和平均检测精度分别为95.54%和92.41%。Yin等[48]在Faster R-CNN原始网络中加入特征金字塔网络(Feature pyramid network,FPN),使网络可以结合高层特征信息和低层特征信息,并使用感兴趣区域对齐算法,以减少量化误差,测试结果表明,平均检测精度增加约0.8%。Zhao等[49]提出一种改进Faster R-CNN的算法,利用多尺度融合训练网络检测小缺陷,对于目标的复杂特征,用可变形卷积网络替换部分常规卷积网络,实验结果表明,该方法具有良好的检测性能,平均精度为75.2%,比原算法提高12.8%,其中,裂纹、夹杂、斑块、麻点、氧化皮和划痕的平均检测精度分别为50.1%、79.1%、79.2%、87.4%、64.9%和90.5%。
2.2.2 单阶段算法 YOLO算法是由Redmon等在2016年提出的一种单阶段算法,通过非极大值抑制(Non maximum suppression,NMS)算法,减少对多余候选框的训练与计算,将检测问题转化为回归问题,实现端到端的缺陷检测。YOLOv3是YOLO系列发展的第三个阶段,其特点是在YOLOv1、YOLOv2两个版本的基础上,融合深度残差网络和特征金字塔网络,并使用逻辑回归思想代替softmax函数进行分类,既保证了检测的实时性,又具有较高的检测精度。YOLOv3网络结构如图5所示。
Zhang等[50]提出CP-YOLOv3-dense神经网络模型,以YOLOv3作为基本网络,对图像进行优先级分类,将密集网络模块代替残差网络模块,利用改进后的网络对六种表面缺陷进行检测,检测正确率为85.7%,召回率为82.3%,平均正确率为82.73%。
Kou等[51]提出一种基于YOLOv3的端到端带钢表面缺陷检测模型,利用自由框特征选择机制替代基础框结构,选择合适的特征尺寸,在模型中引入密集卷积块来提取特征信息。该模型在GC10-DET数据集上产生的平均检测精度为71.3%,在NEU-DET数据集上的平均检测精度为72.2%。
针对热轧带钢表面缺陷检测速度慢、精度低的问题,Ning等[52]提出一种改进YOLOv3的算法,利用数据增强算法对数据集进行扩展,使用随机性较小的K-means++算法代替K-means算法对缺陷标签进行聚类分析,选择合适的自由框改进YOLOv3网络的初始候选框,在YOLOv3网络结构中增加了一层预测框并进行特征融合,以提高网络对小目标的检测能力。实验结果表明,改进后的YOLOv3算法在NEU-DET数据集上的平均精度达到89.5%,比原YOLOV3算法提高了14.7%。
Li等[53]提出一种改进YOLOv3算法的带钢表面缺陷检测方法。使用K-means++算法优化先验框参数,同时设计YOLOv3算法的网络结构,融合浅层特征信息与深层特征信息,形成新的检测框,提高检测精度。实验结果表明,改进后的YOLOv3算法在NEU-DET数据集上平均精度达到80%,较原有的YOLOv3算法提高了11%。
2.3 缺陷分割
缺陷分割是指将图像分成若干个感兴趣区域的过程,不但要准确分割出缺陷区域,还要精准获取缺陷形状、位置以及类别。近年来,分割技术发展迅猛,广泛应用于人脸检测、智能视频监控、医学图像处理[54]、自动驾驶[55]等领域,基于深度学习的缺陷分割技术可以分为三个大类:缺陷语义分割、缺陷实例分割和缺陷全景分割。
2.3.1 缺陷语义分割 缺陷语义分割主要用于识别缺陷的类别。主要模型有FCN(Fully convolution network)[56]、U-Net[57]、SegNet[58]、DeconvNet[59]、DeepLab[60]等。其中,FCN是语义分割的经典代表,不需要候选框的生成,接受多尺度的输入图像,可以实现端到端的图像语分割。FCN网络结构如图6所示,将一幅缺陷图像输入到卷积神经网络,经过多次卷积及池化操作得到多个特征图,利用反卷积层对最后一个卷积层得到的特征图进行上采样,使上采样后特征图与原图像的尺寸一致,对上采样特征图进行逐像素分类[61]。
常用的语义分割算法为FCN和U-net,因模型结构简单,省时高效,普遍应用于钢板表面缺陷检测。为了进一步提升检测和分割的效果,Roberts等[62]设计一种基于SegNet的网络对钢板表面缺陷进行语义分割,对位错、沉淀物、空隙三种钢板缺陷的分类识别率分别为(91.60±1.77)%、(93.39±1.00)%、(98.85±0.56)%。
Qian等[63]提出一种基于U-Net和FPN的神经网络对钢板表面缺陷实现语义分割。Neven等[64]利用U-Net分割网络模型检测钢板表面缺陷,也具有较好的检测性能。
2.3.2 缺陷实例分割和缺陷全景分割 目前,基于缺陷实例分割和缺陷全景分割的钢板缺陷检测算法应用较少,有待进一步研究。缺陷实例分割就是目标检测和缺陷语义分割的结合。相对目标检测的边界框,缺陷实例分割可精确到缺陷的边缘。相对缺陷语义分割,缺陷实例分割需要标注出图上同一缺陷的不同个体,主要模型有Mask R-CNN[65]和PANet[66]。缺陷全景分割是缺陷语义分割和缺陷实例分割的结合,缺陷实例分割只对图像中的缺陷进行检测,并对检测到的缺陷进行分割,而全景分割需要检测和分割图中的所有物体包括缺陷背景,主要模型有OANet[67]和EfficientPS[68]等。
3 结论
钢板表面缺陷检测是一个复杂的应用,包括缺陷分类、目标检测与定位、缺陷分割等多种环节。由于缺陷种类较多,传统机器视觉检测算法很难做到对钢板表面缺陷特征完整的建模和迁移,每个环节需要分开工作,浪费资源。基于深度学习的方法可以直接实现端到端的钢板表面缺陷检测,在特征提取和定位上取得较好的效果。但是就目前而言,深度学习在钢板表面缺陷检测应用的过程中仍有一些挑战,在未来还有很大的发展空间。
(1)当深度学习应用于钢板表面缺陷检测领域时,经常存在训练样本不足的问题。钢板表面缺陷数量较少,但是种类较多,在这样的小样本数据集上训练深度学习网络模型,容易产生过拟合现象,泛化性能较差。因此,建立学习小样本的网络模型是深入研究的方向。(2)目前,大部分深度学习模型都是基于有标签的数据进行训练,这种有监督式的学习方式受样本数量的限制,并且很多数据标签需要人工标注。而无监督和半监督的学习方式则不需要大量的数据标签,是基于深度学习的钢板表面缺陷检测未来发展方向。