邓 勇
(广东工业大学,广东 广州 510000)
随着工业不断发展,机器视觉在缺陷检测中扮演着越来越重要的角色。近年,产品缺陷检测已经发展到各个领域,电子产品表面[1]、瓷瓦表面[2]。随着视觉任务复杂性增加,对视觉检测的挑战也随之增加。产品表面缺陷不仅会影响产品后续使用,而且在某种程度上可能会产生不可预估的安全隐患。所以产品表面检测意义重大。
电机作为工业、交通、国防及日常生活中不可或缺的重要设备,其下游行业包含了几乎全部国民经济基础行业。换向器作为电机核心器件之一,也伴随着电机行业发展日益增长[3]。由于换向器产品缺陷多样性以及背景复杂性,很难收集一个标注数据集来覆盖缺陷所有可能存在的情况。因此,在处理模型从未训练过的产品缺陷时,预先训练好的检测模型通常表现不好。收集满足模型训练需求的带标记样本,在实际工业应用场景中是一个非常困难的任务。
文中,提出一种基于贝叶斯生成对抗网络的换向器缺陷检测方法。该方法能够学习现有缺陷分布,训练生成模型学习产品表面缺陷模式和分布。第一阶段利用贝叶斯生成对抗网络生成大量缺陷样本,对数据进行增强。第二阶段利用分割网络与分类网络结合的方式进行检测,首先,分割网络输出二值图对像素进行预测,然后分类网络利用分割网络输出作为注意力掩码,输出图片级预测结果。
近年来,人们研究了各种表面缺陷检测算法。Li等人[4]针对玻璃产品,基于主成分分析检测系统被提出。检测玻璃产品划痕、裂纹、变形、边缘破碎等表面缺陷。随着学习算法的进步,机器学习算法也开始进入缺陷检测领域。基于传统机器学习算法的检测方法一般分为特征提取和训练模型两个部分,通过学习输入图像表征缺陷的特征向量,从而建立分类模型。比如决策树,SVM等。尽管以上传统检测算法在各个表面缺陷检测场景下取得不错的效果,但传统算法需要认为设定规则提取特征,针对不同的特征需要以不同的算法提取特征,在不同的生产环境下,比如光照不同或者背景复杂程度增加时,人为设计的算法规则不适当前的任务。可能需要进行参数的微调,或者重新设计算法。通过手工或浅层的学习技术识别表面缺陷,对复杂的情况没有足够的辨别力。这些方法通常应用于特定的场景,缺乏适应性和鲁棒性。近十年,基于卷积神经网络(CNN)检测系统在表面缺陷检测领域得到大量应用。Wang等人[5]提出基于卷积神经网络的产品质量控制模型,网络模型能够适用不同应用场景。Yang等人[6]提出基于正样本深度学习检测系统,采用卷积神经网络对不同高斯金字塔图像块进行重构,并将每个通道生成重构残差映射合并生成最终的检测结果。以上方法虽然在各个领域均取得不错的效果,但是基于大数据驱动的深度学习无法在少样本情况下达到性能最佳点,而且大量数据的收集与标注需要耗费大量人工资源与专家资源。故在本文中采用生成对抗网络对样本进行增强,提升检测模型泛化能力,增强模型鲁棒性。
生成对抗网络近年来越来越多被训练来捕捉图片丰富地隐性分布。贝叶斯生成对抗网络[7]采用随机梯度哈密顿蒙特卡罗来边缘化生成器和鉴别器网络权值,通过探索生成器参数后验分布,避免模式崩塌、产生可解释性、多样性的样本。网络如图左所示。具体地说,我们给出样本x服从分布pdata(x),给出一个参数为ωg的生成器网络G(z,ωg)将噪音分布z-p(z)转化为真实样本分布近似的生成样本。我们用另外一组参数ωd表示的判别器网络D(x,ωd)鉴别生成样本与真实样本。
(1)
(2)
假设我们从生成器先验分布p(ωg/αg)中采样权重ωg。在这个权值采样条件下初始化一个神经网络。然后我们对服从z~p(z)的白噪音进行采样。通过生成器网络G(zi;ωg)将白噪音转换为我们所需样本,即缺陷样本。鉴别器也在这个权值采样条件下形成一个特定神经网络,更新网络权重ωd,输出生成样本是来自于真实样本的概率。公式(1)表明,假设鉴别器输出较高概率,对于后验概率p(ωg/z,ωd)将在ωg采样附近增加。对于鉴别器权重ωd的后验,如公式(2)所示,构成鉴别器损失,将来自真实的样本与生成的样本鉴别为不同的类别。
生成对抗网络在数据增强领域达到不错效果,DCGAN、DAGAN等。贝叶斯生成对抗网络在数据样本拟合能力上表现出色于其他生成对抗网络。其次提出生成器权重后验函数,参数不同设置对应于数据不同生成假设,与标准生成对抗网络用一个解(类似最大似然解)不同的是,贝叶斯生成对抗网络保留整个ωg后验分布,使得生成的缺陷样本更具有多样性与真实性,提升模型泛化能力。
缺陷检测模块由3部分构成,图1右所示;特征提取网络、分割网络、分类网络第一部分为特征提取层,该层从提取原图特征转化为高级特征表示。第二部分为分割网络,融合共享层所提取特征,测缺陷位置信息,对图片每个像素是否属于缺陷概率映射到0~1。第三部分为分类网络。该层接受特征提取层特征表示和分割网络输出热图作为输入,预测结果0~1的值预测输入图片是否存在缺陷概率。缺陷检测网络不仅预测输入图片中是否存在缺陷,而且对于缺陷位置也提供可解释性。
图1 缺陷检测框架
缺陷检测网络首先利用卷积层对输入进行特征提取,将原图转化为高层特征。卷积层使用步长为1的3×3卷积核。池化层核尺寸为2×2,最大池化层步长设置为2,将特征图下采样,以减少模型中参数量,提高模型泛化能力。输出128通道的特征图,尺寸大小为输入图像1/8。缺陷检测网络第二部分为缺陷分割网络,将共享层输出特征表示作为输入,皆由卷积层构建而成,前三层卷积通道数分别32,64和128,卷积核大小分别为3×3,最后一个卷积核为5×5,以获取更大感受野。最后一层卷积层卷积核大小为1×1,个数为1,即输出为单通道特征图。利用Sigmoid激活函数将特征图值域映射到0~1,即缺陷像素概率值。分割网络输出分割热图不仅对缺陷位置进行可视化解释,更是能够将分割输出作为注意力机制掩码融合入分类网络,使分类网络更大程度上关注缺陷位置。缺陷检测网络最后一部分为缺陷分类网络,分类网络将分割网络输出特征图作为注意力掩码与特征提取网络输出进行相乘后累加,使得网络更加关注缺陷区域,分类网络有4个卷积层,每个卷积层卷积核大小为3×3卷积层后都有批量归一化和非线性ReLU层。最大池化层步长为2。我们将分类网络输出作为全连接层输入。通过Sigmoid函数输出表征整幅图片中存在缺陷的概率。
实验硬件条件为:RTX2070S,基于tensorflow深度学习框架。对于贝叶斯生成对抗网络,训练超参数中,批量大小为32,学习率为0.005,采用随机梯度下降算法迭代5 000次。生成大量缺陷图片作为下阶段缺陷检测网络的输入。如图2所示,a,b为采集的工业换向器真实数据,图c,d为贝叶斯生成对抗网络生成的缺陷样本,如图可知,缺陷特征主要由缺陷几何形状以及缺陷纹理特征组成,本文通过对缺陷进行贝叶斯生成对抗网络建模,鉴别器以强监督模式监督生成器尽可能生成服从真实分布的样本,图c,d中不仅仅缺陷背景分布发生了改变,缺陷几何形状也通过建模具备多样性,使得生成缺陷样本不仅符合真实性,更具备多样性。
(a) (b)
基于大数据驱动的深度学习在卷积神经网络下学习缺陷像素分布,本文通过将生成样本dataset1与原始采集训练样本dataset0进行混合生成新数据dataset2,利用dataset2对缺陷检测网络进行微调,模型可以学习到更广泛的数据域,使得网络更加具备泛化能力,提升精度。
笔者提出一种基于贝叶斯生成对抗网络的换向器缺陷检测方法。利用贝叶斯生成对抗网络对高维数据拟合能力,生成具备多样性 与真实性的缺陷样本。其次,我们检测模块采用分割网络与分类网络结合的方式,分割网络输出分割热图作为注意力掩码融入分类网络,使得网络更加关注缺陷位置。