该论文发自Information Sciences,属于ccf b的文献,主要贡献是针对自己收集的LELP数据集利用DNN网络进行训练,达到了接近0.97的准确度。

文章概括

D4Net的优点在于提出了一个数据集LELP,这个数据集是关于蕾丝的大图案变形图片,共有50种图案,66580张图片,远远超过了其他的数据集,它的表现也很好。

但是问题出现在,为什么D4Net在MVTec AD中Recall的表现不如人意?按理说像这种瑕疵检测我应当做的是宁愿损失精度也要让recall高(宁愿检测为瑕疵也不能让它漏过去)。。。

摘要

在工业界中,缺陷检测一直以来都是质量测控的关键步骤之一。然而,关于如何对于非刚性大图案产品区分出不想要的瑕疵与可接受的变形是一项始终没有解决的问题。针对于非刚性变形图片的良品参考图与瑕疵图,本文提出了D4NET网络用于瑕疵检测。该方法专注于研究从DNN中提取出的高级语义特征的差异,以强调可能存在缺陷的区域。在训练过程中,提出用一项边缘损失(marginal loss)来提高瑕疵和大图案变形之间的可分离性。最后的实验结果:Experimental results show that the D4Net yields the best performances of 96.9% accuracy and 91.7% F-measure in a real industrial dataset consisting of 67K images of lace fabric with large patterns from a worldwide top-10 lace fabric manufacturing company.这充分说明我们的方法在工业应用中的有效性。

关键词:瑕疵检测,非刚性材料,大图案,蕾丝织物工业

1. 引言

瑕疵检测的应用场景,目前主要是在某些具有重复图案的产品上,所以传统的模式识别一般是利用相邻图案建立标准参考图来识别在当前图案中的某些瑕疵。但是,当前很多工业产品的瑕疵都是小物体,这就导致了大部分的瑕疵检测算法都需要限制检测区域的size以此来检测小物体。这个限制就会导致问题:当我们要面对大图案物体时,往往只能看到小物体,而大图案的瑕疵往往会被混乱的纹理所隐藏掉导致难以检测

(接着作者开始讲非刚性产品的变形问题)首先,非刚性物体的变形是无法避免的。其次,非刚性变形在小图案产品上的影响可以忽略,但是在大图案物体的变形会被放大,具体情况如下图所示,可以通过热力图看到,大图案变形部分的影响远比瑕疵部分的影响大。所以如何在大图案非刚性产品中进行瑕疵检测是个大问题。

首先,这个部分前人是有不少工作的,我会单独开一篇文章来整个简单的集体介绍。反正就是效果都不太好,因此作者的D4Net就显得更加弥足珍贵!作者的主要贡献是:

1. 前面的方法不好有一个原因是缺少非刚性变形物体的suitable reference(参考),作者这里搞了个蕾丝产品的LELP数据集,整了不少这种参考,用的方法是perceptual metirc(这个不知道是啥,后面再说)。

2. D4Net网络通过强调高级特征空间中的潜在瑕疵部分,可以实现减轻非刚性变形的影响。

3. 在训练过程中,提出用一项边缘损失(marginal loss)来提高瑕疵和大图案变形之间的可分离性,实现方法是在高级特征空间里在有缺陷和无缺陷的地方设置一个边缘限制(margin constraints,我猜应该就是margin loss)。

2. 相关工作

这块作者分成了两个大部分进行论述:传统方法和深度学习的方法。

传统方法:针对于hand-crafted method,作者简要介绍了statistical, structural, spectral和model-based的方法,然后评论说:hand-crafted方法在一些小图案的数据集(dot,star等)有效果,因为小图案的语义信息(semantic context)数量多而且简单,hand-crafted方法可以捕捉到小图案的语义信息。然而大图案的语义信息复杂而且数量少,hand-crafted方法无法快速高效的捕捉到这些知识,所以在这种大图案的领域效果不好。

深度学习方法:作者又将这个部分分为了CNN和AutoEncoder(AE)两个部分。

在CNN部分作者简要介绍了几个相关工作,然后说由于缺少适当的reference,这些方法无法很好的区分缺陷和非刚性变形,导致效果不好。

AutoEncoder方法:跟CNN套路一样,不过评论是跟前面的hand-crafted方法的问题一样。

总结:过去的工作都会对大图案的缺陷和非刚性变形产生矛盾,所以我们的方法就很有用,接着又介绍了一遍自己的方法。

3. 文章主要工作

本文主要三个主要工作:

  • 收集到蕾丝的大图案数据集LELP,并根据perceptual loss做了reference图片集。
  • 提出D4Net网络,将图片提取出特征后进行二分类有缺陷还是无缺陷。(这个的创新是与传统方法对比而来的,因为深度学习网络可以提取到高维特征信息)
  • 针对于非刚性变形导致的误差,作者提出了margin loss来减轻影响,提高瑕疵检测准确度。

3.1 工业数据收集

LELP数据集是第一个专注于大图案非刚性产品的数据集。针对于每种蕾丝大图案,都有20-60张至少包含一个大图案的无缺陷图片作为reference。在实际场景中,根据机器编织速度的不同,拍照间隔在1-5秒,由于照片太大,所以每个照片都裁剪到512*512的patch,每张大图片包括若干个patch。LELP数据集共有66580张图片,其中41124是无瑕疵图片patch,25456是有瑕疵patch。

3.2 D4Net网络

单从网络而言,这个D4Net简单的令人不敢相信。主要分为两个步骤:Reference selection阶段瑕疵检测二分类阶段,其中瑕疵检测部分在train阶段加了个marginal loss用于限制非刚体图案变形导致的误差。

3.2.1 reference selection(参考图片选择)

首先为每个大图案给定的参考图片进行特征提取建立一个reference images的特征数据库,然后根据perceptual metric的指标来为每个input images选择reference image。

关于perceptual loss的具体问题等后面再看,作者在这里的论述是:如何为参考选择模块选择metric是很重要的。然后分析了几个相关指标:对于常规的欧几里得距离和SSIM(图像结构相似度指标),作者认为这两个无法区分开瑕疵与非刚性变形,所以无法度量图片之间的相似度。而perceptual metric是基于高级的语义相似度来进行区分的,在测量图片之间的结构和语义特征时跟人类判断相似且都由于传统基于像素的测量方法。所以作者在这里用的是perceptual metric(这里需要加上SSIM与perceptual loss的区别

最后作者总结,虽然用perceptual loss可以完成reference selection部分的操作,但是大图案照片与其参考图片之间仍然具有非刚性变形的不匹配性,所以此时仍然无法直接用简单的模式识别进行瑕疵检测。

3.2.2 瑕疵检测二分类阶段

由于非刚性变形导致的不匹配情况在有瑕疵和无瑕疵的图片对(一个pair包括input image与reference image)都存在,所以有无瑕疵的最大不同点应该在缺陷部分。直觉上来讲,当input image与reference image比较时,在高维语义空间里瑕疵区域应该能比无瑕疵区域区别更大,所以作者设计了de-deformation网络用于提取图片与reference之间的最大可区分特征。

具体步骤如网络图所示,input image与reference image经过特征提取网络后分别得到特征, 再对这两个特征的差取global max pooling操作得到两者的最大可区分特征, 公式如下

( 这里的是2048维的向量)后面再连接一个全连接层进行二分类判断是否为瑕疵。(不过在这里,作者再次强调,这里的操作只能实现去掉瑕疵图中的变形效果,然而对于无瑕疵图的变形影响仍然无法消除,所以我们才需要后面的marginal loss。)

我们再继续对进行全连接操作获得最后的分类特征值:

然后再来一个二分类交叉熵损失(binary cross-entropy loss function):

3.2.3 Marginal loss

这个部分的目的是减轻由于非刚性变形导致的误差,实现的效果应该是:输入的图如果是无瑕疵图,那么它和reference的语义特征的相似度应该很高;输入的图如果是有瑕疵图,那么瑕疵部分应该和reference的语义特征相似度应该比无瑕疵部分低。由于有瑕疵图和无瑕疵图对于非刚性变形的受影响效果不同,作者用了两个损失函数来实现这个效果。其中, 不同于前面二分类问题直接对特征相减,这个部分需要讨论的是图片相似度问题,因此为了表征两个图片之间的语义特征相似度,文章使用的是cosine similarity操作。

cosine similarity操作:

对于获取的特征, 通过cosine操作获取两者相似度:

其中,如果两个图非常相似,那么S接近于1。越不相似,S接近于-1

当我们获得两个图片任意位置的相似度后,需要关注的是两者区别最大的位置,在cosine操作后就是的最小值部分,所以我们对取global min pooling操作获取两个图片区别最大的部分,这里的P代表positive image pairs即无瑕疵图片对,相对的有代表nagetive image pairs即有瑕疵图片对。

获取了input image与reference image的最大区别位置后,我们就可以设置相关的损失函数来限制非刚性变形的影响,这里我们是分别针对有瑕疵和无瑕疵图片对设置margin loss。

  • 针对于无瑕疵图片,最大的区别显然是非刚性变形。如果没有非刚性变形的影响,那么输入图片应该和reference图片的cosine相似度接近于1,即使对操作,也应该无限接近于1,所以我们在这里设置positive margin loss使得接近于1从而抵消非刚性变形导致的图片相似度损失:

  • 针对于有瑕疵图片,我们希望优化的是这样的情况:非刚性变形导致的影响大于瑕疵部分的影响,即大于的情况(这时的情况是网络认为非刚性变形部分影响更大,导致变形部分cosine similarity变小,同时又认不出来瑕疵部分,导致瑕疵部分的cosine similarity变大)。所以我们可以设置nagetive margin loss减少这个情况:

再将两个损失函数合起来:

最后再将分类和margin loss整合形成最后的总体损失函数:

4. 实验结果分析

[织物瑕疵检测]D4Net: De-deformation defect detection network for non-rigidproducts with large patterns相关推荐

  1. 论文阅读DefectNet: Toward Fast and Effective Defect Detection缺陷网:走向快速有效的缺陷检测

    DefectNet: Toward Fast and Effective Defect Detection缺陷网:走向快速有效的缺陷检测 期刊:IEEE Transactions on Instrum ...

  2. Deep learning based multi-scale channel compression feature surface defect detection system

    基于深度学习的多尺度通道压缩特征表面缺陷检测系统 Deep learning based multi-scale channel compression feature surface defect ...

  3. 苹果分拣系统----瑕疵检测

    一.项目背景 苹果加工时需要对苹果进行品种分类和缺陷检测,传统人工分拣效率低.实时性差,很难满足现代生产需求,而机器分拣在苹果检测时存在分类准确率低. 细小缺陷检测能力差等问题.在线检测是实现自动生产 ...

  4. 瑕疵检测(深度学习)

    与通用目标检测的区别 相较与整张图片瑕疵区域的占比一般非常小,Faster R-CNN等检测模型对小物体检测不够好 深度学习从低层到高层不断去提炼高层语义信息,层数的增大细节的信息丢失得越多,对于缺陷 ...

  5. RSE2022/云检测:A hybrid generative adversarial network for weakly-supervised cloud detection 多光谱图像弱监督云检

    RSE2022/云检测:A hybrid generative adversarial network for weakly-supervised cloud detection in multisp ...

  6. 兴智杯国产开发框架工程化应用赛:齿轮瑕疵检测基线

    [算力加油包]为助力大家fork运行本项目,免费GPU算力,点击领取:https://aistudio.baidu.com/aistudio/competition/detail/473/0/intr ...

  7. 论文阅读>烟雾检测:Vision based smoke detection system using image energy and color information

    原文 Vision based smoke detection system using image energy and color information 文章目录 原文 基于图像能量和颜色信息的 ...

  8. 2021广东工业智造创新大赛-瓷砖瑕疵检测方案

    天池大赛-2021广东工业智造创新大赛-智能算法赛FasterRCNN方案 该项目用paddle2.2实现了广东工业智造创新大赛-瓷砖瑕疵检测比赛的方案,用到了PaddleDetection套件中的F ...

  9. 【PaddleDetection】基于PaddleDetection的齿轮瑕疵检测:从模型训练到部署中的那些坑

    目录 0 题目简介 1 Baseline项目的本地化 1.1 飞桨环境配置 飞桨安装注意事项 1.2 PaddleDetection安装 PaddleDetection注意事项 1.3 数据集下载与配 ...

最新文章

  1. 【Python基础】Matplotlib官方小抄手册公开(配套可视化代码)!
  2. 在线判题系统hustoj的搭建
  3. 如何使Putty会话颜色更美观
  4. python数组的切片操作_对Python 数组的切片操作
  5. [vue] vue-loader是什么?它有什么作用?
  6. mongodb @aggregation 返回字段映射不上_Spring Boot 操作 MongoDB
  7. 台电t30_数码:台电发布T30平板电脑,10.1英寸/p70处理器/4+64GB内存组合
  8. Mapreduce从HBASE抽取数据,生成搜索下拉服务数据,hadoop jar 调用异常问题解决
  9. 安装ORK功能包踩坑之路和解决方案
  10. DX 系列之 ComboBoxEdit
  11. 趣味程序设计_打印日历
  12. iis服务器网站启动不了,IIS上打不开asp网站怎么办
  13. 家里网络连不上outlook_家里OUTLOOK上不了如何处理--
  14. Oracle 还原数据库
  15. toString转化成json
  16. dbms_xplan
  17. 基于ZigBee技术的无线抄电表系统设计(1)
  18. 考研英语(七)——状语和状语从句
  19. FlashBuilder的代码模板
  20. 2007上半年度 电脑病毒疫情和互联网安全报告(三)

热门文章

  1. 如何利用python制作几个简单的游戏?(简单易上手版)
  2. Ubuntu系统目录
  3. 吴恩达机器学习课程笔记-思维导图
  4. 关于微信小程序的资料搜集
  5. 华为交换网络基础、基本配置、STP/RSTP
  6. [批处理]自己写的“WindowsXP关机定时器”(提供源码和下载)
  7. ActiveMQ讯息传送机制以及ACK机制
  8. 自动调用拷贝构造函数的三种情况
  9. csv导入mysql乱码问题
  10. 航空公司预订票数学建模论文