本文想解决是单分类问题,通过对正常样本的学习,检测出未知类型的异常,更倾向于缺陷检测。方法整体流程分为两步,首先基于自监督学习方法学习样本表征,继而通过一个单分类器对表征进行分类。通过文中提出的CutPaste实现对于正常样本的表征学习及分类。CutPaste是一种数据增强方法,从图像中裁剪出一块矩形区域粘贴到任意位置。cutpaste 的目的是产生空间上的不规则性,作为不参与训练的真实缺陷的近似值。现有的一些很受欢迎的方法将旋转和对比学习应用于单分类,但是本文实验证明,对于检测缺陷,单纯使用旋转或者对比学习不是最优的。作者猜想几何变换例如旋转和移位,在学习语义概念的表征中是有效的(如学习对象),但
较少对规律性的学习(例如,连续性、重复性)。对于缺陷检测,本文希望提出一种数据增强的方法模拟局部不规则模式。
目前单分类异常检测算法主要思路是训练一个能表征正常样本的模型,并且假设这个模型不能很好的表征异常样本。但是基于像素级的重建损失一般无法获得高级语义信息。
本文采用了一种自监督学习中pretext task的思路,在(a)自监督学习表征阶段,对正样本采用cutpaste生成图像,训练一个二分类CNN,识别正常样本,及添加cutpaste后的图像。在(b)异常检测及定位阶段,CNN用来提取特征,参数高斯概率密度估计(GDE)使用CNN提取的特征计算异常分数,图像级别的异常检测可以使用GradCAM大致定位异常区域,patch级别的异常定位,对原图分割成若干patch,分别送到CNN--GDE计算异常分数,得出更细粒度异常热力图。
(第二阶段应该是没训练,直接用输出的表征计算出来的异常分数)
发现到一个现象。
使用对比式自监督学习做异常检测的(simclr等),基本需要在第二阶段进行finetune。
使用其他自监督学习做异常检测的(体现在pretext task没用对比学习,而是识别图象旋转,是否进行增强的),一在第二阶段可以不进行finetune.
文章中使用的数据增强方法cutpaste和cutpaste(scar)试有cutout和scar启发而来,scar是添加举行细长线。实际自监督学习实验看作三分类问题,正常样本,添加cutpaste的样本,添加cutpaste(scar)的样本。
image.png对于MVTec AD dataset,或者实际的缺陷检测任务,缺陷一般含有拉伸变形,特殊的纹理构造。作者对正常样本使用cutpaste的目的是希望在正常样本的表征学习中,能够通过cutpaste模拟异常样本,作者使用可视化技术发现,添加cutpaste后的正样本与原始正样本距离较大,但是与真实的异常样本接近度较小,说明仍需要更好的数据增强方法。
image.png实验对比,AUC
实验对比,缺陷定位
image.png
不同数据增强方法的消融实验
image.png
在语义异常检测数据集上的实验
作者将cifar10数据集的异常检测定义为Semantic Outlier Detection,其需要识别车与狗这种语义级别的差异,而MVTec AD dataset代表的缺陷异常检测识别的是细微处的差异。在cifar10上取得69.4 的AUC,高于 Cutout (60:2).但是低于使用旋转预测方法 (91:3 AUC)
(Learning and evaluating representations fordeep one-class classification.自监督学习阶段,对图像旋转不同角度当作不同类别,)
作者认为,对于不同类型的数据集,结合不同数据增强方法的pretext task影响是很大的。对于语义级的数据集,旋转更优,对于细节缺陷检测,本文cutpaste性能更优。需要根据异常的特点,针对性的设计数据增强方法,以在正样本中丰富出与正样本差异较大的样本,最好是能够表现出异常样本的特点。
网友评论