苏 虎,张家斌,2,张博豪,邹 伟,2+
(1.中国科学院 自动化研究所,北京 100190;2.中国科学院大学 人工智能学院,北京 100049)
表面缺陷检测常见于各种工业质检过程,是控制产品品质的关键,如图1所示。基于视觉感知的表面缺陷检测,具有精度和执行效率高、可防止二次损伤等优点,能够充分满足工业现场需求,是实现表面缺陷自动化检测的理想解决方案,在很多行业得到了应用,如道路、桥梁、玻璃、钢铁、光学元器件等。现有的关于表面缺陷检测方法的研究,大体可分为基于显式特征提取的(传统方法)和基于自动特征提取的(深度学习方法)两类。显式特征提取方法是通过分析纹理特性,如同向性、同质性等,提取图像特征,识别缺陷纹理,从而区分缺陷产品图像和正常产品图像。此类方法的研究起步早,可追溯至上世纪八十年代[1],研究成果也十分丰富。深度学习方法是2012年深层神经网络成功应用于大规模图像分类以后[2],逐渐发展起来的。与显式特征提取方法相比,自动特征提取方法不需要专门进行图像特征的手工设计和提取,对目标识别能力强。研究人员尝试将深度学习技术应用于表面缺陷检测,获得了超过传统方法的准确率。基于深度学习的缺陷检测方法越来越广泛地应用于各种工业场景,成为当前缺陷检测的主流方法。一些公司开发出多种基于深度学习的商用工业缺陷检测软件,如VIDI、SuaKIT等。同时,弱监督学习[3]、无监督学习[4]等方法的出现,缓解了工业场景中数据获取成本高的问题,让深度学习在工业质检领域的规模化应用变得可行。目前,在国家政策的支持下,深度学习正与制造业深度融合,成为实现工业检测自动化的重要推动力。
表面缺陷检测是一个系统性问题,除检测方法外,照明成像也十分重要。合理的照明成像方式是有效呈现缺陷特征的关键,也是后续图像处理和质量判断的基础。本文从问题描述、检测流程和检测方法等方面对表面缺陷检测进行系统性阐述。在此基础上,重点综述了检测方法的研究进度,对现有检测方法进行归类和对比分析,并对每一类方法的特点和适用场景进行总结。通过对该领域代表性文献的归纳梳理,本文对表面缺陷检测进行了系统性、全面性的介绍,使研究人员能够快速了解该领域的进展、相关方法和技术,为有关从业人员在算法设计和系统搭建时提供借鉴。目前已有一些关于表面缺陷检测方法的高水平文献综述,例如:文献[5]和文献[6]综述了应用于钢铁表面的缺陷检测方法;文献[7]是综述纺织物表面缺陷检测方法的早期文献,文中还介绍了纺织物在线检测的硬件系统;文献[8]首先对不同的表面缺陷进行归类,然后综述了应用于多种表面的缺陷检测方法。考虑到应用于不同场景的检测方法的共通性,笔者认为,针对特定应用场景的综述文献[5]~文献[7]可能无法充分阐述该领域的进展。近几年,深度学习方法的出现极大促进了工业检测的进展,基于深度学习的缺陷检测方法不断涌现。文献[5]、文献[6]和文献[8]对该类方法论述不足。尤其是,对应用于表面缺陷检测的分类、检测和分割网络并没有详尽的归纳总结,对弱监督、无监督等方法没有展开介绍。另外,文献[5]、文献[6]和文献[8]仅对缺陷检测方法进行综述,没有涉及缺陷检测系统的介绍。
表面缺陷检测方法的发展里程碑如图2所示。图中时间轴表示该类方法首先应用于表面缺陷检测,以2012年为分界线,将现有缺陷检测方法分为传统方法和深度学习方法。基于传统方法的缺陷检测研究始于20世纪80年代,研究成果丰富,进一步分为统计法、滤波法和模型法。2013年以来,随着以卷积神经网络为代表的深度学习技术在诸多计算机视觉任务中取得成功应用,人们尝试将其应用于表面缺陷检测。目前,基于深度学习的缺陷检测方法研究十分活跃,各种创新方法不断涌现,根据获取的缺陷信息的不同,具体可分为分类、目标检测和分割3种方法。在下文中,将对这些方法展开详细阐述。
在已有文献中,获取的缺陷信息分为类别标签、外接矩形和像素掩码3种形式,对应方法分别是分类、目标检测和分割。如图3所示,以玻璃盖板表面的崩边缺陷为例对3类缺陷信息进行说明。类别标签包括图像标签和缺陷类型标签,分别表征当前图像是否是有缺陷的和缺陷类别;外接矩形除了给出缺陷的类型外,还要确定缺陷在原图中的位置;像素掩码需要逐像素判断是否属于缺陷及缺陷的类型。以上3类缺陷信息的信息量逐步递增。例如,由外接矩形和像素掩码可以直接获得类别标签,由像素掩码通常可以获取缺陷的外接矩形。本文将从分类、目标检测和分割3个角度出发,对缺陷检测方法展开综述。在计算机视觉中,检测任务通常指确定前景物体的外接矩形。在下文中,将该任务称为目标检测,以与本文中表面缺陷检测的统称加以区分。
在工业应用中,缺陷的类型、尺寸和数量均需要作为产品质量判断的依据。事实上,有时由外接矩形获得的粗略尺寸信息还不足以充分判断产品质量,需要获得像素的逐像素标签,以获取缺陷的精确尺寸信息。本文关于缺陷信息的划分充分体现了检测过程中获取的缺陷信息的差异,而且和计算机视觉中分类、检测和分割任务的定义保持一致,可为实际应用场景中不同需求的缺陷检测任务提供参考。
基于视觉感知的表面缺陷检测系统的基本构成包括3个主要模块,依次完成图像获取、图像处理和图像反馈功能。在图像获取模块中,需要根据当前待检测表面属性及缺陷特征,构建照明和成像系统,通过机械装置、光源和相机的协同配置与操作,获得缺陷特征明显的待检物表面图像。在图像处理模块中,利用图像处理算法,检测图像中的缺陷目标,识别缺陷类型。在图像反馈模块中,根据检测标准判断当前样品是否合格,并将判断结果传输至执行机构。同时,也可以对图像的缺陷类型、位置、形状、大小等进行可视化显示,对图像及缺陷信息进行存储,便于后续的查询与统计等。
一些缺陷特征十分微弱、在原图中的占比低,利用合理的照明成像方法实现缺陷的有效成像是整个缺陷检测系统的关键,也是后续图像处理和质量判断的基础。由于待检产品表面材质、纹理及缺陷和种类形态的不同,采用的照明成像方式会有较大差异。在常见应用场景中,通常采用的相机包括线阵相机、面阵相机和线阵面阵相机的组合,采用的光源包括同轴平行光、激光光源、多光源组合等。相机—光源组合模式没有固定范式,需要结合实际检测场景的需求,包括检测对象属性、检测指标要求等进行针对性设计。例如,浙江大学YANG等[9]利用面阵CCD相机和LED光源研制了大口径精密光学元件表面缺陷评估系统。该系统采用一个三维高精度运动平台,可以实现图像采集模块在竖直平面内小范围的运动及光学校准,实现了最大口径为800 mm×500 mm的超光滑光学元件表面缺陷的自动化检测。YASUHIKO等[10]设计了应用于印刷电路板检测的多光源成像系统。该系统同时采用垂直与倾斜的照明光源,通过多角度入射光线提取表面不同层次的信息。简川霞等[12]研制了手机玻璃盖板的表面缺陷检测系统。该系统采用了同轴平行光源和面阵CCD相机,相机具有竖直平面内的两个运动自由度,可有效调整工作距离,完成光源的校准。北京科技大学的徐科等[11]在检测热轧板带表面缺陷时,采用绿色激光线光源和面阵CCD相机解决了图像采集中的远距离均匀照明问题。Parsytec 5i系统[13]是德国Parsytec公司研制的带钢表面缺陷检测系统。该系统采用面阵相机和线阵相机相结合的复合成像模式。美国Cognex公司研制的钢铁表面缺陷检测系统:SmartView系统[14],采用LED阵列平行光光源和高速线阵CCD。选择合理的照明成像方式不仅能够提升成像质量、提高检测准确率,还能够控制系统成本,有利于自动化检测系统在工业中的推广应用。
关于此类方法的研究开展较早,相关成果非常多。限于篇幅,本章将仅针对其中具有代表性的典型算法展开综述。本章将此类方法分为统计法、谱方法和模型法[15]3类方法分别进行阐述;然后,介绍缺陷分类中使用的机器学习方法;最后,对各种方法的特点及适用性进行总结分析。
该类方法根据图像的统计分布特征分析纹理,识别缺陷。该类方法又可进一步细分为灰度统计法、梯度统计法和模式统计法。
3.1.1 灰度统计法
图像像素灰度的均值、方差、直方图等均为常用的灰度统计特征。文献[16]~文献[18]分别利用待检图像、无缺陷图像与子图的像素灰度均值与方差,设定自适应阈值,检测过暗或过亮的缺陷。TSAI等[19]在像素邻域内建立加权方差矩阵,根据方差矩阵两个特征值的差异识别缺陷像素。该方法使用单一特征,避免了复杂分类器的设计,在多个不同的表面检测任务中获得较好效果,并且具有较高的实时性,检测400×400大小的图像仅需0.032 s。BOUKOUVALAS等[20]利用颜色直方图对瓷砖表面图像进行分类,提出并验证了多种直方图对比方法,包括L1、L2范数、线性相关系数、巴氏距离等。BROADHURST等[21]将单幅图像分割为互不重叠的多个区域,分别进行灰度直方图统计,提升纹理表征的准确率。NAND等[22]利用熵差的直方图特征检测钢铁表面的水滴、汽泡缺陷、划伤等低对比度缺陷。该方法计算待检图与背景图的局部熵(在9×9邻域内),计算两幅图的熵差,根据熵差的直方图特征识别缺陷像素。该方法在钢铁表面缺陷检测中取得了优于自适应灰度阈值的准确率。直方图特征计算简单,具有平移和旋转不变性,但是在计算过程中需要占用较多的内存空间,同时,直方图特征对于复杂纹理区分度较低。
3.1.2 模式统计法
灰度共生矩阵(Gray-Level Co-occurrence Matrices, GLCM)和局部二值模式(Local Binary Patterns, LBP)是常用的模式统计特征。GLCM是对图像上保持特定距离、角度的两个像素具有的灰度模式的统计。GLCM通过表征图像灰度的空间相关特性来描述纹理。GLCM由HARALICK等[23]首次提出,同时设计了14种GLCM特征用于纹理图像的分类。文献[24]和文献[25]提出了基于GLCM特征的缺陷检测算法,并分别用于检测木材和地毯的表面纹理缺陷。文献[24]提出的缺陷检测方法可分为两个步骤:首先,利用全局灰度特征区分正常图像与缺陷图像;然后,针对缺陷图像,利用GLCM特征进一步识别缺陷类型。GLCM特征对于缺陷通常具有更高的区分度,但是检测效果对像素点的相对位置、角度、特征维度等参数变化敏感。目前还没有一种通用的方法确定这些参数。LBP由OJALA等[26]提出,并被用于纹理图像分类。以中心像素灰度为阈值,将相邻像素与之对比产生的二进制数即为该中心像素点对应的LBP。IIVARINEN[27]对比了GLCM和LBP两种特征,验证两种特征有效性的同时指出,LBP特征在计算效率上优于GLCM特征。文献[28]和文献[29]验证了LBP特征在钢铁、木材表面缺陷检测中的有效性。SONG等[30]采用CLBP(Completed LBP)特征检测钢铁表面缺陷。在特征计算过程中,将单个相邻像素点的灰度替换为邻域内像素灰度均值,降低噪声干扰的影响。该方法在钢铁表面缺陷检测中获得了超过98%的分类准确率。近期,WANG等[31]提出一种新的基于LBP的特征提取方法。与LBP特征不同的是,该特征可同时分析水平、竖直与两个对角线方向上的邻域像素灰度分布,以增加辨识度。BULNES等[32]设计了基于位置、面积、长、宽、类型等模式特征的聚类算法,实现了钢带表面周期性缺陷的在线检测。
3.1.3 梯度统计法
梯度表征了图像中像素灰度的变化。具有较高梯度、灰度变化大的位置被称为边缘。在纹理图像中,单位区域内的边缘数量一个重要特征。文献[33]~文献[35]利用图像的边缘特征检测缺陷。文献[33]基于Roberts边缘检测算子设计了织物表面的在线缺陷检测系统,文献[34]利用Sobel边缘算子检测织物表面缺陷,并与阈值法进行了对比。KITTLER等[36]利用K-均值方法将表面纹理聚类为不同的二值化簇,应用Blob方法进行分析,检测瓷砖表面纹理的缺陷。WEN等[37]提取图像中的边缘特征,通过长度和强度对比检测皮革的表面缺陷。然而,基于边缘特征的缺陷检测方法对噪声或干扰过于敏感,易产生较多的过检。HOG(histogram of oriented gradient)特征是另一种常用的梯度统计特征。WANG等[38]联合HOG与GLCM特征,分别描述表面纹理的全局与局部特征,在5类钢铁表面缺陷的分类中达到了91%的准确率。
对于一些仅通过像素灰度难以有效识别的缺陷,研究人员认为,缺陷的出现破坏了均匀纹理的结构一致性,可以通过时域变换,根据正常纹理和缺陷的不同响应实现缺陷的准确检测。该类方法又可细分为傅利叶变换(Fourier Transform, FT)方法、Gabor滤波器方法、有限脉冲响应(Finite Impulse Response, FIR)滤波器方法和小波变换方法。
3.2.1 傅利叶滤波器
TSAI等[39-40]提出一种基于FT的缺陷检测方法,并应用于纺织物、木材的检测。该方法应用FT将图像变换至频域,然后应用1维霍夫变换去除图像的显著边缘。类似地,YAZDCHI等[41]将图像变换至频域后,设计高通滤波器去除由于钢铁表面反光产生的条纹。经过频域处理后,这些方法[39-41]还需利用傅利叶反变换获得重构图像。重构图像保留充分缺陷特征的同时,去除了干扰,能够得到更准确的检测效果。文献[41]采用包括分形维度特征、均值、方差、灰度最大值在内的10维特征分割缺陷像素,在2 300张包含5类不同缺陷的钢铁表面数据集上获得了约98%的分类准确率。TSAI等[42]将图像变换至频域后发现,缺陷通常出现在水平与竖直方向。在此基础上,设计多维统计特征,以一个浅层神经网络为分类器,区分不同类型的缺陷。CHEN等[43]采用与文献[42]类似的图像分析方法,但是选择了更低维度的频域特征,可识别织物表面4类主要缺陷。AI等[44]利用曲波变换对图像进行分解,在分解后图像中提取傅利叶幅谱特征,检测连铸板表面的纵向裂缝缺陷,避免了熔渣、碎屑及光照不均的干扰。根据以上分析,FT在缺陷检测中的应用可分为两类:①图像预处理,即在频域处理图像,然后反变换获得重构图像,在重构图像中检测缺陷;②直接提取图像的频域特征。基于FT的检测算法的不足之外在于:经过FT后,图像中背景与缺陷位置的频域特征容易混杂在一起,从而无法有效识别缺陷。
3.2.2 Gabor滤波器
与傅利叶变换相比,Gabor滤波器可以提取图像局部频域特征,使得一些特定形态的缺陷更加具有辨识度。2D Gabor滤波器[45]的参数一般根据待检缺陷的尺寸和方向进行设置[46]。文献[47]和文献[48]利用最优Gabor滤波器分割织物表面缺陷。然而,单个Gabor滤波器只能检测尺度、走向相似的缺陷。为了解决这个问题,文献[49]设计了一系列Gabor滤波器对织物表面纹理进行在线缺陷检测。为了适应钢铁表面孔洞缺陷检测中的尺度变化,CHOI等[49]提出了多滤波器组合方法,建立了两个滤波器,分别检测大尺寸与小尺寸缺陷,通过这两个滤波器响应的有效组合增强缺陷的频域特征。研究人员认为,将Gabor滤波器特征与其他类型特征相给合,能够获得更丰富的纹理表征,从而增加缺陷的辨识度。文献[49]和文献[50]在Gabor滤波器特征的基础上,引入GLCM特征、形态特征[49]与分形维度特征[50]等统计特征,有效提升了检测准确率。由于Gabor滤波器在纹理分析、纹理表征方面的有效性,在表面缺陷检测中获得越来越广泛的应用,后续研究也逐渐增多。
3.2.3 有限脉冲响应滤波器
KUMAR[7]认为,由于FIR的可调参数多于Gabor滤波器,通过参数设置,利用FIR可获得更具辨识性的图像特征,并且提升计算效率。在早期的文献[51]中,Unser等首先使用特征滤波器处理图像,然后,基于移动滑窗提取图像的局部特征,识别纹理图像缺陷。NEUBAUER[52]应用3个独立的5×5 FIR滤波器,在10×10邻域内计算响应直方图,分割纺织物表面缺陷。KUMAR等[53]利用FIR检测纺织物缺陷,基于Mahalanobis-Singh、Unser和Fisher准则分别设计优化函数,选择最优滤波器。同样,基于Mahalanobis-Singh准则,JEON等[54]设计最优FIR滤波器,并且验证了在缺陷区域,FIR滤波器的响应比Gabor滤波器更具有辨识度。基于以上思路,作者采用多个FIR滤波器(10个,9×9 FIR滤波器)响应的加权和获得图像的最终频域响应,权重根据图像特征的欧氏距离进行设置。文献[55]为检测瓷砖的纹理缺陷设计了一种特征滤波器,这种滤波器的特点在于,不同的图像将对应不同的滤波器,并且同一图像的滤波器相互正交。
3.2.4 小波变换
小波变换可实现图像的多尺度分析,同时,通过选择正交基函数,可消除特征间的关联,从而提升特征表达效果。JASPER等[56]提出了自适应小波设计方法,可根据检测的纹理场景设计新的基函数。SARI-SARRAF等[57]设计的织物表面检测系统,采用德比契斯小波提取图像的高频与低频信号,然后进行图像融合,可增强缺陷特征,消除背景区域影响。该系统能够检测最小至20像素的缺陷,达到89%的检出率。KIM等[58]通过对图像的行和列分别求和获取两个一维信号序列,然后利用墨西哥帽小波进行信号分解,最后根据分解系数计算图像信噪比,以识别缺陷。文献[58]中一维分析方法忽略了图像像素在另一方向上的相关性,因而难以取得满意的效果,后续研究依然以二维分析方法为主。KUMAR等[59]利用哈尔小波分析表面纹理图像,并基于小波函数系数的均值和方差识别缺陷。GHORAI等[60]建立了包括1 000张正常图像和432张缺陷图像涉及24种不同类型缺陷的钢铁表面数据集,试验了5种不同小波特征的识别效果。作者通过实验证明,哈尔特征是描述钢铁表面缺陷的有效描述子,与支持向量机(Support Vector Machine, SVM)方法结合,达到了90.4%的F值。
在以上介绍的谱方法中,3.2.1节中的FT方法与3.2.4节中的文献[58]所提方法属于图像分类方法,其他均属于缺陷分割方法。谱方法一般与阈值法相结合获得缺陷分割或图像分类结果。谱方法能够克服阈值法对于弱对比度、小尺寸、模糊缺陷的检测效果不理想的问题。谱方法能够适用于重复或规则纹理场景中的缺陷检测,不适用于随机纹理。而且,对于与正常纹理频域响应差别较弱的缺陷,如纹理方向不一致,即使视觉观感十分明显,该类方法也难以进行有效检测。另外,对于谱方法来说,滤波器的选择、优化、参数设置十分重要,然而,已有文献在最优滤波器设计时仅考虑滤波器本身,如何结合其他类型特征的特点,优化滤波器特征以有效表达其他特征难以表征的高频信号,将是重要的研究课题,也是下一步提升滤波器在表面缺陷检测中应用效果的重点。
该类方法分析纹理属性,建立纹理图像表征,然后通过识别异常纹理检测缺陷。应用于表面缺陷检测的模型包括自回归模型[61]、马尔可夫随机场模型(Markov Random Filed, MRF)[62]和纹理范式模型(Texture Examplar, TEXEM)[63]。COHEN等[62]利用GMRF对正常纹理进行建模,基于GMRF模型,将缺陷检测问题转化为统计学中的假设检测问题。基于该算法,文献[64]进一步实现了一种可应用工业现场的实时缺陷检测系统。XIE等[63]提出一种可用于检测随机纹理的TEXEM模型。在该模型中,纹理图像被视为一系列TEXEM的叠加,每一个TEXEM可用均值和方差进行表征,使用高斯混合模型拟合这种表征。TEXEM模型在瓷砖表面的缺陷检测中获得了优于Gabor滤波器的检测效果。XU等[65]采用小波域隐马尔可夫树模型(Hidden Markov Tree, HMT)进行带钢表面图像分割。HMT通过高斯混合模型对同一尺度内的小波系数的分布建模,用小波系数四叉树对尺度间的系数相关性建模。最后,作者采用多尺度融合方法,将不同尺度的分割结果相融合,将错误率由融合前的18.8%降低至3.7%。
对于上述介绍的缺陷检测方法,有些可直接得到分类或分割结果,如3.1.1节中的阈值法,另外一些方法还需要利用机器学习算法对所提取的特征进行分类,才能够识别缺陷。3.2节中的谱方法常与阈值法结合,获得缺陷分割结果。本节介绍缺陷检测方法中常用的机器学习分类算法,如神经网络和SVM方法。例如,文献[30]和文献[44]使用SVM算法,文献[29]和文献[41]分别使用了BP神经网络和自组织神经网络对提取的特征进行分类。文献[28]对比了BP神经网络、SVM和极限学习机3种分类算法对于LPB特征的分类效果,并根据实验验证结果,选择极限学习机在钢铁表面缺陷检测中获得了97%的分类准确率。KUMAR[66]提出一种基于前馈神经网络的缺陷检测算法。以像素点7×7邻域内成“米”字形分布的25个像素点的灰度值为特征向量,预处理后作为神经网的输入,判断当前像素点是否属于缺陷。在文献[67]中,首先利用阈值法对缺陷像素进行分割,然后提取缺陷区域的多维特征,利用模糊神经网络识别缺陷类别,最终实现了8种不同类型缺陷的识别。文献[68]和文献[69]分别使用自组织映射网络和细胞神经网络作为缺陷检测的分类器。
以上文献采用的神经网络层数较少,为与后续的深层神经网络相区分,一般称为浅层神经网络。浅层神经网络一般包括输入层、中间层和输出层,其中中间层神经元个数是十分重要的超参数,直接影响其分类性能。目前还没有统一的准则用于确定这一参数,而且浅层神经网络拟合能力弱,对于多维特征、非线性分类等复杂问题效果较差。
基于显式特征提取的表面缺陷检测算法以分类和分割方法为主,此类方法较多,表1对于这些方法的特点进行了总结。随着工业自动化进程的推进,表面缺陷检测的应用场景越来越多样化,工业现场灰尘、脏污的干扰、不连续缺陷、对检测的高实时性和高准确率的要求,使得表面缺陷检测依然是一个极富挑战且亟待解决的问题。
与第3章中介绍的方法相比,该类方法利用标注数据自动提取特征,避免了手工设计特征的困难。同时,该类方法抽象能力强,对同类目标的识别能力强。深度学习方法由LECUN等[70]提出,首先在经典图像分类任务中获得成功应用。AlexNet[2]是首个用于大规模图像分类任务的卷积神经网络,由5个卷积层和3个全连接层组成。AlexNet在大规模分类数据集ImageNet上top-5分类错误率大幅降低至16.4%,掀起了深层神经网络在计算机视觉领域应用的浪潮。近年来,随着深度学习技术的进步,深层卷积神经网络(Deep Convolutional Neural Network, DCNN)在各种不同的图像任务中获得了越来越广泛的应用。
借鉴自然场景任务中DCNN的设计思路与流程,研究人员尝试将DCNN应用于表面缺陷检测。根据应用场景的不同,为了获得不同类型的输出(如图3),所采用的网络在结构上会有较大差异。本章从分类、检测和分割3方面介绍相关研究成果。
该类方法获得图像的类别标签,可识别图像是否有缺陷,并且在一些多分类任务中,还需识别缺陷的类型。该类方法可进一步细分为面向工业场景的轻量分类网络和面向自然场景的通用分类网络的应用。
与自然图像的超大规模数据集相比,工业数据集图像样本数量十分有限。例如,ImageNet数据集[71]图像总量超过1 400万,coco数据集[72]也超过15万,工业数据集图像数量仅达上千或数百。而且,不同的工业场景差异非常大,不同数据集训练的权重无法迁移。因此,应用于工业场景的分类网络一般层数少,结构简单,避免出现过拟合的现象。2013年,MASCI等[73]首先将DCNN应用于钢铁表面图像的分类。该网络由一个卷积层、一个最大池化层和一个全连接层组成。通过对池化前后不同尺度的特征图进行金字塔池化操作,获得固定大小的多尺度特征向量。该网络能够适应尺寸、纵横比差异大的图像,提升分类准确率。随着各种分类网络被不断提出,并被应用于不同的缺陷分类任务,分类网络在工业中的应用越来越广泛。为便于对比和说明,表2对这些网络进行了总结,其中第二列网络结构中,Conv表示卷积层,Pool表示池化层,FC表示全连接层,前面的数字表示层数;第三列图像分辨率中,原图直接分类方法列出了原图大小,移动滑窗提取图像块后分类方法中同时列出了原图与提取的图像块大小。由于不同工业场景中采集图像的分辨率与背景复杂度的不同、分类任务难度的差异,现阶段还缺乏统一的标准来衡量这些网络的性能。同时,由表2还可以看出,DCNN可处理的图像尺寸有限,对于一些采集的较小尺寸的图像可直接输入网络,如文献[73]~文献[77]和文献[82]。然而,对于一些较大尺寸的图像,需要划分为统一大小的子图,才可利用网络进行处理,如文献[78]~文献[83]和文献[143]。通常的方法是,利用移动滑窗法将高分辨率原图划分为有重叠的统一大小的图像块,将这些图像块依次处理完成后,综合判断获得原图的分类结果。但是,这种方法牺牲了实时性,有时无法满足工业现场要求。
续表2
继AlexNet之后,VGG[84]、GoogleNet[85]、ResNet[86]等更深的分类网络被相继提出,在自然图像分类中取得了更高的准确率。这些经典分类网络也被应用于工业图像,或直接用于分类[87-90],或用于特征提取[91-92]。通常利用网络在自然图像上的预训练权重进行知识迁移,以提高训练效率。SHANG等[87]提出一种铁轨缺陷的识别方法。该方法首先利用Canny算子提取图像边缘,定位铁轨区域,然后将处理后的图像利用预训练的Inception V3网络进行分类。MA等[88]提出一种改进的DenseNet网络识别聚合锂离子电池的表面缺陷,分类准确率超过99%。类似地,SASSI等[89]基于预训练的DenseNet网络识别多类焊接缺陷,在仅有378幅图像的小数据集中达到了96.22%的分类准确率。AKRAM等[90]在检测太阳能电池表面缺陷时,基于VGG-11网络结构,设计了VGG-8、VGG-7、VGG-6结构。最终采用的分类网络仅包括4个卷积层(每个卷积层后是最大池化层和BN层)和一个全连接层,达到了93.02%的分类准确率,且处理单幅图像时间仅为8.07 ms。
文献[91]提出的通用缺陷分类框架,利用VGG网络提取的多层特征分别进行判断,然后以多数表决的方式最终确定待检测图像的类别,增强了算法的鲁棒性。TAO等[92]在检测一种深孔零件的表面缺陷时设计了多任务分类网络。该网络利用VGG 16提取特征,后接两个分枝:一个分枝是提取候选区域,然后分类,以检测并丝缺陷;另一分枝后接全连接层,对整图分类,以检测其他缺陷。该网络获得了93.56%的分类准确率。
另外,TABERNIK等[93]以分割的方式实现缺陷图像的分类。所设计的网络包括分割网络和决策网络两部分,分别进行训练。分割网络输出的分割图与最后一层卷积的特征图为决策网络的输入,经过全局池化层和全连接层获得分类结果。该网络在仅有399个样本(其中50个为缺陷样本)的训练集中达到99.9%的分类准确率。
综上所述,分类网络在实际应用中非常广泛,涉及各种不同的工业场景。但是,需要注意的是,缺陷在输入图像中需要占一定的比例,否则网络中的池化与卷积操作会造成缺陷特征消失,导致分类失败。同时,对于高分辨图像需要进行分块,分别进行处理,降低了实时性。另外,类别标签信息量过少,无法进一步判断产品质量,有时无法满足工业现场的应用需求。
该类方法与上节介绍的分类方法的区别在于,不但需要判断当前待检图像是否是有缺陷的及缺陷类别,还需要确定缺陷的位置和大小(外接矩形)。显然,与分类任务相比,目标检测任务可以获得更充分的缺陷信息,便于后续的可视化显示或质量判断。该类方法按照使用的网络结构的不同可大体分为:面向自然场景的通用目标检测网络和级联网络两类。
R-CNN(region covolutional neural network)[94]首先将深度卷积网络应用于自然场景中的目标检测任务,然而其流程复杂、计算效率低,消耗存储资源多,导致实用性差。研究人员进一步改进R-CNN[95],通过共享特征计算减少计算量,提升算法实时性。Faster R-CNN[96]是首个端到端的检测网络,与以往方法相比,在实时性和准确率上有了大幅提升,在工业现场也得到了广泛应用。早期的文献一般是直接将Faster R-CNN应用于工业图像,如土木建筑领域的混凝土、钢裂纹等损伤检测[97]、卫生陶瓷[98]与聚合物偏振器[99]的缺陷检测、高压线绝缘子的表面缺陷检测[100]等,获得了远超传统方法的准确率。CHENG等[101]将Faster R-CNN应用于排水系统管道的损伤检测,达到83%的mAP。
为了适应特定场景的应用需求,或进一步提升检测准确率,一些文献对Faster R-CNN的原始结构进行了改进。例如,LI等[102]利用Faster R-CNN检测混凝土表面缺陷时,采用ZF net作为骨干网,在最后一个卷积层后添加最大池化层,同时利用池化前后的特征生成候选区域,以适应具有较大尺度差异的缺陷。通过合理设计超参数,如锚框的纵横比、尺度大小等,达到80.7%的mAP,且处理单幅图像时间为0.41 s。李宜汀等[103]在检测灌装生产线上的容器封盖表面缺陷时,首先检测封盖面边缘位置,对原图像进行裁剪,以减少无用的干扰背景;然后对裁剪后图像进行稀疏滤波处理,输入VGG-16网络提取特征,利用Faster R-CNN检测缺陷。该方法在包含4种样本的400幅图像中达到了95.83%的准确率。文献[104]对Faster R-CNN进一步改进,以识别货运车表面缺陷。与Faster R-CNN初始结构不同的是,在缺陷识别中同时应用浅层、中间层和深层特征,并利用卷积层替换了原有的全连接层,以减少参数量。与Faster R-CNN相比,所提方法可达到更高的检测准确率99.13%,且模型参数量减少了17%。ZHANG等[105]对一种电连接器进行表面缺陷检测,提出了一种基于旋转四边形的检测网络,可以输出被检测目标的外接四边形包络框。与Faster R-CNN输出的外接矩形相比,这种包络框能获得更准确的目标形态信息,摒除背景信息干扰,提升了后续质量判断的准确率。
Faster R-CNN可分为候选区域提取和分类两个步骤,因此也被称为两阶段检测网络。除Faster R-CNN,RFCN(region-based fully convolutional network)[106]也是常用的两阶段检测网络。XUE等[107]对分类网络GoogLeNet进行改进,并作为RFCN的骨干网络检测铁轨隧道表面裂纹和渗漏两类主要缺陷,达到85.6%的mAP,且处理单幅图像时间为0.266 s,优于Faster R-CNN。FERGUSON等[108]对比了Faster R-CNN、RFCN和滑窗分类定位等方法在检测金属铸件的表面缺陷的性能。最后,采用Faster R-CNN,以ResNet为骨干网络,获得92.1%的mAP。
研究人员后续提出了YOLO(you only look once)[109]、SSD(single shot multibox detector)[110]、CornerNet[111]等单阶段检测网络,无需提取候选区域,直接在输出层计算物体的位置和类别,达到了更高的实时性。SUONG等[112]利用YOLO v2网络检测道路表面的凹坑缺陷时,根据缺陷的形状分布与图像的分辨率,重新计算锚框(Anchor)的设置参数和栅格大小等超参数。同时,作者对YOLO v2的网络结构也进行了改进,删除三层卷积层,大幅减少了参数量。ZHANG等[113]利用YOLO v3网络检测桥梁表面破损,使用批再正则化(batch re-normalization)和Focal Loss损失进一步提升网络性能。YIN等[114]利用YOLO v3检测污水管道损伤缺陷,获得了85.37%的mAP。DENG等[115]采用YOLO v2网络检测混凝土表面的裂纹缺陷。通过在采集的图像中添加涂写干扰,训练网络在复杂背景与干扰中检测真正的缺陷。该方法的准确率略高于Faster R-CNN(mAP 77% vs 74.5%),且具有更高的实时性(0.17 s vs 0.23 s)。另外,MAEDA等[116]使用SSD网络检测道路表面缺陷,对比了Inception V2和MobileNet两种骨干网络发现,MobileNet的检测准确率优于Inception V2,对于有些类型缺陷的识别准确率达99%。而且,使用手机处理单幅图像时间不超过1.5 s,实现了实时检测。
与自然场景中的前景物体相比,工业场景下的缺陷目标具有占比小、特征微弱的特点。因此,研究人员将多个现有的深度模型进行级联,使网络可集中于低占比的缺陷目标,提高泛化性。HE等[117]首先采用预训练的VGG 16网络提取图像特征,输入至后续卷积层提取类相关特征,对钢铁表面图像进行分类。然后,针对有缺陷的图像利用YOLO检测缺陷位置。CHEN等[118]提出一种铁轨连接件检测的级联深层神经网络,由3个阶段组成。在第一和第二阶段,由粗到精定位连接件位置;在第三阶段,判断已定位的目标是否存在缺陷。TAO等[119]采用类似的三级级联结构用于金属表面的缺陷检测:第一和第二级网络是一组级联自编码器,用于缺陷的精确位置;第三级网络是一个典型的卷积分类网络,用于确定缺陷类型。
根据以上分析,现有工作还集中于将在自然图像中得到验证的检测网络直接应用于工业图像,主要方法可分为单阶段网络、两阶段网络和级联网络3类。与两阶段网络相比,单阶段网络实时性高,精度尤其是小目标的检测精度较低。级联网络可针对目标低占比图像,提升检测精度,但是也会降低实时性。目前,更多先进的单阶段网络不断被提出,检测精度已经赶上甚至反超两阶段网络。在后续缺陷检测的研究中,单阶段网络的应用将会越来越广泛。
作为计算机视觉中的另一典型任务,需要逐像素判断是否属于缺陷目标,若属于,则还需进一步识别缺陷类型。分割任务可获得缺陷的精确形状与位置信息,可准确测量缺陷尺寸,从而实现表面质量的可靠判断。
在常规分类网络中,连续的卷积与池化操作在增大感受野的同时,极大地降低了分辨率,不可直接应用于分割任务。LONG等[120]首先提出一种可用于图像分割的全卷积网络(Fully Convolutional Network, FCN)。FCN有3个输出分支,FCN-32s是将特征图直接缩放至原图大小;FCN-16s首先将FCN-32s特征图放大2倍,与上一层特征相加后,再缩放至原图大小;FCN-8s是将FCN-16s特征图再放大2倍,与再上一层特征相加后,再缩放至原图大小。FCN利用底层特征提升分辨率,可应用于像素级分割任务。典型的分割网络还包括编码—解码器(Encoder-Decoder),最初提出的Encoder-Decoder网络中编码器与解码器间无信息交互[121]。为了降低编码过程中图像信息的损失,研究人员提出了有交互的Encoder-Decoder结构,特征相加和特征联接(concatenate)[122]是编码器与解码器最常见的信息交互或融合方式。其他方式还包括向解码器传递编码器池化的序号[123]等。
DUNG等[121]利用编码—解码网络分割混凝土表面的裂纹缺陷时,试验了ResNet、VGG 16和Inception V3作为编码器的算法性能。从4 032×3 024分辨率原图中提取227×227统一大小的图像块训练网络,通过验证发现,VGG 16和Inception V3优于ResNet,最高F值可达89.3%。LIANG[124]分别应用分类、目标检测与分割网络识别桥表面缺陷。作者采用类似于文献[123]中的编码—解码网络,并利用贝叶斯优化方法确定网络的超参数,取得了超过90%的准确率。FENG等[125]建立了一种改进的编码—解码网络检测无人机拍摄的水电站大坝外观图像。该网络通过特征图逐像素相加融合编码器与解码器特征,提升缺陷分割效果。
HUANG等[126]采用VGG 16作为骨干网络建立了一种FCN网络,检测铁轨隧道表面裂纹和渗漏两类主要缺陷。作者将采集的高分辨率原图以滑动窗口的方式提取500×500统一大小的包含缺陷的图像块训练网络。考虑两类缺陷在形态和尺寸上的巨大差异,作者针对每种缺陷分别建立数据集进行训练和测试,达到了98%以上的准确率。APLIPOUR等[127]利用FCN网络分割混凝土表面的裂纹缺陷。作者以VGG 16为特征提取网络,对比了FCN32s、FCN16s、FCN8s、FCN4s和FCN2s五种结构及1 024×1 024、512×512和256×256三种不同输入图像分辨率对于算法性能的影响。作者选择FCN2s结构和1 024×1 024分辨率获得91.24%的准确率。
ASLAM等[128]采用U-net结构分割金属表面的裂纹缺陷。由于采集的原始图像分辨率高(约9 000×9 000像素),作者对原图的尺度归一化后,划分为128×128的图像块,作为网络的输入。在推理过程中,将所有图像块的分割结果拼接在一起,可得到原图的分割结果。HAN等[129]首先利用Faster R-CNN中的候选区域提取操作获得大量可能包含缺陷的图像块,然后利用分割网络U-Net对这些图像块进行分割,实现对多晶硅片上的缺陷的分割。
膨胀卷积(有时也称为空洞卷积)[130]和条件随机场(Conditional Random Field, CRF)[131]等方法也经常用于分割网络。膨胀卷积可以在不降低特征图分辨率的前提下增大感受野,CRF可以对输出的分割图进行优化,提高准确率。WANG等[132]提出一种分割网络——DilaSeg分割污水管道的破损缺陷。该网络以预训练的VGG 16网络为基础,引入多尺度膨胀卷积和双线性差值融合多尺度特征,提高特征图分辨率,获得优于FCN的准确率。进一步地,作者将DilaSeg与条件随机场(CRF)相结合,利用循环神经网络实现条件随机推理,提出了DilaSeg-CRF方法[133]。在分割污水管道缺陷的实验中,DiagNet-CRF比DiagNet在交并比准确率上提升了20%。OUYANG等[134]利用CRF方法计算图像像素点属于缺陷的概率,作为权重,与卷积神经网络输出的特征图逐点相乘,使网络聚焦于更有可能是缺陷的像素点。
还有一些方法利用滑窗分类的方式获得粗略分割结果。该类方法首先以滑窗的方式将原图划分为统一大小的子图,然后利用分类网络对子图分类,将子图的类别作为子图所有像素的类别。该类方法与4.1节中有些方法十分类似,它们的区别在于,对子图的处理完成后,是仅判断原图的类别,还是计算原图的分割结果。若仅判断原图类别,本文称之为分类方法;若同时输出原图的分割结果,则归类为分割方法。YU等[135]认为,在工业图像中,缺陷的整体形状或几何信息并不关键,仅需要图像的局部信息即可判断像素是否属于缺陷。基于此,作者将原图划分为64×64或32×32统一大小的图像块,并设计了两阶段网络获得缺陷的分割结果。第一阶段是分割网络,利用局部信息分割图像块的缺陷像素;第二阶段是分类网络,利用全局信息判断图像块中缺陷像素占比是否超过阈值。融合两阶段输出获得分割结果,在DAGM数据集上获得了约96%的准确率。类似地,WU等[136]将原图划分为64×64或32×32统一大小的图像块,输入分类网络。由于相邻图像块有50%的重叠,每个像素属于4个不同相邻图像块,通过图像块的分类结果投票确定像素是否属于缺陷,从而获得缺陷分割结果。作者使用多尺度策略进一步提升了准确率,超过了商用软件VIDI。
分割方法可获得缺陷详尽的形态、尺寸及位置信息,便于对产品质量进行分析与判断。然而,以上介绍的方法无法获取缺陷的数量信息。LIONG等[137]利用实例分割网络Mask R-CNN检测皮革表面缺陷。XIAO等[138]将多尺度策略引入Mask R-CNN检测货运车表面缺陷。实例分割任务可以看作分割和目标检测的多任务,获得每个类别像素分割结果的同时,获得每个类别的实例个数。分割方法在工业检测中用途广泛,尤其适用于划痕、蹭伤等低占比、低语义缺陷的识别。然而,分割方法需要像素级标注的图像作为训练数据,标注成本远超分类和目标检测方法,在工业现场也往往是不可行的。繁重的图像标注工作量是该类方法在工业检测中推广应用的主要阻碍。
深层神经网络的训练通常需要大量带标注的缺陷样本。然而,在工业现场,缺陷样本出现的概率很低,大量缺陷样本的收集十分困难,各种缺陷类型也难以收集完全。同时,由于缺陷边界不明显,精确的矩形框标注、像素分割标注需要耗费大量的精力和成本。这些问题限制了深层神经网络在工业中的规模化应用。异常检测方法仅利用正常样本(即无缺陷样本)进行训练,使网络具备正常样本分布的重建和差异化特征的提取的能力。在推理阶段,当输入的样本存在缺陷时,网络会输出与正常样本具有较大差异的结果,通过检测与预期正常样本输出的差异可实现异常样本(即缺陷样本)的识别。异常检测方法可有效解决大量缺陷样本收集及标注的困难,是一种低数据成本方法。根据处理方式的不同,本文将这种方法进一步分为基于特征提取的和基于图像重构的两类方法,分别展开介绍。
4.4.1 基于特征提取的异常检测方法
异常特征识别方法训练网络学习缺陷样本和正常样本的差异化特征,通过判断特征间的差距识别缺陷图像。ZHANG等[144]认为,无缺陷图像差异较小,而两幅缺陷图像,会因为缺陷类型和形态的不同导致差异较大。基于这种考虑,在网络训练过程中,以特征间的欧氏距离为优化目标,迭代计算无缺陷图像的特征中心,如图4左图所示。该方法仍然需要缺陷图像,但是并不需要收集所有的缺陷类型,数量也不需要太多,大大降低了数据收集难度。NAPOLETANO等[145]提出一种纤维材料扫描电镜图像异常检测方法。该方法提取正常图像特征,使用主元分析降维,建立正常样本字典。在测试过程中,计算待检图像特征向量和字典特征向量的欧氏距离,如果大于设定阈值,则判断为异常。CHEON等[146]建立了具有4个卷积层和一个全连接层的分类神经网络。根据网络输出的图像特征,建立了k-近邻分类器。通过对比特征间的距离,可识别训练集中未包括的缺陷类型,并统一归类为“未知”。该方法在检测硅片表面缺陷时达到96.2%的准确率。
4.4.2 基于图像重构的异常检测方法
图像重构方法训练网络学习正常样本的分布,使网络能够实现正常样本的重建。测试过程中,当输入是正常样本时,原图和重构图差异较小;当输入是缺陷样本时,原图和重构图差异较大。通过对比原图和重构图的残差特征可有效识别缺陷图像。KANG等[147]提出一种绝缘子表面缺陷的异常检测方法。该方法采用级联网络的方式,首先利用Faster R-CNN定位关键悬链线组件,以摒除背景信息影响;然后,针对检测的兴趣区域,分别进行分类和图像重建;最后,结合分类置信度和重建误差判断缺陷是否存在。这种方法需要提供悬链线组件的外接矩形标注,但是并不需要有缺陷的绝缘子图像。该方法在小规模缺陷数据集上分类F1-分数达到95%,但是无法检测微弱缺陷。ZHAO等[150]以解码—编码网络为生成器,建立对抗生成网络对图像进行重建。然后,提取原图和重构图的LBP特征,基于特征的差识别缺陷图像。该方法在纹理表面和织物表面缺陷检测中分别达到了98.53%和94.42%的准确率。文献[4]、文献[148]和文献[149]采用编码—解码结构对原图进行重建,通过原图和重构图的误差分析识别缺陷。然而,网络无法对原图进行像素灰度级重构,直接将原图和重构图作差容易导致大量过检。为了克服这个问题,文献[4]假设残差图像的灰度符合高斯分布,计算自适应阈值二值化残差图像,识别缺陷。文献[148]采用线性插值和高斯模糊的方法对重构图像进行后处理,然后再与原图做差;文献[149]采用频域方法分析残差图像,分别实现了钢铁表面缺陷和玻璃盖板表面缺陷的检测。LIU等[151]建立了一种双编码器网络应用于铝型材表面缺陷检测。该网络包括两个编码器和一个解码器,仅利用正常样本进行训练。通过判断两个编码器输出的隐空间特征差别识别缺陷图像。该方法在铝型材数据集[168]上获得96%的分类准确率。HE等[152]提出一种小样本学习方法,并应用于钢铁表面图像分类。该方法利用小规模标注数据训练生成网络,生成大量未标注数据,并利用标注数据训练分类网络,为生成的未标注数据分配标签,从而扩充训练集。该方法在NEU数据集[30]上达到99.56%的分类准确率,并通过实验验证了在仅有少量标注数据的情况下,该方法可大幅提升分类准确率。
除异常检测方法外,弱监督方法也是一种低数据成本方法。弱监督方法利用低成本的标注数据训练网络,输出更精确的缺陷检测结果。例如,以图像类别标签为监督信息训练网络,输出缺陷的外接矩形或分割结果。弱监督方法依然需要大量的缺陷样本,但是有效降低了图像的标注工作量。类别响应图(Class Activation Map, CAM)[139]是利用类别标签定位物体的经典弱监督方法。后续的大部分弱监督检测方法均借鉴了CAM的思想。例如,LIN等[140]利用分类网络内部的特征响应热图确定缺陷的大体位置。类似地,MARINO等[141]收集6类马铃薯图像训练分类神经网络;然后二值化缺陷响应图获得缺陷的粗略位置;最后,利用SVM方法获得马铃薯表面缺陷的分割结果,实现马铃薯质量的自动检测。ZHANG等[142]对CAM进行改进,提出了类卷积模块和类池化模块,直接获得类响应图,减少CAM计算量的同时,提高了类响应的准确率。所提方法应用于玻璃盖板的崩边缺陷检测,获得了略低于完全监督方法的检测准确率。在现阶段,弱监督缺陷检测方法和异常检测方法等低数据成本方法的研究还不够成熟,研究成果十分有限,准确率与完全监督方法相比还有较大差异。异常检测方法仅局限于简单、规则的纹理表面图像中进行实验研究,在更多复杂背景的表面图像中,检测效果较差。因此,虽然这些低数据成本方法可有效缓解深度学习方法在工业应用中数据收集与标注的工作量,但是实际应用还比较少。
完备的数据集是验证深度学习方法优劣的有效途径,对于深度学习方法的研究与应用具有重要的推动作用。研究人员通过现场图像采集与标注,建立了多个缺陷检测数据集,涉及多个不同的工业生产场景,例如钢铁[30,167]、钢轨[155,164]、铝型材[168]等表面、纺织品[157]、铸造件[108]表面、磁瓦[162]、道路[116,163]等。此外,还有包括多种纹理缺陷的KTH-TIPS2[161]和DAGM2007[159]数据集,以及面向无监督学习的MVTec AD[165]数据集和SEM材料表面的扫描隧道显微成像数据集NanoTWICE[166]。表3列出了部分具有较大影响力的数据集,本节将进行详细介绍,并说明已有方法在这些数据集上的性能。
表3 典型表面缺陷数据集
NEU是由东北大学SONG等[30]发布的热轧钢带表面缺陷数据集。该数据集收集了轧制氧化皮、斑块、开裂、点蚀表面、杂质和划痕6种典型的表面缺陷,每类缺陷包含300个样本,共计1 800个样本。数据集中的图像分辨率为200×200,提供了图像中每个缺陷的外接矩形标注。REN等[3]提出的方法在该数据集的分类任务上达到了99.21%的准确率。HE等[153]提出的方法获得了99.67%的分类准确率和82.3%的mAP。DONG等[154]在该数据集上进行像素级别的标注,所提出的PGA-NET在像素分割任务上,mIOU达到82.15%。在近期的工作中,SONG等[167]针对钢带表面杂质、斑块、划伤3类缺陷建立了数据集SD-saliency-900。该数据集与NEU数据集类似,图像分辨率为200×200,每类缺陷包含300个样本,共计900个样本,提供缺陷的像素分割标注。文献[163]中方法利用多维纹理特征有效克服噪声干扰。该方法在零噪声情况下平均绝对误差为16.50%的F值,在20%噪声的情况下,误差为22.05%,仅上升5.55%。作者进一步提出了编码—解码结构的EDRNnet[169]在零噪声情况下将平均绝对误差降低至1.30%,在20%噪声的情况下,误差为1.46%,大幅度提高了检测精度。
北京交通大学的GAN等[155]建立了铁轨表面缺陷数据集RSDDs。该数据集包括两个子数据集:①高速铁轨图像,有78幅图像;②普通铁轨图像,有128幅图像,提供缺陷像素分割标注。数据集中图像的分辨率不同,每幅图像至少包含一个缺陷,并且实际采集的图像中包含大量的噪声。GAN等[155]提出的分级特征抽取的方法在普通铁轨数据集上达到了100%的分类正确率。LU等[156]通过结合缺陷区域的5个显著性特征与U-Net分割网络设计了SCueU-Net,在高速铁路数据集上达到了99.76%的分类精度。文献[164]建立了钢轨表面图像数据集RSDDS-113,利用双目视觉系统采集113幅缺陷图像,并且通过左右两个相机的位置匹配得到对应的深度图像,从而获得缺陷的三维信息。通过与多种方法的对比实验证明,文献[164]所提方法达到最优性能,平均绝对误差为9%。
SILVESTRE-BLANES等[157]公布一个织物图像基准数据集AITEX。该数据集由245幅分辨率为4 096×256的图像组成,其中140幅是无缺陷图像,105幅是缺陷图像,包含了12种不同类型的缺陷。作者提出的Gabor滤波器方法达到78.1%的检出率,同时导致2.9%的过检。通过参数调整使缺陷检出率上升到86.6%时,过检率会达到11.4%。DENG等[158]提出一种最大稳定极值区域分析方法,达到了91%的检出率。
DAGM2007数据集[159]是模拟现实场景的人工生成纹理图像,分为10类,每类包括1 000幅正常图像与150幅缺陷图像。图像分辨率为512×512,每幅图像包含一个缺陷,用椭圆形标注缺陷位置。相关方法在该数据集上的评测标准并不统一,缺乏说服力。WU等[136]所提方法在该数据集上最高达到了98.6%的分类准确率。KIM等[160]通过迁移学习方式将准确率提升至99.95%。DONG等[154]对图像进行像素标注,提出的PGA-NET在像素分割任务上,mIOU达到了74.78%。LIU等[170]提出的双阶段网络在该数据集上达到了100%的真正率和真负率。
MAEDA等[116]建立的道路表面图像数据集,包括9 053幅缺陷图像,涉及8类缺陷。该数据集中图像分辨率为600×600,提供外接矩形标注。作者采用SSD检测网络,以MobileNet作为骨干网,对一些类型缺陷的识别准确率高达99%,而且仅利用一部智能手机即可实现实时检测,单幅图像的检测时间不超过1.5 s。
4.1~4.3节中介绍的分类、目标检测和分割3类方法是目前在工业质检中应用最广泛的。如上所述,这3类方法使用的标注数据和输出的检测结果具有较大差异。除此之外,它们也有其自身的优劣特点,且适用于不同的应用场景。以4.2节中介绍的目标检测方法为例,该类方法更适用于语义信息较强的缺陷。例如,在检测如图5a所示的弱语义缺陷时,可能遇到标注不一致的情况。标注人员可能把图5a中的缺陷标记为两个缺陷,如图中(1)和(2)所示,也有可能标记为一个整体缺陷,如图中(3)所示。这种不一致会干扰网络的训练,降低网络的检测精度。因此,目标检测方法更适用于检测如图5b所示的强语义缺陷。表4总结了这3类方法的特点。
与显式特征提取方法相比,自动特征提取方法减少了手工设计特征的困难,且自动提取的特征对光照、缺陷形态等变化适应性强。但是,自动特征提取方法需要大量的标注数据,并且需要高性能运算单元,增加了算法训练和部署时间,同时也提高了硬件成本,这对于工业推广应用是非常不利的。
表4 基于自动特征提取的表面缺陷检测算法分析
表面缺陷检测在国内外得到了多年的研究,取得了一系列研究成果,其中一些方法已经在纺织品、木材、金属、皮革等检测中得到了成功应用。而且如本文第4章介绍,近年来快速发展的深度学习技术更是推动了基于视觉的表面缺陷检测方法在工业现场的实际应用。虽然已有的检测方法众多,但是考虑到工业图像的复杂性、特殊性及工业现场对于实时性、可靠性和准确率的高要求,工业表面缺陷检测依然是一个亟待解决的重要问题。首先在硬件方面,通过对成像系统的设计和改进实现高质量图像的采集是成功完成表面缺陷检测任务的基础。尤其是在尖端国防领域或高精密加工领域,如大口径光学元件[9]、玻璃盖板[12,142]等。在这些应用中,由于产品表面反光、缺陷微弱、检测精度高等原因,常规图像采集方法往往无法有效呈现缺陷特征,造成漏检。为了提升缺陷对比度,在图像采集过程中一般使用高亮光源与高精度线阵相机。但是,这又会导致灰尘或脏污的影响过大,造成大量过检。因此,模仿人类视觉系统,研究多角度、多波段、高频闪的仿人成像方式,通过多光源和多相机的协同控制,结合明暗场两种成像方法,提升缺陷特征的同时,摒除噪声影响,是成像系统的未来研究方向之一。由于缺陷检测方法的研究进展是本文主要的综述内容,因此本章关于表面缺陷检测下一步发展的讨论也主要集中于检测方法上。尤其是在深度学习快速发展的今天,深度学习技术在表面缺陷检测中的应用及下一步的发展也是一个开放的、值得关注的问题。
(1)迁移学习方法
深度学习方法首先在自然图像上的目标检测、像素分割等任务中取得了巨大成功后,近年来被逐渐应用于表面缺陷检测任务。但是与自然图像中的一些通用视觉任务,如行人检测,车牌识别等不同,表面缺陷检测任务由于其检测的产品、产线不同,很难找到与每个任务相关的公开数据集。因此减缓基于深度学习的缺陷检测算法的数据依赖,将是一个未来的发展方向。在本文4.4节,本文介绍了一些低数据成本方法,主要包括利用弱监督学习和异常检测来降低数据标注和收集的难度,然而通过综述已有文献,发现该类方法目前仅适用于简单、规则的纹理表面图像,在更多复杂背景的表面图像中,检测效果还无法满足工业现场要求。在4.5节中,本文介绍了现有的开源数据集,这些数据集主要集中在钢铁、钢轨、纺织品等常见的工业产品中,无法应用于其他缺陷检测任务的网络训练。采用迁移学习的思想,将不同产品的数据分布看成不同的“域”,先在开源数据集的“源域”上进行网络训练,之后迁移到当前任务的“目标域”上,可以充分利用现有的公开数据集,减缓对特定任务的数据的依赖,这是下一步一个重要的研究方向。
(2)虚拟缺陷数据生成
除了迁移学习,根据缺陷或图像的形成机理,生成虚拟的训练数据训练网络,也能够缓解缺陷检测任务中数据成本高的问题。在2007年发布的DAGM 2007数据集即是模拟产生纹理缺陷图像的一次尝试。许多缺陷检测算法都利用该数据集进行性能验证。但该数据集中的图像还存在纹理简单,分辨率低等特点,与现在工业现场采集到的高分辨率、纹理复杂的真实图像有较大的差距。之后,该方向的研究进展较为缓慢。近几年,对抗生成网络在各种图像生成任务上展示了强大的性能,在图像风格迁移、人脸数据生成等复杂图像上都达到了“以假乱真”的效果。笔者认为,利用生成对抗网络来实现高分辨率、纹理复杂的虚拟缺陷数据的生成有一定的可行性,如果能结合工业数据的特点,对现有的一些对抗生成网络进行改进,生成大量可应用于网络训练的虚拟数据,可以解决工业场景中数据收集与标注成本高的问题,使深度学习在工业质检领域的规模化应用变得可行。
(1)适应性、轻量化网络设计
正如之前提到的,在尖端国防领域或高精密加工领域,由于对微弱缺陷检测精度要求较高,一般采用高分辨率的工业相机进行采图,图像分辨率高,使用现有的深度学习算法直接处理会面临计算量过大、超出硬件资源限制的问题。一般将高分辨率原图划分为统一大小的子图,然后依次进行处理,难以兼顾实时性和准确率。此外,在一些非精密检测领域,如桥梁[113]、道路[116]、大坝[125]等表面损伤检测。要求精度不高,且不具备精密光学成像条件。图像采集与处理对于硬件配置的要求逐渐降低。目前,在有些应用场景中,智能手机或无人机已经可以进行实时检测。例如,在文献[113]中,智能手机可以完成道路图像的采集及道路缺陷的检测,但是处理单幅图像的时间超过1 s。因此,不管是对于高分辨率大图的处理,还是在移动端上进行缺陷图像的处理,将现有网络直接应用的方式都会存在计算量大、速度慢的问题,笔者认为提高深度学习网络在工业场景中的适用性,在降低参数计算量,提升运算速度的同时保持检测精度,应是未来表面缺陷检测任务的一大方向。通过调研,笔者提出两类具体方案可供参考。①结合表面缺陷检测任务的特点设计新网络,由于工业图像的背景纹理比较单一,缺陷的语义信息弱,仅利用局部信息可有效判断缺陷,过多的语义信息反而是不必要的。因此,设计结构简单、层数较少的轻量级神经网络,降低网络的感受野,可以提升训练效率,且在应用小规模工业数据集进行训练时避免出现过拟合现象。另外,针对低语义缺陷,设计可充分利用底层纹理信息的特征提取及融合方法,结合在多个特征层检测不同尺寸的缺陷,在降低网络计算量的同时能够保持甚至提升缺陷精度。②引入网络剪枝、知识蒸馏等量化方法,该类方法在表面缺陷检测领域的应用还比较少见,但是笔者认为利用一些网络量化方法可以有效减少高性能网络在缺陷检测任务中的参数量和计算量,有利于深度学习算法在表面缺陷检测任务中的进一步推广。
(2)与传统方法结合
本文的第3章和第4章分别详细介绍了显式特征提取的(传统方法)和基于自动特征提取的(深度学习方法)两类表面缺陷检测算法。深度学习方法目前已经成为表面缺陷检测的主流方法。该类方法避免了手工特征提取的困难,但是由于深度学习的“黑盒”属性,导致难以对相关参数进行针对性调整,以使方法性能够满足工业现场应用要求。另外,卷积神经网络的优越能力主要来自于对图像语义特征的提取,但是,大部分工业缺陷检测任务中更多地依赖图像底层特征。相反,传统方法可以对一些底层特征进行针对性提取和应用,但是这些手工设计特征通常无法适应背景、光照等环境变化及噪声干扰。将两类方法相结合,应用深度学习方法强大的特征提取功能和传统方法对于特定底层特征的提取和应用,赋予相关参数物理含义,使之能够进行针对性调整,提高方法在工业现场的适用性,也是未来重要研究课题。
基于视觉感知的表面缺陷检测具有精度高、执行效率高、可防止二次损伤等优点,能够充分满足工业现场要求,是实现自动化检测的理想解决方案。本文回顾了表面缺陷检测技术的发展路线,并简要介绍了基于视觉的表面缺陷检测系统的基本流程。然后,对典型视觉缺陷检测系统的照明成像方法进行了介绍。接下来,重点阐述了表面缺陷检测方法的研究进展,以特征的显式提取和自动提取为线索,对现有的检测方法进行归类总结。最后,针对当前的表面缺陷检测技术的局限性及存在的问题,结合工业界需求,对表面缺陷检测的下一步发展方向进行了思考与展望。