本文介绍一篇刚刚被ICCV2021接收的有关于小样本异常检测的论文,来自特拉维夫大学和Facebook AI研究院。本文构建了一个分层次的生成模型对多尺度的图像patches进行建模,随后引入了一系列图像变换自监督代理任务,并通过多类patch判别器对生成图像和真实图像进行鉴别,以此来提高模型的表征能力。本文在few-shot情况下的异常检测和缺陷定位任务上都取得了优异的性能。
论文链接:
https://arxiv.org/abs/2104.14535
代码链接:https://github.com/shellysheynin/A-Hierarchical-Transformation-Discriminating-Generative-Model-for-Few-Shot-Anomaly-Detection
图像异常检测的目标是大量数据中寻找到偏离正常分布的样本。比较经典的实验设定是one-class classification,即仅从正常(非异常)数据中收集大量样本用于训练,要求模型将测试样本分类为正常或异常。本文在这个设定上更进一步,只给定很少的训练样本(few-shot),甚至包括仅给定单个训练样本的情况(one-shot)。目前图像异常检测常用的方法可以分为三类:
(1)基于重建的方法,(2)基于分类的方法和(3)基于分布的方法。
· 其中基于重建的方法假设模型对于正常样本拥有较小的重构误差,而面对异常样本时,会表现出较大的误差。
· 基于分类的方法目前以自监督任务为代表,这类方法尝试寻找一个“代理”分类目标,然后训练模型针对该目标对正常数据进行分类,当模型面对异常数据时,分类的结果较差从而将异常样本区分。
· 基于分布的方法往往通过自动编码器、变分自动编码器和GAN等生成模型对正常数据的分布进行建模,然后通过分布的差距检测异常样本。
本文方法从分类和分布方法两方面出发,可以有效提高模型对异常样本的鉴别能力,同时在缺陷检测领域,也达到了SOTA性能。
本文方法由两个组件构成,分别是层次化的生成模块和自监督代理模块。前者在多个尺度下对图像patch块的内部进行统计建模,同时借鉴条件GAN的生成模型,对图像进行生成。通过在图像索引上添加条件,是模型只通过单张输入图像就可以生成多张不同形式的图像。这样做可以实现one-shot到few-shot生成的跨越。同时对于不同的尺度进行建模,可以提高模型检测全局和局部异常的能力。自监督代理任务模块设计了一个分类器对正常数据训练,使其可以对输入图像的变换类型进行识别,并以此为代理来捕获与正常数据接近的样本,从而可以区分出异常样本。方法的整体框架如下图所示。
通过对不同尺度的图像块进行特征提取,模型的采样空间得到扩展,同时作者还加入了多类判别器来区分施加在真实样本和生成样本上的变换(transformation)类型。
给定 个缩放尺度对图像进行下采样, 为最低分辨率, 为最高分辨率,下采样使用bicubic downsampling。在最低的尺度时,即 ,网络的输出为:
其中上划线表示生成的图像, 是与输入图像相同尺寸的高斯噪声。对于更加精细的尺度时,即 ,生成器接受上采样的图像作为输入:
为了增强模型的表示能力,作者对模型加入了一组固定的可微变换 ,并将其施加在生成图像和真实图像上,随后再输入到多类判别器进行分类和判别。这样做一方面可以丰富当前模型的样本空间,另一方面也不会产生分布外的数据,仍然满足one-class classification的实验设定。Transformation主要包括水平翻转、平移、90度旋转和RGB到灰度转换4种。
网络的训练目标为生成器和判别器 ,通过在进入判别器的图像应用一系列图像变换操作可以有效的扩展判别器的输出空间。本文的多类判别器本质上是一个全卷积马尔可夫判别器,在卷积的最后一层输出通道为 ,其中 对应了图像变换的种类。对于每个图像变换类别 ,判别器都会输出大小为 的特征图,随后在通道维度上计算softmax函数得到当前输入的patch对应到每个变换类别的概率。使用如下对抗损失训练生成器和判别器:
除了对抗损失,还需要加入重构损失赋予生成器基础的特征提取能力,生成器需要对不同尺度的图像进行重构:
网络整体的损失函数由上述两项联立得到:
由于自监督代理任务的加入,本文巧妙的将异常检测问题转换为对测试图像的每一个patch上的transformation类型进行判别,由于模型是在正常数据上进行训练,因此在所有的patches和尺度上,transformation类型判断正确的越多,代表模型对当前样本的置信度越高,其属于异常样本的几率也就越小,以此我们可以计算样本的异常分数如下:
首先是对one-shot情况的异常检测对比,评价指标为AUC,对比结果如下:
5-shot和10-shot的对比结果如下,本文方法均优于其他baseline方法。
此外,作者还考察了增加训练样本对模型的影响。如下图所示,随着随着样本数量的增加本文方法的性能也不断提升,并且在50-shot和80-shot的情况都优于基线。然而,其与GEOM[1]的差距也在减小,这表明当有更多的训练样本加入时,通过在多个尺度上生成样本而获得的性能增益会减小。
缺陷检测的实验可视化对比效果如下,其中图(a)为输入图像,图(b)为本文方法的定位结果,图(c)为DifferNet[2]的结果。可以看到,本文方法相比DifferNet更加准确的定位了缺陷的大部分区域。
本文提出了一个多尺度层次生成模型,在判别器中加入了多种图像分类变换的自监督任务。从对生成模型改进的角度来看,以往很多工作会在生成器的设计上下足功夫,但本文着重对判别器进行调整和增强,同时也取得了较好的性能提升,这为之后的工作提供了一个新的思路。同时本文强调对few-shot任务的应用,但是当训练数据量增大时,性能会遇到瓶颈,需要进一步的修改,才能应对更加复杂的场景。
[1] Izhak Golan and Ran El-Yaniv. Deep anomaly detection using geometric transformations. In Advances in Neural Information Processing Systems, pages 9758–9769, 2018.
[2] Marco Rudolph, Bastian Wandt, and Bodo Rosenhahn. Same same but differnet: Semi-supervised defect detection with normalizing flows. In Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision, pages 1907– 1916, 2021.
扫码观看!
本周上新!
“AI技术流”原创投稿计划
TechBeat是由将门创投建立的AI学习社区(www.techbeat.net)。社区上线330+期talk视频,900+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。
投稿内容
// 最新技术解读/系统性知识分享 //
// 前沿资讯解说/心得经历讲述 //
投稿须知
稿件需要为原创文章,并标明作者信息。
我们会选择部分在深度技术解析及科研心得方向,
对用户启发更大的文章,做原创性内容奖励。
投稿方式
发送邮件到
chenhongyuan@thejiangmen.com
或添加工作人员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。
>> 投稿请添加工作人员微信!
关于我“门”
▼
点击右上角,把文章分享到朋友圈
点击“阅读原文”按钮,查看社区原文
⤵一键送你进入TechBeat快乐星球