阅读 ADiffusion-Based Framework for Multi-Class Anomaly Detection
A Diffusion-Based Framework for Multi-Class Anomaly Detection
我觉得引言部分写的不错,将问题清楚的讲出来了,值得借鉴!!
摘要
基于重建的方法在异常检测方面取得了显著成果。最近流行的扩散模型的卓越图像重建能力引发了研究努力,以利用它们来增强异常图像的重建。
(问题)尽管如此,这些方法可能会面临与更实际的多类设置中图像类别和像素结构完整性的保存相关的挑战。
为了解决上述问题,我们提出了一种基于扩散的异常检测Difusion-based Anomaly Detection (DiAD) 框架,用于多类异常检测,该框架由像素空间自动编码器、与稳定扩散去噪网络连接的潜在空间语义引导 (SG) 网络和特征空间预训练特征提取器组成。首先,SG 网络用于重建异常区域,同时保留原始图像的语义信息。其次,我们引入了空间感知特征融合 (SFF) 块,以在处理广泛重建区域时最大限度地提高重建精度。第三,输入和重建图像由预训练的特征提取器处理,以基于以不同尺度提取的特征生成异常图。在 MVTec-AD 和 VisA 数据集上进行的实验证明了我们的方法的有效性,它超越了最先进的方法,例如,在多类 MVTec-AD 数据集上分别实现 96.8/52.6 和 97.2/99.0 (AUROC/AP) 的定位和检测。
一、Introduction
问题:
For the Denoising Diffusion Probabilis tic Model (DDPM) (Ho, Jain,and Abbeel 2020) in Fig. 1 (a), when performing the multi-class
setting, this method may encounter issues with misclassifying image categories.
DDPM扩散模型无法解决多类别的异常检测问题。
出现这个问题的原因是什么,现存的方法为什么没有解决
Because after adding T timesteps noise to the input image,
the original class information is lost. During inference, denoising is performed based on this Gaussian noise-like dis
tribution, which may generate images belonging to different categories. 2) Latent Diffusion Model (LDM) (Rombach
et al. 2022) has an embedder as a class condition as shown in Fig. 1-(b), which overcomes the problem of misclassifica
tion in DDPM. However, LDM cannot address the issue of semantic loss in generated images. LDM cannot simultane
ously preserve the semantic information of the input image while reconstructing the anomalous regions. For example,
they may fail to maintain direction consistency with the in put image in terms of objects like screws and hazelnuts.
因为在输入图像上添加了 T 个时间步长的噪声后,原始的类别信息就丢失了。在推理过程中,基于这种高斯噪声分布进行去噪,这可能会生成属于不同类别的图像。2)潜在扩散模型 (LDM) (Rombachet al. 2022) 有一个嵌入器作为类条件,如图 1-(b) 所示,它克服了 DDPM 中的错误分类问题。然而,LDM 不能解决生成图像中的语义丢失问题。LDM 不能在重建异常区域的同时保留输入图像的语义信息。例如,
对于螺丝和榛子等物体,它们可能无法与输入图像保持方向一致性。
总结为两点:
- DDPM加入噪声后让图像无法知道类别的信息了。
- LDM虽然引入了类别信息,但是在重建异常的时候无法保存语义信息,即无法解决生成图像中的语义损失的问题
怎么解决
To address the problems, we propose DiAD for multi class anomaly detection in Fig. 2, which comprises: a pixel space autoencoder, a latent space denoising network and a feature space pre-trained model. To effectively maintain consistent semantic information with the original image while reconstructing the location of anomalous regions, we propose the Semantic-Guided (SG) network with a connection to the Stable Diffusion (SD) denoising network. To further enhance the capability of preserving fine details in the original image, we propose the Spatial-aware Feature Fusion (SFF) block to integrate features at different scales. Finally, the reconstructed and input images are extracted features through a pre-trained model for anomaly scores.
为了解决这些问题,我们在图 2 中提出了用于多类异常检测的 DiAD,它包括:像素空间自动编码器、潜在空间去噪网络和特征空间预训练模型。为了在重建异常区域的位置时有效地保持与原始图像一致的语义信息,我们提出了与稳定扩散 (SD) 去噪网络连接的语义引导 (SG) 网络。为了进一步增强保留原始图像中精细细节的能力,我们提出了空间感知特征融合 (SFF) 块来集成不同尺度的特征。最后,通过预训练的异常分数模型从重建图像和输入图像中提取特征。
(贡献)
- We propose a novel diffusion-based framework DiAD for multi-class anomaly detection, which firstly tackles
the problem of existing denoising networks of diffusion based methods failing to correctly reconstruct anomalies.- We construct an SG network connecting to the SD denoising network to maintain consistent semantic infor
mation and reconstruct the anomalies.- Wepropose an SFF block to integrate features from different scales to further improve the reconstruction ability.
- Abundant experiments demonstrate the sufficient superiority of DiAD over SOTA methods.
- 我们提出了一种基于扩散的新型多类异常检测框架 DiAD,该框架首先解决了基于扩散的现有方法的去噪网络无法正确重建异常的问题。
- 我们构建了一个连接到 SD 去噪网络的 SG 网络,以保持一致的语义信息并重建异常。
- 我们提出了一个 SFF 块来整合不同尺度的特征,以进一步提高重建能力。
- 大量实验证明了 DiAD 相对于 SOTA 方法的充分优势。
总结:一个框架解决核心问题,两个技术解决小问题。
二、Preliminaries
介绍 Denoising Diffusion Probabilistic Model.
介绍 Latent Diffusion Model.
三、Method
相关文章:
阅读 ADiffusion-Based Framework for Multi-Class Anomaly Detection
A Diffusion-Based Framework for Multi-Class Anomaly Detection 我觉得引言部分写的不错,将问题清楚的讲出来了,值得借鉴!! 摘要 基于重建的方法在异常检测方面取得了显著成果。最近流行的扩散模型的卓越图像重建能力引发了研…...
网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析1
文章目录 1、RAID6配置指南(大致步骤)2、注意事项3、截图和视频 网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操 RAID6是一种在存储系统中实现数据冗余和容错的技术,其最多可以容忍两块磁盘同时损坏而不造成数据丢失。RAID…...
ts- declare关键词及vue3报错“Window typeof globalThis”上不存在属性“nextLoading”、`
报错“Window & typeof globalThis”上不存在属性“nextLoading”、 代码环境:vue3、ts 阮一峰讲解 declarets 用法告诉编译器某个类型是存在的 下面的例子是脚本使用浏览器全局对象document。 declare var document; document.title "Hello";上面…...
【STM32】在 STM32 USB 设备库添加新的设备类
说实话,我非常想吐槽 STM32 的 USB device library,总感觉很混乱。 USB Device library architecture 根据架构图: Adding a custom class 如果你想添加新的设备类,必须修改的文件有 usbd_desc.cusbd_conf.cusb_device.c 需要…...
【单点知识】基于PyTorch讲解自动编码器(Autoencoder)
文章目录 0. 前言1. 自动编码器的基本概念1.1 定义1.2 目标1.3 结构 2. PyTorch实现自动编码器2.1 导入必要的库2.2 定义自动编码器模型2.3 加载数据2.4 训练自动编码器 3. 自动编码器的意义4. 自动编码器的应用4.1 图像处理4.2自然语言处理:4.3推荐系统:…...
html+js实现图片的放大缩小等比缩放翻转,自动播放切换,顺逆时针旋转
效果图: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图片预览</title><sty…...
【蓝桥杯C/C++】翻转游戏:多种实现与解法解析
博客主页: [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 💯题目💯问题分析解法一:减法法解法二:位运算解法解法三:逻辑非解法解法四:条件运算符解法解法五:数组映射法不同解法的比较…...
介绍一下toupper(ch);函数(c基础)
hi , I am 36 适合对象c语言初学者 toupper(ch1); tolower(ch2); 是返回ch的大写或小写的字符但并不改变ch 若传递数字仍返回该数字 格式 #include<ctype.h> char res toupper(ch); 链接扫雷游戏代码分享(c基础)-CSDN博客 hi , I am 36. thanks for your look…...
如何使用Python代码实现给GPU预加热
如何使用Python代码实现给GPU预加热 一、引言二、使用深度学习框架进行预加热2.1 TensorFlow预加热2.2 PyTorch预加热三、使用CUDA进行预加热四、预加热的效果评估与优化五、结论与展望在高性能计算和深度学习领域,GPU(图形处理器)已经成为不可或缺的加速工具。然而,在实际…...
基于 SpringBoot 的作业管理系统【附源码】
基于 SpringBoot 的作业管理系统 效果如下: 系统注册页面 学生管理页面 作业管理页面 作业提交页面 系统管理员主页面 研究背景 随着社会的快速发展,信息技术的广泛应用已经渗透到各个行业。在教育领域,课程作业管理是学校教学活动中的重要…...
LeetCode题解:26.删除有序数组中的重复项【Python题解超详细,双指针法】,知识拓展:原地修改
题目描述 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &…...
docker 容器运行Ruoyi-cloud
1,linux系统安装openjdk1.8,mvn,dokcer,node,git 2,拉取代码 1)查看gitee仓库地址 2)创建/app文件夹,进入app目录 mkdir /app cd /app 3)clone代码 4)修改配置文件中nacos地址 # 修改注…...
【Unity How】Unity中如何实现物体的匀速往返移动
直接上代码 using UnityEngine;public class CubeBouncePingPong : MonoBehaviour {[Header("移动参数")][Tooltip("移动速度")]public float moveSpeed 2f; // 控制移动的速度[Tooltip("最大移动距离")]public float maxDistance 5f; // 最大…...
STM32完全学习——系统时钟设置
一、时钟框图的解读 首先我们知道STM32在上电初始化之后使用的是内部的HSI未经过分频直接通过SW供给给系统时钟,由于内部HSI存在较大的误差,因此我们在系统完成上电初始化,之后需要将STM32的时钟切换到外部HSE作为系统时钟,那么我…...
简单理解下基于 Redisson 库的分布式锁机制
目录 简单理解下基于 Redisson 库的分布式锁机制代码流程:方法的调用:具体锁的实现:riderBalance 方法:tryLock 方法(重载):tryLock 方法(核心实现): 简单理解…...
ruoyi框架完成分库分表,按月自动建表功能
前提 这个分库分表功能,按月自动建表,做的比较久了,还没上线,是在ruoyi框架内做的,踩了不少坑,但是已经实现了,就分享一下代码吧 参考 先分享一些参考文章 【若依系列】集成ShardingSphere S…...
数据结构 【单链表练习】
今天来探讨两个练习题要使用的思想为快慢指针。 1、返回链表的中间节点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 整体思路如下图所示: 代码如下: /*** Definition f…...
wsl虚拟机中的dockers容器访问不了物理主机
1 首先保证wsl虚拟机能够访问宿主机IP地址,wsl虚拟机通过vEthernet (WSL)的地址访问,着意味着容器也要通过此IP地址访问物理主机。 2 遇到的问题:wsl虚拟机中安装了docker,用在用到docker容器内的开发环境,但是虚拟机…...
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
作者:来自 Elastic Saikat Sarkar 使用 Elasticsearch 向量数据库构建搜索 AI 体验时如何使用 IBM watsonx™ Slate 文本嵌入。 Elastic 很高兴地宣布,通过集成 IBM watsonx™ Slate 嵌入模型,我们的开放推理 API 功能得以扩展,这…...
【如何用更少的数据作出更好的决策】-gpt生成
如何用更少的数据作出更好的决策 用更少的数据作出更好的决策是一种能力的体现,需要结合有效的方法、严谨的逻辑以及对问题的深刻理解。以下是一些可以帮助你实现这一目标的策略: 明确目标 在收集和分析数据之前,先明确你的决策目标是什么…...
webview4/edgewebbrower学习记录——执行js
webview2可执行js方法:WVBrowser1.ExecuteScript(js, 1003) 参数1为js语句,参数2为命令号,执行完毕,会执行 procedure TBrowserFrame.WVBrowser1ExecuteScriptCompleted(Sender: TObject; aErrorCode: HRESULT; const aResultOb…...
Java文件上传解压
目录结构 工具类 枚举 定义文件类型 public enum FileType {// 未知UNKNOWN,// 压缩文件ZIP, RAR, _7Z, TAR, GZ, TAR_GZ, BZ2, TAR_BZ2,// 位图文件BMP, PNG, JPG, JPEG,// 矢量图文件SVG,// 影音文件AVI, MP4, MP3, AAR, OGG, WAV, WAVE}为了避免文件被修改后缀࿰…...
人工智能(AI)与机器学习(ML)基础知识
目录 1. 人工智能与机器学习的核心概念 什么是人工智能(AI)? 什么是机器学习(ML)? 什么是深度学习(DL)? 2. 机器学习的三大类型 (1)监督式学…...
autoware(2)运行自己的数据集
上一节完成了autoware.ai的安装和编译跑通了demo数据集,本将自己录制的数据包用于测试 1.修改点云地图 将加载点云地图的my_map.launch文件复制并命名为my_map_test.launch, (1)point cloud处替代原来的点云地图为自己的&#…...
HBase Java基础操作
Apache HBase 是一个开源的、分布式的、可扩展的大数据存储系统,它基于 Google 的 Bigtable 模型。使用 Java 操作 HBase 通常需要借助 HBase 提供的 Java API。以下是一个基本的示例,展示了如何在 Java 中连接到 HBase 并执行一些基本的操作,…...
巧用观测云可用性监测(云拨测)
前言 做为系统运维或者开发,很多时候我们需要能够实时感知我们所运维的系统和服务的情况,比如以下的场景: 系统上线前测试:包括功能完整性检查,确保页面元素(如图像、视频、脚本等)都能够正常…...
Chrome离线安装包下载
1、问Chrome的官网:https://www.google.cn/chrome/ 直接下载的是在线安装包,安装需要联网。 2、如果需要在无法联网的设备上安装Chrome,需要在上面的地址后面加上?standalone1。 Chrome离线安装包下载地址:https://www.google.c…...
ceph的RBD管理
0 块设备介绍 Ceph 的块设备(Ceph Block Device, RBD)是其存储服务的一种实现形式,通过 librbd 库或 Linux 内核模块提供块设备支持,所以可以与主流云平台(如 OpenStack)、虚拟化平台(如 KVM&a…...
【数论】莫比乌斯函数及其反演
文章目录 一、介绍二、莫比乌斯函数的算法求解三、例题 在学习之前,先来了解一下常见定义吧(OVO): 常见数论函数分为两种: { 完全积性函数:对于任意 p , q ∈ N ,有 f ( p ⋅ q ) f ( p ) ⋅ …...
低音运行,约克VRF中央空调让居家生活静享安宁
不仅节能省电,约克VRF中央空调还特别注重运行的静音效果,低至17dB超低运行噪音,让你在享受舒适环境的同时,也能拥有宁静的居家氛围。无论是工作、学习还是休息,都不受噪音干扰。...
使用 Ansys LS-DYNA 进行玻璃瓶包装跌落分析
使用 Ansys LS-DYNA 进行玻璃瓶包装跌落分析 玻璃瓶包装跌落分析 使用两个玻璃瓶,其中一个为纸盒包装,用来演示包装效果。 Johnson–Holmquist 损伤模型用于玻璃 (MAT_JOHNSON_HOLMQUIST_CERAMICS)纸箱包装采用各向同性弹性材料模型。瓶子将从 300 毫米…...
Windows系统编程 - 进程遍历
文章目录 前言进程的遍历CreateToolhelp32SnapshotProcess32FirstProcess32Next进程遍历 总结 前言 各位师傅好,我是qmx_07,今天给大家讲解进程遍历的相关知识点 进程的遍历 快照:使用vmware虚拟机的时候,经常需要配置环境服务…...
【电路笔记 TMS320F28335DSP】时钟+看门狗+相关寄存器(功能模块使能、时钟频率配置、看门狗配置)
时钟源和主时钟(SYSCLKOUT) 外部晶振:通常使用外部晶振(如 20 MHz)作为主要时钟源。内部振荡器:还可以选择内部振荡器(INTOSC1 和 INTOSC2),适合无需高精度外部时钟的应…...
gt730是什么显卡?gt730显卡性能参数介绍
NVIDIA GeForce GT 730是一款入门级图形卡,于2014年推出,基于40纳米工艺和GF108图形处理器。尽管它支持DirectX 12,但功能级别仅为11_0,这可能会在新的DirectX 12标题中造成问题。GT 730具有96个着色单元,16个纹理映射…...
Swift内存访问冲突
内存的访问,发生在给变量赋值的时候,或者传递值(给函数)的时候,例如 var one 1//向one的内存区域发起一次写的操作 print("\(one)")//向one的内存区域发起一次读的操作 在 Swift 里,有很多修改…...
2024.6使用 UMLS 集成的基于 CNN 的文本索引增强医学图像检索
Enhancing Medical Image Retrieval with UMLS-Integrated CNN-Based Text Indexing 问题 医疗图像检索中,图像与相关文本的一致性问题,如患者有病症但影像可能无明显异常,影响图像检索系统准确性。传统的基于文本的医学图像检索࿰…...
力扣刷题--21.合并两个有序链表
I am the best !!! 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2…...
Diving into the STM32 HAL-----DAC笔记
根据所使用的系列和封装,STM32微控制器通常只提供一个具有一个或两个专用输出的DAC,除了STM32F3系列中的少数零件编号实现两个DAC,第一个具有两个输出,另一个只有一个输出。STM32G4 系列的一些较新的 MCU 甚至提供多达 5 个独立的…...
每日一题 LCR 078. 合并 K 个升序链表
LCR 078. 合并 K 个升序链表 使用二分法就可以解决 class Solution { public:ListNode* mergeKLists(vector<ListNode*>& lists) {int n lists.size();if(n 0){return nullptr;}ListNode* ans ;ans binMerge(lists,0,n-1);return ans;}ListNode* binMerge(vector…...
如何在分布式环境中实现高可靠性分布式锁
目录 一、简单了解分布式锁 (一)分布式锁:应对分布式环境的同步挑战 (二)分布式锁的实现方式 (三)分布式锁的使用场景 (四)分布式锁需满足的特点 二、Redis 实现分…...
如何利用java爬虫获得淘宝商品评论
在当今数字化时代,数据的价值日益凸显,尤其是对于电商平台而言,商品评论作为用户反馈的重要载体,蕴含着丰富的信息。本文将详细介绍如何利用Java爬虫技术获取淘宝商品评论,包括代码示例和关键步骤解析。 淘宝商品评论的…...
SQLAlchemy,ORM的Python标杆!
嗨,Python的小伙伴们!今天咱们来了解 SQLAlchemy,这可是对象关系映射(ORM)里的超级标杆哦!它就像一座神奇的桥梁,能让我们用 Python 代码轻松地和数据库打交道,不用写复杂的 SQL 语句…...
时序论文23|ICML24谷歌开源零样本时序大模型TimesFM
论文标题:A DECODER - ONLY FOUNDATION MODEL FOR TIME - SERIES FORECASTING 论文链接:https://arxiv.org/abs/2310.10688 论文链接:https://github.com/google-research/timesfm 前言 谷歌这篇时间序列大模型很早之前就在关注ÿ…...
java http body的格式 application/x-www-form-urlencoded不支持文件上传
在Java中,HTTP请求的body部分可以包含多种格式的数据,主要包括以下几种: application/x-www-form-urlencoded:这种格式将数据编码成键值对的形式,键和值都进行了URL编码,键值对之间用&符号连接。…...
【头歌实训:利用kmp算法求子串在主串中不重叠出现的次数】
头歌实训:利用kmp算法求子串在主串中不重叠出现的次数 文章目录 任务描述编程要求测试说明输入格式输出格式样例输入1样例输出1样例输入2样例输出2 源代码: 任务描述 本关任务:编写一个程序,利用kmp算法求子串在主串中不重叠出现…...
WPF动画
在 WPF(Windows Presentation Foundation)中,主要有两种类型的动画:属性动画(Property Animation)和关键帧动画(Key - Frame Animation)。属性动画用于简单地从一个起始值平滑地过渡…...
Kafka 分区分配及再平衡策略深度解析与消费者事务和数据积压的简单介绍
Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析:…...
如何在 UniApp 中实现 iOS 版本更新检测
随着移动应用的不断发展,保持应用程序的更新是必不可少的,这样用户才能获得更好的体验。本文将帮助你在 UniApp 中实现 iOS 版的版本更新检测和提示,适合刚入行的小白。我们将分步骤进行说明,每一步所需的代码及其解释都会一一列出…...
Android 14.0 kenel中修改rom系统内部存储的大小
1. 前言 在14.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,由于在产品后续订单中,有些产品是出口的,但是硬件方面已经定板,时间比较仓促,所以 就需要软件方面在rom内部存储的大小方面作假,修改rom真实的大小容量,所以就需要在kenel驱动部分来修改这部分…...
JavaScript 函数
JavaScript中也可以使用函数,但是使用的方法有些不同;需要使用function关键字定义一个函数(或者使用匿名函数或者箭头函数)。但是需要特别注意的是:在类中定义函数时,一定不可以使用箭头函数,因…...