图像异常检测

图像异常检测综述

第一章 综述



前言

图像异常检测, 其目标是在不使用真实异常样本的情况下, 利用现有的正常样本构建模型以检测可能出现的各种异常图像, 在工业外观缺陷检测、医学图像分析、高光谱图像处理等领域有较高的研究意义和应用价值.
主要分为基于传统方法和基于深度学习两大类型


一、异常是什么?

异常, 又被称为离群值。可以分为点异常、上下文异常和集群异常。
拿气温监督为例说明异常的分类。如,监测华北地区一年四季的每天的平均温度值。
当初现一个温度为零下40度的值时,很明显这个点是一个不在正常温度范围内的值,即称之为点异常
当出现一个零度的值时,但检测时间显示是夏天,则根据前后的温度则推断这也是一个异常的值,即称之为上下文异常
当在夏天出现好几天零度的异常值时,则称之为集群异常
点异常
上下文异常
集群异常

图像数据中的异常

检测的异常大多属于上下文或者模式异常。图像异常检测任务根据异常的形态可以分为定性异常的分类和定量异常的定位两个类别。
定性异常的分类,类似于传统图像识别任务中的图像分类任务,即整体地给出是否异常的判断,无需准确定位异常的位置。
定量异常的定位则类似于目标检测或者图像分割任务, 需要得到异常区域的位置信息。

二、图像异常监测技术研究现状

目前,基于传统方法的异常检测技术大致包括 6 个类别:基于模板匹配、基于统计模型、基于图像分解、基于频域分析、基于稀疏编码重构和基于分类面构建。而基于深度学习的方法大致包括 如下几个类别:基于距离度量的异常检测方法、基于分类面构建的异常检测方法、基于密度的异常检测方法。

1.基于传统方法

1. 基于模板匹配

基于模板匹配的异常检测方法通过建立待测图像和模板图像之间的对应关系,比较两者之间的差异来实现异常检测。在理想情况下,所有正常图像的高度相似,且异常图像与正常图像之间只在部分区域出现区别。因此,模板匹配是一类非常有效的异常检测方法。

具体算法如下:

  1. 基于Harris特征的模板匹配异常检测方法:通过计算图像中局部像素点与模板图像中对应位置的梯度方向和大小,然后计算两个向量的夹角,从而得到一个二值化的图像。最后,通过统计不同阈值下的异常区域数量来实现异常检测。

  2. 基于尺度不变特征变换(SIFT)和仿射尺度不变特征变换(ASIFT)的模板匹配异常检测方法:SIFT和ASIFT是两种常用的特征提取方法,它们可以有效地提取出图像中的局部特征点。通过将这些特征点与模板图像中的对应位置进行匹配,可以实现异常检测。

  3. 基于时间不变学习检测器(TILDE)的模板匹配异常检测方法:TILDE是一种结合了传统方法和深度学习的方法,它首先使用传统方法提取图像特征,然后将这些特征输入到深度神经网络中进行训练。最后,通过比较待测图像与训练好的模型之间的相似度来进行异常检测。

这种方法简单有效,对于采集环境高度可控的场景有很高的检测精度。但不适用于多变的场景或目标。

2. 基于统计模型

基于统计模型的异常检测方法主要通过利用高斯模型等统计模型来描述正常图像中像素值或特征向量的分布情况,并将远离该分布的图像区域认定为存在异常。这类方法通常需要预先对图像数据的分布进行假设,然后训练一个模型来描述正常图像的分布模式。在检测阶段,根据待测图像与现有模型之间的匹配程度来进行异常检测。

常见的基于统计模型的异常检测算法包括RX(Reed-xiao)算法、OC-SVM(One Class SVM)、SVDD(Support Vector Data Description)等。这些方法在一定程度上可以处理结构较为复杂的图像类型,但对于更复杂的场景和更高维的特征空间,可能无法保证检测效果。

3. 基于图像分解

基于图像分解的方法主要针对周期性纹理表面小面积异常区域的检测任务。这类方法可以与周期性的背景纹理进行区分,因为异常区域通常是随机出现的,其周期性较弱。

研究过程包括:首先对局部图像片提取特征,然后通过构造高斯模型的方式检测异常区域。由于异常区域一般与周期性的背景纹理有区别,因此在建模时需要考虑像素点的邻域信息来进行背景建模。

具体算法包括GoDec算法和Zhou等人提出的分解算法。GoDec算法将原始矩阵分解成低秩矩阵、稀疏矩阵和噪声矩阵三部分,相比于原始的低秩分解方法有更强的鲁棒性。Zhou等人则在GoDec的基础上,充分利用了背景区域的先验知识,结合马氏距离来检测高光谱图像中的异常区域。此外,还有一些其他算法如分解布匹图像的过程中考虑了异常区域的局部连续性以保证缺陷形态的完整等。

4.基于频域分析

基于频域分析的异常检测方法主要针对规则纹理表面小面积异常区域的检测。这类方法主要是对图像的频谱信息进行编辑,尝试消除周期性背景纹理以凸显异常区域。常用的方法包含背景频谱消除和纯相位傅里叶变换法 (Phase only Fourier transform, POFT)。其中,前者通过消除背景的频谱信息来凸显异常区域,而后者则尝试在逆傅里叶变换时仅利用相位谱以消除重复背景

5.基于稀疏编码重构

借助稀疏编码和字典学习等方式学习正常样本的表示方法, 从重构误差和稀疏度等角度检测异常。适用于各种类型的图像, 通用性很好,但是检测时间长, 而且需要额外的空间保存过完备的字典。

6.基于分类面构建

分类面构建法是建立分类面将现有的正常样本和潜在的异常样本进行区分,其特点是通用性较好, 且速度较,但是各项参数的选择过程较为复杂。

2.基于深度学习

1.基于距离度量

基于距离度量的方法, 其核心思想在于训练一个深度神经网络作为特征提取器, 让正常图像所提取到的特征向量的分布尽量紧凑,即尽可能地减小样本的类内距离。而在测试阶段, 大多数方法计算待测样本的特征与正常特征之间的距离作为度量来进行异常检测。Ruff 等提出的深度支持向量数据描述(DeepSupport vector data description, Deep SVDD)是这一类型中较为常用的一种方法。作者首先在特征空间中人为指定了一个点作为特征中心, 然后以正常样本到该点的距离之和作为损失函数的主体来进行特征提取网络的训练。经过训练网络能够将原始图像空间中的正常样本都映射到特征中心点附近,而异常样本其对应的特征就可能会远离该中心点, 因此根据距离就能判断待测样本是否属于异常样本。特点是模型简单,适用范围广,但是模型会出现退化,需要设计额外的辅助任务,且无法准确定位异常区域。

2.基于密度

基于密度的方法的核心思想是尝试对正常数据的分布进行建模。这些方法的先验假设是,在给定的密度估计模型下,异常测试数据的估计概率较低。Leys等提出了在训练数据上拟合多元高斯分布,并测量测试样本和训练样本期望值之间的马氏距离。考虑更实际的情况,非参数密度估计不使用预定义的分布。Xie等提出可以用直方图对训练分布进行建模,结合深度学习强大的表征能力,使用复杂的神经网络结构可以产生具有高表示质量的特征,可以显著提高经典密度估计的性能。变分自动编码器将输入图像编码为高斯分布下的潜在向量,学习到的编码看作是输入的低维表示,经典的密度估计方法可以与这些深度表示结合,有效提升异常检测效果。

3.基于分类面构建

基于分类面构建的方法, 其核心思想在于将单类正常样本转换成多类别样本以训练分类器, 通过这种方式来在图像空间中构建分类面, 实现对正常样本和潜在的异常样本的分类。应用场景广泛,异常检测精度高,但是需要精心设计损失函数和生成的负样本,模型设计复杂。

4.基于图像重构

基于图像重构的方法的核心思想是对正常图像进行编码和解码得到重构图像,并将最小化重构误差作为训练目标,以此来学习正常图像的分布模式。在检测阶段通过分析输入图像和重构图像之间的差异来进行异常检测。由于只能接触到正常数据,在测试阶段,模型将对正常测试样本产生高质量的重建结果,而异常测试样本的重建结果质量通常会较低。在基于重构的方法中,最为常用的网络结构为自编码器。对纹理图像,Mei 等利用降噪自编码器来进行异常区域定位。Gong等提出在自编码器的基础上,增加了memory 模块,用来存储最能代表正常表征的特征向量以提升图像重构的稳定性。Zimmerer 等提出通过计算变分自编码器中的证据下界相对于输入图像的梯度来进行异常检测。相较于自编码器,生成对抗网络可以更有效提升生成模型的效果。Schlegl 等提出了基于生成对抗网络的异常检测模型,该模型从某个随机变量开始,计算该变量生成的图像与待测图像之间的差异程度,并利用梯度下降的方式迭代优化该随机变量,使得生成的图像更能接近待测图像并且只能生成正常样本。

5. 基于预训练特征

由于异常检测是一项数据贫乏的任务,因此可以利用在大量额外数据集上学习到的特征提取网络来解决该限制。近两年以来,基于预训练表征的方法开始大量被研究。Nazare 等试图使用预训练特征来检测视频中的异常行为。Bergman等提出了基于预训练强特征器的图像异常检测算法,并且设计了大量实验证明,近年来应用于图像异常检测的许多自监督学习方法的性能远远低于基于预训练特征提取器的简单方法。Salehi 等人设计了一种异常定位方法,利用由预训练专家网络知识提取的克隆网络的不同行为来检测和定位异常。Reiss 等参考Deep-SVDD 提出了一种对预训练特征微调的方法,并提出了elastic regularization
来缓解模式崩溃。

图像异常检测面临的问题和展望

异常检测一般是在没有真实异常样本的情况下进行模型训练, 这种特点使得异常检测任务面临着不小的挑战。

  1. 异常样本的未知性。一般仅使用正常样本进行训练会导致传统的基于监督学习的目标识别算法难以直接应用
    到异常检测领域当中,同时还会有可能会遗漏一些人眼认为较为显著的异常目标。

  2. 异常定义的不清晰:如何定义一个异常对象是一个复杂的问题。不同领域的异常定义可能有所不同,例如在医学影像中,病变区域的定位;而在工业领域,缺陷检测等。此外,如何准确地定义异常程度和类型也是一个挑战。

  3. 微弱异常定位:在许多现有方法中,测试图像中只有一小部分区域出现了异常模式。然而,这些方法在检测微弱异常方面的性能往往较差。如何在大量正常样本中快速准确地找到这些微弱异常是一个挑战。

  4. 维数灾难:图像数据通常是高维的,而传统的基于低维数据的异常检测算法在处理高维数据时其检测性能会受到严重影响。因此,如何提高基于深度学习的异常检测算法在高维数据上的性能是一个挑战。

  5. 算法通用性:不同类型的图像数据差别很大,实际检测的目标也各不相同。现有的许多针对某一类图像而开发的异常检测算法缺乏通用性,难以应用到新的图像类型当中。

展望

  1. 构建更为高效的异常检测算法:未来的研究趋势包括改进现有方法,如通过使用更深的网络结构、更好的正则化方法来提高检测效率。此外,还可以探索利用元学习思想进行异常图像帧的检测,以在少量正常样本下进行几次梯度下降优化就能得到最适合目标场景的检测模型。

  2. 小样本/半监督学习:由于现实中很难获取到真实的异常样本,因此未来的研究将更多地关注如何利用小样本和半监督学习的方法进行模型训练。这包括预先在多个数据集上进行元训练,以得到一组有良好通用性的重构网络权重,以及如何设计有效的辅助任务和损失函数来提高模型在少量异常样本下的性能。

  3. 更适应的样本合成方法:为了在训练阶段引入各种人工构造的异常图像以提升检测性能,未来的研究将尝试采用更自适应的方法来生成这些异常样本。例如,可以研究如何根据输入图像的特性生成更接近真实情况的异常图像,或者如何利用生成对抗网络(GAN)等技术自动学习到更好的异常样本生成策略。

  4. 轻量化网络设计:为了减少计算量和降低硬件需求,未来的研究将主要关注如何设计更轻量化的网络结构。这包括采用更高效的网络计算方法(如MobileNet),或者通过知识蒸馏、模型剪枝和网络量化等技术来减小模型体积和参数数量。

  5. 更高精度的异常定位方法:现有的方法大多采用滑窗分析的方式进行异常定位,但这种方法无法精准地定位异常区域。未来的研究将致力于提高异常定位的精度,例如通过改进重构网络以提高重构误差的预测能力,或者利用更先进的深度学习技术(如注意力机制)来提高对细微纹理变化的敏感性。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值