图像重建或修复实现异常检测1--DRAEM

在异常检测中,大部分情况都缺少异常的样本,都在正常样本的情况下进行训练,这篇论文转化了一个视角,把异常检测问题看成了一个判别问题,提出了一个判别训练的重建异常嵌入模型DRAEM。

模型主要分为三部分:(1)模拟异常生成模块(2)重建子网络(3)判别子网络

DRAEM原理为:

训练过程:先将正常图像通过模拟异常生成模块,生成一个有异常的图像Ia,再将异常图像输入重建子网络(AE)中生成重建后的正常图像Ir(损失函数通过lr于原图l构造一个SSIM损失函数来训练参数),然后将Ia和Ir进行concat输入判别子网络(UNet),结合生成的异常生成损失函数进行训练,得到最后生成的异常分割掩码M,最后通过均值滤波器进行平滑,将像素的最大值记为n,得到异常图像的分数。

测试过程:将异常图输入重建子网络中,这也是为什么要加重建子网络,异常图像一般没有对应的正常图像,先对异常图像进行一个重建,然后将重建图像和异常图像一起输入判别子网络中,得到异常分割掩码,最后进行评分

实现过程如下图所示:

下面详细介绍三个部分的原理:

1、模拟异常生成

由Perlin噪声发生器来生成噪声,同时通过随机均匀采样的阈值二值化来生成异常掩码M,生成原理:将生成的柏林噪声的图P,进行随机均匀采样的阈值二值化为异常掩码Ma,从异常源中得到图A,将Ma与A逐个元素点乘,得到合成的异常B(图中没有显示,这是假设为B),将Ma与原图I点乘,得到D(同假设),将其相加得到异常,前面乘参数,保证不会大于255,然后再生成一个逆的Ma,将Ma与I点乘,然后三个相加,得到最终的Ia,下面为原理图和公式:

2、重建子网络

重建子网络为解码器和编码器体系,重构子网络被公式化为编码器和解码器架构,将图像转化为向量,再重构为原来的图像,重构图像记为lr,原图为l,那么损失函数可以记为:

重建子网络目的为重建正常图像

3、判别子网络

判别子网络类似于U-Net的架构,UNet可以百度,这个子网络的输入Ic为重构子网络的输出lr和输入图像l的连接。判别子网络自动学习适当的距离度量,输出为异常分割掩码Mo,Ma为ground truth,Lfocal计算M和Ma之间的误差,这样设计网络有很强的鲁棒性。

4、异常定位和检测

通过均值滤波器对判别子网络输出的M进行平滑,取平滑中的最大值来作为图像级的异常得分n

下面是自己思考的几个问题:

问题1为什么要重构子网络?

因为要训练网络建立正常图,在一个异常样本输入的时候,往往可能只有一个异常图,采用端对端的形式,就必须使用异常图先生成正常图,然后两个融合,再输入判别子网络

问题2为什么需要鉴别子网络结构生成异常分数图?直接用重建图像与原始图像的如L1距离作为异常分数不可以吗?

表面异常检测可能涉及到表面纹理、形状、颜色等多方面的信息。直接使用传统的像素级别的距离度量可能无法捕捉到这些复杂的特征。鉴别子网络结构被设计用于学习更高级别、抽象的特征,以更好地适应任务的需求。

 鉴别子网络具有自适应性,可以根据具体的任务和数据分布调整特征的表示。相比之下,传统的相似度函数可能不够灵活,难以适应不同场景和异常类型。

 使用鉴别子网络结构可以进行端到端的学习,从而允许网络在训练过程中逐步优化特征表示,以提高异常检测性能。

论文创新点:

1、改变传统的对正常样本进行训练,然后将异常样本输入检测的方法,自己生成异常样本,来训练模型,我理解为自己生成的和需要检测的异常,都是异常,这样就相当于增加了异常样本,让模型来学习正常和异常样本的决策界

2、不需要对网络输出进行复杂的后处理

3、将异常检测看为一个判别问题

新学内容:1、UNet  2、转置卷积   3、SSIM评价标准    4、增强和不透明随机化

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌大大大西瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值