【2023工业异常检测文献】SimpleNet

news2024/9/20 12:11:24

SimpleNet:ASimpleNetworkforImageAnomalyDetectionandLocalization

1、Background

图像异常检测和定位主要任务是识别并定位图像中异常区域

工业异常检测最大的难题在于异常样本少,一般采用无监督方法,在训练过程中只使用正常样本

解决工业异常检测主要有三种方法,分别是 基于重建的方法基于合成的方法基于嵌入的方法

基于重建(生成)的 AD

  • 通过比较原始数据和重建后的数据之间的差异,可以检测出异常区域。
  • 自编码器(Autoencoder)或生成对抗网络(GAN)。
  • 会导致 过拟合 现象,重建或生成异常的数据,与原始数据无法进行区分,以至于误检。

基于合成的 AD

  • 通过在正常的训练数据上添加噪声合成异常样本来训练模型。
  • 在正常图像数据上应用某种形式的变换或噪声,以模拟异常。这些变换可能包括随机裁剪和粘贴图像块(CutPaste)、添加高斯噪声、进行图像扭曲等。
  • 主要组成模块:合成异常样本、特征提取(CNN等)、训练分类器(SVM、神经网络等)。
  • 基于合成的异常检测方法通过训练在无异常图像上生成的合成异常来估计正常和异常之间的决策边界,但是, 合成的异常图像不够真实 。来自合成数据的特征可能偏离正常特征很远,使用这种负样本进行训练可能导致正态特征空间的边界松散,这意味着分布中特征空间可能包含不明显的缺陷。

基于嵌入的 AD

  • 通过将图像特征映射到一个嵌入空间来检测异常。使用ImageNet预训练卷积神经网络(CNN)提取广义正态特征。然后采用多元高斯分布、归一化流、记忆库等统计算法嵌入正态特征分布。通过将输入特征与学习分布或记忆特征进行比较来检测异常。
  • 预训练模型:使用大规模数据集(如ImageNet)预训练一个深度神经网络,如卷积神经网络(CNN)。这个网络用于从图像中提取特征。
  • 特征提取:将预训练的模型应用于新的图像数据,提取高级特征。这些特征捕捉了图像的重要视觉信息。
  • 特征嵌入:使用特定的技术(如主成分分析PCA、t-SNE、自编码器等)将提取的特征映射到一个低维嵌入空间。在这个空间中,相似的数据点(如正常图像的特征)彼此靠近,而不同的数据点(如异常图像的特征)则相距较远。
  • 学习正常数据分布:在训练阶段,只使用正常图像的数据来训练模型,从而学习正常数据在嵌入空间中的分布。这可以通过多种方式实现,例如:
    • 统计方法:如多元高斯分布,用于建模正常特征的分布。
    • 内存库方法:存储正常样本的特征,以便在测试时比较新样本与存储的特征。
    • 流模型:如归一化流,将数据映射到一个新的分布,通常假设为高斯分布。
  • 然而,工业图像通常具有与ImageNet不同的分布,直接使用这些有偏差的特征可能会导致不匹配问题。此外,统计算法往往存在 计算复杂度高、内存消耗大 的问题。

为了缓解上述问题,我们提出了一种新的异常检测和定位网络,称为 SimpleNet 。 SimpleNet 利用了基于合成和基于嵌入的方式,并做了一些改进。

首先,我们建议使用特征适配器来产生面向目标的特征,而不是直接使用预训练的特征来减少域偏差。

其次,我们提出在特征空间中对正常特征施加噪声来生成异常特征,而不是直接在图像上合成异常特征。

我们认为,通过适当校准噪声的尺度,可以获得紧密有界的正态特征空间。

第三,我们通过训练一个简单的鉴别器来简化异常检测过程,该鉴别器比上述基于嵌入的方法采用的复杂统计算法计算效率高得多。

具体来说,SimpleNet 使用预训练的主干进行常规特征提取,然后使用特征适配器将特征转移到目标域。然后,通过在适应的正态特征上加入高斯噪声,简单地生成异常特征,在这些特征上训练一个由几层 MLP 组成的简单判别器来判别异常。

2、Method

SimpleNet 由一个特征提取器、一个特征适配器、一个异常特征生成器和一个鉴别器组成。

异常特征生成器仅在训练期间使用,因此 SimpleNet 在推理时遵循单流方式。

在训练阶段,将正常样本输入到预先训练的特征提取器中,以获得局部特征。

然后,利用特征适配器将预先训练的特征适配到目标域中。

通过将高斯噪声添加到自适应特征中来合成异常特征。

自适应特征和异常特征分别用作正样本和负样本来训练最终的鉴别器。

异常特征生成器在推断时被移除。

在这里插入图片描述

pseudo-code

在这里插入图片描述

3、Experiments

Backbone 使用的是 WideResnet50 。

SimpleNet 又好又快。。。

在这里插入图片描述

4、Conclusion

  1. 提出了用于异常检测和定位的方法称为 SimpleNet,并且该方法简单而高效,适用于工业场景。
  2. SimpleNet 由 4 个结构简单的神经网络模块组成,分别是 特征提取器特征适配器异常特征生成器异常鉴别器
  3. SimpleNet 在 MVTec AD 基准测试中实现了最高的性能和最快的推理速度,超越了之前的最先进方法。

[REFERENCE]
CVPR2023:SimpleNet:一个简单的图像异常检测和定位网络
CVPR 23 | 更快更准更简单!工业异常检测最新SOTA:SimpleNet
更快更准更简单的工业异常检测最新SOTA:SimpleNet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【uni-app】小兔鲜项目-基础架构-请求和上传文件拦截器

注意事项 uni.request 请求封装 请求和上传文件拦截器 uniapp 拦截器: uni.addInterceptor 接口说明:接口文档 实现需求 拼接基础地址设置超时时间添加请求头标识添加 token 参考代码 // src/utils/http.ts// 请求基地址 const baseURL https://pca…

IM项目-----语音识别子服务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、搭建思想二、服务器搭建1.继承speechService类,重写业务代码2.编写语音识别服务器类3.建造者类编写 三.测试 前言 语音转换子服务,用于调用语音…

字节跳动算法岗面试亲历:高效流程大公开,通关诀窍全掌握

最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 个人情况 985 本硕项目一个论文一篇无实习经历 时间节点 7.2 技术面一面 …

探索Python的聊天机器人世界:errbot库的神秘面纱

文章目录 探索Python的聊天机器人世界:errbot库的神秘面纱背景:为何选择errbot?errbot是什么?如何安装errbot?简单库函数使用方法1. 创建机器人2. 响应消息3. 处理私聊4. 定时任务5. 错误处理 场景应用1. 会议提醒2. 天…

sheng的学习笔记-AI-FOIL(First-Order Inductive Learner)

AI目录:sheng的学习笔记-AI目录-CSDN博客 规则学习(rule learning): sheng的学习笔记-AI-规则学习(rule learning)-CSDN博客 序贯覆盖(sequential covering):sheng的学习笔记-AI-序贯覆盖(sequential covering) 基础…

Java 方法重写(难)

目录 1.A类和B类都写一个相同的方法,先用static,两边都是一样的: 2.A类和B类都去掉static,出现了两个圆圈的符号,代表重写: 3.总结 4.为什么需要重写&…

maven模块管理和继承聚合

1.分模块设计与开发 分模块即为不同的模块实现不同的功能,方便项目开发和部署。 如下图:pojo为实体模块,tlias为业务模块,utils为功能模块 要在tlias模块中使用其他两个模块,需要在pom文件中加入对应的依赖。 如图&…

【OceanBase诊断调优】—— obdiag 一条命令搞定卡合并问题根因分析

1. 背景 卡合并是一个OceanBase中较为复杂的问题,可能由各种问题引入导致。当前是否卡合并无明确定义,一方面我们认为超过36小时没合完是合并超时(RS会报ERROR日志),另一方面用户可能自己判断合并超时(根据…

探索AI大模型:从入门到精通的学习路径

每日一句正能量 其实许多波折不过是成功道上的荆棘路,纵然今天不如意,但我们还有未来。 前言 随着人工智能技术的快速发展,AI大模型学习正成为一项备受关注的研究领域。为了提高模型的准确性和效率,研究者们需要具备深厚的数学基…

pc远程控制软件有哪些?4款热门远程控制软件推荐,总有一款适合你!

在数字化转型的浪潮中,远程控制已成为企业提升运营效率、实现远程办公的不可或缺的工具。 正所谓 "运筹帷幄之中,决胜千里之外" ,PC端远程控制软件让企业管理者和员工能够跨越地域限制,高效协同工作。 今天&#xff0c…

excel 单元格一直显示年月日

excel 单元格一直显示年月日,在单元格上右键选择单元格格式,选择日期时单元格会显示成日期格式

Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比

Flink 与 Kubernetes (K8s)、YARN 和 Mesos 的紧密集成,是 Flink 能够在不同分布式环境中高效运行的关键特性。 Flink 提供了与这些资源管理系统的深度集成,以便在多种集群管理环境下提交、运行和管理 Flink 作业。Flink 与 K8s、YARN 和 Mesos 集成的详…

前后端独立部署的企业级私有化文档管理系统丨无忧·企业文档

大家好,我是软件部长,今天给大家介绍一款企业级在线知识库项目-JVS的无忧企业文档。 JVS提供低代码、物联网、规则引擎、智能BI、逻辑引擎、无忧企业文档(在线协同)、无忧企业计划、无忧企业邮筒等平台,欢迎关注微信公…

无处不在的人工智能:现状与未来

文章目录 引言科幻电影中的AI《她》:人工智能的爱情《我,机器人》:AI的觉醒 人工智能的发展现状专用人工智能的突破通用人工智能的起步 结语 引言 在21世纪的今天,人工智能(AI)已经成为推动社会发展的关键…

热爱无国界:deepin 23获得全球用户的信任与支持

查看原文 随着 deepin 操作系统在全球范围内知名度和影响力的日益攀升,其独特的魅力和卓越的使用体验赢得了世界各地的众多开源爱好者与全球媒体的高度关注与支持。 海外分支社区的蓬勃发展 最近,deepin 在国际化进程中又迈出了坚实的一步——deepin …

【贪心算法】贪心算法一

贪心算法一 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.柠檬水找零 题目…

C++中模板的初级使用函数模板(刚刚接触模板概念的小白也能明白)

文章目录 模板分类函数模板函数模板的原理函数模板基本语法 —— typename 以及 class简单的函数模板多类型模板参数class 和 typename 的选择类模板 模板分类 模板的核心思想是让编译器在编译时生成适用于具体类型的代码,这个过程称为模板实例化。C 中的模板分为两…

3 种自然语言处理(NLP)技术:RNN、Transformers、BERT

自然语言处理 (NLP) 是人工智能的一个领域,旨在使机器能够理解文本数据。NLP 研究由来已久,但直到最近,随着大数据和更高计算处理能力的引入,它才变得更加突出。 随着 NLP 领域的规模越来越大,许多研究人员都试图提高…

大模型算法二次开发,基本思路详细拆解

前言 随着众多大模型相继问世,大模型二次开发、大模型微调成为一项热门技术。本文为大家总结了大模型二次开发的基本方法与思路,希望对大家有所帮助。 转载自丨吃果冻不吐果冻皮 开发方法分类 1、领域知识注入:Continue PreTraining(增量…

LeetCode_sql_day28(1767.寻找没有被执行的任务对)

描述:1767.寻找没有被执行的任务对 表:Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…