异常检测专栏(三)传统的异常检测算法——上

前言在上一篇推文中,我们简要介绍了异常检测常用的几种数据集如ImageNet、CIFAR10/CIFAR100、MNIST等。接下来,我们将基于传统的异常检测算法分为上、下两部分,逐一介绍不同类别的方法。

本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!

目录

  • 传统异常检测算法概要
    • 基于模板匹配的异常检测方法
    • 基于统计模型的异常检测方法
    • 基于图像分解的异常检测方法
    • 基于频域分析的异常检测方法
  • 总结
  • 下篇预告
  • 参考文献

我们将基于传统的异常检测算法分为上、下两部分,逐一介绍不同类别的方法。其主要类别如下图示:

传统异常检测算法概要

基于传统方法的异常检测技术大致包含6个类别:基于模板匹配、基于统计模型、基于图像分解、基于频域分析、基于稀疏编码重构和基于分类面构建的异常检测算法。如下图所示:

下表总结了各类基于传统方法的图像异常检测方法的设计思路和优缺点。

基于模板匹配的异常检测方法

在图像异常检测任务中,最理想的情况是所有的正常图像都高度相似,且异常图像与正常图像之间只会在小部分区域出现区别。因此,模板匹配是非常有效的一类异常检测方法。得到待测图像和模板图像之间的对应关系后,比较两者之间的差异即可实现异常检测。

其中。Vaikundam[1]尝试通过从不包含异常的等效参考图像中减去图像来识别异常样本,而做差后的图像residual image可以更方便的对异常区域进行定位和识别。首先利用SIFT提取关键特征点,并利用Hough聚类算法进行描述符筛选后,找到与异常图像最为匹配的正常图像作为模板来检测钢材表面的异常。其流程如下图所示:

模板匹配的方法一般适用于图像采集环境稳定且可控的场景,如下图所示:

基于统计模型的异常检测方法

这类方法通常是利用统计模型来描述正常图像中像素值或者特征向量的分布情况,而对于一些远离该分布的图像区域则认定为异常。

其中,较为常见的方式是利用高斯模型进行描述。较为典型的算法由Reed和Xiaoli Yu提出的RX算法[2]。该算法建立在多元正态分布基础上,整幅场景中的数据表现为多个多元正态分布的组合,而局部范围的数据可以用同一个多元正态分布近似,通过计算检查点数据与背景数据的马氏距离来查找异常点。

RX算法主要是判别一个二元假设检验问题。若满足原假设则说明待检测位置目标不存在,否则说明目标存在。对于像素点个数为N、图像维数为的高分辨影像数据,假设观测像素B表示一个维数为的光谱矢量x,则相应的二值目标检验假设模型如下:

在二值统计模型基础上,采用广义似然比检验方法即可推演处RX检测算子,其表达式为:

一般来说,基于统计模型的异常检测算法在一些背景较为简单的图像中有较好的检测效果。但是结构更为复杂的图形往往难以预先假设其数据分布,并且在模型参数的估计上也有较高的难度。

统计模型适用场景如下图所示:

基于图像分解的异常检测方法

基于图像分解的方法大多针对的是周期性纹理表面小面积异常区域的检测任务。由于异常区域一般是随机出现的,其周期性较弱,这一特点使其可以域周期性的背景纹理及进行区分。

较为常用的方法主要利用了周期性背景纹理低秩性的这一先验,采用低秩分解将原始待检测图形分解成为代表背景的低秩矩阵和异常区域的稀疏矩阵:

其大致流程如下图所示,图中分解得到的稀疏矩阵就对应着可能存在异常的区域

基于低秩分解的异常检测算法,其优点在于完全不需要任何训练样本,可以直接在待检测图像上进行异常区域的检测。但这类方法检测速度较慢。由于我们需要对背景图像做低秩性假设,这类方法适用于如下图所示的布匹等各种格则纹理表面的缺陷检测问题。

基于频域分析的异常检测方法

基于频域分析的方法主要针对的也是规则纹理表面异常区域的检测。主要针对图像的频谱信息进行编辑,尝试消除周期性背景纹理以凸显异常区域。

其中,最常用的方法包含背景频谱消除和纯相位傅里叶变换法(Phase only fourier transform,POFT)两类。

(1)第一类方法

早期的方法如下图所示。在检测过程中首先利用傅里叶变换(Fourier transform,FT)将原始图像转换到频域空间,在幅度谱中将对应着周期性别境纹理的频谱分量去除以后,通过逆傅里叶变换(Inverse Fourier transform,IFT)来得到异常区域的位置信息[3]。

 

(2)第二类方法

第二类常用的方法采用POFT来消除背景区域。POFT[4]是在对图像进行傅里叶变换之后,抛弃了幅度谱的信息而仅采用其相位谱信息来进行傅里叶逆变换。

由于这类方法无法应用到无周期性的图像,后来Bai等人通过人工构建周期性的方式解决了这一问题。如下图所示:

当样本光照变化或者图像内目标出现平移和旋转等变化导致周期性较弱时,这些方法往往表现不佳,在正常目标附近也会出现许多干扰,如下图所示:

总结

基于模板匹配的方法十分适用于工业生产这类环境可控且目标高度一致的场景,实现了较高的检测精度,但不适用于采集环境多变或者正常图像中存在较大差异的情况。基于统计模型的方法虽然速度很快,但需要一定的训练样本来评估背景模型的参数。基于图像分解的方法则适合训练样本稀缺的场合,可以直接在待测样本上检测异常区域,不过该方法检测速度较慢,难以应用到实时检测任务当中。而基于频域分析的方法则兼顾了检测精度和速度,并且对训练样本的依赖性较低,但其由于对背景图像有一定的限制,因此通用性较差,这也是上述四类算法的共同问题。

下篇预告

本篇推文介绍了基于模板匹配、基于统计模型、基于图像分解、基于频域分析这四类传统的异常检测算法,了解到这四类算法各自的优缺点和适用场景。在下一篇推文中我们将继续介绍基于稀疏编码重构和分类面构建的异常检测方法。

参考文献

[1] S. Vaikundam, T. -Y. Hung and L. T. Chia, "Anomaly region detection and localization in metal surface inspection," 2016 IEEE International Conference on Image Processing (ICIP), Phoenix, AZ, USA, 2016, pp. 759-763, doi: 10.1109/ICIP.2016.7532459.

[2] I. S. Reed and X. Yu, "Adaptive multiple-band CFAR detection of an optical pattern with unknown spectral distribution," in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 38, no. 10, pp. 1760-1770, Oct. 1990, doi: 10.1109/29.60107.

[3] Hongxi Zhang, Zhenduo Guo, Zegang Qi and Jiuge Wang, "Research of glass defects detection based on DFT and optimal threshold method," 2012 International Conference on Computer Science and Information Processing (CSIP), Xi'an, China, 2012, pp. 1044-1047, doi: 10.1109/CSIP.2012.6309035.

[4] D. Aiger and H. Talbot, "The phase only transform for unsupervised surface defect detection," 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, San Francisco, CA, USA, 2010, pp. 295-302, doi: 10.1109/CVPR.2010.5540198.

下篇预告

本篇推文我们介绍了异常检测的常用数据集和评估指标,到现在关于异常检测的基本概念相信大家已有一个整体的框架。接下来,从第三篇推文开始我们将进入专栏的第三部分:传统的异常检测方法。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

其它文章

穿越时空的智慧:经得起时间考验的深度学习理念

一次性分割一切,比SAM更强,华人团队的通用分割模型SEEM来了

目标检测中的框位置优化总结

CVPR'23|向CLIP学习预训练跨模态!简单高效的零样本参考图像分割方法

大模型微调项目 / 数据集调研汇总

CVPR23 Highlight|拥有top-down attention能力的vision transformer

视觉定位领域专栏(三)算法评估方法总结

视觉定位领域专栏(二)常用数据集介绍

视觉定位领域专栏(一)领域介绍、应用场景和研究难点

语义分割专栏(二)复习FCN的编解码结构

语义分割专栏(一)解读FCN

CUDA 教程(三)CUDA C 编程简介

目标跟踪(二)单、多目标跟踪的基本概念与常用数据集

【CV技术指南】咱们自己的CV全栈指导班、基础入门班、论文指导班 全面上线!!

即插即用模块 | RFAConv助力YOLOv8再涨2个点

CVPR 2023|21 篇数据集工作汇总(附打包下载链接)

CVPR 2023|两行代码高效缓解视觉Transformer过拟合,美图&国科大联合提出正则化方法DropKey

LargeKernel3D:在3D稀疏CNN中使用大卷积核

ViT-Adapter:用于密集预测任务的视觉 Transformer Adapter

CodeGeeX 130亿参数大模型的调优笔记:比FasterTransformer更快的解决方案

分割一切还不够,还要检测一切、生成一切,SAM二创开始了

CVPR 2023 深挖无标签数据价值!SOLIDER:用于以人为中心的视觉

SegGPT:在上下文中分割一切

上线一天,4k star | Facebook:Segment Anything

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

聊聊计算机视觉入门

posted @ 2023-05-13 10:25  CV技术指南(公众号)  阅读(413)  评论(0编辑  收藏  举报