基于MVTec的无监督学习

(排名38)Sub-Image Anomaly Detection with Deep Pyramid Correspondences(SPADE)

具有深度金字塔对应的子图像异常检测

1.概述

        利用预训练特征的KNN方法在应用于整个图像时的异常检测性能非常出色,但KNN不能标记出异常在图像内的位置的分割图。本文基于异常图像和恒定数量的相似正常图像的对齐,使用基于多分辨率特征金字塔的对应关系。

        人类可以检测与先前模式不同的新图像,从而引发警惕,由此引入到深度学习中。在异常检测中,训练期间不会观察到异常分布,本文处理在训练时仅观察到正常数据的设置。

        文章提出一种解决自图像异常检测和分割任务的新方法:

(1)使用预训练的深度神经网络(例如ImageNet训练的ResNet)提取图像特征

(2)最近邻检索与目标最近的K个正常图像

(3)找到之间的密集像素级对应关系目标图像和正常图像,在检索到的正常图像中没有近似匹配的目标图像区域被标记为异常。

        数据集使用MVTec和校园环境监控。

2.先前工作

        Image-Level(图像级方法)、Sub-Image(子图像级方法),图像级异常检测方法主要分为三类:基于重建的、基于分布的、基于分类的。

        基于重建:在训练数据上学习一组基函数,使用这些基函数的稀疏集来重建测试图像,如果无法使用基函数重建测试图像,则表示异常。常见基函数:K-Means、KNN、PCA。

理解:x/f(x) = r,x代表原图,f(x)表示基函数,通过相似度来判断是否异常。

        现阶段深度学习拓宽了基于重建方法,主成分已经扩展到自动编码器学习的非线性函数,包括去噪和变分自动编码器。深度感知损失函数显著优于传统的感知损失函数,但有以下缺点:

(1)对用于评估重建质量的特定损失度量敏感,使得其设计不明显并损失性能

(2)确定正确的功能基础

         基于分布:对正态数据分布的概率密度函数(PDF)进行建模。测试样本使用PDF进行评估,具有低概率密度值的样本被指定为异常。参数方法包括高斯、高斯混合。PDF估计通过在低维空间中更加容易。GAN也被应用于异常检测(ADGAN),存在缺点:

(1)真实图像数据很少遵循简单的参数分布假设

(2)非参数方法具有很高的样本复杂性,并且通常需要大型数据集,很难实际应用

        基于分类:基于分类的方法在图像级异常检测方面占到主导,一种范例是一类支持向量机(OC-SVM)。对输入数据进行几何变换并训练尝试识别所使用的变换的网络,经过训练的分类器可以泛化到新的正常图像,但是不能泛化到异常图像。

子图像方法:图像方法解决了将整个图像分类为正常或异常的任务,但分割包含异常的特定像素比较难。

3.基于对应的子图像异常检测

         文章提出的子图像异常检测方法:

(1)图像特征提取

(2)KNN

(3)与深度特征金字塔对应的像素对齐

3.1 特征提取

         第一阶段是提取强图像级特征,最常用的方法是自监督特征学习,直接在输入的正常图像上从头开始学习特征,但在小型训练数据集上学习到的特征用作高质量的相似性度量并不明显。有研究指出,自家度特征在异常检测方面不如ImageNet训练的ResNet特征。文章使用了在ImageNet数据集上预训练的ResNet特征提取器,作为图像级特征,使用全局池化最后一个卷积层后获得的特征向量,全局特征提取器F,给定图像Xi,提取的特征fi:

        在初始化时,计算并存储所有训练图像(正常)的特征,在推理时,只提取目标图像的特征。

 3.2 KNN图像检索

        第一阶段使用DN2确定那些图像包含异常,对于给定的测试图像y,从训练集NK(fy)中检索K个最接近的正常图像,使用图像级特征表示之间的欧几里得度量来测量距离。

         图像在此阶段被标记为正常或异常,通过验证KNN距离是否大于阈值T来确定正分类。

3.3 通过图像对齐进行子图像异常检测

         图像级阶段被标记异常后,进行具体的定位和分割,当图像被错误地归类为异常的情况下,文章所用的算法是不将任何像素标记为异常。

        本文最主要的创新:将测试图像和检索到的正常图像对齐,通过发现测试图像和正常图像之间的差异来检测到异常像素,但有以下缺陷:

(1)假设对象可能有多个正常部分组成,与特定正常图像的对齐可能会失败

(2)对于小数据集或经过复杂变化的对象,可能不会找到一个正常图像

(3)计算图像差异对所使用的损失函数非常敏感

        为了解决这些问题,文章提出一种多图像对应方法,使用相关测试和正常训练图像的特征提取器F(xi,p)在每个像素位置提取深度特征,K个最近邻……,像素P的异常分数由特征F(y,p)与其距离G的KNN平均距离给出,因此,目标图像y中像素p的异常分数如下:

        给定阈值t,如果d>t,异常分数过高,像素确定为异常。

3.4 特征金字塔匹配 

        使用密集对应对齐来确定图像中的正常部分和异常部分,首先确定匹配的特征,使用来自预训练的深度ResNet CNN的特征,ResNet产生了一个特征金字塔,层数越少分辨率越高,从而编码更少的上下文,反之相反。为了执行更精准的对齐,使用来自特征金字塔不同级别的特征来描述整个位置,从最后M个块的输出中连接特征。算法最后得到的特征编码了细粒度的局部特征和全局上下文,使得能够找到目标图像和K>=1张正常图像之间的对应关系而不必明确对齐图像。

3.5 细节 

         使用了Wide-ResNet50×2特征提取器,在ImageNet上进行了预训练。

        SPADE 对检测有或无昆虫的花朵(取自 102 类花卉数据集 [25] 的一个类别)和鸟类品种(取自 Caltech-UCSD Birds 200)[33] 之间异常的评估。 (从左到右)i)异常图像ii)检索到的顶部正常相邻图像iii)SPADE检测到的掩模iv)预测的异常图像像素。 SPADE 能够检测到异常花朵上的昆虫(上)、异常信天翁的白色(中)和异常鸟上的红色斑点(下)。

        为每个图像实现逐像素异常分数后,使用高斯滤波器对结果进行平滑处理。

4.实验

4.1MVTec

        对于每个类,训练集由正常图像组成,测试集由正常图像和异常图像组成,训练中不使用异常图像。 

MVTec 上的图像级异常检测精度(平均 ROCAUC %)

 MVTec 上的子图像异常检测精度 (ROCAUC %)

        (从左到右)i)异常图像ii)检索到的顶部正常相邻图像iii)SPADE检测到的掩模iv)预测的异常图像像素。我们可以看到在这个例子中,SPADE 如何通过找到与最近邻图像的对应关系来检测异常图像区域。异常部分在正常图像中没有对应关系,因此被检测到。

        上下文在异常检测中的作用:异常图像和检索到的正常图像之间的对其质量受到提取特征质量的强烈影响,需要局部上下文来实现具有高像素分辨率的分割图,特征通常存在于深度神经网络的浅层中,全局上下文通常存在于神经网络的最深层,来自不同级别的特征的组合允许全局上下文和局部分辨率提供高质量的对应关系,类似于特征金字塔。 

        优化运行性能:在2048维向量的全局池化特征上计算出是图像及异常分类,异常分割阶段需要像素级KNN计算,但很慢。文章的方法将子图像KNN搜索限制为仅异常图像的K个最近图像。

        预训练和学习特征:之前的子图像异常检测方法要么使用自学习特征,要么使用自学习和预训练图像特征的组合,自学习方法通常训练自动编码器并使用重建误差进行异常检测。

总结

        文章提出了一种新的基于对齐的方法,用于检测和分割图像内的异常,方法依赖于通过预训练的深度特征提取的像素级特征金字塔的K最近邻。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值