使用深度学习 进行缺陷检测

链接: 千顺智能.

数据库–

GRIMA database

http://dmery.ing.puc.cl/index.php/material/gdxray/

steel surface defects – Micro surface defect database

faculty.neu.edu.cn/me/songkc/vision-based_SIS_Steel.html

faculty.neu.edu.cn/yunhyan/SCACM.html

https://github.com/abin24/Magnetic-tile-defect-datasets

https://github.com/abin24/For-share

https://github.com/cuilimeng/CrackForest-dataset

https://github.com/maweifei/Bridge_Crack_Image_Data

前言
深度学习在计算机视觉主流领域已经应用的很成熟,但是在工业领域(某些领域应用也很成熟),比如产品表面缺陷检测,总感觉没有发挥深度学习的强大能力,近几年表面缺陷的 相关研究主要是集中在各种借鉴主流神经网络框架,从CNN到YOLO,SSD,甚至到语义分割的FCN相关论文,通过一些技术,对框架进行轻量化,对缺陷进行分类或检测。不过,逃不出一个基础:一定要有缺陷样本可供训练,而且数量不能太少!当然,也有一些课题组记住稀疏编码、字典学习、稀疏自编码等对表面缺陷进行检测,这类方法很有局限性,主要针对那些有周期性背景纹理的图像,比如丝织品,印刷品等。

很多课题组、工业软件公司都想开发出一些切合实际应用的算法软件,在缺陷检测领域,比较好的公司有:VIDI、Halcon等,听说海康威视也在搞工业产品方便的算法研究。

下面开始说下这篇文章,文章是今年发表的,我不知道前人有没有这样的尝试,作者提出只依据已有的正常表面图像样本,通过一定的技术手段对缺陷样本进行检测,很好的将最近研究火热的GAN应用于框架中,这一年,课题组的老师也一直讨论这种方法的可行性,缺陷的检测要不要有缺陷样本,从稀疏自编码,小样本学习再到计算机视觉研究热点之一的零样本学习,得出结论:大多数工业产品表面缺陷检测是需要缺陷样本或者人为制作的缺陷样本,论文虽然是没有直接使用生产线上的缺陷样本,但是通过算法人为的产生了缺陷样本,并很好的融合和GAN在图像修复领域的强大能力,整个框架的设计很巧妙。

论文下载链接:A Surface Defect Detection Method Based on Positive Samples

文章思路:论文的整体思路就是GAN在图像修复和重建方便具有很强大的能力,通过人为的去在正常样本上“随意”添加一些缺陷,训练阶段让GAN去学习一个可以修复这些缺陷区域的网络,检测阶段时,输入一个真实缺陷样本,训练好的GAN会对其进行修复,再基于LBP可完成缺陷检测。整个算法框架不需要真实的缺陷样本和手工标签,但是在框架中通过人工会产生一些缺陷区域。

具体实施:

(1)结合GAN和Autoencoder算法进行图像样本修复(重建);

(2)利用LBP算法比较恢复后的图像和原始输入图像,从而更准确的找到缺陷的位置。

2.文章主要内容
论文的主体框架思想是基于GAN网络的结构。GAN 主要包括了两个部分,即生成器 generator  G与判别器 discriminator D。生成器主要用来学习真实图像分布从而让自身生成的图像更加真实,以“骗过”判别器。判别器则需要对接收的图片进行真假判别。在整个过程中,生成器努力地让生成的图像更加真实,而判别器则努力地去识别出图像的真假,这个过程相当于一个博弈过程,随着时间的推移,生成器和判别器在不断地进行对抗,最终两个网络达到了一个动态均衡:生成器生成的图像接近于真实图像分布,而判别器识别不出真假图像,对于给定图像的预测为真的概率基本接近 0.5(这段话从李宏毅老师那引用的,致敬李老师)。

训练阶段示意图
训练阶段
在训练阶段,模型采用一些图像处理技术,人为的在正常样本图像上产生一些缺陷(示意图中的红色框模块),使用由自编码器构成的G模块进行缺陷修复学习,学习的目标是与正常样本之间的L1范数最小,通过一定数量的样本训练可以获得有缺陷修复能力的G模块。GAN用于图像修复的一些资料可以参考[3][4],当然也可以参考论文里的参考文献。

测试阶段
测试阶段
在测试阶段,将上步骤训练好的G模块作为测试阶段的图片修复模块,对于输出的图像样本,假如存在缺陷区域,通过修复模块G将得到修复后的图像,与原缺陷样本图像一起作为LBP算法的输入,通过LBP算法对其缺陷区域进行精确定位。

3. 其他细节
3.1缺陷生成

在实际训练中,论文作者手工生成一些缺陷样本,如图3所示,训练网络自动修复缺陷。另外作者也通过一些技术进行了样本的扩充,比如加入高斯噪声、随机resize大小等。

缺陷生成
3.2缺陷图像重建

缺陷图像重建部分主要的作用是:缺陷图像重建后尽量和正常样本一样,作者在这部分在文献[5][6]基础上进行框架修改的,比如使用L1 distance作为衡量重建差异的目标函数。

然后实验中作者又发现只使用L1不行,图像边缘等细节可能会衡量不准确,又加入GAN loss来提升网络的重建效果。

标题
 最后,得到了下面目标函数。

3.3缺陷检测

因为使用GAN修复后的图片和原始缺陷样本图片之间在像素级的细节上有一些差异,作者使用了前几年在人脸领域应用比较好的LBP算法进行缺陷区域的检测,这里不介绍算法的细节,示意图如下。

4.实验
文章对DAGM 2007数据集和织物密集图像进行了验证实验。实验表明,提出的GAN+LBP算法和有足够训练样本的监督训练算法具有较高的检测准确率。实验使用两种类型的数据集,4.1是印花纹表面,4.2是织物表面。

4.1Texture surface

测试样本

结果对比

a.原始图像,b.修复图像,c.论文方法,d. FCN方法,e.真实标签
4.2Fabric Picture

实验中缺陷样本的类型有五种。实验样本按背景分有三类,每类包含5个缺陷样本,25个正常样本。

测试样本

结果对比

测试结果
a.原始图像,b.修复图像,c.论文方法,d. FCN方法,e.真实标签
参考文献

[1] Zhao Z, Li B, Dong R, et al. A Surface Defect Detection Method Based on Positive Samples[C]// Pacific Rim International Conference on Artificial Intelligence. Springer, Cham, 2018:473-481.

[2] Wu X. Fully Convolutional Networks for Semantic Segmentation[J]. Computer Science, 2015.

[3] Li Y, Liu S, Yang J, et al. Generative Face Completion[J]. 2017.

[4]. Yang C, Lu X, Lin Z, et al. High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis[J]. arXiv preprint arXiv:1611.09969, 2016.

[5]Image-to-Image Translation with Conditional Adversarial Networks

[6]Unsupervised representation learning with deep convolutional generative adversarial networks
--------------------- 
作者:庆志的小徒弟 
来源:CSDN 
原文:https://blog.csdn.net/qq_27871973/article/details/82683043 
版权声明:本文为博主原创文章,转载请附上博文链接!

使用深度学习 进行缺陷检测,GAN用于表面缺陷检测相关推荐

  1. RSE2020/云检测:基于弱监督深度学习的高分辨率遥感图像精确云检测

    RSE2020/云检测:Accurate cloud detection in high-resolution remote sensing imagery by weakly supervised ...

  2. 深度学习实现缺陷检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 缺陷检测是工业上非常重要的一个应用,由于缺陷多种多样,传统的 ...

  3. 总结|深度学习实现缺陷检测

    作者:Tom Hardy Date:2020-01-06 来源:总结|深度学习实现缺陷检测

  4. matlab牙齿分割,基于深度学习的缺陷牙齿图像识别方法与流程

    本发明涉及口腔医学领域,特别是一种基于深度学习的缺陷牙齿图像识别方法. 背景技术: ::缺陷牙齿的早期诊断是口腔医学领域的一大难题.早期缺陷牙齿的累及区域隐蔽,准确的判断对临床医师治疗计划的制定非常重 ...

  5. 深度学习 + OpenCV,Python实现实时视频目标检测

    选自PyimageSearch 机器之心编译 参与:路雪.李泽南 使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加 ...

  6. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  7. win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)...

    win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例) 转载于:https://www.cnblogs.com/zhehan54/p/8540 ...

  8. 深度学习笔记(33) 特征点检测

    深度学习笔记(33) 特征点检测 1. 特征点 2. 设定特征点 3. 关键特征点 1. 特征点 利用神经网络进行对象定位,即通过输出四个参数值bx.by.bh和bw给出图片中对象的边界框 概括地说, ...

  9. 深度学习cnn人脸检测_用于对象检测的深度学习方法:解释了R-CNN

    深度学习cnn人脸检测 介绍 (Introduction) CNN's have been extensively used to classify images. But to detect an ...

最新文章

  1. DAY9-python并发之多线程理论
  2. 面对 iPad,Surface 的键盘是必杀技
  3. Linq to sql(一):预备知识(二)
  4. P1141 01迷宫(BFS+记忆化)
  5. linux 中文 音乐播放器,linux下的常见音乐播放器
  6. 融资 6 亿元后,端点科技将致力于类SaaS化软件服务
  7. Keras学习---MLP和CNN模型建立篇
  8. 校门外的树和memset
  9. [北航软工]技术规格说明书
  10. 多智能体(MARL)强化学习与博弈论
  11. NoteExpress
  12. RK 3568 IDB烧录失败解决方法
  13. vue 打卡图片_掀起ins打卡潮的《小丑》台阶到底有什么魔力?
  14. 新书推荐 | 供应链质量防线:供应商质量管理的策略、方法与实践
  15. 自动化测试工程师的发展前景怎么样?好不好?
  16. 激光电视好还是OLED电视好?两者各有什么优缺点
  17. 心情纸条/心动盲盒/交友盲盒
  18. 计算机二级考试中Excel函数如何应用,计算机二级考试excle常用函数【计算机二级ms office中excel中必考函数有哪些?】...
  19. 第十四届蓝桥杯集训——for——判断质数/素数
  20. 高级计算机维修员职业资格证书,关于国家高级计算机维修职业资格证书在太原市怎么..._出版资格_帮考网...

热门文章

  1. 16_张孝祥_多线程_同步工具CyclicBarrier与CountDownLatch
  2. Dragon boat festival
  3. 实现QQ邮箱发送验证码
  4. 《华林科纳-半导体工艺》 浸涂法制备氧化锌薄膜
  5. 物料需求分析管理难题ERP系统帮你解决
  6. Cybercom 攀登4姑娘山2峰的体能测试报告
  7. IMS系统简介及增值业务能力分析
  8. 一个不那么悲伤的故事 小蚂蚁的故事
  9. 遇见未来的自己作文800计算机,遇见未来的自己作文
  10. 程序员修炼之道(1-7)