当前位置: 首页 > news >正文

基于异常合成的图像异常检测方法

基于异常合成的图像异常检测方法

基于异常合成思路实现图像异常检测的方法,它们的核心思路是:

试图通过合成异常样本穷尽所有可能出现的异常类型,从而将无监督的异常检测(one class classification)建模为一个全监督的二分类问题。这就要求合成的异常样本数量足够多、质量足够好(和真实缺陷分布相同)、种类足够全(涵盖各种已知的和未知的真实缺陷)。【SimpleNet和GLASS都是这个原理,CutPaste不一样,它只是利用合成异常建立适合异常检测的自监督表征学习任务,目的是学习到适合做异常检测的representations】

**根据异常合成的不同层次,可以分为图像级和特征级。**图像级指的是在图像水平伪造异常,如CutPaste、Perlin Noise+DTD;特征级指的是在特征水平伪造异常,如在正常特征图上添加高斯噪声来伪造异常。

CutPaste: Self-Supervised Learning for Anomaly Detection and Localization

在这里插入图片描述

1.CutPaste数据增强

CutPaste是2021年CVPR的工作,属于图像级异常合成。主要提出了一种新的数据增强策略CutPaste,它的步骤包括:

  1. 从正常训练图像中裁出一小块可变大小和纵横比的矩形区域,叫做patch
  2. (可选)旋转patch或者抖动patch的像素值
  3. 把上述patch粘贴回原始图像的任意位置

利用这一增强策略,可以构造一个自监督表征学习任务,训练集为:原始训练图像和对应标签0,经CutPaste合成的图像和对应标签1;训练的损失函数为:

image-20241019133802387

通过上述自监督表征学习任务,我们可以得到更加适用于图像异常检测任务的representations f。

2.One-Class Classifier(GDE)

接下来,论文通过Gaussian density estimator(GDE)构造one-class classifer以计算异常得分,GDE的log-density按照如下公式计算:

image-20241019133752339

3.定位任务

定位任务提供了两种实现:

  1. 通过分类+GradCAM可解释性算法获得热力图;
  2. 推理时将图像按照一定的步长划分patch,各patch分别通过前向传播获得anomaly score map,利用Gaussian
    smoothing将anomaly score传播至各像素,即可获得定位结果。
    二者的比较:

image-20241019134309698

SimpleNet: A Simple Network for Image Anomaly Detection and Localization

image-20241019140005203

SimpleNet发表于2023年的CVPR,属于特征级异常合成。它包含4个组件:

  1. 预训练的Feature Extractor,用于抽取局部特征
  2. 浅层的Feature Adapter,用于将特征从预训练域迁移到目标域
  3. Anomaly Feature Generator,通过向正常特征上添加高斯噪声来伪造异常特征
  4. 二分类的Anomaly Discriminator,用于区分正常特征和异常特征

上述设计基于3个直觉:

  1. 将pre-trained features迁移至target-oriented features,有助于缓解域偏移
  2. 在特征空间合成异常更加有效,因为缺陷在图像空间并没有太多的共性
  3. 简单的discriminator(2层的MLP)足够有效

image-20241019135752966

A Unified Anomaly Synthesis Strategy with Gradient Ascent for Industrial Anomaly Detection and Localization

GLASS是2024年arXiv上的论文,包含图像级和特征级的异常合成。其中图像级的异常合成思路是在Perlin Noise+DTD上进行改进,特征级的异常合成思路是在SimpleNet上进行改进。

分类器的部分和SimpleNet的Discriminator比较相似,都是直接将one-class classification任务建模为全监督分类任务来做。

image-20241019140716220

http://www.lryc.cn/news/465494.html

相关文章:

  • 机器学习方向在算法优化上有哪些创新点?
  • 基于yolov8的道路交通事故检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • HttpUtils 详解
  • 云计算第四阶段: cloud二周目 07-08
  • 智能合约开发工具Remix
  • YYF桌面 1.2 | 个性化桌面体验,清爽美观。
  • 【人工智能/计算机工程/大数据】第五届人工智能与计算工程国际学术会议(ICAICE 2024,2024年11月8-10日)
  • uni-app录音功能
  • C语言【调试】(个人笔记版)
  • 连锁收银系统
  • 5.2024.10.21
  • 前端Socket互动小游戏开发体验分享
  • react项目,通过自定义 separator 属性来修改日期选择器中间的分隔符:
  • 双十一有啥好用的家居好物推荐?2024性价比高的超声波清洗机推荐
  • 比亚迪车机安装第三方应用教程
  • 移动零---双指针法
  • MoeCTF 2024 ---Misc方向WP
  • 【我的 RT 学习手札】信息收集
  • CMake变量:CMAKE_FIND_LIBRARY_SUFFIXES
  • 在使用 RabbitMQ 作为消息代理时,多个 Celery 实例(或应用)可以共享同一个 RabbitMQ 实例
  • ARM在嵌入式开发中的作用有哪些?
  • -webkit-box-orient属性丢失?
  • openKylin系统SSH服务配置结合cpolar轻松实现开放麒麟远程连接
  • 我的世界之合成
  • java基于SpringBoot+Vue+uniapp微信小程序的自助点餐系统的详细设计和实现(源码+lw+部署文档+讲解等)
  • AI 编译器学习笔记之八 -- Python基础学习
  • 盘点近几年腾讯的精选面试题(c/c++研发岗)
  • C++详细笔记(四)
  • 架构师备考-背诵精华(系统架构评估)
  • QT 实现自定义水波进度条