![](https://img-blog.csdnimg.cn/img_convert/693df5d3dfcf4e5baad034b08f81504c.png)
基于深度学习的表面缺陷检测方法综述
缺陷检测问题的定义
缺陷的定义
有监督
有监督的方法需要用到带标签的缺陷图像进行训练,“缺陷”即标记过的区域或图像。
无监督
无监督的缺陷检测方法只需要正常无缺陷的样本进行网络训练,又称“one-class learning”,"缺陷"意味着异常,该方法又被称为“异常检测”
缺陷检测的定义
缺陷是什么
对应CV中的分类任务,仅给出图像的类别信息
缺陷在哪里
对应CV中的定位任务,给出缺陷的类型和位置
缺陷是多少
对应CV中的分割任务,逐像素分割,给出缺陷的长度、面积、位置等。
表面缺陷检测深度学习方法
表征学习(有监督,本质是CV中的分类任务)可以近似看作为学习样本在特征空间的分界面
分类网络
CNN分类网络的特征提取部分由级联的卷积层+pooling层组成;
分类部分由全连接层和softmax组成。
直接利用网络做分类
原图分类
直接将完整的缺陷图像作为网络的输入。
定位ROI后分类
先获取感兴趣的区域(ROI),再将ROI作为网络的输入
多类别分类
缺陷类型超过两类,网络的输出节点为N+1(正常类别)
一个网络先进行二分类(缺陷和正常),作为预训练,再进行多分类
利用网络做缺陷定位
滑动窗口
通过较小尺寸的窗口在原图上进行冗余滑动,将窗口图像作为网络的输入进行缺陷识别,最后链接所有的窗口获得缺陷定位的结果。
热力图
热力图中颜色越深的区域代表 其属于缺陷的概率越大
多任务学习网络
为了精细定位缺陷位置, 往往设计的网络会加上额外的分割分支, 两个分支共享特征提取的backbone结果, 这样网络一般有分类和分割两个输出, 构成多任务学习网络
利用网络做特征提取器
先将图像输入到预训练网络中获取图像表征特征, 再将获取的 特征输入到常规的机器学习分类器(例如SVM等)中进行分类
检测网络
目的是获得目标精准的位置和类别信息。
在现阶段追求检测速度的缺陷检测领域, 基于一阶段的模型应用较多, 在强调检测精度的缺陷检测领域, 基于两阶段的模型采用较多
以Faster R-CNN为代表的两阶段(two stage)网络
两 阶 段 检 测 网 络(Faster R-CNN)的 基 本 流 程 是 首 先 通 过backbone网 络 获 取 输 入 图 像 的 特 征 图, 然 后 利 用RPN计 算 锚 框(anchor box)置 信 度, 获 取proposal. 然 后 对proposal区 域 的 特 征 图 进 行ROIpooling 后 输 入 网 络, 通 过 对 初 步 检 测 结 果 进 行 精 细 调 整, 最 终 得 到 缺 陷 的 定 位 和 类 别 结 果。
常 见 方 法 往 往 针 对backbone结 构 或 其 特 征 图、 锚 框 比 例、ROIpooling和 损 失 函 数 等 方 面 进 行 改 进。
以SSD或YOLO为代表的一阶段(one stage)网络
SSD的 特 点 在 于 引 入 了 特 征 金 字 塔 检 测 方 式, 从 不同尺度的特征图中来预测目标位置与类别
分割网络
分割网络将表面缺陷检测任务转化为缺陷与正 常区域的语义分割甚至实例分割问题, 它不但能精 细分割出缺陷区域, 而且可以获取缺陷的位置、类 别以及相应的几何属性(包括长度、宽度、面积、轮 廓、中心等)
FCN方法
首先利用卷积操作对输入图像进行特征提取 和编码, 然后再通过反卷积操作或上采样将特征 图 逐 渐 恢 复 到 输 入 图 像 尺 寸 大 小
Mask-FCN方法
基于检测和分割网络相 结合的多任务学习方法. 当多个同类型缺陷存在 粘连或重叠时, 实例分割能将单个缺陷进行分离并 进一步统计缺陷数目, 然而语义分割往往将多个同 类型缺陷当作整体进行处理.
度量学习 可以近似看作为样本在特征空间进行聚类
度量学习是使用深度学习直接学习输入的相 似性度量
孪生网络
在缺陷分类任务中, 往往采用孪生网 络(Siamese network)进行度量学习. 不同于表征学 习输入单张图像转化为分类任务, 孪生网络的输入通常为两张或多张成对图像, 通过网络学习出输入 图片的相似度, 判断其是否属于同一类. 孪生网络损 失函数的核心思想是让相似的输入距离尽可能地小,不同类别的输入距离尽可能地大。
除了缺陷分类,孪 生网络也能被用于缺陷定位与检测.
正常样本学习(无监督,异常检测)
正常样本学习的网络只接受正常(无缺陷)样本进行训练, 使得其具备强大的正常样本分布 的重建和判别能力. 因此, 当网络输入的样本存在缺 陷时, 往往会产生与正常样本不同的结果。
基于图像空间
基于图像空间的方法是在图像空间上对缺陷进 行检测. 因此, 该方法不仅能实现图像级别的分类 和识别, 也可以获取到缺陷的具体位置
利用网络实现样本重建与补全
网络可以看作具备自动修复或者补全缺陷区域的能力. 用输入图像分别减去这些重建或修复图像可以获得残差图像, 这些残差图像也被称为重建误差. 它能作为判断待检测样本是否异常的指标. 当重建误差过大时, 可以认为输入图像认为存在缺陷,差异过大的区域即为缺陷区域. 当重建误差很小, 即认为输入图像是正常样本.
利用网络实现异常区域分类
训练生成对抗网络GAN以生成类似于正常表面图像的伪图像, 这意味着训练好的GAN可以在潜在特征空间中很好地学习正常样本图像. 因此, GAN的判别器可以自然地用作分类器, 用于分类缺陷和正常样本。
基于特征空间
基于特征空间的方法是在特征空间中, 通过正 常样本与缺陷样本特征分布之间的差异来进行缺陷 检测. 特征之间差异也叫做异常分数, 当异常分数高 于某个值, 即可认为出现缺陷。
图像 样本重建差异和GAN网络中判别器最后一层特征图 之间的差异, 以及编码器隐空间的特征与再编码后 的特征之间差异
弱监督与半监督学习
基于弱监督的的的方法是指采用图像级别类别标注(弱标签)来获取分割/定位级别的检测效果
半监督学习通常会使用大量的未标记数据和少部分有标签 的数据用于表面缺陷检测模型的训练
关键问题
小样本
数据扩增、合成与生成
对原始缺陷样本采用镜像、旋转、平移、扭 曲、滤波、对比度调整等多种图像处理操作来获取 更多的样本。
将单独缺陷融合叠加到 正常(无缺陷)样本上构成缺陷样本
基于GAN的工作也应用在表面缺陷样本生成上
网络预训练或迁移学习
合理的网络结构设计
半监督或无监督
实时性
基于深度学习的缺陷检测方法在工业应用中 包括三个主要环节: 数据标注、模型训练与模型推断.