【CVPR 2023】DeSTSeg:Segmentation Guided Denoising Student-Teacher for Anomaly Detection
1.动机
学生-教师 (S-T) 框架已被证明在异常检测中有效 ,之前的基于S-T的工作只是经验性地对正常数据施加约束并且融合多层信息,但以经验方式(例如总和或乘积)汇总多级差异可能不是最优的。针对这个问题,作者提出改进S-T模型—DeSTSeg。
2.主要假设
学生网络将在训练中从未遇到过的异常样本上生成与教师网络不同的特征表示。
3.Overview of DeSTSeg
DeSTSeg由去噪学生网络
、预训练的教师网络
、分割网络
组成。
训练阶段,(a)在正常图像中引入随机合成的异常,使用这些损坏的图像作为去噪学生网络的输入,而教师网络采用原始的图像作为输入。去噪学生网络经过训练以在特征空间中执行去噪;(b)然后对教师网络和训练好的去噪学生网络都输入添加噪声后的图像,将学生与教师网络的输出以融合多级特征差异来训练分割网络,使用生成的二进制异常掩模作为监督信号。
推理阶段,当给定异常图像作为两个网络的输入时,教师网络将异常自然地编码为特征,而训练有素的去噪学生网络则从特征空间中过滤异常。然后将输出送入分割网络得到预测的异常得分图。
4.方法
4.1 Synthetic Anomaly Generation
生成随机二维Perlin噪声,并通过预设阈值进行二值化以获得异常掩模M。通过用无异常图像 In 和来自外部数据源 A 的任意图像的线性组合替换掩模区域来生成异常图像Ia,不透明度因子 β 在[0.15, 1]之间。
Q:使用ChatGPT解答<关于为什么使用外部数据源A的原因?>
A:使用外部数据源 A 来替换异常区域是为了提供更多的灵活性和多样性。在这种情况下,异常掩模 M 标识了需要修改或替换的图像区域,而使用外部数据源 A 可以提供一些不同于原始图像的内容,以使最终的异常图像更富有变化和复杂性。
举个例子,假设你有一幅风景图像 In,使用 Perlin 噪声生成的异常掩模 M 指示出了一些不规则的区域。现在,你可以从外部数据源 A 中选择一些与原始图像内容不同的图像(也许是其他风景图、抽象图案、艺术作品等),然后将这些图像的部分(根据异常掩模 M)与原始图像进行线性混合或替换,以创建具有异常区域的新图像 Ia。
4.2 Denoising Student-Teacher Network
教师网络是经过ImageNet预训练并删除最后一个block的ResNet18(下面这张图是网络上找的)。输出的特征图是从剩余的三个block中的最后一个conv提取的,称为T1,T2,T3.
去噪学生网络中的编码器是随机初始化的ResNet18,解码器是一个反向的ResNet18(通过用双线性上采样替换所有下采样)。解码器输出的特征图称为S4,S3,S2,S1
损失函数如下图所示,优化目标是最小化特征间的余弦距离。其中余弦距离可以通过等式2,3计算。
损失是三个不同特征级别之间的距离之和,如等式4所示。
4.3 Segmentation Network
准备工作:1、训练分割网络期间冻结S-T网络的权重。特征图(T1,S1),(T2,S2),(T3,S3)的相似度通过上述等式2计算,并上采样到与X1大小相同(输入大小的1/4)。上采样的特征表示为X1,X2,X3,然后将其连接为X作为分割网络的输入。2、将真实异常掩码M下采样到等于输入大小的 1/4 的大小与最后分割网络的输出匹配
分割网络结构:两个残差块+一个Atrous Spatial Pyramid Pooling(ASPP)模块
损失函数采用焦点损失(帮助模型聚焦于少数类别和困难样本)和L1损失(提高输出的稀疏性,使得分割掩模的边界更加清晰)来优化分割训练,如下图所示
4.4 Inference
推理阶段,将分割网络的输出上采样到输入大小并作为异常得分图。
5.实验评估
5.1数据集
MVTec AD作为基准数据集进行评估,Describable Textures Dataset(DTD)数据集作为等式1中的外部数据源 A
5.2评价指标
I-AUROC、P-AUROC、IAP(Instance Average Precision)