小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种基于正向样本的表面缺陷检测算法,基本思路是将自动编码器和GAN网络结合起来形成一种特别的图像复原网络,输入带有缺陷的图像,输出去除缺陷的复原图像,然后分别计算复原图像和缺陷图像LBP特征值,再求二者之间的差值,差值大的部分即为缺陷位置。然而本文说的是只依赖正向样本(无缺陷样本),哪里来的缺陷图像呢?这就需要通过人工的方式(PS)制作一部分缺陷图像出来了,算法的处理流程如下图所示
由于带有缺陷的样本图像很难收集,因此作者提出通过人工方式给正常图像样本增添缺陷的方式来合成缺陷图像,图中
C
(
x
∼
∣
x
)
C(x^{\sim}|x)
C(x∼∣x)就表示一个缺陷图像生成器,关于具体的缺陷生成方法作者并没有具体介绍。将合成的缺陷图像
x
∼
x^{\sim}
x∼输入到一个编码解码器
G
G
G中,得到复原图像
y
y
y。复原图像
y
y
y一方面要与原始图像
x
x
x进行比较计算L1损失,另一方面又要和原始图像一起输入到判别器
D
D
D中,来判断当前输入的图像是真实的原始图像,还是经过自动编码器复原的图像。这个过程借鉴了GAN对抗生成的思路,使得生成器和辨别器之间相互对抗训练,最终达到一个平衡状态。
测试阶段就比较简单了,将缺陷图像
x
x
x输入到训练好的自动编码器中得到复原图像
y
y
y,然后分别计算缺陷图像和复原图像的LBP特征值,最后比较二者之间的差别,差别越大的地方就越有可能是缺陷区域。
实现过程
网络结构
GAN的部分采用了DCGAN网络的结构,但因为普通GAN网络生成器只包含由一个低维向量复原成图像的部分(即解码器DE的部分),因此需要参考自动编码器的结构为其增加一个编码器EN模块。
损失函数
损失函数包含两个部分重构损失
L
c
o
n
s
t
L_{const}
Lconst和对抗生成损失
L
G
A
N
L_{GAN}
LGAN
其中重构损失计算方法为
对抗生成损失计算方法为
创新点
- 提出一种新的缺陷检测思路,先将缺陷图像复原,再计算复原图像和缺陷图像之间的差异
- 将自动编码器和GAN网络相结合,通过重构损失和对抗生成损失来训练一个图像复原网络
算法评价
本文提出的基于正样本的缺陷检测思路还是非常新颖有趣的,思路也不难理解,就结果来看也比较不错。但这里存在两个问题:1.缺陷生成的难题,本文其实避开了这部分内容的讨论,如何生成接近于真实缺陷形式的缺陷图像其实是不容易的,如果单纯依赖人工PS的方式其实也是工作量巨大,而通过一些简单的图像处理方式做上去的缺陷,又不够相似。2.复杂无规律背景的图像复原问题,作者研究的都是纺织物缺陷,其特点是纹理特征比较固定和相似,可以根据附近区域的纹理变化情况预测缺陷处的纹理,进而实现图像的复原。但对于许多背景变化复杂且无规律的图像(如印刷品)这种图像复原能力是否能满足要求呢?
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。