《SimpleNet: A Simple Network for Image Anomaly Detection and Localization》论文阅读理解
领域:Anomaly Detection(缺陷检测)
论文地址:SimpleNet: A Simple Network for Image Anomaly Detection and Localization
1 主要动机(提出方法所依靠的直觉)
- 将预训练特征转换为面向目标的特征有助于避免图像局部偏见的出现;
- 在特征空间中生成合成异常更有效,因为缺陷在图像空间中可能没有太多共性存在;
- 一个简单的鉴别器是非常有效和实用的;
2 主要贡献
- 提出了一种简单且容易应用的网络(SimpleNet),用于检测和定位异常;
- 在MVTecAD数据集上得到的AUROC指标为99.6%,且与性能第二的模型相比,误差降低了55.5%;
- 在单张3080ti GPU上可以实现77FPS的高帧推理速率;
- 同时,SimpleNet在one-class新颖的检测任务的性能上有了显著的改进;
- 提出了一个将在大型数据集上预训练的模型应用在目标数据集上进行实验的新视角(文中提出的Feature Adaptor方法);
3 方法概述
SimpleNet由一个特征提取器、一个特征适配器、一个异常特征生成器和一个鉴别器组成。
训练阶段:
使用特征提取器得到图像特征,然后使用特征适配器对得到的图像特征进行处理得到适配之后的特征图,同时,使用高斯噪声随机得到异常特征图,并将得到的异常特征图与适配特征进行融合得到融合之后的异常特征图。
之后将融合之后得到的异常特征图与适配器输出的特征图共同经过一个辨别器来获得两个异常分数map。
测试阶段:
在测试的时候,输入一张待检测图片,然后经过特征提取器得到特征图,之后,再经过一个特征适配器得到适配特征。然后,将适配特征经过鉴别器得到对应的异常分数图map。
4 方法详述
4.1 特征提取器
文中使用文献[1](patchcore,下面介绍patchcore的特征提取部分,看过这篇文章的同学可以直接跳过本小节)中提出的特征提取器。文中将流程制定如下:使用 X t r a i n X_{train} Xtrain和 X t e s t X_{test} Xtest分别表示训练集和测试集。对于在 X t r a i n ⋃ X t e s t X_{train}\bigcup X_{test} Xtrain⋃Xtest中的任意一张图片 x i ∈ R H × W × 3 x_i \in R^{H\times W\times 3} xi∈RH×W×3,预训练网络从不同层中 ϕ \phi ϕ提取特征,就像ResNet骨干网络做的那样。
由于预训练网络偏向于它训练的数据集,因此对于目标数据集来说只选择特征层的一个子集作为特征提取器是合理的。文中定义L表示用于特征提取的网络层。那么来自于
l
∈
L
l\in L
l∈L层的特征map被表示为
ϕ
l
,
i
∽
ϕ
l
(
x
i
)
∈
R
H
l
×
W
l
×
C
l
\phi^{l,i}\backsim \phi^{l}(x_i)\in R^{H_l \times W_l \times C_l}
ϕl,i∽ϕl(xi)∈RHl×Wl×Cl,其中
H
l
,
W
l
,
C
l
H_l,W_l,C_l
Hl,Wl,Cl分别是特征图的高度、宽度和通道数。对于任何输入
ϕ
h
,
w
l
,
i
∈
R
C
l
\phi^{l,i}_{h,w}\in R^{C_l}
ϕh,wl,i∈RCl在位置(h,w)上,它的patchsize(p个)近邻可以被定义为如下:
然后,使用聚合函数
f
a
g
g
f_{agg}
fagg(使用自适应平均池化层)聚合邻域
N
p
h
,
w
N_p^{h,w}
Nph,w的特征,然后得到local features
z
h
,
w
l
,
i
z_{h,w}^{l,i}
zh,wl,i,如下所示:
为了连接来自不同层的
z
h
,
w
l
,
i
z_{h,w}^{l,i}
zh,wl,i,所有的特征图被线性缩放到相同的大小
(
H
0
,
W
0
)
(H_{0},W_0)
(H0,W0)。简单地按通道连接特征图就可以得到特征图
o
i
∈
R
H
0
×
W
0
×
C
o^i\in R^{H_0\times W_0 \times C}
oi∈RH0×W0×C,如下所示:
文中定义
o
h
,
w
i
∈
R
C
o^i_{h,w}\in R^C
oh,wi∈RC作为
o
i
o^i
oi在(h,w)位置上的入口。
4.2 特征适配器
由于工业图像通常与预训练骨干网使用的数据集具有不同的分布,因此,文中采用特征适配器
G
θ
G_\theta
Gθ将训练特征转移到目标域。特征适配器
G
θ
G_{\theta}
Gθ将局部特征
o
h
,
w
o_{h,w}
oh,w投影到自适应特征
q
h
,
w
q_{h,w}
qh,w,如下所示:
q
h
,
w
i
=
G
θ
(
o
h
,
w
i
)
q_{h,w}^i=G_\theta(o^i_{h,w})
qh,wi=Gθ(oh,wi)
特征适配器可以由简单的神经块组成,例如全连接层或多层感知器(MLP)。文中作者表示通过实验发现,单个全连接层可以产生良好的性能。
4.3 异常特征生成器
为了训练鉴别器来估计样本正常的可能性,最简单的方法是对负样本(即缺陷特征)进行采样,并将其与正常样本一起优化。缺陷的缺乏使得从分布估计中采样变得很困难。文中直接在特征空间中的正常样本上添加简单的噪声来获得异常样本。首先,从高斯分布中采样一个噪声向量
ϵ
∈
R
C
\epsilon \in R^{C}
ϵ∈RC。那么,这个异常特征
q
h
,
w
i
−
q^{i-}_{h,w}
qh,wi−被表示为:
q
h
,
w
i
=
q
h
,
w
i
+
ϵ
q^i_{h,w}=q^i_{h,w}+\epsilon
qh,wi=qh,wi+ϵ
下图说明了异常特征对四类MVTec AD的影响。从图中可以看到,沿着适应特征的每个维度的标准偏差往往是一致的。因此,当区分异常特征和正常特征时,特征空间往往是紧凑的。
4.4 鉴别器
鉴别器 D ψ D_{\psi} Dψ作为正态性记分器,直接估计每个位置(h,w)的正态性。由于负样本是与正常特征{ q i ∣ x i ∈ X t r a i n q^i|x^i\in X_{train} qi∣xi∈Xtrain}一起生成的,因此在训练期间,它们都被馈送到鉴别器。鉴别器期望正常特征的正输出,而异常特征的负输出。只需像普通分类器一样使用多层感知器(MLP)结构,将正态性估计为 D ψ ( q h , w ) ∈ R D_\psi(q_{h,w})\in R Dψ(qh,w)∈R。
4.5 损失函数和训练过程
一个简单的截断L1损失可推导为:
t
h
+
th^+
th+和
t
h
−
th^-
th−是截断项以防止过拟合。默认情况下,它们设置为0.5和-0.5。训练目标为:
文中在实验部分用交叉熵损失对所提出的截断L1损失函数进行实验评估。训练过程的伪代码如算法1所示。
4.6 推理和评分功能
异常特征生成器在推理时被丢弃。那么,剩下的模块可以堆叠到端到端网络中。将来自测试集的图片
x
i
∈
X
t
e
s
t
x^i \in X_{test}
xi∈Xtest送入到上述的特征提取器
F
ϕ
F_\phi
Fϕ,然后使用特征适配器
G
θ
G_\theta
Gθ按照顺序得到对应的适配特征
q
h
,
w
i
q^i_{h,w}
qh,wi。鉴别器最后输出异常分数图,如下所示:
推理过程中用于异常定位的异常图定义为:
然后,对
S
A
L
(
x
i
)
S_{AL}(x_i)
SAL(xi)进行插值,以获得输入样本的空间分辨率,并对光滑边界进行σ=4的高斯滤波。由于对于任何大小的异常区域都存在最具响应性的点,因此将异常图的最大得分作为每个图像的异常检测得分。
5 实验结果
5.1 数据集
- 使用MVTecAD数据集[2],用于异常检测和定位实验。
- 使用CIFAR10[3]进行了one-class新颖性检测实验,该检测包含10类50K训练图像和10K测试图像,尺度为32×32。在一类新颖性检测的设置下,一类被视为正常数据,其他类别被视为新颖性。
5.2 实验细节
文中指出,实验中使用的所有骨干都使用ImageNet进行了预训练。骨干网和ResNet架构相似时,使用骨干网络的第二和第三中间层用于特征提取。默认情况下,文中的实验使用WideResnet50作为骨干网,并将来自特征提取器的特征维度设置为1536。后面的特征适配器本质上是一个完全连接的层,没有偏置项。适配器中FC层的输入和输出特征的尺寸是相同的。异常特征生成器添加i.i.d。高斯噪声N(0,σ2)到法线特征的每个条目。σ默认设置为0.015。随后的鉴别器由线性层、批量归一化层、leaky relu(0.2斜率)和线性层组成。在等式7中,th+和th−都被设置为0.5。使用Adam优化器,将特征适配器和鉴别器的学习率分别设置为0.0001和0.0002,并将权重衰减设置为0.00001。对于每个数据集,训练时期被设置为160,并且批量大小为4。
5.3 MVTec AD数据集上的异常检测/定位结果
检测结果(图像级AUROC)/定位结果(像素级AUROC):
5.4 推理时间
5.5 消融实验
-
文中设计了一组实验来测试层次子集L对模型性能的影响,结果如表2所示。文中用1−3对前三个WideResNet50块进行索引。可以看出,来自层次级别3的功能已经可以实现最先进的性能,但受益于额外的层次级别2。文中选择2+3作为默认设置。
-
使用不同的patchsize来测试模型具体的表现:
-
适配器设置
不同功能适配器的相互比较如表3所示。
结果表明,文中所使用的单个FC层的性能最好。直观地,特征适配器找到一个投影,使得伪造的异常特征和投影的预训练特征很容易被分割,这意味着鉴别器的简单解决方案。使用功能适配器有助于网络收敛的现象也表明了这一点,可以参考下图。
在文中,作者观察到复杂功能适配器的性能显著下降。一个可能的原因是,复杂的适配器可能会导致过拟合,从而降低测试中各种缺陷的泛化能力。图4比较了特征适配器前后特征每个维度的标准偏差直方图。可以看到,当使用异常特征进行训练时,自适应特征空间变得紧凑。 -
噪声比例
异常特征生成器中的噪声规模控制合成的异常特征与正常特征的距离。具体地说,高σ导致异常特征与正常特征保持着较高的欧几里得距离。对大σ进行训练会导致决策界松散,导致高假阴性。相反,如果σ很小,训练过程将变得不稳定,并且鉴别器不能很好地推广到正常特征。图5详细说明了MVTec AD中每个类别的σ的影响。可以看出,σ=0.015达到了平衡,并产生了最佳性能。 -
损失函数的选择
表3中,比较了不同损失函数对模型在AUROC评价指标上的影响 -
骨干网络的选择
-
定性结果描述
5.6 One-Class 新颖性检测
为了评估所提出的SimpleNet的通用性,作者还在CIFAR-10[3]上进行了一类新颖性检测实验。作者使用来自单个类别的样本训练模型,并检测来自其他类别的新样本。文中分别为每个类训练相应的模型。注意,新颖性得分被定义为相似度图中的最大得分。表5报告了SimpleNet和其他方法的I-AUROC评分。为了进行公平的比较,所有方法都在ImageNet上进行了预训练。
结果表示,提出的SimpleNet方法优于这些比较方法。请注意,在自监督学习的推动下,IGD[4]和DisAug CLR[5]分别达到91.25%和92.4%。文章来源:https://www.toymoban.com/news/detail-717112.html
参考文献
[1] Karsten Roth, Latha Pemula, Joaquin Zepeda, Bernhard Scholkopf, Thomas Brox, and Peter Gehler. Towards total recall in industrial anomaly detection. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 14318–14328, 2022. 2, 3, 5, 6, 8
[2] Paul Bergmann, Michael Fauser, David Sattlegger, and Carsten Steger. Mvtec ad–a comprehensive real-world dataset for unsupervised anomaly detection. In Proceedings of the IEEE/CVF
conference on computer vision and pattern recognition, pages
9592–9600, 2019. 1, 5
[3] A Krizhevsky. Learning multiple layers of features from tiny images. Master’s thesis, University of Tront, 2009. 5, 8
[4] Yuanhong Chen, Yu Tian, Guansong Pang, and Gustavo Carneiro. Deep one-class classification via interpolated gaussian descriptor. In Proceedings of the AAAI Conference on Artificial Intelligence, pages 383–392, 2022. 8
[5] Kihyuk Sohn, Chun-Liang Li, Jinsung Yoon, Minho Jin, and Tomas Pfister. Learning and evaluating representations for deep one-class classification. In International Conference on Learning Representations, 2021. 8文章来源地址https://www.toymoban.com/news/detail-717112.html
到了这里,关于《SimpleNet: A Simple Network for Image Anomaly Detection and Localization》论文阅读理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!