工业场景中缺陷检测的算法探讨

工业场景中缺陷检测的算法探讨

工业现场的产品缺陷检测,一项重要的不可缺少的环节,除了通过仪器仪表做的检测,还有很多情况下,同时视觉检测产品的缺陷和瑕疵. 这个时候,计算机视觉的人工智能技术就可以发挥它的作用,替代或者辅助人员做产品的质检,实现无人化,高速检测,高精度检测的任务.
我们正在做这方面的技术研究和探索,下一步将开展通用产品的缺陷检测的算法和产品的研发和测试.

工业场景中缺陷检测的算法探讨_第1张图片

0.png

工业场景中缺陷检测的算法探讨_第2张图片

out.gif

1.jpg

0.序篇

工业现场的品控管理中,缺陷检测是重要一环,传统的缺陷检测存在如下问题:

  • 缺陷检测环节依赖人工完成,需要耗费大量的人力和物力.
  • 人工检测存在人为的检测失误,会随着劳动强度和人员的状态改变,存在很多不确定性.
  • 人工检测的精度和准确度无法和机器检测相提并论.
  • 速度上和工作强度上,人工无法和机器相比.

所以说,在工业场景中,生产技术密集型企业,连续生产产线上等场合,通过增加机器视觉的缺陷检测环节,可以大幅减少人工,提升品控效率,提高生产率和良品率,最终增加产品附加值.

相比于目前人工智能在其他一些领域的应用,在工业现场的基于计算机视觉的缺陷检测,瑕疵检测的人工智能技术应用,更加接地气,更加能直接给企业带来价值.

|

工业场景中缺陷检测的算法探讨_第3张图片

i1.jpeg

|

工业场景中缺陷检测的算法探讨_第4张图片i2.jpeg


|

工业场景中缺陷检测的算法探讨_第5张图片

i3.jpeg


|

1.探索

下面我针对工业现场的不同场景,基于算法的角度,做一下缺陷检测的探索工作.

  1. A fast and robust convolutional neural network-based defect detection model in product quality control

检测对象:适合于目标对象为平面的表面缺陷检测:如布匹缺陷,金属表面缺陷,产品外表面的缺陷和瑕疵检测等.

主要通过对输入图像进行切片,然后把切片图像送入深度学习网络中做判断,做图像分类训练。在推理时,通过滑窗检测方式进行逐位置识别。

优缺点:

1、 由于使用分类方式,准确率较为高

2、 由于滑窗遍历,速度慢

工业场景中缺陷检测的算法探讨_第6张图片

a1.jpg

工业场景中缺陷检测的算法探讨_第7张图片

a2.jpg

  1. Automatic Defect Detection of Fasteners on the Catenary Support Device Using Deep Convolutional Neural Network(基于深度卷积网络的接触网支架紧固件缺陷自动检测)

    检测对象:适合复杂外形的支架和关键固件和连接件的缺陷检测,比如:高压输电线路的巡检,大型器械的连接件的检测等等.

工业场景中缺陷检测的算法探讨_第8张图片

三步检测

算法采用方式为Object Detection的方法做目标检测,针对小目标的准确检测,采用了三步检测的方法.

工业场景中缺陷检测的算法探讨_第9张图片

b2.jpg

第一阶段:定位主要结构件位置,采用SSD作为检测网络,先做第一步的定位检测.

工业场景中缺陷检测的算法探讨_第10张图片b3.jpg

第二阶段:对第一阶段检测出的各个结构图像中的紧固件做检测,也是采用Object Detection方式 比如 yolo,进行目标检测和识别。

工业场景中缺陷检测的算法探讨_第11张图片b4.jpg

第三阶段:在第二阶段的基础上,对检测图像进行crop,将其送到分类网络进行分类,看是否缺少紧固件。

工业场景中缺陷检测的算法探讨_第12张图片

  1. Automatic Fabric Defect Detection with a Multi-Scale Convolutional Denoising Autoencoder Network Model(基于多尺度卷积消噪自编码网络模型的织物疵点自动检测)

    检测对象:纺织物和布匹的瑕疵点检测。
    

主要思想:织物疵点检测是纺织制造业质量控制中必不可少的环节。传统的织物检测通常采用人工视觉的方法进行,效率低,长期工业应用精度差。论文提出使用高斯金字塔结合语义分割的方式来重建缺陷,推理阶段通过结合多尺度结果,完成融合。这种方法在织物疵点检测中有几个突出的优点。首先,只需少量的无缺陷样本就可以进行训练。这对于收集大量有缺陷样品困难且不可行的情况尤其重要。其次,由于采用了多模态积分策略,与一般的检测方法相比,该方法具有更高的鲁棒性和准确性。第三,根据我们的结果,它可以处理多种类型的纺织面料,从简单到复杂。实验结果表明,该模型具有较强的鲁棒性和良好的整体性能。

模型结构:

工业场景中缺陷检测的算法探讨_第13张图片c1.jpg

工业场景中缺陷检测的算法探讨_第14张图片c2.jpg

检测结果:

工业场景中缺陷检测的算法探讨_第15张图片c3.jpg

工业场景中缺陷检测的算法探讨_第16张图片c4.jpg

工业场景中缺陷检测的算法探讨_第17张图片c5.jpg

工业场景中缺陷检测的算法探讨_第18张图片d1.jpg

  1. Automatic Metallic Surface Defect Detection and Recognition with Convolutional Neural Networks

检测对象:金属表面缺陷检测

主要思想: 用一种能准确定位和分类从实际工业环境中获取的输入图像中出现的缺陷的双重过程来自动检测金属缺陷。设计了一种新的级联自动编码器(CASAE)结构,用于缺陷的分割和定位。级联网络将输入的缺陷图像转化为基于语义分割的像素级预测掩模。利用压缩卷积神经网络(CNN)将分割结果的缺陷区域划分为特定的类。利用工业数据集可以成功地检测出各种条件下的金属缺陷。实验结果表明,该方法满足金属缺陷检测的稳健性和准确性要求。同时,它也可以扩展到其他检测应用中。

其实还是使用语义分割网络先定位像素级别的缺陷位置,然后通过分类网络对缺陷进行识别。

工业场景中缺陷检测的算法探讨_第19张图片d1.jpg

工业场景中缺陷检测的算法探讨_第20张图片d2.jpg

实验结果:

工业场景中缺陷检测的算法探讨_第21张图片d3.jpg

  1. A Surface Defect Detection Method Based on Positive Samples

    检测对象:密集织物

    主要思想:本文提出了一种新的基于正样本训练的缺陷检测框架。基本检测的概念是建立一个重建网络,它可以修复样本中存在的缺陷区域,然后对输入样本与恢复样本进行比较,以指示缺陷区域的准确。结合GAN和自动编码器进行缺陷图像重建,利用LBP进行图像局部对比度检测缺陷。在算法的训练过程中,只需要正样本,不需要缺陷样本和人工标注。

    工业场景中缺陷检测的算法探讨_第22张图片e1.jpg

    工业场景中缺陷检测的算法探讨_第23张图片e3.jpg

    在训练阶段,x是从训练集中随机拍摄的随机照片。C(x∼| x)是一个人工缺陷模块。它的功能是自动生成损坏的、有缺陷的样本,x∼是它的输出。EN和DE构成一个自动编码器,EN是一个编码器,DE是一个解码器,整个自动编码器在G an模型中可以看作是一个生成器。G的任务是修复有缺陷的图片。D是一个鉴别器,D的输出是它的鉴别器是真正样本的概率。

    在测试阶段,我们将测试图像x输入到自动编码器G中,得到恢复图像y,然后使用LBP算法提取x和y的特征,并比较x的每个像素的特征,其中x和y的特征差异较大,即缺陷。

    实验结果:

    工业场景中缺陷检测的算法探讨_第24张图片e4.jpg

通过GAN的方式来进行缺陷检测和重建一直是个热点方向,而且效果比较好,本文的思路算是比较新颖,值得借鉴。
  1. Segmentation-based deep-learning approach for surface-defect detection

检测对象:表面缺陷检测、裂纹检测(金属)

主要思想:本文主要采用了两个网络,一个是判别网络,一个是分割网络。分割网络主要完成缺陷的分割,而判别网络在此基础上对缺陷作进一步分类。

工业场景中缺陷检测的算法探讨_第25张图片f1.jpg

工业场景中缺陷检测的算法探讨_第26张图片f2.jpg

算法很新颖,实验结果也还不错:

工业场景中缺陷检测的算法探讨_第27张图片f3.jpg

工业场景中缺陷检测的算法探讨_第28张图片g1.jpg

  1. SDD-CNN: Small Data-Driven Convolution Neural Networks for Subtle Roller Defect Inspection(小数据驱动卷积神经网络在轧辊微小缺陷检测中的应用)
    检测对象:轧辊微小缺陷检查

主要思想:滚柱轴承是旋转机械中最关键、应用最广泛的部件之一。外观缺陷检测是轴承质量控制的关键。然而,在实际工业中,轴承缺陷往往是极其细微的,并且发生的概率很低。这就导致了正负样本数量的分布差异,使得依靠数据驱动的检测方法难以开发和部署。本文提出了一种用于轧辊微小缺陷检测的小数据驱动卷积神经网络(SDD-CNN)一种用于小数据预处理的集成方法。首先,应用标签膨胀(LD)来解决类分布不平衡的问题。其次,提出了一种半监督数据增广(SSDA)方法,以更有效和可控的方式扩展数据集。该方法通过训练一个粗糙的CNN模型来生成地面真值类激活,并指导图像的随机裁剪。第三,介绍了CNN模型的四种变体,即SqueezeNet v1, Inception v3,VGG-16, and ResNet-18,并将其用于轧辊表面缺陷的检测和分类。最后,进行了一系列丰富的实验和评估,表明SDD-CNN模型,特别是SDD Inception v3模型,在滚筒缺陷分类任务中执行得非常好,top-1精度达到99.56%。此外,与原始CNN模型相比,SDD-CNN模型的收敛时间和分类精度都有显著提高。
网络结构:

工业场景中缺陷检测的算法探讨_第29张图片g1.jpg

实验结果:

工业场景中缺陷检测的算法探讨_第30张图片g2.jpg

2.布局

针对以上的论文中的算法,我们不难发现一些不错的思路和方法:

  1. 采用目标检测定位缺陷部位

  2. 采用图像分类区分缺陷类型

  3. 采用非监督学习(自编码和GAN的算法)实现少量负样本,或者都是正样本的情况下的训练和检测

  4. 采用多模型串联耦合模式增强模型的精度

    等等...

但是我们也会发现一些不足:

  1. 依赖预先的设计的模型
  2. 依赖事先采集的数据集训练
  3. 模型的优化依赖设计者

这对以上问题,我们大胆假设,提出以下思路:

  1. 采用串联模型,多模型耦合建模

  2. 使用孪生网络做正样本的模型

  3. 少量正样本即可训练

  4. 使用孪生网络甄别负样本

  5. 使用动态的自学习网络模型,动态学习,可以在产线上不断完善模型权重,更新模型

  6. 配合人工判别,增强线上学习的能力

3.实验

我们使用英伟达的入门级AI开发板 jetson nano,搭建运行模型,并作为边缘计算的AI设备.

工业场景中缺陷检测的算法探讨_第31张图片jetson3.png

工业场景中缺陷检测的算法探讨_第32张图片jetson2.png

工业场景中缺陷检测的算法探讨_第33张图片jetson1.png

4.产品

(先占位... ) 我们在jetson nano上做的产品和演示:

工业场景中缺陷检测的算法探讨_第34张图片

out.gif

5.未来

(先占位... )



 

你可能感兴趣的:(算法)