图像中的无监督异常检测

数据挖掘 机器学习 神经网络 深度学习 相似 异常检测
2021-09-30 05:06:10

我想检测图像中的缺陷/异常。由于缺乏异常图像,我尝试以无人监督的方式解决问题。到目前为止,我训练了一个变分自动编码器和一个带有“好”图像的生成对抗网络。现在,我有一个编码器/解码器网络,它能够生成没有异常的图像。这里有两个例子:

原图 | 编码器的裁剪图像和输入| 解码器的输出

在此处输入图像描述

在此处输入图像描述

在这些图像中,如果对象是旋转的(不是垂直的),那么它就是异常(如第二张图像)。为了测量编码器/解码器网络的输入/输出之间的差异,我尝试了结构相似度度量 SSIM。然而,结果并不令人满意,因为许多没有异常的图像也具有低相似度值。此外,像素方面的 MAE 或 MSE 指标也不好,因为它们看起来并不特别关注结构并且对亮度非常敏感。这是 SSIM 指标的结果(绿色是很好的例子,红色是异常):

在此处输入图像描述

我要避免的是为检测添加特定规则,在此示例中检测垂直线,因为我想检测许多其他具有不同异常的对象。

你对另一个图像相似度指标有什么建议吗?我是在正确的道路上还是有其他/更好的方法来进行无监督异常检测?

PS:只有少数图像有异常(<10 张图像),但很多没有异常。

2个回答

有异常的样本和没有异常的样本之间似乎有一条清晰的界限。标记它们并运行分类器?例如支持向量机。不应使用比需要更复杂的模型。

此外,在尝试检测各种异常时要小心。这并不总是现实的,可能会让你远离更直接、或许更好的解决方案。

您还可以尝试一些简单的方法,例如从图像的一部分中提取直方图。看起来它应该能够找到异常。

您可以尝试的一件事是添加第二个损失项,该项也使用 VAE 的潜在表示。这个想法是异常也应该是潜在空间中的异常值。这样,您将拥有另一个提供异常值信息的渠道。Zong 等人DEEP AUTOENCODING GAUSSIAN MIXTURE MODEL FOR UNSUPERVISED ANOMALY DETECTION在 ICLR 2018 的 NEC 实验室有一篇论文使用了这种方法。请参阅 https://openreview.net/forum?id=BJJLHbb0-

我不知道这对你的图像有多好。在论文中,他们使用了非常小的数据集。