Article history:
2020年1月26日收到,2020年6月17日修订,2020年7月31日接受,2020年8月1日网络上线

Keywords:
Weakly supervised learning ,Automated surface inspection,Defect detection,Knowledge distillation

1.Abstract:
本文提出了一种称为类感知对象检测网络(CADN)的弱监督学习方法,仅接受图像标签注释训练,执行图像分类和缺陷定位。通过在分类pipeline中提取category-aware的空间信息实现弱监督。CADN可以配备较轻或较大的backbone作为特征提取器,从而获得更好的实时性能或更高的准确性。为了同时解决这两个相互矛盾的目标,采用知识蒸馏策略来迫使较轻的CADN的学习特征模仿较大的CADN的学习特征,在保持高实时性能的同时提高了更轻的CADN的精度。

2.Main contributions:
1.提出了一种新颖的分类感知转换池模块(Category-aware Conv-Pooling module),该模块可以通过弱图像标签注释以提取空间信息。 并采用最新的HRNet获取高分辨率特征图,以提高定位精度。
2.采用知识蒸馏(Knowledge distillation)策略来迫使学生CADN的特征模仿老师CADN的特征,这有助于提高准确性和速度。
3.经验证,使用提出的CADN方法可以实现弱监督的缺陷检测并获得竞争结果。 CADN的性能完全可以满足工业要求。

3.The CADN framework:

CADN网络的pipeline由backbone和下面的Category-aware卷积、Category-aware池化模块组成。

3.1 Backbone

通过使用HRNet作为我们框架的骨干,可以获得高分辨率的特征图,以提高缺陷定位的准确性。 HRNet在第一阶段从高分辨率分支开始。 在随后的每个阶段中,将新分支与当前分支中最低分辨率的1/2并行地添加到当前分支中。 由于网络具有更多的阶段,它将具有更多具有不同解决方案的并行分支,并且来自前一阶段的分辨率都保留在以后的阶段。
(关于HRNet的详细介绍见Deep High-Resolution Representation Learning for Human Pose Estimation - CVPR2019)

3.2 Category-aware Conv-Pooling module
特征图中空间信息的提取和存储是WSL目标检测的关键环节。CADN提出了基于 Category-aware Conv-Pooling module完成这项任务。该模块由两个组件组成,the Category-aware Conv module φc 和 the Category-aware Pooling Pc.该模块将空间feature map 转化为classification vector以便网络可以在图像标注下学习,特别是类别感知的空间信息被提取和保存在中间特征图中(也被称之为分类感知特征图)。

3.2.1 Category-aware Conv module
Category-aware Conv module通过coarse-to-fine的方法提取和保存空间信息,coarse指每个类别的缺陷被分配到m通道的特征图中来提取空间信息,

K是通道的类别数,Fcat可以被认为是category-aware features。
“fine”则表示将每个类别的空间信息转化为单通道feature map,可将其视为category-aware heatmap:

其中φc2k是K组卷积φc2中的第k个,只属于第k个特征的缺陷。
3.2.2. Category-aware Pooling
category-aware pooling使用全局平均池化将Hcat转换成分类向量Y∈Rk。

3.3 Superpixels post-processing
为了提高检测结果的准确性,我们采用superpixels算法修改检测框的边界。 每个图像的超像素区域由(SEEDS: Superpixels extracted via energy-driven sampling)中的超像素算法生成。 对于检测边界框的每一侧,选择位于此侧且与该框具有最大相交的超像素区域。 然后,该框的这一侧扩展到超像素区域的边界。

4.Knowledge distillation for CADN
在工业应用中,精度和速度都至关重要。较大的网络可以获得较高的精度,较小的网络可以运行较快,但代价是精度较低。与之前尝试在两个冲突目标之间做出更好的权衡的方法不同,我们采用知识精馏策略来克服这一困境。在学生模型的训练过程中,知识蒸馏迫使输出一个更快的CADN(以较小的主干作为学生)来模仿一个高性能的CADN(以较大的主干作为教师)的输出。该策略在保证网络实时性的同时,提高了网络的精度。

4.1 Teacher and student models
The student model将HRNet-18作为特征提取的基础。 为了保持teacher model与student model之间的功能一致性,选择HRNet-32作为teacher model的backbone。 如前所述,HRNet-32与HRNet-18具有相同的体系结构,但规模更大。

4.2. Transfer module
在确定了教师和学生模型之后,关键的下一步是两个模型之间的知识表示和知识对齐。 知识表示有两种选择:特征图或热图。
两个原因让我们选择热图作为缺陷知识,首先,由于通道数量巨大,特征图上的蒸馏将在计算上消耗过多的资源。 其次,类别感知热图包括更明确的空间信息,可以帮助学生模型更直接地学习它们。

如图所示,执行知识蒸馏的transfer module包括两个组件,the ROIAlign 和 the convolution adapter,在蒸馏过程中为了减小计算量提高精度,只考虑缺陷区域即可,ROIAlign操作提取教师模型和“教师模型缺陷对应的学生模型”热图区域。(The ROIAlign operation is adopted to extract the area of heatmaps of the teacher and the student models corresponding to defects detected by the techer model)

4.3. Mimicking pipeline

预先需要一个训练有素的高性能CADN-W32网络来充当教师模型。在整个训练过程中,只有学生模型的参数被更新,而教师模型的参数是固定的。第一阶段,在图像标签的监督下对学生模型CADNW18进行训练。因此,第二阶段是知识精馏的微调过程,定义了不同的损失函数。选取均方误差(MSE)函数作为蒸馏量损失。

5.Experiments
5.1. Datasets and metrics
所提出的CADN网络在两个数据集上进行了实验验证。 我们自己构建的第一个数据集包括数千张手机保护玻璃(MPCG)图像。 第二个是开源缺陷数据集DAGM(includes 1000 non-defect images and 150 images with labelled defects.)。
如通常所建议的那样,我们使用指标Accuracy和F-measure来评估缺陷图像分类的性能,并使用平均精度mAP来评估缺陷定位的性能。 分类准确度是通过将正确分类图像的数量除以所有测试图像的数量来计算的。 即使是直观的指标,当出现不平衡的类分布时(例如数据集DAGM),准确性也不敏感,并且无法从评估方法的性能中得出真正的意义。因此采用F-measure。
准确率和召回率定义为:

评价分类性能的F -measure可定义为:

在对比实验中,设置参数为1,我们得到了F1-measure,这是获得方法分类性能的客观评价的附加度量。

5.2. Implementation details
CADN由PyTorch实现,在4块Nvidia GeForce GTX 1080 gpu上,使用Ubuntu 16.04操作系统。在训练过程中,使用了SGD优化器,学习率为0.02,batch size为16。我们使用的weight decay
为0.0001,momentum o为0.9。学习率在第22个epoch和第24个epoch分别下降到0.002和0.0002。迭代训练在26个epoch后终止。设置训练图像的大小为224×224。参数m在Category-aware Conv池被设置为16。对于知识蒸馏,则将equilibrium设为0.5
5.3. Ablation studies
5.3.1. Ablation study for high-resolution feature representation
在这个实验中,我们通过为CADN配置不同的backbone来评估高分辨率特征表示的有效性:VGG-11, ResNet-50和HRNet-W32。其中,VGG-11和ResNet-50是视觉识别任务常用的骨架,它们的特征图对输入图像的分辨率都是1/32。为了公平起见,不采用知识蒸馏,以输入尺寸为224×224计算backbone的参数(Params)和FLOPs,反映backbone的复杂性。如表3所述,HRNetW32在MPGCdataset上的三个主干中获得了最高的精度和mAP得分,而它的Params和gflop远低于VGG-11,可与ResNet-50相媲美。由表3可知,在不增加内存空间和计算代价的情况下,HRNet-W32的性能最好由此证明了高分辨率特征表示的优越性。

5.3.2. Ablation study for Category-aware Conv-Pooling module
Category-aware Conv-Pooling module是CADN的核心,该模块用于提取前景对象的空间信息,为了验证该方法的有效性,我们在四种不同的WSL配置下进行了下面的对比实验。
(1) The WSL detection component in CAM.
它利用全连接层的权值来获得特征图的加权和,从而生成类别感知热图。
(2) Only using Category-aware Conv module.
每个类别被分配m通道特征图,该特征图后面是一个没有类别感知池的专用CAM组件
(3) Only using Category-aware Pooling
仅使用Category-aware Pooling,即用1×1卷积层代替Category-aware Conv模块,将feature map传输到Category-aware heatmap.
(4) The proposedCategory-aware Conv-Pooling module
如表4所述,(4)在不同WSL配置的MPGC数据集上取得了最佳性能,证明了所提出的分类感知对流池模块的有效性。

5.3.3. Ablation study for knowledge distillation
知识蒸馏是提高轻型backbone性能的重要环节,采用以下不同的蒸馏策略进行了对比实验。
(1)CADN-W18 without knowledge distillation
(2)Performing knowledge distillation on feature maps in CADN-W18.
(3)Performing knowledge distillation on heatmaps without transfermodule in CADN-W18
(4)Using ROIAlign without convolutional adapter
(5)CADN-W18 with the proposed knowledge distillation strategy

实验结果如表5所示。如表所示,在教师模型CADN-W32的监督下,策略(e)可以帮助(a)将emap提高1.3个点(从65.9增加到67.2),达到68.5的mAP。其他策略(b) ~ (d)对mAP的增幅均小于1.3。验证了所提知识蒸馏策略的优越性。如表3所示,HRNet-W18的gflop和Params分别比HRNet-W32低52%和48%。同时,HRNet-W18的mAP比HRNet-W32低2.6。通过使用精馏策略,mAP gapi减少到1.3 (67.2 vs 68.5)。这意味着,只需略微降低mAP(1.3),就可以节省近一半所需的内存空间和计算成本。这对工业应用具有重要意义。因此,知识蒸馏使CADN更加实用。
5.4. Comparison with the-state-of-the-art methods
为了进一步证明,本文提出的CADN方法与以往的常规检测方法和WSL方法在两个数据集上进行了比较。表6报告了MPCG测试集上的分类和检测性能结果。CADN-W32得到的分类精度98.1, F1−measure为98.3,大大优于其他弱监督(WS)方法,与常规监督(RS)方法具有可比性。

在WSL方法中,所有CADNs的mAP得分都远高于CAM,CADN-W32的地图得分最高,为68.5分,与分析结果一致。
知识蒸馏策略帮助CADN-W18在不增加内存空间和计算量的情况下,将准确率提高1.7和1.3。我们认为这一改进对CADN-W18在工业环境中的应用具有重要意义。
值得注意的是,这些常规检测器最初是为自然图像检测而设计的,而本文关注的是工业图像检测。我们可以看出这两种图像是有差异的。自然图像前景物体边界清晰,工业图像缺陷边界模糊,难以准确识别。为此,我们评估了较低的IoU阈值对地图计算的影响。

表8显示了不同方法在DAGM测试集上的结果,CADN-W32和R-CNN的mAP相差了7.7。结果与在MPCG数据集上进行的实验结果一致。需要指出的是,在这样一个包含454张缺陷图像和2996张正常图像的不平衡测试集上,召回率对于工业应用更为重要。如表8所示,CADN-W32的召回率比FR-CNN更高,这进一步验证了我们的方法。总之,在两个数据集上的实验表明,所提出的CADN是有效的,可以适应不同的工业应用。

6. Conclusions
在本文中,我们专注于表面检测任务,为此提出了一种名为CADN的弱监督学习方法。在图像标签监督下训练的CADN可以同时实现图像分类和缺陷定位。
采用知识蒸馏策略可提高轻量级CADN的精度,同时保持其较高的实时性能。 MPCG数据集是通过收集实际工业生产的图像而构建的,并与开源缺陷数据集DAGM一起使用,以验证所提出的CADN方法。
比较和消融实验充分证明了CADN的有效性和优越性。根据我们的工作,应该继续改进轻量级CADN。目前,较轻的CADN的性能已通过知识蒸馏策略得到改善,但仍落后于较大的CADN。进一步提高更轻的CADN的检测精度使其接近甚至超过较大的CADN的检测精度将是有意义的。此外,将CADN扩展到更通用的应用场景也将是一个有前途的研究主题。

弱监督论文解读:CADN- 用于表面缺陷检测的基于弱监督学习的分类感知对象检测网络相关推荐

  1. AAAI 2020论文解读:商汤科技提出新弱监督目标检测框架

    来源 | Object Instance Mining for WeaklySupervised Object Detection 编辑 | Carol 出品 | AI科技大本营(ID:rgznai1 ...

  2. Nature论文解读:用于改善加权生物网络信噪比的网络增强方法

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. RSE2020/云检测:基于弱监督深度学习的高分辨率遥感图像精确云检测

    RSE2020/云检测:Accurate cloud detection in high-resolution remote sensing imagery by weakly supervised ...

  4. 弱监督论文阅读:BoxLevelSet算法笔记

    标题:Box-Supervised Instance Segmentation with Level Set Evolution 会议:ECCV2022 论文地址:https://link.sprin ...

  5. CVPR2017精彩论文解读:用于生物医学图像分析的精细调节卷积神经网络

    雷锋网(公众号:雷锋网)AI科技评论按:虽然CVPR 2017已经落下帷幕,但对精彩论文的解读还在继续.下文是宜远智能的首席科学家刘凯对此次大会收录的<用于生物医学图像分析的精细调节卷积神经网络 ...

  6. SCI论文解读复现【NO.1】基于Transformer-YOLOv5的侧扫声纳图像水下海洋目标实时检测

    此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家 ...

  7. 微软论文解读:用于视觉对话的多步双重注意力模型

    作者丨张琨 学校丨中国科学技术大学博士生 研究方向丨自然语言处理 论文动机 当前 Visual dialog 模型尽管已经取得了令人印象深刻的表现,但当问题涉及到图像的特定区域或者比较细节的对话片段时 ...

  8. 【论文解读】用于白内障分级/分类的机器学习技术

    Machine Intelligence Research 全球范围内,白内障是造成视力受损和失明的主要原因.多年来,研究人员在开发最先进的白内障自动分类和分级机器学习技术方面取得了重大进展,旨在早期 ...

  9. 论文解读:FastSAM | Fast Segment Anything | 基于yolov8-seg实现 比SAM快50倍

    发表时间:2023.06.21 论文地址:http://export.arxiv.org/pdf/2306.12156 项目地址:https://github.com/CASIA-IVA-Lab/Fa ...

  10. SCI论文解读复现【NO.2】基于注意机制的YOLOv5改进算法在行星图像中的应用(代码已复现)

    此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的SC ...

最新文章

  1. jdk环境变量配置极速版
  2. 三种途径助物联网改变业务 省心省时省成本
  3. [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)热门干货
  4. oracle适配器接口,Oracle
  5. 初探 Vue 生命周期和钩子函数
  6. db2 创建样本数据库_db2创建数据库
  7. mvn编写主代码与测试代码
  8. 使用C#和Excel进行报表开发(5)
  9. WebAPI Action的几种返回值类型
  10. spring源码 第二个后置处理器方法的使用-推断构造函数
  11. java List的简单运用
  12. VirtualBox安装RedHat7
  13. cc2540 android,手机APP通过CC2541蓝牙模块来控制LED等,附安卓APP源码
  14. 大数运算(加减乘除)
  15. 一招解决origin8 licience过期
  16. 对视图有时为什么使用select top 100 percent 而不使用 select 呢
  17. C# 防止Winform窗体假死
  18. 【opencv】selective_search函数
  19. 浅看Redis内存回收
  20. Spring5:p命名和c命名空间注入

热门文章

  1. 七牛base64上传图片带格式
  2. [概率统计]商务与经济统计知识点总结 Part 2
  3. 13 医疗挂号系统_【 微信登录】
  4. 【机器学习原理】KNN分类算法
  5. 融合多源信息的知识表示学习方法
  6. AD怎么设置相同网络的线宽
  7. java jbutton数组_java-JButton需要显示图像数组
  8. 《论文阅读》D3DLO: DEEP 3D LIDAR ODOMETRY
  9. 服务器系统含5用户是什么意思,你好,想问下,我现在用的是T1商贸宝批发零售版5用户的,现在服务器是用WIN7,32位的系统,如果我的服务器升级为WIN10系统可不可以用?...
  10. 【iOS越狱开发】iOS越狱步骤1之环境搭建