基于深度学习的表面缺陷检测方法综述

一、摘要

       近年来,基于深度学习的表面缺陷检测技术广泛应用在各种工业场景中。这篇文章对近年来基于深度学习的表面缺陷检测方法进行了梳理,根据数据标签的不同将其分为全监督学习模型方法、无监督学习模型方法和其他方法三大类,并对各种典型方法进一步细分归类和对比分析,总结了每种方法的优缺点和应用场景。这篇文章探讨了表面缺陷检测中三个关键问题,介绍了工业表面缺陷常用数据集。最后,对表面缺陷检测方法进行了总结。

二、缺陷检测问题的定义

1.缺陷的定义        

        对缺陷模式认知的不同,会导致两种截然不同的检测手段。第一种是有监督的方法,该方法更关注缺陷特征;第二种是无监督的方法,该方法更关注无缺陷 (即正常样本) 特征。

基于深度学习的表面缺陷检测方法综述_第1张图片

2.缺陷检测的定义        

        对比计算机视觉中明确的分类、检测和分割任务,缺陷检测的需求可以划分为三个不同的层次,即 “缺陷是什么”、“缺陷在哪里”和 “缺陷是多少”。        

        缺陷是什么:异色、空洞和经线等        

        缺陷在哪里:缺陷的具体位置        

        缺陷是多少:缺陷的长度、面积等

三、表面缺陷检测深度学习方法

        本节总结概述基于深度学习的表面缺陷检测方法。如下图所示,依据数据标签的不同,将其整体分为全监督学习模型、无监督学习模型和其他方法 (半监督学习模型和弱监督学习模型)。

基于深度学习的表面缺陷检测方法综述_第2张图片

3.1全监督学习模型

3.1.1表征学习        

        现阶段大部分基于深度学习的表面缺陷检测是基于有监督的表征学习方法。表征学习的本质是将缺陷检测问题看作计算机视觉中的分类任务,包括粗粒度的图像标签分类或区域分类,以及最精细的像素分类。

基于深度学习的表面缺陷检测方法综述_第3张图片

(1)分类网络        

        目前表面缺陷分类中最常用的模式是采用基于 CNN 的分类网络。通常 CNN 分类网络的特征提取部分由级联的卷积层 + 池化层组成,后面连接全连接层 + softmax 结构用于分类。

基于深度学习的表面缺陷检测方法综述_第4张图片

a.直接利用网络进行分类

基于深度学习的表面缺陷检测方法综述_第5张图片

b.利用网络进行缺陷定位

基于深度学习的表面缺陷检测方法综述_第6张图片

c.利用网络做特征提取器        

        利用 CNN 特征提取的强大功能,先将图像输入到预训练网络中获取图像表征特征,再将获取的特征输入到常规的机器学习分类器中进行分类。

        综上,基于分类网络的方法在实际应用中非常广泛,同时, 不同的子方法本身也各有其自身优劣,具体如表 2 所示。

基于深度学习的表面缺陷检测方法综述_第7张图片

(2)检测网络        

        目标定位是计算机视觉领域中最基本的任务之一,同时它也是与传统意义上缺陷检测最接近的任务,其目的是获得目标精准的位置和类别信息。一般来说,基于深度学习的缺陷检测网络从结构上可以划分为: 以 Faster R-CNN 为代表的两阶段网络和以 SSD或 YOLO 为代表的一阶段网络。              

基于深度学习的表面缺陷检测方法综述_第8张图片

        两者的主要差异在于两阶段网络需要首先生成可能包含缺陷的候选框 (Proposal),然后再进一步进行目标检测。一阶段网络则直接利用网络中提取的特征来预测缺陷的位置和类别。

(3)分割网络                

        分割网络将表面缺陷检测任务转化为缺陷与正常区域的语义分割甚至实例分割问题,它不但能精细分割出缺陷区域,而且可以获取缺陷的位置、类别以及相应的几何属性 (包括长度、宽度、面积、轮廓、中心等)。

基于深度学习的表面缺陷检测方法综述_第9张图片

a.FCN 方法        

        FCN 是图像语义分割的基础。 FCN 首先利用卷积操作对输入图像进行特征提取和编码, 然后再通过反卷积操作或上采样将特征图逐渐恢复到输入图像尺寸大小。依据 FCN 网络结构的差异,其缺陷分割方法可以进一步细分为常规 FCN、Unet和 SegNet三种方法。

b.Mask R-CNN 方法          

        Mask R-CNN 是目前最常用的图像实例分割方法之一,可以看作是一种基于检测和分割网络相结合的多任务学习方法。        

        相比分类和检测网络方法,分割方法在缺陷信息获取上有其优势。但与检测网络一样,需要大量的标注数据,其标注信息是逐像素,因此往往需花费大量的标注精力和成本。

3.1.2 度量学习          

        度量学习是使用深度学习直接学习输入的相似性度量。在缺陷分类任务中,往往采用孪生网络 (Siamese network) 进行度量学习。不同于表征学习输入单幅图像转化为分类任务,孪生网络的输入通常为两幅或多幅成对图像,通过网络学习出输入图片的相似度,判断其是否属于同一类。孪生网络损失函数的核心思想是让相似的输入距离尽可能小,不同类别的输入距离尽可能大。

        度量学习可以近似看作为学习样本在特征空间进行聚类;表征学习可以近似看作为学习样本在特征空间的分界面。相比于表征学习,度量学习的方法应用在表面缺陷定位中不太多,目前大部分都是应用在缺陷分类任务中。

3.2无监督学习模型

基于深度学习的表面缺陷检测方法综述_第10张图片

基于正常样本学习的方法:只需要正常无缺陷样本进行网络训练

(1)基于图像空间的方法:在图像空间对缺陷进行检测,可以实现图像级别的分类和识别,也可以获取到缺陷的具体位置。

(2)基于特征空间的方法:在特征空间中,通过正常样本与缺陷样本特征分布之间的差异来进行缺陷检测。

        基于正常样本学习方法常用于简单统一的纹理表面缺陷检测,在复杂的工业检测环境,相比于监督学习的方法,其检测效果还不太理想。

3.3 其他模型

基于深度学习的表面缺陷检测方法综述_第11张图片

3.3.1基于弱监督方法

        弱监督方法采用图像级别类别标注(弱标签)来获取分割/定位级别的检测效果。

3.3.2基于半监督学习

        半监督学习通常会使用大量的未标记数据和少部分有标签的数据用于表面缺陷检测模型的训练。

        半监督和弱监督模型较少应用于表面缺陷检测中,其中半监督的方法大部分用于解决缺陷分类或识别任务,还没有广泛应用到定位于分割任务。

四、三个关键问题

1.小样本问题

        解决方案: 数据扩增、合成与生成;网络预训练或迁移学习;合理的网络结构设计;采用无监督与半监督模型方法。

2.实时性问题

        解决方案: 模型权重化;模型剪枝 FPGA并行加速架构;使用GPU。

3.与传统基于图像处理的缺陷检测方法对比

基于深度学习的表面缺陷检测方法综述_第12张图片

五、缺陷检测数据集

        工业表面缺陷检测常用数据集涵盖多个工业应用领域,具体包括:金属表面、太阳能板、木材表面、磁瓦表面、铸件 X 射线图像、钢材和钢轨表面、建筑物和桥梁表面缺陷、PCB 板等。

基于深度学习的表面缺陷检测方法综述_第13张图片

六、总结

1.缺陷检测包括缺陷分类、缺陷定位和缺陷分割。

2.目前面临的问题:

        1) 网络结构设计:大部分网络都是由人工设计。

         2) 网络训练学习:难以收集到所有类型的缺陷,只有良品数据集。

        3) 异域数据联邦学习。

你可能感兴趣的:(深度学习,人工智能)