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

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.mzph.cn/news/879790.shtml

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

相关文章

TCP客户端编码和解码处理:发送和接收指定编码消息

文章目录 引言基于Netty实现TCP客户端Netty发送GBK编码指令Netty接收GBK编码基于Channel发送指令基于ChannelHandlerContext发送指令:建立连接时发送登陆指令开启日志,查看报文信息基于ChannelInboundHandlerAdapter进行业务逻辑处理原生API实现TCP客户端基于DataOutputStrea…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月19日新模型预测第92弹

经过90多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,90多期一共只错了10次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0…

C语言中的assert断言

Assert断言 断言是程序中处理异常的一种高级形式。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。 用法: #…

23.面试题02.07链表相交

public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode apheadA;ListNode bpheadB;int lenA0,lenB0;//求两个链表长度while(ap!null){apap.next;lenA;}while(bp!null){bpbp.next;lenB;}apheadA;bpheadB;int len0;//用来计算让…

Msf之Python分离免杀

Msf之Python分离免杀 ——XyLin. 成果展示: VT查杀率:8/73 (virustotal.com) 火绒和360可以过掉,但Windows Defender点开就寄掉了 提示:我用360测的时候,免杀过了,但360同时也申报了,估计要不了多久就寄…

【C++ Primer Plus习题】6.9

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <string> #include <…

2-99 基于matlab多尺度形态学提取眼前节组织

基于matlab多尺度形态学提取眼前节组织&#xff0c;通过应用不同尺度的结构元素进行边缘检测&#xff0c;再通过加权融合的思想来整合检测到的边缘&#xff0c;降低图像噪声的影响&#xff0c;提高边缘检测的精度。程序已调通&#xff0c;可直接运行。 下载源程序请点链接&…

OpenAI o1解决了「Quiet-STaR」的挑战吗?

随着OpenAI o1近期的发布&#xff0c;业界讨论o1关联论文最多之一可能是早前这篇斯坦福大学和Notbad AI Inc的研究人员开发的Quiet-STaR&#xff0c;即让AI学会先安静的“思考”再“说话” &#xff0c;回想自己一年前对于这一领域的思考和探索&#xff0c;当初也将这篇论文进行…

Electron 图标修改

目录 1. 图片基本要求 2. 在main.js中配置icon 位置 ​3. 在package.json 中配置icon 位置 4. 问题&#xff1a;左上角图片 开发环境下显示&#xff0c;生产环境下不显示 1. 图片基本要求 图片格式为ico&#xff0c;图片像素像素为256*256&#xff1b; 将ico文件放在pub…

C++编译环境(IDE)推荐及安装

IDE是什么 嗨嗨嗨&#xff0c;我又来水博文了 今天来给大家推荐几款好用的IDE IDE是集成开发环境&#xff08;Integrated Development Environment&#xff09;的缩写&#xff0c;是一种软件应用程序&#xff0c;提供了用于软件开发的各种工具和功能&#xff0c;包括代码编辑…

人工智能安全治理新篇章:《2024人工智能安全治理框架1.0版》深度解读@附20页PDF文件下载

在数字化浪潮席卷全球的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的速度融入我们的日常生活&#xff0c;从智能助手到自动驾驶&#xff0c;从医疗诊断到金融风控&#xff0c;AI的身影无处不在。然而&#xff0c;技术的双刃剑特性也让我们不得不面对…

螺栓与散装物体检测系统源码分享

螺栓与散装物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

数据结构-3.3.栈的链式存储实现

一.链栈的定义&#xff1a; 二.总结&#xff1a;

Solidwork角度尺寸标注

效果如下&#xff1a; 首先&#xff0c; 先选第一条边 然后选第二条边&#xff0c;即可

18.DHT11编程案例

温湿度传感器 产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;应用领域&#xff1a;暖通 空调&#xff1b;汽车&#xff1b;消费品&#xff1b;气象站&#xff1b;湿度调节器&#xff1b;除湿器&#xff1b;家电&#xff1b;医疗…

算法打卡:第十一章 图论part01

今日收获&#xff1a;图论理论基础&#xff0c;深搜理论基础&#xff0c;所有可达路径&#xff0c;广搜理论基础&#xff08;理论来自代码随想录&#xff09; 1. 图论理论基础 &#xff08;1&#xff09;邻接矩阵 邻接矩阵存储图&#xff0c;x和y轴的坐标表示节点的个数 优点…

[2025]基于微信小程序慢性呼吸系统疾病的健康管理(源码+文档+解答)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

计算机毕业设计 奖学金评定管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

模拟实现STL中的unordered_map和unordered_set

目录 1.unordered_map和unordered_set简介 2.unordered_map和unordered_set设计图 3.迭代器的设计 4.哈希表的设计 5.my_unordered_map和my_unordered_set代码 1.unordered_map和unordered_set简介 unordered_map和unordered_set的使用非常类似于map和set&#xff0c;两…

Python “集合” 100道实战题目练习,巩固知识、检查技术

本文主要是作为Python中列表的一些题目&#xff0c;方便学习完Python的集合之后进行一些知识检验&#xff0c;感兴趣的小伙伴可以试一试&#xff0c;含选择题、判断题、实战题、填空题&#xff0c;答案在第五章。 在做题之前可以先学习或者温习一下Python的列表&#xff0c;推荐…