CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

news2025/6/14 6:15:58

本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像等领域提供了新的解决方案。

在工业质检、医疗影像等领域,视觉异常检测(Visual Anomaly Detection, AD)是保障质量与安全的关键技术。然而,异常样本稀缺一直是制约其发展的核心难题 —— 现实中,异常现象往往罕见且难以收集,传统方法要么依赖大量正常数据 “脑补” 异常,要么生成的伪异常缺乏真实感,导致检测模型性能受限。

2022-2025年可复现论文合集!戳https://docs.qq.com/doc/DQ25HbWt6WmdOZEta?u=7f01826fa3f140bb8e36e875087997e8&nlc=1近日,瑞士洛桑联邦理工学院(EPFL)与华中科技大学的研究团队联合提出AnomalyAny 框架已被CVPR2025录用,利用开源文本生成图像模型Stable Diffusion(SD)的强大生成能力,仅需单个正常样本文本描述,即可生成逼真、多样且从未见过的异常样本,为数据稀缺场景下的异常检测提供了全新解决方案。

图片

论文链接:

https://arxiv.org/abs/2406.01078v3

代码与 Demo 地址:

https://hansunhayden.github.io/AnomalyAny.github.io/

一、核心挑战:传统方法的 “数据困局”

现有异常生成方法主要面临两大痛点:

1. 真实性不足:

如图1(a)所示,早期方法通过 “裁剪 - 粘贴” 随机图案(如自然纹理)生成异常,虽无需训练,但生成的异常与真实场景差异显著,难以被检测模型有效识别。

2. 依赖大量数据:

如图1(b)所示,基于生成模型(如 GAN、扩散模型)的方法虽能生成更真实的样本,但需要大量正常和异常数据进行训练,这在异常罕见的场景中(如精密零件缺陷)几乎不可行。

图1:不同异常生成范式对比。(a)传统方法;(b)基于少样本训练的方法;(c)所提未知异常生成方法AnomalyAny。

  图1:不同异常生成范式对比。(a)传统方法;(b)基于少样本训练的方法;(c)所提未知异常生成方法AnomalyAny。

AnomalyAny 的突破点在于:无需任何训练数据,直接利用预训练的 Stable Diffusion 模型,通过巧妙的引导机制,让模型 “理解” 正常样本的特征,并根据文本描述生成符合逻辑的异常。

二、AnomalyAny:如何让 AI “创造” 从未见过的异常?

如图2所示,AnomalyAny 框架包含三大核心模块,环环相扣实现精准异常生成:

图2:AnomalyAny框架

  图2:AnomalyAny框架

测试时正常样本引导(Test-time Normal Sample Conditioning)

传统 SD 模型生成的图像可能偏离目标数据集的 “正常分布”(如图3(b))。AnomalyAny 通过在推理阶段引入单个正常样本的潜在特征,从噪声生成过程的中间步骤(而非完全随机起点)开始,确保生成的异常样本与正常样本共享相同的背景、光照等全局特征,避免 “画风突变”。

举个例子:若输入一张正常的 “瓶子” 图片,模型会以该瓶子的形状、材质为基础,在其基础上 “改造” 出破损、裂痕等异常,而非生成一个完全不同的物体。

图3:生成的异常样本和损伤注意力图示例。(a) 正常图片,(b) Stable Diffusion直接生成的结果、(c) 无正常样本作为条件、(d) 无注意力引导优化、(e) 无提示引导优化以及 (f) 所提AnomalyAny生成的结果。

2. 注意力引导异常优化(Attention-Guided Anomaly Optimization)

由于 SD 的训练数据中异常样本较少,模型容易忽略文本描述中的异常关键词(如 “破损”)。AnomalyAny 通过最大化异常关键词的注意力权重,迫使模型聚焦于生成目标异常区域。具体而言,通过分析 SD 的交叉注意力图(Cross-Attention Maps),找到与 “破损”“裂痕” 等关键词对应的图像区域,并通过反向传播优化潜变量,确保异常特征被显著表达。

可视化结果:如图3(d)-(f) 所示,移除注意力引导后,生成的异常区域模糊不清;而启用该机制后,异常特征(如瓶盖的裂痕)清晰可辨。

3. 提示引导异常细化(Prompt-Guided Anomaly Refinement)

为进一步提升生成质量,AnomalyAny 利用GPT-4 自动生成详细异常描述(如将 “破损” 细化为 “带有粗糙不平纹理的破损区域”),并通过 CLIP 模型计算生成图像与文本的语义相似度,强制两者对齐。这一过程不仅增加了异常的多样性(如不同类型的划痕),还能生成符合工业标准的复杂缺陷(如 “锯齿状裂缝”)。

三、实验验证:生成质量与检测性能双提升

在工业异常检测基准数据集MVTec ADVisA上,AnomalyAny 展现出显著优势:

1. 生成质量:真实感与多样性兼具

• Inception Score(IS) 衡量生成图像的真实性,AnomalyAny 在多数类别中得分最高(如 bottle 类别 IS=1.73,远超基线方法),表明其生成的异常样本更接近真实图像。

• Intra-cluster LPIPS 距离(IC-LPIPS) 衡量多样性,AnomalyAny 生成的异常样本差异更大(如 cable 类别 IC-LPIPS=0.41),为检测模型提供了更丰富的训练信号。

图4展示了在MVTec AD以及Web图片中生成的异常效果。

图4:所提AnomalyAny在MVTec AD以及Web图片中的异常生成效果

图4:所提AnomalyAny在MVTec AD以及Web图片中的异常生成效果

2. 下游检测性能:小数据下的卓越表现

如表1所示,在1-shot 检测场景(仅用 1 张正常样本训练)中,使用 AnomalyAny 生成的样本训练的模型,在 MVTec AD 上达到图像级 AUC=94.9%、像素级 AUC=95.4%,超越了 PatchCore、WinCLIP + 等主流方法。即使与需要部分异常数据训练的 AnomalyDiffusion 相比,AnomalyAny 仍实现了 comparable 性能,且无需担心数据泄漏问题。

  表1:1-shot异常检测性能对比

四、未来展望:开启 “零样本” 异常检测新范式

AnomalyAny 的创新之处在于将预训练多模态模型(SD+GPT-4)与领域知识结合,无需任何训练即可生成定制化异常样本。这一特性使其在以下场景具有广阔应用前景:

  • 工业质检:快速生成各类零件的虚拟缺陷,减少人工标注成本;

  • 医疗影像:模拟罕见病变,辅助训练肿瘤检测模型;

  • 自动驾驶:生成极端天气、道路异常等边缘场景,提升模型鲁棒性。

当然,当前方法仍依赖文本提示的准确性,未来若结合单样本异常图像输入,有望进一步提升复杂异常的生成精度。随着大模型技术的发展,类似 AnomalyAny 的 “提示式” 解决方案或将成为解决数据稀缺问题的通用范式。

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

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

相关文章

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…

什么是VR全景技术

VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…

抽象类和接口(全)

一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 ​二、实现思路 总体思路: 用户通过Gradio界面上…

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…