Diffusion Model相关论文解析之(六)Unsupervised Surface Anomaly Detection with Diffusion Probabilistic Model

1、摘要

本研究提出了一种基于扩散概率模型的无监督表面异常检测方法 DiffAD,通过改进图像重建技术解决了当前方法的重建质量不足、神经网络异常重建和多重正常模式的问题,在MVTec数据集上取得了最先进的性能表现,特别是在异常定位准确性方面。

2、创新点

1)DiffAD引入了噪声条件嵌入和插值通道,以提高异常检测中的重建质量和多样性。
2)噪声条件嵌入通过噪声扩散潜在表示,区分正常和异常区域,提高重建质量。
3)插值通道生成额外特征通道,增强重建期间的多样性。

3、主要公式

公式(1):The latent diffusion model (LDM)训练目标函数
公式(2)和(3):先生成一个异常样本,编码成潜在向量,再扩散时间步t对应的Cnoisy(带有噪声的条件向量)

公式(4):引入了噪声条件嵌入的The latent diffusion model (LDM)训练目标函数
公式(5):我们将异常输入图像xa和LDM重构的法向量编码后的潜在向量c和zr内插,得到中间状态。重建图像与原始图像之间的正常像素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Diffusion Probabilistic Model是一种基于随机漫步的时间序列生成方法。以下是使用Python实现Diffusion Probabilistic Model的代码示例: ```python import numpy as np import matplotlib.pyplot as plt # 模拟参数 T = 1000 alpha = 0.05 sigma = 0.1 # 生成模拟数据 x = np.zeros(T) x[0] = np.random.normal(0, 1) for t in range(1, T): x[t] = x[t-1] + alpha * np.random.normal(0, 1) + sigma * np.random.normal(0, 1) # 绘制时间序列 plt.plot(x) plt.title("Diffusion Probabilistic Model") plt.xlabel("Time") plt.ylabel("Value") plt.show() ``` 上述代码首先定义了模拟参数T、alpha和sigma。其中T为生成时间序列的长度,alpha为漂移系数,sigma为扩散系数。然后使用numpy库生成了长度为T的空序列x,并将第一个值初始化为标准正态分布的随机数。 接下来使用for循环迭代生成剩余的T-1个数据。每次生成的新值x[t],都是由前一个值x[t-1]加上随机漂移和随机扩散得到的。 最后使用matplotlib库绘制生成的时间序列。运行代码后,即可得到Diffusion Probabilistic Model生成的时间序列的可视化图形。 ### 回答2: diffusion probabilistic model是一种基于随机扩散过程的时间序列模型。它可以用于模拟具有随机波动的数据。下面是一个使用Python生成时间序列的diffusion probabilistic model的代码示例: ```python import numpy as np import matplotlib.pyplot as plt def diffusion_probabilistic_model(num_steps, initial_value, diffusion_coefficient): # 创建一个空数组来存储时间序列 time_series = np.zeros(num_steps) time_series[0] = initial_value # 根据扩散过程生成时间序列 for t in range(1, num_steps): delta = np.random.normal(0, 1) * np.sqrt(diffusion_coefficient) time_series[t] = time_series[t-1] + delta return time_series # 输入参数 num_steps = 100 # 时间步数 initial_value = 0 # 初始值 diffusion_coefficient = 0.1 # 扩散系数 # 生成时间序列 time_series = diffusion_probabilistic_model(num_steps, initial_value, diffusion_coefficient) # 绘制时间序列图 plt.plot(time_series) plt.xlabel('Time') plt.ylabel('Value') plt.title('Diffusion Probabilistic Model') plt.show() ``` 在上面的代码中,我们定义了一个名为`diffusion_probabilistic_model`的函数,该函数接受三个参数:时间步数`num_steps`、初始值`initial_value`和扩散系数`diffusion_coefficient`。函数内部通过随机生成服从正态分布的增量来模拟时间序列的扩散过程。 然后,我们定义了输入参数的值,并调用`diffusion_probabilistic_model`函数生成时间序列。最后,使用Matplotlib库绘制了生成的时间序列图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值