CVPR2024 合成异常数据 工业异常检测 RealNet

前言

本文分享一个基于扩散模型的异常检测框架,用于检测工业场景缺陷检测异常检测

  • 强度可控扩散异常合成:基于扩散过程的合成策略,能够生成不同强度的异常样本,模仿真实异常样本的分布。
  • 异常感知特征选择:选择代表性和判别性的预训练特征子集,以提高异常检测性能并控制计算成本。
  • 重建残差选择:自适应选择判别性残差,用于全面识别各级异常区域。

论文地址:RealNet: A Feature Selection Network with Realistic Synthetic Anomaly for Anomaly Detection

代码地址:https://github.com/cnulab/RealNet

强度可控扩散异常合成,简称为SDAS,生成的异常图像,如下图所示。

  • 这些异常图像,都是基于正常图像生成的。
  • 使用的仅仅是正常图像,通过SDAS生成与正常图像相似但带有异常特征的图像。

  • 电子元件的正面视图,这些图像显示了明显的异常(如损坏、变形等)
  • 螺丝的图像,可以看到一些异常样本(如弯曲、断裂等)
  • 织物的图像,其中有一些织物图案显示了异常(如磨损、变形等)
  • 铝箔的图像,有明显的异常(如刮痕、孔洞等)。

强度可控扩散异常合成: 

  • 新颖的合成策略:生成的样本更接近自然分布,并提供控制异常强度的灵活性。
  • 使用DDPM扩散模型:在采样过程中引入扰动项,以生成低概率密度区域的样本。
  • 模拟自然异常模式:如老化、结构变化、异常纹理和颜色变化。

一、模型框架

RealNet的模型框架,如下图所示:

  1. 输入图像数据
  2. 基于扩散模型,实现强度可控的异常数据生成。
  3. 生成的异常数据、原来的图像数据,一起进行训练。
  4. 图像数据,通过预训练模型进行特征提取,生成图像特征。
  5. 通过AFS结构,选择有助于异常检测的特征。
  6. 通过RRS结构,选择包含最多异常信息的重建残差特征。
  7. 选择出来的重建特征,送入判别器,输出异常检测信息。

二、核心内容——强度可控扩散异常合成(SDAS) 

目的:

  • 生成具有不同强度的异常图像。这样可以用来训练和评估异常检测模型,使它们在现实世界中表现得更好。 

核心概念:

  • 异常强度控制:通过一个参数 s来控制生成异常的强度。
  • 扩散模型 (DDPM):通过逐步添加和去除噪声来生成异常图像。

思路流程:

生成异常图像的过程是基于“扩散模型”(Diffusion Model)的技术,它通过逐步添加和去除噪声来生成新的图像。

这里的目标是通过控制噪声的强度,生成具有不同异常强度的图像。

异常图像生成,如下图所示:

  • 在不同异常强度s下,生成的样本异常图像。
  • 常强度设定在0.1和0.2之间,以覆盖更广泛的真实世界异常。

进阶加深理解——扩散原理

下面是详细版本介绍,如果上面懂了也可以忽略的。

如下图所示,使用不同合成方法生成的异常图像示例 :

  • 左侧使用具有不同异常强度的 SDAS 生成的示例。
  • 右侧是使用各种异常合成方法生成的具有局部异常区域的示例。

深入加深理解细节

实验设置
  • 超参数:设定 γ=0.001,在训练阶段停止μθ​(xt​,t) 的梯度。
  • 预训练权重:使用预训练在ImageNet上的权重加速扩散模型的收敛。
  • 训练时长:在单个NVIDIA GeForce RTX 3090上生成10,000张分辨率为256×256的图像需要约6小时。
  • SDAS和DDIM的实现:提供了三种选择用于确定性反向扩散过程的扰动方差:Σ=βt​,  Σ=βˉ​t​,  Σ=Σθ​(xt​,t)。
  • 不透明度:在图像混合过程中,均匀采样不透明度 δ 从0.5到1.0。
  • 硬件配置:在单个NVIDIA GeForce RTX 3090上,平均训练时间约为2小时。

三、核心关键点——异常感知特征选择 (AFS)

AFS 是一种用于从预训练网络中选择最有助于检测异常的特征的方法。

它的目标是减少特征维度,消除预训练偏差,并管理重建成本。

AFS 的作用
  1. 减少特征冗余:选择具有代表性的特征,避免重复信息。
  2. 增强判别能力:提高特征的代表性和判别性,提升异常检测性能。
  3. 控制计算成本:通过选择合适的特征维度,优化计算资源的使用。

思路流程:

AFS 通过以下步骤实现高效的特征选择:

  1. 定义三元组集合:异常图像、正常图像和异常掩膜。
  2. 提取预训练特征:从预训练网络的每一层提取特征。
  3. 计算特征差异:计算异常图像和正常图像之间的特征差异。
  4. 归一化和对齐:将差异归一化并对齐到异常掩膜的分辨率。
  5. 计算 AFS 损失:评估每个特征图的效果。
  6. 选择特征图:选择具有最小 AFS 损失的特征图用于重建。
  7. 多尺度特征选择:在不同层次上执行特征选择,获得多尺度特征。
  8. 通过这些步骤,AFS 有效地选择出最具代表性和判别性的特征,提升了异常检测的性能,同时优化了计算成本。

AFS 的可视化,从上到下,特征图分别来自第一层到第四层。

  • 对于原始图像和合成异常图像,可视化了预训练 WideResNet50不同层中它们对应的特征图之间的归一化差异。
  • 每个特征图都标有其在层中的索引和相应的 AFS 损失。从左到右,特征图的定位性能逐渐下降。
  • 可视化直观地展示了预训练造成的定位偏差,表明并非所有特征图对异常检测和定位的贡献都相同,同时也强调了 AFS 的有效性。

四、核心关键点——重建残差选择 (RRS)

RRS 模块的目的是通过选择包含最多异常信息重建残差来生成异常得分,从而有效地检测异常区域。

重建残差选择 (RRS) 总结

  1. 重建残差选择:通过选择最能代表异常信息的重建残差,提升检测准确性。
  2. 全局最大池化和平均池化:用于找到最重要的特征。
  3. 鉴别器:将特征图映射到图像级别分辨率以生成异常得分。
  4. 损失函数:结合重建损失和分割损失优化模型性能。

 在 MVTec-AD 数据集上,进行消融实验:

  • RealNet在各种重建残差选择模式(Max、Avg 和Max&Avg)

五、模型设计细节

在四个数据集上进行评估模型,包括 MVTec-AD、MPDD、BTAD 和 VisA。

  • MVTec-AD:包含 5,354 张来自 15 类工业异常检测任务的图像,包括 10 个物体类别和 5 个纹理类别。
  • MPDD:包含 1,346 张来自 6 种工业金属产品的图像,具有不同的照明条件、不均匀的背景和每张图像中多个产品。包括产品的摆放方向、拍摄距离和位置的多样性。
  • BTAD:包含 3 种真实世界工业产品的图像。
  • VisA:包含 9,621 张正常图像和 1,200 张来自 12 个类别的异常图像。某些类别展示了复杂的结构,例如 PCB(印刷电路板),其他类别则包含需要检测的多个对象。

评价指标:

  • AUROC:用于评估图像级别的异常检测性能。
  • Pixel AUROC:用于评估像素级别的异常位置检测。
  • PRO:每区域重叠度,用于评估像素级别的异常位置检测。

模型参数:

  • 预训练权重:使用预训练在ImageNet上的权重加速扩散模型的收敛。
  • 训练时长:在单个NVIDIA GeForce RTX 3090上生成10,000张分辨率为256×256的图像需要约6小时。
  • SDAS和DDIM的实现:提供了三种选择用于确定性反向扩散过程的扰动方差:Σ=βt​,  Σ=βˉ​t​,  Σ=Σθ​(xt​,t)。
  • 不透明度:在图像混合过程中,均匀采样不透明度 δ 从0.5到1.0。
  • 硬件配置:在单个NVIDIA GeForce RTX 3090上,平均训练时间约为2小时。

六、模型效果

在MVTec-AD数据集上测试,消融结果如下表所示:

  • 评估了AFS(异常感知特征选择)和RRS(重建残差选择)的影响

异常强度对RealNet的影响,如下表所示:

  • 异常强度s在0.1到0.2之间变化时,模型性能保持最优状态

 SDAS 生成的完整异常图像:

  • 在每个组中,从上到下,异常强度逐渐增加。
  • 示例来自 MVTec-AD、MPDD、BTAD 和 VisA 数据集。

SIA 合成的局部异常图像:(注意和上面的完整异常图片对比)

在看一组对比,完整异常图像:

合成的局部异常图像:

RealNet 的模型效果,从左到右依次为异常图像、真实值和预测异常分数。

示例2:

分享完成~

后续分析更多工业异常检测、缺陷检测的技术方案。

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

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

相关文章

学习Java,stringbuilder用法

有sb.append添加元素,sb.reverse反转内容,sb.tostring转换成字符串,sb.length计算长度。

东莞酷得智能 组装机械狗电子玩具方案

这款机械狗玩具电子方案结合了现代电子技术和人工智能元素,旨在为用户提供一个高科技、互动性强的娱乐体验。通过不断的软件更新和硬件迭代,机械狗的功能将持续扩展。 一、功能特点: 1、自动巡游:机械狗能够自主在房间内巡游&am…

分库分表、读写分离--ShardingJDBC

1. 项目准备 1.1 建立数据库表 建立user_manage数据库,在该库中建立1张表app_user用来做分库前的测试,另外建12张按月份命名的表app_user_2024XX用来做分库。 CREATE DATABASE IF NOT EXISTS user_manage CHARACTER SET utf8 COLLATE utf8_general_ci…

vm-bhyve网卡设定桥接故障解决@FreeBSD

问题 在使用vm-bhyve虚拟机管理软件的时候,使用vm无法绑定网卡igb0 vm switch add public igb0 报错:/usr/local/sbin/vm: ERROR: failed to add member igb0 to the virtual switch public 解决 于是准备用原生ifconfig命令来绑定,结果…

ConvNeXt(CVPR 2022)论文解读

paper:A ConvNet for the 2020s official implementation:https://github.com/facebookresearch/ConvNeXt third-party implementation:https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/convnext.py 背景 在…

基于SSM框架的垃圾分类系统的设计与实现(含源码+sql+开题报告+论文+论文答辩模板)

图1 前台首页截图 首页展示:首页展示法律法规、公示公告、用户交流论坛、分类指南、垃圾站点、以及个人中心; 法律法规:展示我国《城市生活垃圾分类及其评价标准》以及《生活垃圾分类标志》等最新法律法规; 公示公告&#xff1…

另一棵树的子树(oj题)

一、题目链接 https://leetcode.cn/problems/subtree-of-another-tree/submissions/536304222 二、题目思路 1.首先遍历大树,判断大树的根结点的值是否等于小树的根结点的值,如果不相等,就找大树的左孩子或者右孩子,以左孩子为根…

php 实现:给图片加文字水印,图片水印,压缩图片

演示环境: 1、windows10 2、phpstudy 3、php7.4 一、案例演示: 二、素材准备 1、准备一张原始图片 2、准备一张水印图片(透明底图的最好) 3、字体库(windows系统自带的字体库,路径在:C:\Window…

Navicat连接Oracle

目标: 1.Navicat连接Oracle数据库,报错 无监听程序。 一、下载安装Navicat15 https://zhuanlan.zhihu.com/p/675991635 下载安装资源 链接:百度网盘 请输入提取码 提取码:1u1q 二、测试SQL PLUS连接数据库 在全部程序--》Ora…

Python | Leetcode Python题解之第123题买卖股票的最佳时机III

题目: 题解: class Solution:def maxProfit(self, prices: List[int]) -> int:n len(prices)buy1 buy2 -prices[0]sell1 sell2 0for i in range(1, n):buy1 max(buy1, -prices[i])sell1 max(sell1, buy1 prices[i])buy2 max(buy2, sell1 - …

Hadoop+Spark大数据技术 第七次作业

第七次作业 1. 简述Spark SQL使用的数据抽象DataFrame与Dataset的区别。 DataFrame: 基于 Row 对象的二维表格结构,类似于关系型数据库中的表。 行和列都有明确的 Schema(模式),可以进行类型推断。 提供了丰富的操作接口&#xff…

docker私有镜像仓库的搭建及认证

简介: docker私有镜像仓库的搭建及认证 前言 在生产上使用的 Docker 镜像可能包含我们的代码、配置信息等,不想被外部人员获取,只允许内 网的开发人员下载。 Docker 官方提供了一个叫做 registry 的镜像用于搭建本地私有仓库使用。在内部网…

苍穹外卖数据可视化

文章目录 1、用户统计2、订单统计3、销量排名Top10 1、用户统计 所谓用户统计,实际上统计的是用户的数量。通过折线图来展示,上面这根蓝色线代表的是用户总量,下边这根绿色线代表的是新增用户数量,是具体到每一天。所以说用户统计…

CS4344国产替代音频DAC数模转换芯片DP7344采样率192kHz

目录 DAC应用简介DP7344简介结构框图DP7344主要特性微信号:dnsj5343参考原理图 应用领域 DAC应用简介 DAC(中文:数字模拟转换器)是一种将数字信号转换为模拟信号(以电流、电压或电荷的形式)的设备。电脑对…

BSD盲区检测系统性能要求及试验方法

相关术语 盲区检测(bsd,blind spot detection)试验车辆(subject vehicle)目标车辆(target vehicle)横向距离(lateral distance):试验车车身最外缘(不包含外后视镜)与目标车辆车身最外缘(不包含外后视镜)之间的横向距离。 纵向距离(longitudinal distance):试验…

SpringBoot的第二大核心AOP系统梳理

目录 1 事务管理 1.1 事务 1.2 Transactional注解 1.2.1 rollbackFor 1.2.2 propagation 2 AOP 基础 2.1 AOP入门 2.2 AOP核心概念 3. AOP进阶 3.1 通知类型 3.2 通知顺序 3.3 切入点表达式 execution切入点表达式 annotion注解 3.4 连接点 1 事务管理 1.1 事务…

云计算与 openstack

文章目录 一、 虚拟化二、云计算2.1 IT系统架构的发展2.2 云计算2.3 云计算的服务类型 三、Openstack3.1 OpenStack核心组件 一、 虚拟化 虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之…

组装电脑(使用老机箱)

昨天同事拿来一台联想 ThinkCentre M6210t的台式机,说计算机实在是太慢了,在只保留主机箱想升级一下。   她拿来了配件,有电源、主板、CPU、CPU风扇、内存条、机箱风扇、硬盘:   主板:华硕 Prime H610M-K D4&#…

element-ui表格全选

项目场景&#xff1a; 根据项目需求&#xff0c;要求在表格外加【全选】复选框&#xff0c;切换分页也需将每一行都勾选上 实现方式&#xff1a; 借用element-ui文档的这几个方法和属性 <el-checkboxv-model"checkAll"change"handleCheckAllChange"&g…

【计算机网络】——物理层(图文并茂)

物理层 一.物理层概述1.物理层要实现的功能2.物理层接口特征1.机械特性2.电气特性3.功能特性4.过程特性 二.物理层下面的传输媒体1.传输媒体的分类2.导向型传输媒体1.同轴电缆2.双绞线3.光纤 3.非导向型传输媒体1.无线电波2.微波3.红外线4.激光5.可见光 三.传输方式1.串行传输与…