论文阅读笔记《Supervised machine learning based surface inspection by synthetizing artificial defects》
核心思想
本文提出一种人工合成缺陷的方法,可用于表面缺陷检测的数据集扩充。为了解决缺陷检测领域中,有缺陷样本数量较少,无法对深度学习网络进行充分训练的问题,本文提出了一种人工合成缺陷的方法。整个合成流程主要包含四个步骤:1.生成骨架,2.纹理生成,3.对无缺陷图像的修改,4.缺陷可视化程度的分析。
首先,采用一种随机游走的方式来生成一个二维的缺陷图像骨架或者说轮廓,从图中的一个随机坐标点出发,以
s
s
s为步长,沿随机的方向移动
l
l
l步,就得到一个轮廓形状。具体的计算过程如下
其中
x
(
i
)
,
y
(
i
)
x^{(i)},y^{(i)}
x(i),y(i)表示第
i
i
i步移动时的坐标值,
φ
(
i
)
\varphi^{(i)}
φ(i)表示第
i
i
i步移动时的极角度数,
φ
(
i
)
\varphi^{(i)}
φ(i)是由上一步移动的极角度数
φ
(
i
−
1
)
\varphi^{(i-1)}
φ(i−1),加上一个变化量
Δ
φ
(
i
)
\Delta\varphi^{(i)}
Δφ(i),再加上一个随机的偏差
θ
(
i
)
\theta^{(i)}
θ(i)得到的。其中对于变化量
Δ
φ
(
i
)
\Delta\varphi^{(i)}
Δφ(i)还带有一个系数
X
φ
(
i
)
X_{\varphi}^{(i)}
Xφ(i),这个系数满足参数为
p
θ
p_{\theta}
pθ的伯努利分布,他表示
X
φ
(
i
)
X_{\varphi}^{(i)}
Xφ(i)取1的概率为
p
θ
p_{\theta}
pθ,
X
φ
(
i
)
X_{\varphi}^{(i)}
Xφ(i)取0的概率为
1
−
p
θ
1-p_{\theta}
1−pθ,也就是说只有
p
θ
p_{\theta}
pθ的概率会应用变化量
Δ
φ
(
i
)
\Delta\varphi^{(i)}
Δφ(i)。偏差
θ
(
i
)
\theta^{(i)}
θ(i)的更新方法也与
φ
(
i
)
\varphi^{(i)}
φ(i)类似。变化量
Δ
φ
(
i
)
\Delta\varphi^{(i)}
Δφ(i)和
Δ
θ
(
i
)
\Delta\theta^{(i)}
Δθ(i)都是从一定范围内均匀随机采样得到的。初始点
x
0
,
y
0
x^0,y^0
x0,y0是从
[
a
,
d
x
−
a
−
1
]
[a,d_x-a-1]
[a,dx−a−1]和
[
a
,
d
y
−
a
−
1
]
[a,d_y-a-1]
[a,dy−a−1]中随机采样得到的,其中
a
a
a表示采集点与图像边缘之间的最小距离,
d
x
,
d
y
d_x,d_y
dx,dy表示图像的尺寸。最后计算得到的坐标值经过取整操作得到图中的整数坐标。
第二步是纹理生成,每个像素点的灰度值计算方法如下
其中
τ
μ
\tau_{\mu}
τμ表示缺陷纹理的对比度均值,
τ
(
i
)
\tau^{(i)}
τ(i)是均匀随机采样的数值,对纹理图像进行模糊处理,使其变化更加平滑,缺陷纹理更加自然。
第三步是对无缺陷图块的修改。为了让生成的合成缺陷表现出明显的个体结构,并且不严格遵循正常图像的灰度级别,需要根据无缺陷图块的灰度级别对缺陷图像的灰度级进行截断。这里作者的描述很繁琐,我也没有完全看明白,我理解的意思是就是缺陷区域的灰度值要与背景区域的灰度值有明显的区分。
第四步是对缺陷的可视化程度进行分析,简单说就是看看合成上去的缺陷是否足够明显能够被识别出来。评价方法就是用增加缺陷的图像减去无缺陷图像,然后计算差值图像的平方和。
最后利用合成的缺陷图像对一个卷积神经网络进行训练,输出每个图块内包含缺陷的概率和不含缺陷的概率。
创新点
- 提出一种缺陷合成的方法,用于缺陷检测网络的训练
算法评价
本文提出的合成缺陷的想法,的确是缺陷检测问题的一个重要解决途径,毕竟相对于无监督、半监督、自监督、主动学习等等一系列方法,有监督学习的效果和表现还是最好的,如果能够自动合成大量缺陷样本,将会给缺陷检测问题的解决带来极大的助力。可这其中有个重要的问题,怎么让合成的图像与真实的缺陷图像足够相似,但又不完全相同。本文的方法对于文中提到的任务而言是合适的,但对于其他各种类型的缺陷检测任务而言,似乎也不一定能够适用。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。