CutPaste Self-Supervised Learning for Anomaly Detection and Localization

2023-05-16

CutPaste: Self-Supervised Learning for Anomaly Detection and Localization

用于异常检测和定位的自监督学习

简洁版

问题:异常的检测和定位

现有工作不足:

​ 现有的工作主要关注以对象为中心的自然图像中的检测语义异常值,这种方式在检测细粒度异常方面,没有很好的通用性

​ 现有工作的中数据增强的方式(旋转预测,对比)对检测局部缺陷来说是次优的

**解决问题的挑战: **

  1. 很难获取大量异常数据
  2. 缺陷很小且细微
  3. 精确定位缺陷是一个挑战,很难使用热图式方法进行定位。

本工作的优点:

  1. 解决了图像异常检测在高分辨率图像中局部存在各种形式的未知异常缺陷。
  2. 设计了一种新的代理任务(a novel proxy task),CutPaste是一种提出的数据增强策略,用于剪切图像块并在图像的随机位置粘贴。
  3. 学习到的表示来定位高分辨率图像中的缺陷区域。
  4. CutPaste增强是为了产生空间不规则性,作为真实缺陷的粗略近似(这些真实的缺陷在训练时通常无法获取)。
  5. CutPaste的自监督学习是通用的,可以用于改进语训练网络,以更好地适应数据。

本工作的可提升性

​ CutPaste模型基于合成异常检测训练时,缺陷检测的精度比 单个类型缺陷训练的精度有所下降。

问题: 异常的检测和定位

现有工作的不足:

大多数现有的工作主要关注以对象为中心的自然图像中检测语义异常值,这些方法在检测细粒度异常模式并不像在缺陷检测中那样具有良好的通用性。

大多数工作应用现有的方法,例如旋转预测或对比学习,对于检测局部缺陷是次优的。【几何变换(旋转、平移等)在学习语义概念的表示方面是有效的,但在规则性(例如连续性、重复性)则没那么有效】

解决问题的挑战:

在没有缺陷样本的情况下,检测出图像的异常状况。

  1. 很难获取大量异常数据,无论是标记的还是未标记的
  2. 正常模式和异常模式之间的差异通常是细微的,因为在高分辨率图像中,缺陷区域可能很小且很细微。
  3. 精确定位缺陷的一个挑战:当我们的模型学习图像的整体表示时,很难使用热图式方法进行定位。

本工作的优点:

  1. 解决了图像异常检测的一种特殊情况,其中在高分辨率图像中局部存在各种形式的未知异常模式。

  2. 设计了一种新的代理任务(a novel proxy task),用于表征的自监督学习(self-supervised
    learning of representations
    。【在正常训练数据和CutPaste增强的数据之间建立了一个代理分类任务。CutPaste是一种提出的数据增强策略,用于剪切图像块并在图像的随机位置粘贴。】

  3. 解释了如何使用学习到的表示来定位高分辨率图像中的缺陷区域。

  4. CutPaste增强是为了产生空间不规则性,作为真实缺陷的粗略近似(这些真实的缺陷在训练时通常无法获取)。

  5. CutPaste的自监督学习是通用的,可以用于改进语训练网络,以更好地适应数据。

相关工作内容:

遵循两阶段框架[52]:

1. 第一阶段从正常数据中学习深度表示,通过解决代理任务学习自监督表示
1. 然后使用学习的表示构建一个单类分类器。以区分具有异常和正常的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UG0dG0y6-1648217801250)(E:\MyDocument\论文\刘师兄推荐论文\image\image-20220309084005803.png)]

模型解释

  1. a上:将正常样本送入CNN进行训练
  2. a下:并用CutPaste方法从正常数据中剪切一个小矩形区域,并粘贴到随机位置,也送入和a上同一个训练网络中训练,得到模型。
  3. b上:表示在测试和定位阶段:图像级表示对异常检测做的整体决定,并通过GradCAM定位缺陷。
  4. b下:斑块级表示从局部斑块中提取密集特征,以生成异常评分图,然后将其最大化用于检测或上采样用于定位。

2.1. Self-Supervised Learning with CutPaste 基于剪贴的自监督学习

在第2.1节中,提出了一种通过预测剪切粘贴增强来学习自监督表示的新方法,

异常检测的任务,通常出现在物体表面是连续性,重复性的。

所以该篇论文思路就是:设计一个增强策略,创建局部不规则模式。训练模型来识别这些局部不规则性,希望模型能推广到测试看不见的真实缺陷。

剪贴就是一种很好的创造不规则性的方法。

防止学习辨别增强图像的过于简单的决策规则,并鼓励模型学习检测不规则性,我们提出如下CutPaste增强:

1. 从正常训练图像上切下一个大小和纵横比可变的小矩形区域。
1.   可选地,我们旋转或抖动面片中的像素值。

3.  将补丁粘贴回随机位置的图像。

​ 根据旋转预测思想,提出的自我监督表征学习的训练目标定义:

在这里插入图片描述

​ X表示一系列正常样本,CP( ) 是CutPaste augmentation,g是一个由深度网络参数化的二进制分类器。

​ CE 表示交叉熵损失。 在 x 反馈到g或CP之前,会应用数据增强,例如平移或颜色抖动。

2.2 剪贴变体

  1. CutPaste - Scar

在这里插入图片描述

2.2 Multi-Class Classification 多类分类

​ 3-way classification task 三向分类任务:normal、CutPaste and CutPaste-Scar

​ 在增广并集的二进制和三向分类任务之间,我们观察到通过三向分类任务训练的表示具有更好的检测性能。

一个自然的问题是,Cutpaste的成功是否来自于对真实缺陷的良好模仿:

​ (1)Cutpaste仍然不是对真实缺陷的完美模拟,

​ (2)学习它来发现不规则性对看不见的异常有很好的推广作用。

2.3. Computing Anomaly Score 计算有异常分数

采用GDE 【43】

在这里插入图片描述

2.4 Localization with Patch Representation 基于面片表示的定位

​ c(x) 表示在x的随机位置裁剪一个补丁。 在测试时,我们从给定步幅的所有补丁中提取嵌入。对于每个面片,我们评估其异常评分,并使用高斯平滑将评分传播到每个像素[32]。

实验设置方式

我们遵循一类分类协议,也称为半监督异常检测[10],**在其中,我们为每个类别在其各自的正常训练示例上训练一个一类分类器。**在[52]之后,我们通过使用ResNet-18[22]和一个MLP projection head (位于平均池层的顶部,然后是最后一个线性层)从头开始的增强预测来学习表示。我们构造了一个高斯密度估计(GDE)作为基于顶部合并特征的异常检测器的方程(2)。

  1. 设置五次随机种子实验,报告每类平均AUC和标准误差、报告纹理、对象、和所有类别的平均误差和标准误差
  2. 用自监督学习不同的proxy tasks来测试训练的表征,包括基线,如旋转[20]、剪切或疤痕预测、提议的剪切粘贴、剪切粘贴疤痕预测,并将两者用于三向分类(还有一者是正常样本)。
  3. 与以前的工作进行了比较,包括深度一类分类器(DOCC)[45]、无信息学生[5]和补丁SVDD[61]。

5. Ablation Study

  1. From Cutout to CutPaste

  2. Binary v.s. Finer-Grained Classification

  3. CutPaste on Synthetic Anomaly Detection 基于合成异常检测的CutPaste

    研究了模型对未知异常的推广

    该数据集是通过将不同形状的遮罩修补到正常数据(如数字[29]、正方形、椭圆形或心脏[35]),填充随机颜色或自然图像而创建的。合成异常的样本如图6所示,

在这里插入图片描述

​ CutPaste(三向)模型在合成数据集上表现良好,平均达到98.3 AUC。 加 † 表示从自然图像中提取的结果 natural images (†).

相关论文:

**3-way classification :3-way classification task between normal, CutPaste and CutPaste-scar. **

【52】两阶段框架 : Learning and evaluating representations fordeep one-class classification.

在缺陷检测的算法设计中使用剪切也可以在[32,57]中找到。

【19】 旋转预测思想

【51】GradCAM等视觉解释技术对图像级探测器的热图进行可视化[51]。

在一类分类设置下的异常检测已经得到了广泛的研究[49、56、46、63、66、13、42、36、27],

[39,19,8,60,40,12,21]也被证明对一类分类和异常检测有效。

由于工业检测或医疗诊断等实际应用,缺陷检测[9,5]受到了广泛关注。最初的步骤是通过自动编码[9,7,25,59]、生成性对抗网络[48,3]、使用ImageNet上的预训练模型[38,45,6,14,43,44]以及通过解决不同的代理任务和增强[61,47,57,15]来进行自监督学习的方法来完成的。

[11] 提出了一种以贴片交换增强为噪声处理的去噪自动编码器。[26]提出通过使用GAN预测局部增强来学习表示法。

Gaussian smoothing [32]

我们还按照[20,52]中的协议在CIFAR-10[28]上进行语义异常检测实验,

虽然在语义一类分类[20,24,4,54,52]的背景下研究了旋转预测[19]和对比学习[60,12]等流行方法,

【20】 :基于几何变换的深部异常检测

【24】:使用自监督学习可以提高模型的鲁棒性和不确定性。

【4】:基于分类的一般数据异常检测。

【52】:学习和评估深层单类分类的表征。

【54】:通过对分布转移实例的对比学习进行新颖性检测。

【19】:旋转预测思想 通过预测图像旋转进行无监督表征学习。

核密度估计器KDE[52]或高斯密度估计器GDE[43]。

尽管非参数KDE不受分布假设的影响,但它需要许多例子来进行精确估计[58],

定位缺陷区域[38,6,61],

【6】Uninformed students: Student-teacher anomaly detection with discriminative latent embeddings.不知情的学生:学生-教师异常检测与歧视性潜在嵌入。

【38】:Anomaly detection in nanofibrous materials by cnn-based self-similarity.基于cnn的自相似性在纳米纤维材料中的异常检测。

【61】:Patch svdd: Patch-level svdd for anomaly detection and segmentation.Patch svdd:用于异常检测和分割的Patch-level svdd

使用高斯平滑将评分传播到每个像素[32]

【32】Explainable deep one-class classification. 可解释的深层一类分类。

CutMix[62] 一个主要区别是CutMix利用了现有的图像标签和目标中的混搭[64],而CutPaste预测是一种无需图像标签的自我监督学习。

【62】:Cutmix: Regularization strategy to train strong classifiers with localizable features. Cutmix:训练具有本地化特征的强分类器的正则化策略。

classification. 可解释的深层一类分类。

CutMix[62] 一个主要区别是CutMix利用了现有的图像标签和目标中的混搭[64],而CutPaste预测是一种无需图像标签的自我监督学习。

【62】:Cutmix: Regularization strategy to train strong classifiers with localizable features. Cutmix:训练具有本地化特征的强分类器的正则化策略。

【10】 Anomaly detection: A survey. ACM computing surveys (CSUR), 2009. 5

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CutPaste Self-Supervised Learning for Anomaly Detection and Localization 的相关文章

随机推荐

  • [549]python实现K-Means算法

    K Means是一种聚类 Clustering 算法 xff0c 使用它可以为数据分类 K代表你要把数据分为几个组 xff0c 前文实现的K Nearest Neighbor算法也有一个K xff0c 实际上 xff0c 它们有一个相似之处
  • 串口调试工具开发

    刚学习Qt xff0c 搜查资料 xff0c 根据学到的知识 xff0c 完成一个简单的串口调试工具 刚入行 xff0c 谅解 最终效果图 xff0c 图上功能都可实现 UI界面绘制 xff1a 代码如下 xff1a 串口调试工具开发 1
  • (illegal character encoding in string literal)解决乱码问题

    打开项目显示 xff08 xfffd xfffd xfffd xfffd xff09 乱码 xff0c 警告 xff0c 都是因为文本编码格式 选择合适的文本编码即可
  • “Failed to get convolution algorithm. This is probably because cuDNN failed to initialize”错误解决方案

    最近在使用TF2 0 运行程序出现以下错误 Failed to get convolution algorithm This is probably because cuDNN failed to initialize 一开始怀疑是CUDA
  • 程序员学习能力提升三要素

    IT技术的发展日新月异 xff0c 新技术层出不穷 xff0c 具有良好的学习能力 xff0c 能及时获取新知识 随时补充和丰富自己 xff0c 已成为程序员职业发展的核心竞争力 多年的学习经验总结出了提高程序员学习能力的三个要点 学习人人
  • Unable to determine the device handle for GPU. GPU is lost. Reboot the system to recover this GPU.

    最近服务器跑程序的时候经常出现GPU lost的情况 xff0c 报错信息如下 xff1a Unable to determine the device handle span class token keyword for span GP
  • 安装matlab的R2017b或者R2018a版本注意事项

    如果我们目前使用的是win10系统 xff0c 并且正确地按照网上安装并激活matlab的R2017b或者R2018a版本 xff0c 但是运行matlab时仍然会报错的情况 xff0c 报错内容是License Manager Error
  • IP地址0.0.0.0表示什么

    声明 xff1a 尊重原创 xff0c 查看原文请点击 IP地址0 0 0 0表示什么 转发目的为了构建 计算机网络 专栏 xff0c 收集相关优秀文章 xff0c 并创建自己的文章 方便自己和他人系统的学习相关知识 xff0c 感谢原文
  • Android群英传——第九章packages.xml的作用

    Android系统在初始化时 xff0c PackageManager的底层实现类PackageManagerService 回去扫描系统的 data system 目录下的packages xml文件 xff0c 这个文件包含了所有的ap
  • 百思不得姐之图片处理(保存与下载)

    一 功能图 二 讲解思路 1 回顾上一篇内容 2 创建加载图片类 同时创建xib 3 点击图片查看大图 4 点击查看大图 查看长图 5 model出展示图片的控制器 6 保存图片 7 封装根据网络状态展示不同的图片 三 回顾上一篇内容 1
  • 路由器电路(高清图)

    路由器正面 路由器背面
  • 技术4面+HR面,花了一个半月的时间准备,终于上岸阿里测开岗

    这次阿里的面试 xff0c 给我的感触很深 xff0c 意识到基础的重要性 一共经历了五轮面试 xff1a 技术4面 xff0b HR面 下面看正文 本人自动化专业毕业 xff0c 压抑了五个多月 xff0c 终于鼓起勇气 xff0c 去阿
  • 5个实用的性能测试工具(软件测试工程师必备)

    在日常的软件测试工作中 xff0c 最常用的性能测试工具是LoadRunner和Jmeter 今天给大家整理了5个针对web应用程序性能和负载压力能力的最广泛使用的性能测试工具 这几个负载测试工具将确保应用程序在高峰流量和极端压力条件下的性
  • 4个强大JavaScript运算符

    作者 Anthony Jimenez 译者 吴留坡 策划 田晓旭 来源 前端之巅 今天我们学习新的 JS 运算符 xff01 你有没有花一个下午的时间阅读 Mozilla 文档 xff1f 如果有 xff0c 你会发现网上有很多 JS 资料
  • 一些java开发代码规范心得

    1 equals方法规范 Object的equals方法容易抛空指针异常 xff0c 应使用常量或确定有值的对象来调用equals 正例 xff1a test equals object 反例 xff1a object equals tes
  • 8张Linux思维导图(定位自己能力、清楚学习方向)

    Linux学习路径 xff1a Linux桌面介绍 xff1a FHS 文件系统目录标准 以上三张图 xff0c 都是在学习实验楼上的课程 Linux 基础入门 xff0c 教程里面看到的 Linux需要特别注意的目录 这是在搜索的时候 x
  • Keil串口仿真调试

    用到的软件 Keil开发软件 虚拟串口软件 串口调试小助手 软件介绍 1 虚拟串口软件 对于笔记本电脑来说 xff0c 没有自带串口使用虚拟串口软件可以模拟真实的串口 程序可以利用虚拟串口与其他串口交换数据 Virtual Serial P
  • IEEE754详解(最详细简单有趣味的介绍)

    序言 xff1a 博主个人认为本系列文章是目前博主看过的介绍 IEEE754 xff0c 即浮点数的机器存储的最好的文章 它比白中英老师的 计算机组成原理 xff0c 在大学时计算机相关专业一般会使用的 绿皮书 xff0c 更加通俗易懂 x
  • 70_爬楼梯 滚动数组 动态规划 python

    题目搬运者 https leetcode cn com problems climbing stairs 思路 滚动数组 动态规划其实更像数学里面的找规律找公式 xff0c 数列吧 以前一直学不会动态规划的原因是一提起动态规划就觉得高大上
  • CutPaste Self-Supervised Learning for Anomaly Detection and Localization

    CutPaste Self Supervised Learning for Anomaly Detection and Localization 用于异常检测和定位的自监督学习 简洁版 问题 xff1a 异常的检测和定位 现有工作不足 xf