题目: 基于深度学习的表面缺陷检测方法综述
作者: 陶显,侯伟,徐德
收稿日期: 2019-11-27
网络首发日期: 2020-04-02
1 缺陷检测问题的定义
缺陷的定义: 在机器视觉任务中, 缺陷倾向于是人类经验上的概念, 而不是一个纯粹的数学定义。
第
一种有监督的方法体现在利用标记了标签(包括类别、矩形框或逐像素等)的缺陷图像输入到网络中进行训练. 此时\缺陷"意味着标记过的区域或者图像。
第二种是无监督的缺陷检测方法, 通常只需要正常无缺陷样本进行网络训练, 也被称为one-class learning. 该方法更关注无缺陷(即正常样本)特征, 当缺陷检测过程中发现没有见过的特征(异常特征)时, 即认为检测出缺陷. 此时\缺陷"意味着异常, 因此该方法也被称作异常检测(Anomaly Detection).
缺陷检测的定义: 对比计算机视觉中明确的分类、检测和分割任务, 缺陷检测的需求非常笼统. 实际上, 其需求可以划分为三个不同的层次: \缺陷是什么"、 \缺陷在哪里"和\缺陷是多少". 第一阶段\缺陷是什么"对应计算机视觉中的分类任务, 如图2中分类三种缺陷类别: 异色、空洞和经线, 这一阶段的任务可以被称为\缺陷分类", 仅仅给出图像的类别信息. 第二阶段\缺陷在哪里"对应计算机视
觉中的定位任务, 这一阶段的缺陷定位才是严格意义上的检测. 不仅获取图像中存在哪些类型的缺陷,而且也给出缺陷的具体位置, 如图2中将异色缺陷用矩形框标记出来. 第三阶段\缺陷是多少"对应计算机视觉中的分割任务, 如图2中缺陷分割的区域所示,将缺陷逐像素从背景中分割出来, 并能进一步得到缺陷的长度、面积、位置等等一系列信息, 这些信息能辅助产品高一级的质量评估, 例如优劣等级的判断. 虽然缺陷检测的三个阶段的功能需求和目标不同, 但实际上三个阶段互相包含且能相互转换. 例如第二阶段\缺陷定位"包含第一阶段\缺陷分类"这
一过程, 第三阶段\缺陷分割"同时也能完成第二阶段\缺陷定位". 第一阶段\缺陷分类"也能通过一些方法实现第二阶段和第三阶段的目标. 因此, 在后文还是按照传统工业习惯统称为缺陷检测, 只是在针对不同网络结构和目标功能时, 才有所区分.

2 表面缺陷检测深度学习方法
本节总结概述基于深度学习的表面缺陷检测方法. 如图3所示, 依据数据标签的不同, 将其整体分为全监督学习模型、无监督学习模型和其他方法(半监督学习模型和弱监督学习模型). 在全监督模型中, 依据输入图像方式和损失函数的差异, 分为基于表征学习和度量学习的方法. 在表征学习中, 根据网络结构的不同可以进一步细分为分类网络、检测网络和分割网络. 目前大量的研究工作都是着眼于全监督学习方向, 但无监督学习同样是一个值得研究的方向. 从图3中可以看出, 本文按照每类方法的处理特点又细分为若干种不同的子方法。

这个问题可以回答得很简单:是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。
2.1 表征学习
现阶段大部分基于深度学习的表面缺陷检测是基于有监督的表征学习方法. 表征学习的本质是将缺陷检测问题看作计算机视觉中的分类任务, 包括粗粒度的图像标签分类或区域分类, 以及最精细的像素分类.
2.1.1 分类网络
在真实的工业生产中, 检测对象形状、尺寸、纹理、颜色、背景、布局和成像光照的巨大差异使复杂环境下的缺陷分类成为一项艰巨的任务. 由于CNN强大的特征提取能力, 采用基于CNN的分类网络目前已成为表面缺陷分类中最常用的模式.通常CNN分类网络的特征提取部分由级

本文系统回顾了基于深度学习的表面缺陷检测方法,包括有监督、无监督及半监督学习,探讨了表征学习、度量学习和正常样本学习等技术,并分析了实时性、数据集和网络结构设计等关键问题。
最低0.47元/天 解锁文章
586





