核心思想
本文提出一种多尺度卷积去噪自动编码器网络(MSCDAE)实现了对布匹纺织物缺陷的无监督检测,算法的思路其实并不复杂,作者使用正样本对卷积自动编码器(CAE)进行训练,使得其具备提取织物特征并重构织物图像的能力。当带有缺陷的样本输入到网络中时,由于缺陷处的特征与正常织物的特征不同,因此CAE并不能够重构缺陷处的图像,重构后的图像缺陷处将将重构后的图像与原始图像做差,缺陷处的差异会明显大于正常区域的差异,这就能够实现对缺陷的检测了。整个训练和测试过程如下图所示
本文提出的算法称为MSCDAE与普通的CAE相比有两处不同,第一它包含多个尺度(Multi-scale),每个样本都被下采样两次加上原图得到三个尺度级别的图像,第二它具备去噪(Denoising)能力,样本在进入CAE之前要先增加一定的随即噪声。
下面具体介绍一下本算法的训练过程,首先原始正样本图像要进行图像处理过程,该过程包含:光照归一化,高斯金字塔下采样和噪声污染。光照归一化的目的是为了消除光照变化对于缺陷检测的影响,本文采用了韦伯局部描述算子(Weber Local Descriptor,WLD)来消除光照的影响,计算过程如下
其中
A
=
{
−
1
,
0
,
1
}
A=\left \{-1,0,1\right \}
A={−1,0,1}。经过光照归一化的图像
I
′
I'
I′要进行高斯下采样,该过程如下
其中
S
↓
S^{\downarrow}
S↓表示下采样操作,
G
(
)
G()
G()表示高斯卷积(即卷积核满足高斯分布),
n
n
n表示下采样级别。对于每个尺度级别的图像,都将增加椒盐噪声,处理方法就是按照一定的概率将图像中的像素替换成纯黑或纯白的像素点,该过程如下
然后对原始图像进行采样得到许多图块作为训练集,将训练图像输入到网络中对网络进行训练,损失函数如下
经过训练的网络具备了重构输入图像的能力,将带有缺陷的图像输入到训练好的网络就能得到重构后的图像,而缺陷处由于特征不同所以重构结果与输入原图会有一定的差异,计算重构图像与原图之间的绝对值差,然后将差值大于一定阈值的像素点判断为缺陷像素。这里就牵涉到阈值选择的问题,本文提出一种根据图块进行自适应调整的阈值设定方法
ζ
(
i
)
\zeta^{(i)}
ζ(i)表示第
i
i
i个尺度等级下的重构图像集合,
N
p
N_p
Np表示采样图块的数目,阈值
T
(
i
)
T^{(i)}
T(i)计算方法如下
μ
\mu
μ表示重构图块
ζ
(
i
)
\zeta^{(i)}
ζ(i)的均值,
σ
\sigma
σ表示
ζ
(
i
)
\zeta^{(i)}
ζ(i)的方差,
γ
\gamma
γ表示调整参数。
最后将三个尺度下得到的缺陷分割图进行融合,首先对相邻两个尺度的分割图求“与”运算,消除掉许多无效的缺陷点
然后再对“与”运算结果求“或”运算得到最终的预测结果
实现过程
网络结构
CDAE的结构并没有具体介绍
损失函数
包含一个重构损失和一个正则化项
创新点
- 提出一种无监督的缺陷检测算法,利用CAE的图像重构能力,获取重构后的缺陷图像
- 设计了一种多尺度的CDAE结构,能够再多个尺度下进行特征提取与图像重构
算法评价
本文提出的算法再布匹纺织物缺陷检测数据集上取得了不错的结果,与之前传统的缺陷检测算法相比效果有明显的提升,本文最大的优势在于训练时不需要缺陷样本,只需要正向样本就能够对网络进行训练.这更符合实际工业使用需求,因为在生产过程中很难采集到大量的缺陷样本用于监督训练.但本文同样存在一些问题,一方面本文的方法只适用于布匹纺织物这一类纹理特征明显且稳定的样本,在金属表面缺陷数据集上进行测试时,其效果就大打折扣了.另一方面本文只实现了缺陷区域的分割,但不能对缺陷形式进行分类.
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。