贾可 赵锞 曾欣科 贾力 李孝杰
摘 要:该文提出一种基于卷积神经网络的模板重建方法,采用残差学习方式逐级精细化得到重建结果,通过产品图像与模板的比对完成对工业品的外观质量检测。在模板重建过程中,结合自注意力机制的关联度检索与编码融合方式,在保持细节还原效果的同时大幅减少了计算量;并提出域适应对抗学习方法,避免重建过程对缺陷信息的还原,显著控制了检测漏报率。实验结果表明了该方法的有效性与较强适应能力。
关键词:卷积神经网络;模板重建;缺陷检测;自注意力;域适应对抗学习
中图分类号:TP391.4 文獻标识码:A 文章编号:2096-4706(2020)18-0001-06
Abstract:This paper proposes a template reconstruction method based on convolutional neural network,which uses residual learning method to refine the reconstruction results step by step,and completes the appearance quality inspection of industrial products by comparing product images with templates. In the process of template reconstruction,adopting the self-attention mechanism via relevance retrieval and codes fusion method greatly cuts down the calculation while maintaining the advantage of detail restoration. A domain-adaptive adversarial learning strategy is further proposed to avoid the restoration of defect information in the reconstruction procedure,and significantly control the failure rate of defect detection. The experimental results prove the effectiveness and adaptability of this approach.
Keywords:convolutional neural network;template reconstruction;defect detection;self-attention;domain-adaptive adversarial learning
0 引 言
工业品的质量检测是生产与维保过程中的一个关键环节,不仅直接影响到推向市场的合格产品的挑拣与品控,同时也是保证产品在使用过程中满足有限损耗、保障安全生产运行的重要手段。随着社会人力成本的提高与技术水平的发展,基于机器视觉方法的自动检测手段在产品质量检测中发挥出日益重要的作用,因其智能高效、成本低廉、稳定可靠等优点,在越来越多的领域逐步替代了传统的人工检测工艺。为了更好地适应日益提高的工业质量检测高精度与低误报现实需求,本文提出了一种结合自注意力机制与域适应对抗学习思想的模板重建方法,具有良好的表现和较高的适应能力。
1 相关研究
按照所采用计算机视觉技术的不同,机器自动检测技术大致可分为基于目标检测与基于模板比对的两类方法。
随着以深度学习为代表的人工智能技术近年来的飞速发展,基于目标检测算法的缺陷提取与质量控制方法引起了众多研究者与产业人员的关注。基于学术界提出的一系列目标检测算法模型如Faster R-CNN[1]、YOLO[2]、CenterNet[3]等,不少研究将其应用到具体的产品质量检测场景中[4,5],以待检测的产品外观缺陷作为感兴趣的目标区域,算法可对缺陷进行分类与定位。这类方法一般依赖于对带有缺陷的残次产品图像的收集与标注,用监督式方法训练相应目标检测模型;这种方式虽然在检测精度上具有一定的优势,但在实际生产过程中,残次品的数量本身相对较少,并且一定时间的数据收集并不能保证获取到足够数量与质量的缺陷数据从而充分涵盖到缺陷外观与特征的完整分布,因此在具体应用中,尤其是在“工业4.0”强调小批次、个性化生产的背景下,此类方法因采集与标注成本较高、迭代较慢而稍显笨重。
所以,基于模板比对的缺陷检测方法又重新引起学界与业界的重视,并在深度学习、人工智能发展的背景下得以完善和提高[6,7]。模板比对方法利用一张或多张不带缺陷的产品图像作为模板,将待检产品图像与模板进行比较,找出其中不一致的地方并标识为缺陷,该方法能够提供较好的质量检测灵活性。但由于产品之间的个体差异,模板比对方法更容易出现将非缺陷区域识别为缺陷的误报问题,为了降低检测误报率,往往需要放宽对图像差异的评判标准,但这又可能引起不能检出缺陷的漏报问题。这两种问题在实际应用过程中相互交织与制约,使得合适的差异评判标准难以抉择,限制了模板比对方法的现实应用效果。
在汲取两种机器自动检测技术经验的基础上,本文以弥补两类方法的弱点为目标,提出了一种以模板比对为基础,综合其他技术手段进行提升与改进的质量检测方法,该方法的主要创新点:
(1)通过模板重建的方式更好地适应产品个体差异,降低检测误报率,并在模板重建过程中结合自注意力机制,在保持模板重建的细节还原效果的同时大幅减少了计算量;
(2)针对模板重建中可能引入的漏报问题,提出了域适应对抗学习方法,显著控制了检测漏报率;
(3)通过生产与维保环节的两个具体案例和实验,证明了该方法的有效性与适应性。
在本文以下部分,第2节中详细介绍了本文提出的缺陷检测方法,第3节通过具体实验以及结果分析对本文方法的有效性进行了验证,在第4节对本文工作进行了总结与展望。
2 本文方法
为了降低缺陷检测的误报率,本文先利用待检测图像重建出一幅同等尺寸的模板图像,由于模板是针对每一幅待检测图像独立重建的,带有其个体特征细节,因此能够有效减少比较差异;为了防止在模板重建过程中,缺陷区域也被重建还原,导致漏检的风险,本文在重建模型训练过程中,引入域适应性损失函数与对抗学习机制,使得模型在保留图像个体细节的同时,对于缺陷区域能够重建出不带缺陷的正常效果。在重建出检测模板图像后,将待检测图像与之进行差分对比,在采用传统图像处理的阈值过滤、连通域分析[8]等常规技术手段后,本文方法取得了良好的效果。
2.1 基于自注意力的模板重建
模板重建方法在工业检测的应用场景下具有天然的优势,一方面重建模型的训练可以仅利用正常产品数据,在一般生产过程中该数据是非常容易获取的;另一方面重建模型一般可以采用自监督学习方式进行训练,无需进行额外的人工标注,因此实施成本也很低廉。
图像重建是机器视觉领域的一个经典问题,在深度学习框架下,如AutoEncoder[9]、VAE[10]、GAN[11]等一系列生成式方法均可用于图像重建;同时图像重建可被视作“像素-对-像素”的图像变换问题,因此适用于这一问题的如图像分割网络结构(DeconvNet[12]、U-Net[13]等)也同样可用于图像重建。本文的模板重建主框架就以U-Net结构为基础,并主要在下采样特征提取、上采样图像重建与自注意力残差补偿三个方面进行改进,所提出的模板重建网络结构如图1所示。
2.1.1 下采样特征提取
针对模板重建问题,本文没有采用直接通过特征计算还原图像像素值的方式,而是借鉴残差学习[14]的思想,将图像下采样后再进行上采样,得到包含图像低频成分的粗重建结果,然后再通过特征计算图像细节的高频补偿,将两者相加得到精重建结果。这样有利于降低重建问题的函数拟合难度,从而在更少参数量与计算量的条件下更好地恢复图像细节,减少比较差异从而降低误报率。因此,在U-Net结构左翼的下采样过程中,包含了图像下采样与特征下采样两个数据流,其中图像下采样采取双线性插值方式,每次将图像缩小到上一级的1/2尺寸。为了在减少模型的整体计算量的同时保持良好特征提取效果,每一级特征均由上级下采样特征与本级提取特征两部分构成,下采样特征采用3×3尺寸、步长(Stride)为2的卷积计算从上一级特征缩小一半的尺寸;本级特征则从相同尺寸的下采样图像中采用3×3卷积提取。这两部分特征的通道数相同,可拼接为一体的特征张量(Tensor)。在本文的实验中,如图1所示均进行了4次下采样,将原图最小缩放到1/16的尺寸。
2.1.2 上采样图像重建
在U-Net结构右翼的上采样过程中,本文先将下一级图像采取最近邻插值方式(采用双线性插值等上采样方法的效果亦无明显差异)放大到2倍大小作为粗重建,然后将残差补偿计算得到的高频细节与之相加得到精重建结果。重复使用该上采样过程,最终得到与待检测图像尺寸一致的重建模板。在模型训练过程中,本文采用自监督方法,约束重建图像与原图的像素差异尽可能小,并定义重建损失函数:
其中,I与I′分别为原图与重建图像在对应像素位置的色彩灰度值(Intensity)。
2.1.3 自注意力残差补偿
如图1灰色箭头所示,在传统U-Net的残差补偿快捷连接中,一般采用卷积计算的方式从特征计算出高频细节的补偿量,这就要求特征中必须包含能够完成高频细节重建的充足信息,因此对特征数量以及特征提取所反映的函数拟合过程提出了较高的要求。围绕降低模型参数量与计算量的目标,本文借鉴自注意力机制[15]的算法思想,对残差补偿的计算过程进行了优化。
具体来说,对于每一级的残差补偿连接,建立一个q× d的二维键(Key)矩阵K,以及一个d×12的二维值(Value)矩阵V,可以将值矩阵V看作一个码本(Codebook),其中包含了d个编码,每个编码具有3×2×2=12个值。键矩阵与值矩阵中的变量均作为网络参数,通过训练优化求解。从该级的特征出发,首先通过一个3×3的卷积计算将其转换为具有q通道的查询(Query)张量Q;其次,将查询张量与键矩阵内积归一化得到权重(Weight)张量W=softmax(QTK),权重张量中每一位置的d个值反映了这一位置的查询特征与相应d个键特征的关联度;然后将权重张量与值矩阵内积((WV)T)即加权融合码本中的d个编码得到具有12通道的张量。假设其维度为12×h×w(高为h,宽为w),则利用“亚像素卷积[16]”即像素重排可将其转换为3×2h×2w的残差张量R,将其与上采样放大后的彩色图像相加,这样的上采样计算方式可以有效消除如转置卷积等上采样计算中存在的棋盘格伪影效应。
经过对比实验,在码本数量d=4的情况下,采用自注意力残差补偿方式就已经能够获得等同传统U-Net结构的残差补偿方式重建质量的结果,而查询特征的长度一般选取在q∈[logd,d]的范围,在对比实验中一般直接取为q=d。因此,采用自注意力残差补偿方式能够有效降低模型的計算量。若采用传统U-Net的残差补偿方式,假设某级特征的维度为c×h×w,采用3×3卷积计算将其转换为残差细节所需的乘加计算(MAC)量为k×k×c×12×w×h,其中k为卷积核尺寸3,以工业应用场景下经过裁剪的特征通道典型数量c=32为例,则为3 456×w×h;而采用上述自注意力残差补偿方式,其乘加计算量:
该计算量约为对比方法的1/3,因此自注意力残差补偿方式在有效节省了模型计算量的同时取得了与对比方法等同的重建效果。
2.2 域适应对抗学习
在采用模板重建方法进行缺陷检测的过程中,模型重建能力的增强,也增大了重建出待检测图像中的缺陷区域,从而极大地降低了缺陷检出率的风险。为了解决这一问题,本文提出域适应对抗学习方法。对抗学习方法在生成式对抗网络GAN领域被广泛使用,可用作数据分布拟合的重要约束手段,本文对该方法加以改进,以避免对图像缺陷的重建还原。为了达到这一目的,本文的域适应对抗学习是一种监督式学习方法,因此在训练图片存在缺陷的情况下可以进行缺陷区域与类型的图像分割标注。
首先,本文将重建模板的U-Net网络作为生成器(Gen-erator),并利用一个ResNet18[14]的深度残差网络作为分类器(Discriminator),该分类器以原图或重建图像作为输入。模板重建问题与图像分类问题不同,更依赖于图像的局部而非全局信息,因此本文在ResNet18中并未下采样直至1×1的特征空间尺度,而是仅保留到conv4_x阶段,并在此之后直接连接一个1×1卷积层变换为缺陷分类所需特征通道数。在最后得到的分类特征图中,每一个特征位置均对应了原图中一个感受野区域(Receptive Field)。利用图像分割标注结果,若该区域中不存在缺陷,则其分类目标(Ground-truth)为0,否则以缺陷类别号作为其分类目标,这样的分类结果可以看作一个具有较粗粒度的缺陷分割热力图[17]。
其次,按照对抗学习方法可将网络训练过程划分为辨别式阶段与生成式阶段两步。在辨别式阶段,将原图传入分类器进行计算,反传梯度并更新分类器参数,在辨别式阶段训练分类器时本文采用Focal Loss[18]来缓解类别不均衡问题,并在分类器参数初始化时使其初始分类结果均为0(无缺陷区域显著多于缺陷区域);因此辨别式训练阶段的损失函数:
其中,t为该位置的分类目标ground-truth,pt为分类正确的概率,∝t為该类别的平衡权重即该类样本数量的倒数(各类别整体归一化),超参数γ在本文实验中依据参考文献[18]推荐设为2.0。
在生成式阶段,首先前向计算U-Net生成器得到重建图像,将其传入分类器,在得到的分类结果中将所有位置的目标推向类别0(即无缺陷),此时可采用一般的交叉熵(Cross-entropy),则生成式训练阶段的分类器损失函数:
同时,修正重建损失函数(1)使其忽略缺陷区域的重建误差:
将分类器损失(3)与重建损失(4)联合进行多任务训练,得到总的生成式损失函数:
其中,λ为平衡因子,在本文实验中直接取作1.0。然后对U-Net与分类器均反传梯度,但仅更新U-Net的网络参数,而保持分类器参数不变。通过域适应对抗学习,U-Net网络最终在重建模板的过程中,对于缺陷区域能够产生出类似于正常区域的重建结果,从而保障对缺陷的稳定检出。
2.3 模板对比与缺陷检测
在训练得到模板重建模型并应用模型对待检测图像重建出模板后,即可采用传统机器视觉技术手段进行缺陷检测。一般来说,首先可将待检测图像与重建模板进行绝对值差分,将灰度绝对差大于一定阈值的像素标记为1,否则为0,从而得到二值化图像;再在该图像上运用连通域分析方法,过滤掉面积很小的噪声点,从而得到最终的缺陷检测结果。在缺陷检出区域上,还可以进一步应用图像分类的方法来对缺陷类型进行归类判定。
3 实验结果分析
3.1 动车线绝缘子状态巡检
首先,我们在一个现有的数据集上测试本文算法的效果。该数据集来源于铁道线晚间巡检动车拍摄的沿线电路立桩,原图为4 400×6 600像素尺寸的灰度图像,采用YOLO算法位出其中高压线绝缘子后,经过旋转矫正与缩放裁剪为256×512像素尺寸。数据集共包含500幅图片,全部带有绝缘子破损的缺陷,人工标注出576处破损缺陷,随机选取其中300幅图片作为训练样本,其余200幅留作测试。采用本文前述方法训练模板重建模型,在PyTorch训练框架下,优化器选用AdamW[19],初始学习率设置为1e-3,在训练过程中线性递减至1e-6,采用了随机缩放、随机裁剪、明暗变化的数据增强方式,在100epoch后训练结束。然后利用该模型对200幅测试图片进行检测,选择48作为灰度绝对差的过滤阈值,连通域分析阈值为50像素,抽取了三个图例如图2所示,其中图2(a)~图2(c)为测试原图,图2(d)~图2(f)为采用本文方法重建出的模板图像,图2(g)~图2(i)为检测结果。由于原始图像拍摄时经常带有电桩的背景信息,且受型号、角度等因素影响具有较大差异不利于计算机处理,因此该数据集中每幅图像均有绝缘子区域的mask蒙版信息,用以过滤背景干扰。在模板重建模型训练过程中也利用了该蒙版信息,可以仅考虑绝缘子区域的重建误差,所以图2中重建模板的背景区域会有较强噪声,我们在进行缺陷检测时也利用蒙版过滤了背景噪声,仅对绝缘子区域进行处理。
最终,对于测试集中的200幅图片通过本文方法均成功检出缺陷。在测试集中人工标注有234个缺陷区域,本文方法检出251处缺陷,多报出的缺陷经过人工检查,主要为两种情况:其一如图2(h)所示,同一处缺陷经连通域分析后被分为了多个区域重复报出;其二如图2(i)图中左上角白点处,原图在该位置确实存在一定瑕疵,但标注人员认为其未达到缺陷标准。本文方法在动车线绝缘子状态巡检数据集中展现出优秀的效果。
3.2 口服液瓶盖质量检测
上一实验中一方面绝缘子缺损整体来说面积较大,较为显著,易于检出,另一方面该数据集全部为缺陷图像,难以定量分析本文算法在实际应用中的效果,因此我们进一步在实际案例中验证本文方法。本实验数据来源于某口服液厂家在生产线封测环节的图像采集,目的是对瓶盖及封装质量进行外观检测,原图为1 942×2 590像素尺寸的彩色图像,由于流水线生产夹具位置相对固定,因此直接从原图中固定区域截取瓶盖顶视区域并缩放为480×480像素尺寸。数据集共包含39 000张图片,委托厂家质检人员进行标注,其中前1 000张采取纯人工标注方式,之后随着本文模型迭代,逐渐过渡为机器初步标注、人工审核修正的半自动标注方式;最终审查出缺陷产品图片861张,并将缺陷进一步区分为破损、油污、飞边、夹丝等四种类型。在39 000张图片收集整理完毕后,随机选取了7 000幅作为本次实验训练数据,其余32 000幅留作测试,测试集中有/无缺陷图像各为638和31 362幅。模型训练优化器与学习率设置与上一实验相同,根据数据特性选择了随机角度旋转、色彩抖动的数据增强方式,在60epoch后训练结束。测试阶段灰度差分阈值设作25,连通域阈值取为20像素,抽取两个检测图例如图3所示,其中图3(a)~图3(b)为测试原图,图3(c)~图3(d)为重建模板,图3(e)~图3(f)为检测结果。
我们随后对实验结果进行了定量分析,统计结果如表1所示。在统计过程中,如果一个人工标注的缺陷区域,经过算法检测后有至少1个像素点被标为缺陷,则计作成功检出,否则视为漏检;如果一张人工检查未标注缺陷的图像,经过算法检测报出缺陷,则视为误检,否则计作检出。从统计结果中可见,本文方法在该应用场景中总体能够达到约97.72%的缺陷检出率,可成功挑拣出绝大部分缺陷产品;同时该检测方法仅有不足0.24%的误检率,即算法报出缺陷后人工复核确认无误,该概率极为有限,能够有效节省生产过程中因算法误报而浪费的人力成本。其中对于夹丝类型缺陷的检出率偏低,主要因为丝状缺陷较细,因此模板比对后检出区域容易断开而不连续,进而导致其被连通域分析算法过滤。将神经网络模型迁移到OpenVINO框架(https://github.com/openvinotoolkit/openvino)下进行部署,在Intel i5-8400(2.8 GHz,6核6线程)CPU上模板重建前向推理时间约28 ms,能够满足流水线的生产节拍实时性要求。
最后,针对检出的缺陷,我们进一步开展了对缺陷分类的验证。首先取得检出缺陷最大连通区域的外接矩形框,并以长边的1.5倍长度将其对称扩展成正方形区域,将原图与重建模板同时截取该区域并缩放至224×224像素尺寸,两者拼接为6通道的数据,输入一个ResNet18网络行分类。缺陷分类结果的混淆矩阵如表2所示,从数据中可以观察到,卷积神经网络分类模型基本能够胜任缺陷分类的任务,分类正确率在实际生产使用过程中尚可接受,其中飞边与夹丝两种类型的缺陷因在顶视角的2D投影方式下形态较为类似导致更容易区分错误,这也与人工的实际操作感受基本相符。
4 结 论
本文提出了一種基于模板重建与比对的工业品外观缺陷检测方法。在模板重建的过程中,通过结合U-Net图像变换结构与自注意力机制,从而在有效降低模型计算复杂度的基础上保持了重建模板中对图像细节的高度还原,降低了缺陷检测的误报率;同时,本文进一步采用域适应对抗学习方法,解决了模板重建可能保留缺陷信息的问题,从而显著控制了检测算法的漏报率。一系列验证实验均证明了本文方法的有效性与适应性。
但在实验过程中,仍然存在一定的问题,例如对于细小的缺陷,可能因后续传统检测方式的不足而导致遗漏,这些问题有待未来进一步深入研究与探索。
参考文献:
[1] REN S Q,HE K M,GIRSHICK R,et al. Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[2] REDMON J,DIVVALA S,GIRSHICK R,et al. You Only Look Once:Unified,Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR 2016),New York:Curran Associates,Inc.,2016:779-788.
[3] ZHOU X Y,DEQUAN WANG D Q,KR?HENB?HL P.Objects as Points [J/OL].arXiv:1904.07850 [cs.CV].(2019-08-25).https://arxiv.org/abs/1904.07850v1.
[4] 顾佳晨,高雷,刘路璐.基于深度学习的目标检测算法在冷轧表面缺陷检测中的应用 [J].冶金自动化,2019,43(6):19-22+27.
[5] 岳慧慧,白瑞林.基于改进YOLOv3的木结缺陷检测方法研究 [J].自动化仪表,2020,41(3):29-35.
[6] 刘村,李元祥,周拥军,等.基于卷积神经网络的视频图像超分辨率重建方法 [J].计算机应用研究,2019,36(4):1256-1260+1274.
[7] AKAGI M,NAKAMURA Y,HIGAKI T,et al.深度学习重建提高了腹部超高分辨力CT的影像质量 [J].国际医学放射学杂志,2020,43(1):120-121.
[8] SZELISKI R.计算机视觉——算法与应用 [M].艾海舟,兴军亮,译.北京:清华大学出版社,2012.
[9] MASCI J,MEIER U,CIRE?AN D,et al. Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction [C]//Artificial Neural Networksand Machine Learning-ICANN,Switzerland:Springer,2011:52-59.
[10] KINGMA D P,WELLING M.Auto-Encoding Variational Bayes [J/OL].arXiv:1312.6114 [stat.ML].(2014-05-01).http://export.arxiv.org/abs/1312.6114.
[11] GOODFELLOW I J,POUGET-ABADIE J,MIRZA M,et al.Generative Adversarial Networks [J/OL].arXiv:1406.2661 [stat.ML].(2014-06-10).https://export.arxiv.org/abs/1406.2661.
[12] NOH H,HONG S,HAN B.Learning Deconvolution Network for Semantic Segmentation [C]//2015 IEEE International Conference on Computer Vision(ICCV),New York:Curran Associates,Inc.,2016:1520-1528
[13] RONNEBERGER O,FISCHER P,BROX T. U-Net:Convolutional Networks for Biomedical Image Segmentation [C]//Medical Image Computing and Computer-Assisted Intervention – MICCAI 2015,Switzerland:Springer,2015:234-241
[14] HE K M,ZHANG X Y,REN S Q. Deep Residual Learning for Image Recognition [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR 2016),New York:Curran Associates,Inc.,2016:770-778.
[15] VASWANI A,SHAZEER N,PARMAR N,et al. Attention is all you need [C]//Advances in Neural Information Processing Systems 30:31st Annual Conference on Neural Information Processing Systems(NIPS 2017).New York:Curran Associates,Inc.,2017:5998-6008.
[16] SHI W Z,CABALLERO J,HUSZ?R F. Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR 2016),New York:Curran Associates,Inc.,2017:1874-1883
[17] SHELHAMER E,LONG J,DARRELL T. Fully Convolutional Networks for Semantic Segmentation [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(4):640-651.
[18] LIN T,GOYAL P,GIRSHICK R.Focal Loss for Dense Object Detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2020,42(2):318-327.
[19] LOSHCHILOV I,HUTTER F. Fixing Weight Decay Regularization in Adam [J/OL]. arXiv:1711.05101 [cs.LG].(2019-01-04).https://arxiv.org/abs/1711.05101v1.
作者簡介:贾可(1983—),男,汉族,四川绵阳人,副教授,博士,研究方向:机器学习、图像处理;赵锞(1996—),男,汉族,四川南充人,硕士研究生,研究方向:人工智能;曾欣科(1997—),男,汉族,四川达州人,硕士研究生,研究方向:人工智能;贾力(1996—),男,汉族,四川巴中人,硕士研究生,研究方向:人工智能;通讯作者:李孝杰(1981—),女,汉族,山东菏泽人,副教授,博士,研究方向:人工智能、机器学习。