PaDiM【异常检测:Embedding-based】

前言

目前检测定位效果在MVTec数据集排名11(papers with code网站),这截止博文发出时间。

源码:https://github.com/xiahaifeng1995/PaDiM-Anomaly-Detection-Localization-master(非官方)

背景

论文证实了多尺度的特征对于信息区分是有帮助的。

将正常图像做成参考用于测试,这些参考可以是nsphere的中心,高斯分布的参数,整个正常嵌入向量的集合。SPADE用第三个,PaDiM用第二个。

模型原理(对照代码)

思想:通过特征提取搞出每张图的特征块,再利用所有图的所有特征块为每个像素形成一个多维 高斯分布,马氏距离作为评价分数。模型不需训练,只使用训练好的网络提取特征。

PaDiM【异常检测:Embedding-based】_第1张图片

A.Embedding extraction

使用resnet网络提取特征后,形成张量[500,448,56,56],随机选取其中的100个维度,形成张量[500,100,56,56]。

补丁嵌入向量(patch embedding vectors):所谓补丁,指的是像素;所谓嵌入,指的是将网络提取的不同特征组合到一块。都是封装的名词罢了。

B.Learning of the normality

图像的这些像素先验假设是多维的高斯分布,所以网络要将这个分布搞出来,通过均值和协方差实现。处理完成后每个像素位置上都有了一个多维的高斯分布。

张量改形形成[500,100,3136]后,求所有batch在每个像素位置的均值形成[100,3136]-->求协防差矩阵形成[100,100,3136]

协方差:这里的协方差公式除了是正宗的协方差外,还在对角线上加了小操作,使协方差矩阵能够满秩且可逆。协方差还使得不同维度的特征关联起来,实验证明这种关联的信息有助于检测效果。

C.Inference : computation of the anomaly map

测试图与正常图分布的每个像素位置处计算马氏距离,所有位置中得分最高的视为检测分数。

马氏距离:需要正常图形成的协方差矩阵的逆,均值和异常特征图。

检测和定位

将分数图转换成比例分数图-->所有比例分数的最高分数传入rocauc函数。

实验

对比实验:使用不同的评价指标,不同的数据集MVTec、STC、数据增强后的MVTec,不同的模型。

消融实验:不同嵌入层的选择,随机降维或主成分分析降维,不同的预训练提取网络ResNet18、Wide ResNet-50-2 (WR50)、EfficientNet-B5。

其他:时间对比,内存对比。

你可能感兴趣的:(异常检测&论文理解,计算机视觉,深度学习,pytorch)