查看原文
其他

工业缺陷检测场景简介

The following article is from CV算法恩仇录 Author 欢迎关注

点击下方卡片,关注“新机器视觉”公众号

重磅干货,第一时间送达

目录

  • 工业缺陷检测场景简介
  • 工业缺陷检测场景的特点
  • 工业缺陷检测场景的需求
  • 工业缺陷检测场景的流程图
  • 工业缺陷检测常用的深度学习算法
  • 缺陷检测需要的工具

工业缺陷检测场景简介

在工业生产过程中,由于现有技术、工作条件等因素的不足和局限性,极易影响制成品的质量。其中,表面缺陷是产品质量受到影响的最直观表现。因此,为了保证合格率和可靠的质量,必须进行产品表面缺陷检测。

“缺陷”一般可以理解为与正常样品相比的缺失、缺陷或面积。表面缺陷检测是指检测样品表面的划痕、缺陷、异物遮挡、颜色污染、孔洞等缺陷,从而获得被测样品表面缺陷的类别、轮廓、位置、大小等一系列相关信息。人工缺陷检测曾经是主流方法,但这种方法效率低下;检测结果容易受人为主观因素的影响,不能满足实时检测的要求。它已逐渐被其他方法所取代。

工业缺陷检测场景的特点

自然场景一般是强语义信息,缺陷检测一般为弱语义信息。缺陷检测不需要特别大的感受野,一般为纹路上的缺陷,局部区域就可以判别。工业场景有以下几个特点:

  • 业务场景过于分散:缺陷检测场景还是非常分散的,难以归纳。
  • 受限、可控:有比较大的人工干预空间。例如可以利用一些光学、机械结构等设计降低场景的复杂,使得我们面临的场景更加纯粹。
  • 一般面临的目标比较微弱:这个与目标缺陷的形态、颜色等有关。有时还会有一些例如黑色纹理上的黑色缺陷,强烈吃视角的缺陷等;
  • 需求不太明确:很多时候做不到非黑即白的“一刀切。其实仔细思考,并不是客户给不出明确的需求,而是场景和数据本身的固有属性,需求在执行的时候很难做到一致性。
  • 精度指标要求比较高:动辄 100% 还是比较夸张的。一般 1 个点的漏捡,2 到 3 个点的误检算是比较理想的结果了。

工业缺陷检测场景的需求

根据工业缺陷检测场景的固有属性。针对该场景,主要有以下几点需求:

  • 需求一:能够正确判别出 NG(Not Good) 和 OK,本质是一个分类任务:这个是最基础的任务,可以认为是二分类任务;
  • 需求二:定位缺陷的位置和缺陷的类别,本质是一个目标检测的任务: 用矩形框粗略地标记出缺陷的位置,并判别出每个缺陷所属的细分类别,方便归因分析、指标统计、设备升级、维修等;
  • 需求三:定位缺陷的精确位置和每一个缺陷的类别,本质是稠密预测,属于图像分割任务:能够精确得到缺陷的轮廓,需要产出缺陷的热力图;一般对应的上层任务有缺陷分级、需求定制或变更。
  • 需求四:只有大量的正常样本,设计算法进行缺陷检测,本质是无监督学习算法:只提供一些正常样本,希望模型在仅有的正常样本上训练后,能够检测出实际生产环境中异常缺陷的样本。

工业缺陷检测场景的流程图

工业缺陷检测整个流程如下图所示,一共经过7个阶段,分别是:明确需求阶段、打光阶段、数据阶段、算法设计阶段、部署阶段、运维阶段。

工业缺陷检测常用的深度学习算法

我们能用到的深度学习算法很多,有分类、检测、分割系列,例如分类算法中的细粒度分类,可以更加精准的提取微弱的特征,细粒度算法一般会用到打乱和注意力机制,对纹理上的缺陷识别会更优一点。

另外,应用语义分割任务做缺陷检测,其实缺陷检测并不局限语义分割,它更像提取一张高斯热图,有缺陷的地方概率高,背景区域概率低。因此有一些热图回归的做法也可以应用。

除了监督学习算法,在应对缺少缺陷样本的场景中,我们还可以选择无监督学习方案。

深度学习的快速发展使其在缺陷检测领域得到越来越广泛的应用,具体的缺陷检测方法如图所示。

监督方法

监督方法要求训练集和测试集缺一不可,训练集中的样本必须被标记,其中训练集用于寻找样本的内在规律,然后将规律应用到测试集。

在上述有监督的表面缺陷检测方法中,基于表征学习的方法大致可以分为三类:分类网络、检测网络和分割网络。其中,常用的分类网络是 Resnet、ShuffleNet;通常用作检测网络的是 Faster RCNN、YOLO;常用的分割网络有:FCN、Mask RCNN 等。

在缺陷检测的任务中,分类网络的重点是解决“缺陷是什么”问题,即确定图像的类型(图像是否包含缺陷,缺陷的类型是什么);检测网络的重点是解决“缺陷在哪里”的问题,即获取具体的位置信息和通过确定缺陷的位置来确定缺陷的类别信息;分割网络的焦点是为了解决“有多少缺陷”的问题,即分割从背景中修正缺陷区域,获取位置、类别、属性和缺陷的其他信息。

  • ShuffleNet
    ShuffleNet 是一种计算效率高的轻量级网络,它采用了逐点组卷积和通道 shuffle 两种新方法来保证计算精度并有效降低计算成本

  • Faster RCNN
    Faster RCNN 是在 Fast RCNN 的基础上引入了区域提议网络(RPN),将生成区域推荐的步骤放入神经网络中,在端到端的学习模式下实现了几乎无成本的区域推荐算法,极大地提高了目标检测的速度,还提到了滑动窗口方法。

  • 全卷积网络
    在 FCN 中,一种端到端的图像分割方法,网络中的所有层都是卷积层;网络主要使用三种技术:卷积、上采样和跳过层;可以通过让网络做像素级预测直接得到标签图。核心思想之一是反卷积层,增加了数据规模,从而可以输出准确的结果。

  • Mask RCNN
    Mask RCNN 是 Faster RCNN 的一种扩展形式,它为两阶段框架网络集成了目标检测和实例分割功能:第一阶段扫描图像并生成候选框(建议框可能包含目标区域),第二阶段分类候选框并生成边界框和掩码。

  • YOLO
    YOLO (You Only Look Once)是一种单级目标检测器,用于实现两个目标(即速度和准确性)。它将对象检测定义为一个回归问题,图像输入卷积神经网络,并预测每个网格的类概率和边界框。

无监督方法

  • Autoencoder
    编码器和解码器是自编码器的两个核心部分。其中,encoder 对应网络模型中的隐藏层,用于学习输入信号的低维特征;解码器对应模型中的输出层,用于尽可能地再现输入信号。因此,使编码器能够学习输入信号良好的低维特征并重构输入信号是自编码器的最终目标。

  • 生成对抗网络
    生成对抗网络由两个参与者组成:生成器和鉴别器。生成器用于获取样本数据的分布,鉴别器用于估计样本训练数据的概率。该模型的最终目标是学习真实数据的内在规律,预测和估计真实数据的分布或密度,并根据学到的知识生成新的数据,即生成对抗网络制造数据。

  • 深度信念网络
    深度信念网络由多个RBM(受限玻尔兹曼机)组成,整个网络的训练是通过逐层单独训练 RBM 来完成的。

缺陷检测需要的工具

缺陷检测落地需要非常多的工具支撑:

  • 图像采集:相机、运动设备、光学控制;
  • 数据托管:服务器、数据库、版本管理、数据积累;
  • 数据处理:图像分析、定位、裁剪;
  • 数据标注:适配各种任务、半自动标注;
  • 数据清洗:半自动、交叉验证、一致性分析;
  • 缺陷生成:传统方法、融合、GAN;
  • 训练框架:分类、分割、检测、热图回归等;
  • 测试框架:多模型测试、指标统计、可视化;
  • 部署平台:模型融合、模型加速、平台移植;
  • 前端框架:GUI、数据持续收集、用户体验。


本文仅做学术分享,如有侵权,请联系删文。

—THE END—

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存