一种无需训练缺陷数据生成算法--O2MAG

一、前言

数据不足就自己造,本篇讨论一种无需训练缺陷数据生成算法--O2MAG,全称是 One reference anomalous image to More realistic anomaly Generation。它的出发点很直接:只给定一张参考异常图像及其掩码,再给定一张正常图像与目标异常区域,就生成更多与真实分布更接近的异常样本。与传统需要训练或微调生成器的方法不同,O2MAG 完全不额外训练 Stable Diffusion,而是在推理阶段通过注意力控制完成异常迁移。论文摘要和方法部分都强调,这是一个few-shot + training-free 的异常合成框架。

二、代码设置

打开 edit_anomaly_moregpu_fewshot.py,找到main函数,需要满足以下这些参数

根目录下新建文件夹 mvtec_data ,存放 mvtec 数据集,从网上下载好

在这里需要先确定要生成的缺陷数据是哪一个物体类别,假设是 bottle ,还有缺陷类型是broken_small, 那么在 ./anomalydiffusion/generated_mask 下 新建 bottle 文件夹,bottle文件夹内再新建broken_small 文件夹,存放 stablediffusin 生成的二值掩码图,也可以自己制作,用于确定要生成的缺陷大小位置,24位jpg格式,分辨率512*512,命名从0.jpg、1.jpg、...

根目录下新建 results_final_fewshot_toothbrush , 程序运行后将在该目录下新建路径 bottle/broken_small 文件夹,存放程序生成好的缺陷图片

根目录新建文件夹 data_agument ,在该目录下新建 bottle 文件夹,存放正常无缺陷的图片,512*512分辨率 24位png格式

anomaly_name文件夹下 新建 name-mvtec-my.txt ,这里面每一行是 物体类别+缺陷类别的形式,例如我这里是 前面的 bottle+broken_small ,就在txt 第一行写上

这里直接根目录新建文件夹 mvtec_embed_bank

这里是 单个显卡就只有0了

直接下载官方开源的代码,代码用到了 Stable Diffusion v1.5 完整权重文件,到 modelscope搜索 stable-diffusion-v1.5 下载得到 stable-diffusion-v1.5-no-safetensor , 文件较大,10几个G

在项目根目录新建 文件夹 stable-diffusion-v1-5 保存进去

三、真实缺陷文件和掩码图存放位置

前面讲到 要给定参考异常图像及其掩码, 这些是放在 mvtec_data 里的,例如我是 改动了mvtec_data 里的 bottle 类别文件夹,

ground_truth 里的 broken_small 存放的是我自己的真实缺陷图片的掩码图,512*512 8位png,命名也要参照mvtec形式

test 里的 broken_small 存放的是我自己的真实缺陷图片512*512 24位png,命名也要参照mvtec形式

相关推荐
雨晨源码(同名B站)2 分钟前
深度学习毕业设计选题推荐:基于卷积神经网络的无人机影像建筑裂缝裂纹检测分类与分割系统(LeNet-5 二分类模型、GCN-Res50分割模型)
深度学习·信息可视化·分类·cnn·毕业设计·无人机·课程设计
意图共鸣6 分钟前
意图共鸣科技 · 时间胶囊(五)|认知中间层:设计思路与《认知律》
人工智能
Pniubi9 分钟前
力扣46全排列(回溯(递归))
算法·leetcode·职场和发展
深蓝AI3 小时前
10 万星投给了记忆:claude-mem 把编码 Agent 的断片压进 SQLite,值不值得装
人工智能·程序员
limuyang27 小时前
我在 2核2G 云主机上跑 OpenViking:一次关于云主机、模型选型与长期成本的真实复盘
人工智能·开源·ai编程
Shulex9 小时前
跨境电商 AI Agent 核心架构解析:从只读问答到自主执行的工程落地
人工智能·架构·智能客服·跨境电商
Java后端的Ai之路9 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
情 九9 小时前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
码农小旋风9 小时前
Ray分布式计算引擎介绍
人工智能·架构