(一)基于深度学习的缺陷检测方法框架

缺陷的定义与检测任务划分

在有监督的方法中,缺陷意味着标记过的区域或者图像(如利用标记了标签,包括类别、矩形框或逐像素等的缺陷图像输入到网络中进行训练);在无监督的方法中,是将正常无缺陷的样本进行学习,网络检测异常的区域。

缺陷检测任务大致分为三个阶段:缺陷分类(分类出缺陷的类别,如异色、空洞、经线等)、缺陷定位(不仅需要获取缺陷的类别还需要标注出缺陷的位置)、缺陷分割(将缺陷逐像素从背景中分割出来)。

深度学习方法下的不同网络类型

分类网络:基于CNN(卷积神经网络)的分类网络在表面缺陷分类中常用,如AlexNet,VGG,GoogLeNet,ResNet,DenseNet,SENet,ShuteNet,MobileNet等。利用分类网络结合滑动窗口的方式可实现缺陷的定位。

缺陷检测方法框架图,结构检测包括哪些内容

检测网络

基于深度学习的目标检测方法结构上可划分为两阶段(two – stage)网络(以FasterR – CNN为代表)和一阶段(one – stage)网络(以SSD或YOLO为代表)。两阶段网络需先生成可能包含缺陷的候选框(proposal),再进一步进行目标检测;一阶段网络直接利用网络中提取的特征来预测缺陷的位置和类别。

在训练阶段针对小数据集和样本不平衡特点可采用在线困难样本挖掘(OHEM)技术等提高检测效果,例如在PCB缺陷检测中的应用。

分割网络:可将表面缺陷检测任务转化为缺陷与正常区域的语义分割甚至实例分割问题,能精细分割出缺陷区域,还可获取缺陷的位置、类别以及相应的几何属性(如长度、宽度、面积、轮廓、中心等),大致可分为FCN(FullyConvolutionalNetworks)方法和MaskR – CNN方法两种。

(二)传统的基于工业机器视觉的表面缺陷检测方法框架

传统方法往往采用常规图像处理算法或人工设计特征加分类器方式。通常利用被检表面或缺陷的不同性质进行成像方案的设计,以获得光照均匀的图像,使物体表面缺陷明显体现出来。

在工业机器视觉中的缺陷检测需求分为“缺陷是什么”(缺陷分类)、“缺陷在哪里”(缺陷定位)和“缺陷是多少”(缺陷分割)三个层次。

二、结构检测包含的内容

结构检测包含的内容可能因检测对象和检测目的不同而有所差异。在缺陷检测的范畴下,从上面提到的缺陷检测方法来看:

基于不同网络类型的结构检测内容

分类网络方面:如果是对结构部件(如建筑结构中的梁、柱等或者机械结构中的零部件等)进行检测,可能是对结构部件存在的缺陷类别进行分类,例如判断结构表面是否有裂缝类、孔洞类等缺陷类别。这需要构建合适的分类网络结构,采集含有不同缺陷类别的结构部件图像数据进行训练,让网络学习到不同类别缺陷的特征以便准确分类。

检测网络方面

对于两阶段网络(如FasterR – CNN),结构检测可能先通过第一阶段生成结构部件可能存在缺陷的候选区域,第二阶段在这些候选区域内精准确定缺陷的位置和类别。例如在建筑结构墙体检测中,先筛选出可能有缺陷的墙体区域,再确定缺陷是裂缝还是剥落等缺陷类型及其具体位置。

一阶段网络(如SSD或YOLO)则直接从结构部件图像中提取特征预测缺陷的位置和类别。比如在桥梁结构部件检测中直接判断出结构部件上缺陷的位置和类型(如钢梁的腐蚀位置和程度类别)。

分割网络方面:在结构检测中能够精确地将结构部件的缺陷区域从正常区域分割出来,同时获取缺陷的几何属性。例如对于混凝土结构的检测,可以准确分割出裂缝区域,并且得到裂缝的长度、宽度、面积等几何属性,以及裂缝在结构中的位置和所属类别(是横向裂缝还是纵向裂缝等)。

传统检测方法中的结构检测内容

在传统基于工业机器视觉的检测中,结构检测会涉及根据结构部件表面或缺陷的性质设计成像方案,例如对于金属结构部件,可能需要特定的光照角度和强度来突出表面缺陷。之后利用常规图像处理算法或者人工设计特征加分类器的方式进行检测,判断结构部件是否存在缺陷以及缺陷的类型和位置等。比如通过边缘检测算法确定结构部件边缘是否有破损,通过纹理分析判断结构表面是否有异常纹理(可能暗示存在缺陷)等。