-
无监督图像异常检测(Unsupervised Image Anomaly Detection)任务在仅有正常图像训练样本的条件下,训练模型从可能含有异常区域的图像中识别异常区域位置(通常以图像语义分割的形式输出)。无监督图像异常检测在工业缺陷检测、安防监控、卫星遥感、军事侦察、医学图像分析等领域具有广泛的应用场景[1]。特别是在工业制造领域的产品表面缺陷检测任务中,产品缺陷类型种类繁多、形态尺度多变、标注成本高,给有监督模型训练带来了困难。因此经常依赖于无监督图像异常检测技术,仅使用无缺陷的样本进行训练,识别任何未知的缺陷。
目前,基于深度学习的无监督图像异常检测领域,主要有基于重建(Reconstruction)的方法、基于概率密度估计(Probability Density Estimation)的方法和基于特征库检索(Memory Bank Retrieval)的方法等。
基于重建的研究思路以生成对抗网络(Generative Adversarial Network, GAN)、变分自编码(Variational Auto-Encoder, VAE)网络等图像生成模型或知识蒸馏架构的教师-学生模型为基础,用正常图像数据训练模型进行图像压缩重建或表征学习训练。推理时异常的图像特征没有参与过训练、难以被模型准确地编码-解码,因此重构误差较高的区域可被判定为异常。代表性的方法有文献[2]提出的基于GAN提出的重构异常检测模型和文献[3]提出的基于蒸馏的单分类方法等。文献[4]提出的Efficient-AD模型,结合了蒸馏和生成模型两种思路并使用轻量级主干网络,取得了毫秒级的时延。文献[5]提出了一种使用对比学习训练GAN模型的方法进行基于重建的异常检测,获得了较高的准确率。
基于概率密度估计的研究思路源于近年来标准化流(Normalizing Flow)模型的快速发展。虽然异常检测问题很容易抽象为概率密度估计问题(低概率密度样本可认为是异常),但传统的参数概率模型、核密度估计等方法难以适应高维、复杂的图像特征分布。如文献[6]提出的基于区域的核密度估计方法主要适用于较小的数据集和较低的维度。标准化流模型则为图像特征提供了一种高效的概率建模方式。文献[7]提出的CFlow模型,利用条件标准化流(Conditional Normalizing Flow)对不同场景下的概率密度建模并检测异常。文献[8]结合U-Net的模型结构特点和标准化流模型,提出了U-Flow模型用多层次的检测结果增强鲁棒性。文献[9]在标准化流基础上改进了更高效的模型结构,提升了推理速度。
基于特征库检索的方法沿袭了基于K近邻的机器学习异常检测思路,用深度学习模型从图像中提取不同尺度的图像特征并加入近似最近邻搜索(Approximate Nearest Neighbour Search, ANNS)索引结构;推理时,提取测试图像的深度特征为查询向量搜索K近邻,并使用K近邻的距离计算异常得分,距离越远、异常得分越高。文献[10]提出以马氏距离(Mahalanobis Distance)计算测试样本与正常样本的深度特征距离,但其距离计算复杂度限制了可扩展性。文献[11]提出的PatchCore模型,通过Core Set采样和ANNS索引结构大幅度减少了计算量,在文献[12]等数据集上取得了领先的准确率。文献[13]对特征库采样与检索结构进行了改进,在保持准确率的同时提高了检索效率。
文献[14]的实验结果显示,相比于另两种研究思路,基于特征库检索的方法在各类图像异常检测数据集上能更稳定地取得较高的准确率,对复杂分布的适应性更强。然而,特征库检索的计算量较大、内存开销较高。相比于端到端的生成模型和标准化流模型,更难以部署到要求高吞吐量、低时延的应用场景。
基于特征库搜索的基本思路如图1所示。此类方法使用卷积神经网络从正常样本图像中提取各个区域的深度特征向量,然后存储进层次导航小世界图(Hierarchical Navigable Small World, HNSW)[15]、乘积量化倒排索引(Inverted File Product Quantization, IVFPQ)[16]等ANNS索引结构。在推理时,使用ANNS索引搜索测试图像深度特征的K近邻,并以K个最近邻的正常特征的距离计算测试集样本的异常分数。通常距离越远,则异常分数越高。
该技术路径的主要计算性能瓶颈在于K近邻搜索。目前最高效的几类ANNS索引结构的搜索操作时间复杂度为对数级,在正常样本训练集非常大时,搜索操作时延较长。此外,基于K-D树或近邻图的索引结构难以利用GPU的高并行度优势,在高吞吐量的应用场景中存在性能劣势,搜索速度远低于特征提取速度。
实际上,推理流程中异常检测模型并不需要知道K近邻具体来自于哪些样本,而只需要知道K近邻与查询向量的距离。换言之,如果能低代价地估计查询向量在特征空间中近邻区域是否存在近似向量,并以此替代ANNS,就能解决此类方法的性能瓶颈。因此,本文所提出方法的核心思路是将计算量较大的深度特征近似K近邻搜索替换为近似存在性查询(Approximate Membership Query, AMQ),从而减少计算复杂度、提高模型推理速度。
-
本文使用MVTec-AD数据集[12]对本文方法与对比方法进行测试。MVTec-AD数据集包括15个不同种类产品及其表面缺陷的子集,包括正常产品的训练集和可能有缺陷的测试集。本文实验将15个子集合并为统一的训练集和测试集,以接近实际应用场景中样本量大、产品与缺陷复杂的情况。合并后数据集包括了3629张正常训练图像和1722张可能含异常缺陷的测试图像。
实验选取近年来各研究思路下具有代表性的方法进行对比,包括基于重构的Efficient-AD[4]、特征库检索的PatchCore[11]和CFA[13]、概率密度估计的CFlow[7]等。其中,PatchCore方法不限制其使用的ANNS索引结构(论文作者也实验了多种ANNS索引结构),因此本文实验了两种主流的ANNS索引结构,HNSW和IVFPQ。实验全部使用论文作者提供的源代码进行训练和测试。其中,基于特征库检索的PatchCore和CFA都使用Wide ResNet-50作为主干网络。
实验运行硬件条件包括Nvidia RTX4090 GPU、32核2 GHz Intel Xeon Gold 6330 CPU、512 GB内存。深度学习模型推理统一使用Python 3.10环境下PyTorch2.1与CUDA 11.8。部分方法涉及ANNS索引构建与查询,统一使用基于MKL线性代数库的Faiss索引库[20]。本文方法的局部敏感哈希和布隆过滤器(包括其中的Murmurhash3)均使用Cupy 13.0实现,在GPU上完成全部运算。
实验对比指标包括准确率指标和计算性能指标两部分。本文方法和对比方法都会输出图像级和像素级的异常分数,取值区间为
$ [0,1] $ 。图4所示为部分样本及相应的异常分数,图4中,如果选择阈值=5.0%,那么图4c、图4d、图4e和图4g属于异常样本,其他属于正常样本。在区间内均匀设置100个阈值后,计算图像级和像素级异常分类的受试者工作特性曲线下面积(Image/Pixel Area Under Receiver Operating Characteristics, Image/Pixel AUROC)为准确率指标,如公式(7)所示。其中,
$ T P R_{i} $ 为使用第i个阈值时异常样本的分类真阳率(True Positive Rate),$ F P R_{i} $ 使用第i个阈值时异常样本的分类假阳率(False Positive Rate)。此计算方式同时应用于图像级与像素级的异常分类结果。本文实验分别对模型推理时延、吞吐量进行测量,测量时都只使用一张GPU。其中模型推理时延为单张测试图像从加载图像至内存到计算出异常分数至内存的时间;吞吐量为计算资源允许(一般来说资源瓶颈为GPU显存)下最大并发量除以这一并发量下的时延,单位为帧每秒(Frame Per Second, FPS)。另外,本文实验也监控进程在单张图像推理时的内存和显存占用的峰值。
-
表1展示了本文方法与其他对比方法在MVTec-AD数据集(合并子集)的准确率与计算效率指标。实验发现,包括CFLow、PatchCore和本文方法在内的基于特征库检索方法的准确率显著优于基于重建和基于概率密度模型的方法,体现出基于特征库检索方法在更复杂的异常检测任务中更具有优势。本文方法的准确率指标相比PatchCore有约1%的损失,但显著优于CFlow方法。
方法 Image AUROC Pixel AUROC 时延/ms 吞吐量/FPS 显存峰值/GB 内存峰值/GB CFA[13] 66.57% 89.83% 14.9 215 2.204 4.747 CFlow[7] 83.25% 93.22% 112.9 44 2.814 4.586 Efficient-AD[4] 54.68% 82.59% 8.4 325 2.146 4.616 PatchCore+HNSW[11] 89.82% 96.76% 176.9 12 18.606 20.135 PatchCore+IVFPQ[11] 91.19% 96.68% 108.3 11 21.188 21.304 本文方法 90.50% 95.29% 22.6 190 6.942 5.668 然而,本文方法外的基于特征库检索的方法的计算速度有显著劣势,时延均在100毫秒以上、吞吐量均在50以下。基于较复杂索引结构HNSW或IVFPQ的PatchCore方法,内存和显存占用显著地高于端到端深度学习模型。而本文方法的时延和吞吐量较之则有显著提升,总体水平与基于重建和基于概率密度模型的方法相近,仅有显存占用相对较高。
-
图5展示了使用HNSW的PatchCore方法与本文方法在推理阶段各个步骤的时延占比。其中,特征提取步骤是指从Wide ResNet-50模型提取出深度特征,异常估计步骤是指从ANNS或AMQ查询结果计算异常分数(主要的时间消耗在插值和内存同步)。考虑到GPU计算的异步特性,每个操作均在完全同步计算结果之后再计为结束。分析发现,在PatchCore方法中,ANNS搜索步骤消耗了90%以上的推理时间,是明显的性能瓶颈。而本文方法中,AMQ查询时延占比则显著更低。各步骤中,Murmurhash3哈希算法时延较长,源于此哈希算法需要多次迭代进行位运算和整数运算。
图6展示了使用HNSW的PatchCore方法与本文方法在推理阶段各个步骤的显存消耗占比。其中,HNSW索引部分主要包含了HNSW构造的近邻图,HNSW查询部分主要是指搜索时动态分配的显存。模型参数和模型推理分别指Wide ResNet-50的模型参数与前馈运算时中间变量所占显存。分析发现,PatchCore方法中主要的显存消耗来源于HNSW,特别是HNSW查询这一动态内存消耗会随着并发量提高而线性增加,是阻碍吞吐量提升的瓶颈。而本文方法主要的显存占用来源于布隆过滤器(BF),但此部分显存占用是静态的、不会随着并发量提高而提升。LSH和MMH3等动态的显存消耗相对占比较小。
-
本文方法的可调节参数包括局部敏感哈希组数G和布隆过滤器空间比特数M。理论上,LSH组数G越高,估计越准确,但计算量和对应部分内存/显存消耗会线性增大。布隆过滤器空间比特数M越高,哈希冲突概率越低,但计算量和内存/显存消耗会随之提升(计算量提升是因为公式(5)所得B会提升)。
图7展示了将LSH组数G分别设置为512、1024、2048、4096和布隆过滤器空间分别为1、2、4、8、16 GB时的准确率(Image/Pixel AUROC)与时延(ms)变化。实验发现,随着G与M增大,来自于LSH和BF的误差率降低,准确率指标有相应提升。由于GPU高并行的特点,时延的提升并非线性,但时延结果基本符合理论预期趋势。
An Efficient Image Anomaly Detection Approach Based on Approximate Membership Query
doi: 10.12178/1001-0548.2024032
- Received Date: 2024-02-12
- Rev Recd Date: 2024-03-20
-
Key words:
- Anomaly Detection /
- Unsupervised Learning /
- Approximate Membership Query /
- Bloom Filter /
- Locality Sensitive Hashing
Abstract: An accurate and stable approach to image anomaly detection is to query the K-nearest neighbours of the image features from normal examples and estimate the anomaly score, relying on approximate nearest neighbour search (ANNS) indices. ANNS query operation has high computational cost on large datasets, unpractical for low-latency and high-throughput scenarios. Based on locality sensitive hashing and Bloom filters, an approximated membership query (AMQ) based approach is proposed to predict anomalies by approximate membership of features. AMQ can address the performance bottleneck of search-based methods, given its lower complexity and better compatibility with single-instruction multiple-data parallelism than ANNS. Experimental results on MVTec-AD show that the accuracy of AMQ-based method is just decreased about 1% in comparison with ANNS-based methods, while the inference latency, the throughput and the memory footprint are significantly improved, close to the efficiency of end-to-end deep learning anomaly detection models.
Citation: | WU Lingchuan, SHI Huifang, QIU Feng, SHI Yiguan. An Efficient Image Anomaly Detection Approach Based on Approximate Membership Query[J]. Journal of University of Electronic Science and Technology of China. doi: 10.12178/1001-0548.2024032 |