type
status
date
slug
summary
tags
category
icon
password
Last edited time
Jul 11, 2024 06:43 AM
😀
以重建的方法为主体,辅助使用数据增强的及分割图的深入推断
DRAEM
VitjanZUpdated Jul 17, 2024

📝 主旨内容

模型原理

notion image
网络三大模块:异常生成模块、重构模块、判断模块。
异常生成模块:因为只有正常数据,通过将异常区域做到正常图里达到模拟异常图的效果。
重构模块:将产生的异常图进行重构得到重构图,可以产生损失Lr。
判别模块:重构图与异常图一同输入,通过该模块的层级结构对比产生分割真值图。
💡
以重建的方法为主体,辅助使用数据增强的及分割图的深入推断(使用U-Net网络结构)

Anomaly generation

💡
异常图像由柏林噪声发生器,通过随机均匀采样的阈值二值化后生成
噪声图像是由柏林噪声生成的,以捕捉各种异常形状(图P),并通过随机均匀采样的阈值进行二值化,生成异常图(图Ma)。从一个与输入图像分布无关的异常源图像数据集上采样异常纹理源图像A。
随机增加采样,从集合{色调分离,清晰度,曝光,均衡,亮度改变,颜色改变,自动对比度}中抽样3个随机增加函数。将增广纹理图像A与异常图Ma进行掩膜,并与原图像I进行混合,生成just-out-of-distribution的异常,从而有助于在训练后的网络中加强决策边界。因此将增强训练图像Ia定义为
因此,上述的模拟器生成包含原始无异常图像的训练样本三组,包含模拟异常Ia和像素完美异常掩模Ma的增强图像。
notion image
notion image
 

Reconstructive sub-network

重建子网络:编码器-解码器
假设输入张量A1(输入的为Anomaly generation做的正常改异常后的数据。)
编码器:经过五个块(每个块包含两套卷积,归一化层,激活函数),生成张量A2。
解码器:经过四个块(每个块包含一个上采样,三套卷积,归一化层,激活函数),再经过一层卷积,生成张量A3。
损失函数:l2损失常用于基于重构的异常检测方法,这种损失是假设像素间是独立的,因此,本文还采用了另一种损失SSIM加强像素间交互性。

L2损失和MSE损失区别

对于两张图片的比较,L2损失和MSE(均方误差)损失的区别主要在于是否进行平均处理。事实上,当只涉及两张图片时,这两种损失在计算上非常相似,但它们的解释和可能的用途有所不同。

L2 损失

  1. 定义
      • L2损失是两张图片对应像素差的平方和。
      • 公式:分别是第一张和第二张图片中的对应像素。
  1. 特点
      • L2损失提供了两张图片之间差异的总量。
      • 它对大的差异(像素值差别大)给予更重的惩罚。
  1. 应用场景
      • 可以用于图像重建、降噪等,当关注整体误差量时使用。

MSE(均方误差)损失

  1. 定义
      • MSE损失是两张图片对应像素差的平方和的平均值。
      • 公式:
  1. 特点
      • MSE提供了两张图片之间差异的平均量。
      • 同样对大的差异给予重惩罚,但是通过平均化,它提供了每个像素平均误差的度量。
  1. 应用场景
      • 适用于图像处理中的优化问题,如训练神经网络进行图像重建或超分辨率时。

区别

  • 计算上的区别:对于两张图片,L2损失计算的是总的像素差的平方和,而MSE计算的是平均像素差的平方和。
  • 解释上的区别:L2损失给出了总体的误差量,而MSE提供了平均每个像素的误差量。
在实际应用中,当比较两张图片时,使用L2损失和MSE损失可能得到非常相似的结果。区别在于,MSE通过考虑图片的大小(像素总数)来标准化误差,这在比较不同大小或者需要标准化误差度量的图像时特别有用。

Discriminative sub-network

U-Net结构,将重构好的图像A3与刚开始输入的图像A1一起输入该网络,层级判断对比生成分割图。
判别子网络采用类似于U-Net的架构,这个子网络输入Ic 被定义为重构子网络输出Ic和输入图像I的通道级联。由于重构子网络的正态恢复特性,在异常图像中,I和Ir的联合形态存在显著差异,这为异常分割提供了必要的信息。
在基于重构的异常检测方法中,利用SSIM等相似函数获得异常图,将原始图像与重构图像进行比较,然而,表面异常检测的特定相似性度量是很难手工制作的。而判别子网络则学习合适的距离自动的测量。网络输出与原始图像I大小相同的异常分数图Mo。将焦点损失Focal Loss (Lseg)应用于判别子网络的输出,以提高困难示例精确分割的鲁棒性。考虑到两个子网络的分割和重构目标,在训练DRÆM时,总损失为
其中MaM分别为ground truth和输出的异常分割掩模
 

Focal Loss(解决正负样本数量极不平衡问题):

-alpha * ((1 - pt)^gamma) * log(pt)
通过alpha可以抑制正负样本的数量失衡,通过gamma可以控制简单/难区分样本数量失衡
①调制因子(1 - pt)^gamma是用来减低易分样本的损失贡献 ,无论是前景类还是背景类,pt越大,就说明该样本越容易被区分,调制因子也就越小。
alpha用于调节正负样本损失之间的比例,前景类别使用alpha时,对应的背景类别使用1-alpha
gammaalpha都有相应的取值范围,他们的取值相互间也是有影响的,在实际使用过程中应组合使用。

部分训练代码:

🤗 总结归纳

下载数据集代码

下载预训练模型

📎 参考文章

 
PatchCore: Towards Total Recall in Industrial Anomaly Detection(CVPR2022)2024-01-08
Loading...