社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习在工业缺陷检测的应用

深蓝AI • 2 年前 • 365 次点击  
工业缺陷检测旨在发现各种工业制品的外观瑕疵,是保障产品质量的重要技术之一。以往的缺陷检测需要人工筛查,成本高、效率低,难以覆盖大规模的质检需求。近年来,基于视觉的工业缺陷检测技术成为了缺陷检测的一种有效的解决方案,而且具有优秀的检测精度与效率。

1、视觉缺陷系统

基于视觉感知的表面缺陷检测系统由以下三个主要模块构成:
(1)图像获取模块。通过机械装置、光源和相机的协同配置与操作,获得缺陷特征明显的待检物表面图像。
(2)图像处理模块。利用图像处理算法,识别图像中的缺陷目标并判断类型。
(3)图像分析模块。根据检测标准判断当前样品是否合格,再将结果传至执行机构。
图1 视觉缺陷系统

2、全监督学习模型

目前,大部分基于深度学习的表面缺陷检测是全监督的表征学习方法。表征学习的本质是将缺陷检测问题看作计算机视觉中的分类任务,因此基于表征学习的缺陷检测方法可以看作是计算机视觉中的经典网络在工业领域的应用。

2.1分类网络

由于CNN强大的特征提取能力,故表面缺陷分类多半会采用基于CNN的分类网络。通常CNN分类网络的特征提取部分由级联的卷积层和池化层组成,后面连接全连接+softmax结构来分类。一般来说,现有表面缺陷分类的主干网络常常采用计算机视觉中现有的网络结构,包括AlexNet, VGG, ResNet, DenseNet, SENet, ShuffleNet等。
基于深度学习的缺陷检测网络从结构上可以划分为:以Faster R-CNN为代表的两阶段网络和以SSD、YOLO为代表的一阶段网络。两者的主要差异在于两阶段网络需要首先生成可能包含缺陷的候选框,然后再进一步进行目标检测。一阶段网络则直接利用网络中提取的特征来预测缺陷的位置和类别。

2.2分割网络

分割网络将表面缺陷检测任务转化为缺陷与正常区域的语义分割问题或实例分割问题,它不但能精细分割出缺陷区域,而且可以获取缺陷的位置、类别以及相应的几何属性(如长度、宽度、面积等)。按照分割功能的区别,其大致可以分为全卷积神经网络方法和Mask R-CNN方法。
全卷积网络(FCN)是语义分割的基础,很多网络都是基于FCN改进而来。FCN首先利用卷积操作对输入图像进行特征提取和编码,然后再通过上采样将特征图逐渐恢复到输入图像尺寸大小。此外还有经典的U-Net,SegNet,PSPNet,DeepLab系列等。
Mask R-CNN方法是目前最常用的图像实例分割方法之一,可以看作是一种基于检测和分割网络相结合的多任务学习方法。当多个同类型缺陷存在粘连或重叠时,实例分割能将单个缺陷进行分离并进一步统计缺陷数目。目前大部分方法都是直接将Mask R-CNN框架应用于缺陷分割,如路面缺陷分割、工业制造缺陷和皮革表面缺陷等。

3、无监督学习模型

 目前,最常用于表面缺陷检测的无监督学习模型是基于正常样本学习的方法。正常样本学习的网络只接受正常(无缺陷)样本进行训练,使得其具备强大的正常样本分布的重建和判别能力。因此,可通过判断是否产生与正常样本不同的结果来认定样本是否存在缺陷。依据处理空间的不同,无监督学习模型的检测方法分为基于图像空间和特征空间两种方法。

3.1基于图像空间

基于图像空间的方法是在图像空间上进行缺陷检测。常用方法主要有以下两种:
(1)利用网络实现样本重建与补全
当输入任意样本图像到网络中,都可以得到其重建后对应的正常(无缺陷)样本。因此,用输入图像分别减去对应的重建图像可以获得残差图像(也称重建误差)。当重建误差过大时,可以认为输入图像存在缺陷,差异过大的区域即为缺陷区域.当重建误差很小时,即认为输入图像是正常样本.。
(2)利用网络实现异常区域分类
通过训练生成对抗网络GAN以生成类似于正常表面图像的伪图像,然后通过判别器来确定并分类出缺陷样本和正常样本。

3.2基于特征空间的方法

基于特征空间的方法是在特征空间中,通过正常样本与缺陷样本特征分布之间的差异来进行缺陷检测。特征之间的差异也称为异常分数,当异常分数高于阈值时,即可认为出现缺陷。AnoGAN是最早实现从图像空间到潜在空间的映射,利用图像空间中的差异和GAN网络判别器的最后一层特征图之间的差异来计算异常分数,判定是否存在缺陷。

4、数据集

一些常用的工业缺陷检测数据集如下:
(1)天池布匹数据集
在布匹的实际生产流程中,会产生织稀、擦洞、毛斑等各种缺陷,数据集以实际情况制作,包含简单的素色花布约8000张,复杂纹理的花色布约12000张,图片分辨率为2560\times1920,共包含10种缺陷类型,所有缺陷数据均给出了矩形框作为缺陷区域的标注
(2)KolektorSDD数据集
该数据集收集了大量电子换向器的图像数据,包含348张无缺陷图片以及52张有缺陷图片,分辨率在1240-1270\times500之间。缺陷主要表现为微小的破损、裂纹等,所有图片均提供了像素级别的标注.
(3)AITEX织物数据集
该数据集共包含245张高分辨率图像,分辨率均为4096\times256。织物结构共有7种类别,每一类包含20个无缺陷样本。测试集由105张有缺陷样本构成,包含了12种典型的织物缺陷。缺陷样本图像均给出了像素级别的标注。
(4)MVTec AD数据集
该数据集是针对无监督分割任务设置的多类型工业产品图像,共包含15种产品:5种纹理类和10种物体类,每种产品也存在多种不同类型的缺陷,所有图像的分辨率均在700 \times700-1024\times1024之间,其中3629张正常图像用于训练与验证,1725张图像用于测试.所有含缺陷的图片均提供了像素级别的标注,总共包含近1900个标注区域。
(5)DAGM数据集
该数据集针对于弱监督分割任务,所有数据均为合成数据,但逼真程度与实际工业场景中获取的真实数据相当。数据集包含6类纹理,每类包含1000张无缺陷样本以及150张缺陷样本。其主要特点在于纹理背景复杂与缺陷微弱,图像的分辨率均为512\times512,所有缺陷样本均给出了椭圆形的弱标注来表示缺陷的大致位置。
此外,工业缺陷检测的模型也常会使用CIFAR-10 , MINST等小型分类数据集,以及STC,UCSD-Pred2 和CUHK Avenue 等视频异常数据集

5.发展趋势

(1)优化图像采集的质量,提高缺陷检测的精度,更加全面、准确地提取特征进行学习以及小尺寸目标的特征提取
(2)使用较少的图片样本训练出表现优异的检测模型
  (3)对某一物体进行全方位的缺陷检测(如利用三维建模等)
  (4)将一个已训练好的模型迁移到另一个类似产品上,并保证其准确率和检测效率
  (5)在检测出缺陷并明确是何种缺陷后,对该物体的信息善后及处理是十分重要的,同时将缺陷产品与无缺陷产品分离也是十分必要的。

   ABOUT 

    关于我们 


深蓝学院是专注于人工智能的在线教育平台,已有数万名伙伴在深蓝学院平台学习,很多都来自于国内外知名院校,比如清华、北大等。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/150903
 
365 次点击