SteveHawk's Blog

【文献翻译】一个基于正样本的表面缺陷检测方法



原文:A Surface Defect Detection Method Based on Positive Samples

摘要

基于机器视觉的表面缺陷检测分类方法可以极大的提升工业生产的效率。在拥有足够标记数据的情况下,基于卷积神经网络的缺陷检测方法的效果已经达到了行业顶尖水平。然而在实际应用中,有缺陷的样本或者说负样本通常难以提前收集,人工标注也非常耗时。在这篇论文中,我们提出了一个新的仅基于正训练样本的缺陷检测框架。基本的检测方法是建立一个重建网络把样本中可能存在的缺陷修复,然后把重建后的图像和原始图像进行对比来获取准确的缺陷区域。我们结合了生成式对抗网络和自编码器进行图像重建,然后使用局部二值模式算法计算图像的局部差异来检测缺陷。在算法的训练过程中,只需要正样本,而不需要缺陷样本以及人工标注。这篇论文附带了对于纤维表面图片和 DAGM2007 数据集的验证实验。实验表明本文提出的生成式对抗网络 + 局部二值模式算法、监督训练算法再加上足够的训练样本能够达到非常高的检测准确率。由于这个方法的无监督特性,它拥有更高的实践价值。

关键词

1. 简介

表面缺陷检测在工业生产流程中起到了非常重要的作用,它对于最后投放市场产品的质量和名声都有非常重大的影响。传统的表面缺陷检测方法是采用人眼判断,非常主观、耗财、效率低下还不够准确。

机器视觉系统是一个人眼的可能代替品,但是它在实际应用中仍然有很多问题和挑战。尤其是在数年以前,用来判断缺陷的传统图像特征还是依靠经验来人工指定。传统的图像特征提取的操作特性通常比较低级,在类似光照变化、透视畸变、光线遮挡、物体形变等复杂场景变化下,提取的特征往往不够健壮,无法应对它们,因此许多算法在实际场景下无法应用。最近,深度学习在图像特征提取方面被发展的非常强大,卷积神经网络已经在所有的有监督问题,例如分类、目标定位、语义分割等方面取得了最高的精确度。

Faghih-Roohi 等人 [1] 使用深度卷积神经网络进行了铁路轨道表面的缺陷检测。他们把铁轨图像分成 6 个类别,包括 1 个无缺陷的类别以及 5 个缺陷类别,然后使用深度卷积神经网络对它们进行分类。Liu 等人 [2] 提出了一个两阶段的方法,结合了 selective search 算法的 region proposals 方法以及卷积神经网络。它能够检测并识别获得的区域,然后完成对胶囊表面的缺陷检测。Yu 等人 [3] 使用了两个 FCN 全卷积网络 [4] 语义分割网络来检测缺陷。其中一个用于检测大致位置,另一个用于检测精细位置。它可以精确的绘制出缺陷的轮廓,比原始的 FCN 全卷积网络在 DAGM 2007 数据集 [12] 上获得了更高的精确度,并且可以用于实时检测。

以上所有方法均使用了有监督的训练方式来检测缺陷。在工业检测的实际应用下,有两个问题必须要被考虑到:

训练样本中缺少缺陷样本/负样本。 在实际问题中,训练样本中的缺陷样本总是更少,因为事先收集许多缺陷样本非常困难。因此,训练过程中正负样本的数量会极端不平衡,导致生成的模型可能不稳定甚至无效。在缺陷的出现数量可变且不可预测的场景下,有监督检测方法常常无法达到目标精度。

人工标注代价巨大。 在实际的缺陷检测应用中,往往有多种缺陷种类,检测标准和质量等级也往往不同。这要求有一大批训练样本为了特定需求被人工标注,需要非常大量的人力资源。

考虑到以上有监督学习算法目前在实际应用中的问题,我们提出了一种基于正样本训练的缺陷检测方法。该方法的训练过程仅仅需要提供足够的正样本,不需要提供缺陷样本,也不需要人工标注,就可以实现缺陷检测的目标。

2. 相关工作

2.1 基于正样本的缺陷修复模型

我们提出这个模型的灵感来源于一系列基于生成式对抗网络 [5] 的修复和检测模型。图一所示是生成式对抗网络的原理图,生成器 G 输入一个高斯随机噪声以生成一幅图像,判别器 D 输入一副真或者假的图片,输出这幅图像为真的概率。生成的图像的真实程度会随着生成器和判别器持续博弈的过程不断改进。

image-20200128012452152

图一. 生成式对抗网络的架构

Yeh 等人 [6] 使用了生成式对抗网络用于图像修复。首先,使用一张没有缺陷的图片通过正常训练流程来训练一个生成式对抗网络的模型。随后在修复一个已知位置的缺陷时,优化生成器 G 的输入 z,使得输出 y 和缺陷图片的正常部分达到最相似。图片 y 就是一张修复图。Schlegl 等人 [7] 实现了基于图像修复的缺陷检测。首先,在不提前知道缺陷位置的情况下使用中间层的重建误差来完成一个修复模组。随后计算修复图和原图之间的差距,差距大的地方就是缺陷。由于重建和修复的误差,这个模型的缺陷就是难以通过直接的相减来区分重建误差和微小的缺陷。

这两个模型的明显缺陷是他们都使用了梯度优化来寻找一个正确的 z,然后进一步获得修复图。这个过程需要消耗不少时间,非常不实用。所以我们希望通过自编码器来修复缺陷图片。

2.2 自编码器

Pix2pix [8] 使用了自编码器结合生成式对抗网络的方法来解决图像翻译的任务,它能够生成锐利并且真实的图像。为了在细节和边缘部分达到更好的结果,pix2pix 使用了类似于 Unet [9] 的跳跃连接结构。这个结构并不适合于移除整个缺陷,所以我们的模型中没有采用这个结构。 图像翻译任务通常指的是给黑白照片上色,或是把简笔画转化成一幅相片,等等。我们使用了一个类似的结构来完成缺陷图像到还原图像的转化。

基于以上研究,这篇论文完成了以下工作:(1)我们使用自编码器复原图像。我们能够实时完成图像修复的功能,并通过生成式对抗网络的损失值来提升图像质量;(2)我们在训练中使用人造缺陷,不依赖大量的真实缺陷样本以及人工标注;(3)我们使用局部二值模式算法 [10] 来比对还原图像和原始图像,以此更精确的寻找缺陷的位置。

总而言之,我们提出了一个基于正样本训练且无需人工标注的缺陷检测模型。

3. 方法

本文提出模型的大致框架如图二所示。在训练阶段,$x$ 是一张从训练集中随机挑选的图片。$C(x^\sim|x)$ 是一个人造缺陷模块,它的功能是自动生成一个损坏的缺陷样本,$x^\sim$ 是它的输出。EN 和 DE 构成了自编码器 G,其中 EN 是编码器,DE 是解码器,整个自编码器可以视作是生成式对抗模型中的生成器。G 的任务是修复缺陷图像。D 是判别器,它输出判别对象是一个真实正样本的概率。

image-20200128012530013

图二. 模型的框架

在测试阶段,我们把测试图像 x 输入自编码器 G,获得修复图像 y。然后我们使用局部二值模式算法提取 x 和 y 的特征,对比每一个像素的特征,当特征差距较大时就是缺陷所在。

3.1 目标

缺陷样本在经过自编码器之后应当与原始的正样本相同。这里我们参照 pix2pix 使用 L1 距离作为相似度的标准,L1 距离相对于 L2 距离更倾向于清晰的图片。重构误差定义如下:

$$ L_{CONST}(G)=E_{x\sim P_{data}(x)}[\parallel x-G(x^\sim)\parallel_1] $$

如果重构误差仅仅用于目标函数,获得图像的边缘就会模糊,细节会损失。根据 pix2pix 的实验,他们引入了一个判别网络,以此加入生成式对抗网络的损失来改善模糊问题,提升图像的真实度。生成式对抗网络的目标函数如下:

$$ L_{GAN}(G,D)=E_{x\sim P_{data}(x)}[logD(x)+log(1-D(G(x^\sim)))] $$ 因此总体的优化目标就是找到一组参数组成网络 G,并使其满足: $$ G^*=arg{min}G{max}D(L{GAN}(G,D)+\lambda L{CONST}(G)) $$ $\lambda$ 是用于平衡生成式对抗网络的损失和重建误差的参数,由实验来决定。生成式对抗网络损失的引入,在一定程度上会与重构误差冲突,但是能够改进图像质量以及对重要细节的展示。

3.2 网络结构以及人造缺陷

我们提出的网络结构被称为深度卷积生成式对抗网络 [11] 。在生成器和判别器网络中,加入了批标准化层。判别器网络中使用了 LeakyReLU 层,生成器网络中使用了 ReLU 层。编码器的结构和判别器大致相似。

在我们的模型中,自编码器只需要把原始的图片修复到最近的示例样本,而不需要知道缺陷的具体形式。因此当足够的随机缺陷附加在样本上后,神经网络将能够学习修复映射相关的信息。在实际训练中,我们人工生成随机的区块、位置、大小、灰度数值,以及加入图片的缺陷区块个数,如图三所示,来训练网络自动修复缺陷。

image-20200128012557327

图三. 人造缺陷示例图

至于数据增强,我们采用了 0.5 倍到 2 倍的随机缩放,另外还加入了 -180° 到 180° 的随机旋转,以及为图片加入了随机高斯噪声。

3.3 获取缺陷位置

由于还原图像的细节信息中存在一些误差,我们不应该直接使用还原图和原始图相除来获得缺陷位置。我们使用了局部二值模式 [10] 算法来进行特征提取,然后搜寻每个像素周围最匹配的像素。局部二值模式算法是一个无参数的算法,拥有不变性,并且适合用于密集点阵。

获取缺陷图的步骤如图四所示。原始图片 $x$ 和复原图片 $y$ 经过局部二值模式算法获得各自的特征图 $x^+$ 以及 $y^+$。对于 $x^+$ 中的每个像素点,搜索 $y^+$ 对应位置最近的特征值点,这个像素点就是匹配点。求两个匹配点之间的特征值差,取绝对值。得到的值越小,这个点是缺陷的概率就越低。然后使用固定阈值进行二值化,就可以获得缺陷的位置了。

image-20200128012605860

图四. 获取缺陷位置的过程

4. 实验

4.1 准备工作

这篇论文使用了纤维图片以及纹理表面图片来测试模型性能,一共使用了 3 种纤维图片和 1 种纹理表面图片。纤维图片来自这个数据库 [13],纹理表面图片来自于 DAGM 2007 [12] 数据集。在这篇论文中,我们对比了有监督的语义分割模型 [4] 和我们提出的模型在缺陷检测方面的表现。

开发环境如下:CPU:Intel® Xeon(R) [email protected]*16,GPU:GTX1080,内存:16G,Python 2.7.12 以及 mxnet。我们使用了 Adam 优化器,设置初始学习率为 0.0002,批大小为 64。

4.2 结果

我们在实验中使用了整张图片的平均正确率作为模型性能的评估数值。

纹理表面。 纹理表面拥有很好的一致性,因此训练集中拥有足够的缺陷样本供学习(表一与表二)。

表一. 纹理表面的测试信息

名称 信息
训练集 400 张无缺陷图供我们的模型, 85 张(有缺陷的)+ 400 张(无缺陷的)给全卷积网络 FCN
测试集 85 张有缺陷的图片
图片尺寸 512 * 512

表二. 纹理表面的测试结果

模型 平均准确率 耗时
FCN(8s) 98.3547% 80.3 毫秒
我们的 98.5323% 52.1 毫秒

如图五所示,这是一个缺陷检测结果的例子。

image-20200128012624160

图五. (a) 原始输入图像。(b) 还原图像。(c) 我们的结果。(d) FCN 的结果。(e) 真值。

纤维图片。 由于真实场景下纤维样本有多种不同的样子,训练集中的缺陷样本相对比较稀少。在实验中,一共有 5 种类型的缺陷,共有 5 张各种形式的缺陷图,以及 25 个正样本图。对于有监督的语义分割模型,缺陷图中的 3 张用于训练集,另外 2 张用于测试集(表三和表四)。

表三. 纤维图片的测试信息

名称 信息
训练集 75 张无缺陷的图片供我们的模型, 45 张(有缺陷的)+ 75 张(无缺陷的)给 FCN
测试集 30 张有缺陷的图片
图片尺寸 256 * 256

表四. 纤维图片的测试结果

模型 平均准确率 耗时
FCN(8s) 81.6833% 31.2 毫秒
我们的 94.4253% 22.3 毫秒

如图六所示,这是一个缺陷检测结果的例子。

image-20200128012636776

图六. (a) 原始输入图像。(b) 还原图像。(c) 我们的结果。(d) FCN 的结果。(e) 真值。

实验表明,在一个有规律的图案的背景中,我们的模型可以在充足负样本情况下达到和有监督的语义分割模型相当的准确率,并且可以在负样本缺少的情况下达到更高的准确率。耗时方面,我们的模型可以达到实时探测的标准。

5. 结论

在这篇论文中,我们结合了自编码器和生成式对抗网络提出了一个基于正样本训练且无需人工标注的缺陷检测模型。在训练中,结合了人造缺陷和数据增强的方法,模型能够自动修复有规律图案的纹理图片的缺陷,并且能够通过比较原始图片和修复图片的特征来获得缺陷的具体位置。在纤维图片和纹理表面图片上,缺陷的位置可以被实时探测获得。并且,我们可以在有缺陷的训练样本稀少的时候比有监督的语义分割模型获得更好的结果。

如果背景过于复杂和随机,自编码器将会难以重建并修复图片。相关的缺陷探测问题尚待未来进一步研究。

致谢。 这项工作部分由国家自然科学基金深圳联合基金重点项目支持。(编号 U1613217)

参考文献

  1. Faghih-Roohi, S., et al.: Deep convolutional neural networks for detection of rail surface defects. In: International Joint Conference on Neural Networks. IEEE (2016)
  2. Liu, R., et al.: Region-convolutional neural network for detecting capsule surface defects. Boletín Técnico 55(3), 92–100 (2017)
  3. Yu, Z., Wu, X., Gu, X.: Fully Convolutional networks for surface defect inspection in industrial environment. In: Liu, M., Chen, H., Vincze, M. (eds.) ICVS 2017. LNCS, vol. 10528, pp. 417–426. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68345-4_37
  4. Long, J., Shelhamer, E., Darrell, T.: Fully convolutional networks for semantic segmentation. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 3431–3440 (2015)
  5. Goodfellow, I., et al.: Generative adversarial nets. In: Advances in Neural Information Processing Systems (2014)
  6. Yeh, R., et al.: Semantic image inpainting with perceptual and contextual losses (2016). arXiv preprint arXiv:1607.07539
  7. Schlegl, T., Seeböck, P., Waldstein, Sebastian M., Schmidt-Erfurth, U., Langs, G.: Unsupervised anomaly detection with generative adversarial networks to guide marker discovery. In: Niethammer, M., Styner, M., Aylward, S., Zhu, H., Oguz, I., Yap, P.-T., Shen, D. (eds.) IPMI 2017. LNCS, vol. 10265, pp. 146–157. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-59050-9_12
  8. Isola, P., et al.: Image-to-image translation with conditional adversarial networks (2017). arXiv preprint
  9. Ronneberger, O., Fischer, P., Brox, T.: U-Net: convolutional networks for biomedical image segmentation. In: Navab, N., Hornegger, J., Wells, W.M., Frangi, A.F. (eds.) MICCAI 2015. LNCS, vol. 9351, pp. 234–241. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-24574-4_28
  10. Ojala, T., Pietikäinen, M., Harwood, D.: A comparative study of texture measures with classification based on featured distributions. Pattern Recogn. 29(1), 51–596 (1996)
  11. Radford, A., Luke M., Chintala, S.: Unsupervised representation learning with deep convolutional generative adversarial networks (2015). arXiv preprint arXiv:1511.06434
  12. HCI: Weakly Supervised Learning for Industrial Optical Inspection. https://hci.iwr.uniheidelberg.de/node/3616. Accessed 13 Nov 2017
  13. Ngan, H.Y.T., Pang, G.K.H., Yung, N.H.C.: Automated fabric defect detection—a review. Image Vis. Comput. 29(7), 442–458 (2011)

#courses
本文总字数 4980
本文阅读量
本站访客量

↪ reply by email