0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于金字塔特征融合与全局上下文注意模块实现完全自动缺陷检测

3D视觉工坊 来源:3D视觉工坊 作者:3D视觉工坊 2022-10-09 15:09 次阅读

1、摘 要

缺陷检测工业产品处理中的一项重要任务。当前,已经有很多基于计算机视觉技术的检测方法成功应用于工业领域并取得了较好的检测结果。然而,受限于类间表面缺陷的内在复杂性,使得实现完全自动的缺陷检测仍然面临巨大挑战。虽然,类间缺陷包含相似的部分,但是缺陷的表面仍然存在较大的不同。为了解决这个问题,论文提出了一种金字塔特征融合与全局上下文注意力网络的逐像素表面缺陷检测方法,并命名为PGA-Net。在这个框架中,首先从骨干网络提取多尺度特征。然后,使用金字塔特征融合模块,通过一些有效的跳连接操作将5个不同分辨率的特征进行融合。最后,再将全局上下文注意模块应用于相邻分辨率的融合特征,这使得有效信息从低分辨率融合特征图传播到高分辨率融合特征图。另外,在框架中还加入边界细化模块,细化缺陷边界,提高预测结果。实验结果证明,所提方法在联合平均交点和平均像素精度方面优于对比方法。

2、引 言

质量是制造过程中的一个重要组成部分。为了满足日益增长的需求,必须在确保产品生产质量的同时提高生产效率。其中,表面缺陷检测是控制工业产品质量的关键步骤。由于缺陷的复杂性,自动缺陷检测任务面临三大挑战:1)低对比度:在工业生产中,粉尘的存在和光照的变化导致图像中缺陷与背景的对比度低。如图1(a)所示,标签红色方框中的缺陷几乎不可见;2)类内差异:与其他应用不同,在工业生产中,缺陷的形状是不规则的。如图1(b)所示,同类缺陷的不同尺度差异较大;3)类间相似性:由于生产过程的不确定性,一些不同类型的缺陷差异很小。如图1(c)所示,不同类型的缺陷(在黄色和蓝色框中),它们在纹理和灰度信息上非常相似。

图1. 工业缺陷检测面临的挑战 (a)低对比度缺陷; (b)类内较大差异缺陷; (c)类间相似缺陷

得益于计算机视觉技术的快速发展,上述问题已经逐渐得到处理。例如,曲率滤波和高斯混合模型被应用到钢轨表面缺陷检测。基于模板匹配的方法可应用于钢板表面缺陷检测。近年来,其它基于手工特征的方法也被用于工业应用(如太阳能电池组件、金属、钢铁)的缺陷检测,并取得了良好的效果。然而,这些方法都是研究人员利用人为手工设定的特征去实现缺陷检测,而这种手工设计的特征并具有普遍性。

目前,基于CNN的检测方法已广泛应用于工业缺陷检测,通过设计不同的网络模型来完成缺陷检测。例如,针对低对比度场景,模型需要有效地利用目标的特征来区分目标与背景的差异。此外,在CNN不同层的特征对目标的敏感性也不同。低层特征具有较高的分辨率,可以生成清晰、详细的边界,但上下文信息较少。高层特征具有较抽象的语义信息,擅长进行类别分类,但形状和位置信息较弱。大多数深度学习方法主要集中在从网络深层提取高层特征。由于缺乏从浅层提取的低层特征(如边界、纹理和灰度信息),导致预测效果不佳。为此,论文利用骨干网各阶段最后一个卷积层提取的特征,包括低级粗特征和高级语义特征。对于类内差异,模型需要对各种变化(如形状、比例和纹理)保持不变形。目前,大多数基于全卷积网络的方法都是通过扩大感受野来覆盖整个缺陷,以实现对物体变化的感知。例如,通过在骨干网络中引入扩张卷积可以增强模型对特征变化的感知,但是这种方法会导致网格伪影。又如,采用不同池核的金字塔池化模块对骨干网不同尺度下提取的特征进行融合,但池化会造成信息的丢失。针对这些问题,论文提出一种金字塔特征融合模块,该模块利用多尺度卷积(不同大小的核)对上次卷积后的特征图进行加权,从而获得不同阶段的上下文信息,然后将这些提取的相同分辨率的特征在每个阶段进行融合。这样既避免了网格化的伪影和信息的缺失,又充分提取了上下文信息。同时,使用与卷积核宽度相同大小的条带不会带来较大的计算量。对于类间相似性,模型还需要实现对图像中不同类别对象的整体感知(包括它们之间的联系和区别),实现每个像素所需分类的正确位置。为此,研究人员将高层特征直接上采样,然后与低层特征融合,但是计算效率较低。或者,通过获取多个上下文信息,并对特征进行从高层到低级的聚合,以细化特征细节,但会产生大量的参数。为了解决这个问题,论文在相邻分辨率融合图中加入全局上下文关注模块,从低分辨率融合图中提取全局上下文信息,然后对高分辨率融合图进行加权,细化像素种类的空间位置。这样既保证了信息的有效传播又不增加计算量。

3、方法设计

A.模型概述

在本文中,表面缺陷检测被当做是逐像素问题,所提网络模型结构包括五个主要部分:1)多级特征提取;2)金字塔特征融合模块;3)全局上下文注意力模块;4)边界细化块;5)深度监督,网络模型框架如图2所示。

图2 PGA-Net网络模型框架

首先,将原始图像和对应真实值输入到网络,通过特征提取网络的卷积池化操作提取多级特征。然后,将这些特征输入到金字塔特征融合模块中。通过卷积和反卷积(不同核和步长)操作调整维数,使融合后的特征映射具有相同的维数。同时,通过一些密集的跳连接,将这些特征融合为5个不同分辨率大小的融合特征。接着,全局上下文注意力网络被嵌入到这5个分辨率特征中以高效的实现低分率到高分辨率的信息传播。最后,融合这些预测特征并产生最终的预测结果。

B.多级特征提取模块(FEM)

深度特征提取模块(FEM)建立在已用ImageNet预训练的VGG-16模型之上,以为缺陷检测获得更多的多层次特征。FEM包括五个块,这些块提取了从浅层到深层的各种外观信息。除最后一个块外,每个块由卷积层、校正线性单元激活函数(RELU)、批归一化和最大池层组成。表1展示了FEM的细节结构。

C.金字塔特征融合模块(PFF)

在深度CNN中,上下文信息被使用的程度大致取决于感受野的大小。对于缺陷的检测,有些缺陷是类内差异,需要较大的感受野才能实现对图像中缺陷的全面感知。为此,论文提出了一种金字塔特征融合(PFF)模块,如图所示3。

图3 金字塔特征融合模块 首先,给与一个尺寸为WxH的输入图像I和通过FEM模块生成的不同阶段的多级特征。PFF模块获取每个阶段的最后一层特征:conv1_2、conv2_2、conv3_3、conv4_3、conv5_3。这五个特征可以用一个特征集F来表示:F=(f1,f2, f3, f4, f5),其中f1表示conv1_2特征,以此类推。其次,通过多尺度感受野加权F生成多上下文信息,并将该信息同时映射到五个不同分辨率的特征映射中去:Tn=(W/2n, H/2n)。对于f1(分辨率R1=T0),模块用一堆卷积层将其降采样到五种分辨率,它们的输出特征映射为Yi1可表示:

其中,σ表示RELU激活,dow-scale(·)表示通过Wk×k(核大小为kxk,步幅s=k)向下降采样特征映射f1,b表示偏差,*表示卷积。对于f5(分辨率R5=T4),模块将其上采样到为5种分辨率,输出特征映射Yi5,如下所示:

upsample(·;φ )是指在训练过程中学习到的参数φ的反卷积。对于分辨率介于T0和T4之间的f2、f3和f4,该模型使用降采样和上采样相结合的方法将它们调整为五种分辨率,输出特征映射为Yil:

最后,将这些输出图中尺寸相同的特征进行融合,生成最终的五个融合特征图:

通过这种方式,该模型便可以有效地获取多尺度的上下文信息,从CNN的不同阶段,实现整体对象感知。

D.全局上下文关注模块(GCA)

由PFF生成的不同分辨率的最终融合特征图,包含了各种视觉上下文信息,并且每一个都可以用于预测结果。一种方法是利用双线性上样将这些融合特征放大到与原始图像相同的维数,然后通过卷积层改变它们的通道来预测分割结果。然而,这些方法的缺点是:1)缺乏不同分辨率预测之间的内在联系信息,2)直接使用双线性大核上样本可能会导致一些细节信息的缺失,参数不可训练。为了解决上述问题,论文提出了一个全局注意力模块,如图4所示。

图4 全局注意力模块 该模块包括两个阶段:第一阶段: 采用3×3卷积调整高分辨率和低分辨率融合特征图的通道维度,然后通过全局池化到低分辨率得到全局上下文,再与高分辨率特征图相乘,其输出特征表示为fs1。第二阶段,将低分辨率融合特征图上采样到与高分辨率融合特征图相同的维数,然后与fs1相加。

与简单地将上采样的粗分辨率特征映射添加到细分辨率特征映射中相比,所提出的GCA模块可以利用不同分辨率的融合特征映射来提高上下文获取和相应像素化定位的效率。

E.边界细化块

论文加入了边界细化块以进一步提高检测精度,图4(b)展示了边界细化残差结构,其输出为细化得分图。

F.深度监督

在充分利用多级特征的同时,参数的数量也明显增加,这可能会增加优化的难度。为了解决这个问题,论文在模型中加入了深度监督,目的是简化训练过程,加速网络模型的优化。每个分辨率的PFF模块生成的融合特征图可以单独进行裂纹预测。将每像素损失(交叉熵)添加到上述五个分辨率融合的特征中。损失函数描述为:

其中TiPi分别表示真实值和预测概率。

4、实验分析

论文采用NEU-DET缺陷数据集,DAGM 2007 缺陷数据集,MT缺陷数据集,以及Road 缺陷数据集进行测试。这里以NEU-DET和DAGM2007数据集的测试结果为例,展示论文所提PGA-Net网络的预测效果。

1) NEU-SEG缺陷的检测结果:在图5展示了PGA-Net和其他方法对带钢表面缺陷图像的视觉比较。在低对比度(4-5行)和类内差异(7-8行)等具有挑战性的缺陷检测情况下, PGA-Net算法的性能优于其他方法,预测结果与真实值非常接近。通过表1所示的定量比较,PGA-Net在评价指标方面优于其他比较方法:mIOU值提高到82.15%。

图5. NEU-SEG数据集检测结果对比。红色、绿色和黄色分别代表夹杂物(In)、斑块(Pa)和划痕(Sc)缺陷。(a)原始图像; (b)真实值; (c)SegNet; (d) PSPNet; (e) DeepLab; (f) RefineNet; (g) FCN; (h) PGA-Net

表1 NEU-SEG缺陷的检测结果定量比较

2) DAGM2007数据集结果:图6展示了DAGM 2007部分缺陷图像可视化检测结果。该数据集的主要检测挑战是背景和缺陷之间的低对比度(1-3行)。可以发现,SegNet遗漏或错误地检测到某些缺陷。对于一些大面积缺陷,PSPNet和RefineNet不能精确定位缺陷。FCN和DeepLab放大了一些低对比度缺陷区域。相反, PGA-Net的性能更接近实际情况。表2所示展示了对各对比方法的定量比较,可以发现PGA-Net将性能提高到74.78%。

图6. DAGM2007数据集检测结果对比。(a)原始图像; (b)真实值; (c)SegNet; (d) FCN; (e) DeepLab; (f) PSPNet; (g) RefineNet; (h) PGA-Net

表2 DAGM2007数据集结果定量比较

消融实验

为了评价所提出的方法,论文进行了一系列消融实验,包括降采样类型、融合特征分辨率的影响以及对检测结果的边界细化。所有这些消融实验的评价都是基于NEU-SEG数据集。

1)降采样类型的消融研究:对于PFF模块中的降采样结构,论文使用了大核卷积取代最大池。这是因为,卷积降在低了特征维数的同时仍然保留了特征信息,而最大池可能会导致大量特征信息的丢失。此外,使用较大的内核不会带来太大的计算负担,如表3所示,性能由79.89%提高到80.46%。 表3不同设置下论文方法的详细性能

2)融合特征分辨率的影响:当通过卷积和反卷积(具有大的核尺寸和步长)调整这些特征分辨率时,FEM中的一些融合特征结构(空间和语义)很容易被破坏,这与目标融合特征图的分辨率有很大差异。为了验证融合特征分辨率的效果,论文额外评估了来自PFF的五个融合特征图(Dec-1s、Dec-2s、Dec-4s、Dec-8s、Dec-16s),相应的性能如3所示。从表中可以看出,随着分辨率的增加,模型性能逐渐变好,这证明了论文方法选择分辨率进行特征图融合的必要性。

3)边界细化对检测结果的消融:在提出的方法中加入了边界细化块,以提高检测结果的性能。如表3所示,边界细化块的mIOU值为82.15%,证明了BR方法的有效性。

4)与其他多级特征融合方法的比较:为了验证PFF模块的优越性,对UN、DLA、DSS等多级特征融合方法进行了比较。论文用这些方法中的多级融合模块取代了所提方法中的PFF模块。所有模块都基于同一个骨干网VGG-16网络。在NEU-SEG数据集上评估这些模块的预测结果。论文方法和其他方法的直观比较显示如图7所示,量化评价如表4所示。可以看出,与多级特征融合模块相比,论文所提的PFF取得了更好的性能。

图7 NEU-Seg 数据集上的检测结果比较。 (a) 原始图像; (b)真实值; (c)UN; (d) DLA; (e) DSS; (f) 本文方法 表4不同多尺度特征融合模块的详细性能

5、结论

论文提出了一种用于表面缺陷检测的自动检测网络。在该框架中,通过特征提取模块从缺陷图像中提取多级特征。并引入金字塔特征融合模块,将多级特征融合成不同的分辨率。全局上下文注意力模块使有效信息从低分辨率融合特征图传播到高分辨率融合特征图。此外,在框架中增加了边界细化块,对目标边界预测进行细化。该框架中引入了深度监督,以加快网络优化的进程。实验表明,该方法在四种表面缺陷数据集的检测上取得了较大的进步。但由于数据集数量和多样性的限制,在图中出现了一些缺陷缺失和错误检测的情况。虽然检测的速度可以达到41-49fps/s,在实际检测过程中可以接受,并且不损害用户体验。但是还需要进一步提高,以满足实时性和高准确度的要求。另外,在实验过程中需要对训练样本和测试样本进行标注,耗时较长。在未来的研究中,计划寻求一种有效的数据增强策略,结合论文方法来提高检测性能,并优化框架来加速提出的方法以满足实时性和高精度的要求。此外,在今后的工作中将采用半监督机制。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6651

    浏览量

    84556
  • 分辨率
    +关注

    关注

    2

    文章

    989

    浏览量

    41565

原文标题:PGA-Net:基于金字塔特征融合与全局上下文注意力网络的自动表面缺陷检测

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCB工程师金字塔分级标准

    PCB工程师金字塔分级标准
    发表于 08-06 13:21

    自制for循环打印金字塔

    自制for循环打印金字塔
    发表于 09-18 08:46

    关于进程上下文、中断上下文及原子上下文的一些概念理解

    ; ; 一、为什么会有上下文这种概念 内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块
    发表于 09-06 09:58

    进程上下文与中断上下文的理解

    硬件发生中断时会触发中断信号请求,请求系统处理中断,执行中断服务子程序。五.中断上下文代码中注意事项运行于进程上下文的内核代码是可抢占的,但中断上下文则会一直运行至结束,不会被抢占。所
    发表于 12-11 19:45

    JavaScript的执行上下文

    JavaScript执行上下文之执行上下文
    发表于 05-29 16:12

    如何禁用自动上下文保存

    你好,我想问一下,有什么方法可以禁用自动上下文保存吗?我的同事准备实现基于中断的多任务代码,但是这个特性破坏了堆栈的结构。设备是PIC16F1824,谢谢。
    发表于 03-31 10:13

    进程上下文/中断上下文及原子上下文的概念

    为什么会有上下文这种概念进程上下文/中断上下文及原子上下文的概念
    发表于 01-13 07:17

    基于交互上下文的预测方法

    传统的上下文预测是在单用户的上下文基础上进行的,忽视了实际普适计算环境中由于用户交互活动导致的上下文变化因素。为了合理、有效地解决上述局限性问题,该文提出基
    发表于 10-04 14:08 7次下载

    基于Pocket PC的上下文菜单实现

    介绍了基于 Pocket PC 中的点按操作概念, 论述了在Pocket PC 中上下文菜单的实现原理及方法, 并给出了基于MFC 下的Windows CE 应用程序实现上下文菜单的步
    发表于 07-25 18:26 17次下载

    基于Pocket PC的上下文菜单实现

    本文介绍了基于 Pocket PC 中的“点按”操作概念 论述了在 Pocket PC 中上下文菜单的实现原理及方法 并给出了基于 MFC 下的 Windows CE 应用程序实现上下文
    发表于 04-18 10:46 0次下载

    基于上下文相似度的分解推荐算法

    针对移动服务推荐中用户上下文环境复杂多变和数据稀疏性问题,提出一种基于移动用户上下文相似度的张量分解推荐算法-UCS-TF。该算法组合用户间的多维上下文相似度和上下文相似可信度,建立用
    发表于 11-27 17:42 0次下载

    基于低秩重检测的多特征时空上下文的视觉跟踪

    后无法进行初始化.针对时空上下文算法存在的弱点。本文提出了一个基于低秩重检测的多特征时空上下文跟踪方法.首先利用多特征对时空
    发表于 12-15 15:01 0次下载

    一种金字塔注意力网络,用于处理图像语义分割问题

    基于以上观察,我们提出了特征金字塔注意模块 (FPA),该模块能够融合来自 U 型网络 (如
    的头像 发表于 06-05 09:21 1.1w次阅读
    一种<b class='flag-5'>金字塔</b><b class='flag-5'>注意</b>力网络,用于处理图像语义分割问题

    基于全局特征金字塔网络的信息融合方法

    特征不平衡问题是影响神经网络检测效率的关键因素。针对 Mask r-CNN中的特征不平衡问题,提出种基于全局特征
    发表于 03-24 14:51 13次下载
    基于<b class='flag-5'>全局</b><b class='flag-5'>特征</b><b class='flag-5'>金字塔</b>网络的信息<b class='flag-5'>融合</b>方法

    如何分析Linux CPU上下文切换问题

    在我的上一篇文章:《探讨 Linux CPU 的上下文切换》中,我谈到了 CPU 上下文切换的工作原理。快速回顾一下,CPU 上下文切换是保证 Linux 系统正常运行的核心功能。可分为进程
    的头像 发表于 05-05 20:11 1634次阅读