这篇文章主要介绍一下我们在 CVPR 2023 VAND Workshop 的挑战赛中所采用的模型和方案。在 Zero-shot 赛道中我们获得了冠军(Winner),在 Few-shot 赛道中,我们获得了第四名(Honorable Mentions)。
题目:A Zero-/Few-Shot Anomaly Classification and Segmentation Method for CVPR 2023 VAND Workshop Challenge Tracks 1&2: 1st Place on Zero-shot AD and 4th Place on Few-shot AD
论文:https://arxiv.org/abs/2305.17382
代码:https://github.com/ByChelsea/VAND-APRIL-GAN
研讨会:https://sites.google.com/view/vand-cvpr23/home
比赛:https://sites.google.com/view/vand-cvpr23/challenge?authuser=0
赛题介绍
在工业视觉异常检测领域,当前大多数的方法都需要大量的正常图像作为训练数据,而且需要为每个类别训练特定模型。然而,现实中的工业产品有数百万种,为每个对象收集大量的训练数据,并针对不同类别部署不同模型实行起来不仅周期较长且成本较高。因此,不使用(zero-shot)或使用少量(few-shot)图像构建冷启动模型在应用时显得尤为必要。构建一个可以在没有或只有少量正常图像的情况下,快速适应众多类别的模型是一种理想的解决方案,也是对社区中AD研究的公开挑战。因此AWS AI Labs联合众多高校、研究机构和MVTec数据集作者组织了两个相关方向的挑战赛道:
Track 1:Zero-shot Anomaly Detection (Anomaly Classification + Segmentation)
Track 2:Few-Shot Anomaly Detection (Anomaly Classification + Segmentation)
方案介绍
这里主要对我们在 Zero-shot 赛道的解决方案进行介绍,并简要介绍相应的 Few-shot 扩展。具体地,我们提出了一种基于预训练的 CLIP[1] 模型的 Zero-shot Anomaly Detection 方案,以 ViT[2] 作为 Backbone,但也可以轻松地扩展到其他架构。
异常分类
基于 WinCLIP[3] 异常分类框架,我们提出了一种文本提示集成策略。具体地,该集成策略包含 template-level 和 state-level 两部分:
1) 对于前者,我们从 CLIP Surgery[4] 中选定的85个模板提示中删掉了一些不适合AD任务的模板,如“a photo of the weird [obj.]“,最终筛选35个模板提示。
2) 对于后者,我们采用通用文本来描述正常/异常对象,如“flawless,damaged“等,而没有提供过于详细的描述以保证方法的普适性,如”chip around edge and corner“。最终使用7个正常提示和5个异常提示。
模板和状态提示与样本类别名称结合后,使用 CLIP 模型的文本编码器提取文本特征,并对正常和异常特征分别求平均值。最终,将正常与异常特征各自的平均值与图像特征进行对比,经过 softmax 后得到异常类别概率作为分类得分,见下图中蓝色 Zero-shot Anomaly Score 流程。
异常分割
类比图像级别的异常分类方法到异常分割,一个自然而然的想法是将 Backbone 提取到的包含空间信息的特征(例如 ViT 中的 patch tokens)与文本特征进行相似度度量。然而,CLIP 模型是基于分类的方案进行设计的,即除了用于分类的抽象图像特征(例如 ViT 中的 class token)外,没有将其它图像特征映射到统一的图像/文本空间。因此我们提出了一个简单但有效的方案来解决这个问题:使用额外的线性层将这些特征映射到图像/文本联合嵌入空间中,见上图中蓝色 Zero-shot Anomaly Map 流程。具体地,我们还利用了不同层级的特征,即将不同层级的特征分别经由一个线性层进行联合嵌入特征空间变换,再将得到的变换后的特征与文本特征进行对比,得到不同层级的异常图。最后,将不同层级的异常图简单加和求得结果。
在官方的测试数据集上提出的方法在综合 F1-max 指标上达到 0.4589,相较于其他众多参赛队伍具有明显的优势,证明了所提方法的优越性和泛化性。
Few-shot 扩展
得益于简单的结构,我们结合基于 memory 的 PatchCore[7] 思路将方法扩展到 Few-shot 赛道,在不进行任何调参的基础上获得了积极竞争的结果,我们会在后续工作中进一步探究该方法在 Few-shot 上的应用潜力与价值。
结语
技术报告及技术海报已被 CVPR 2023 VAND 研讨会收录,将于June 18th 11:50 AM - 12:00 PM进行相关Talk和QA(https://sites.google.com/view/vand-cvpr23/schedule)。
参考文献
[1] Radford, Alec, et al. “Learning transferable visual models from natural language supervision.” International conference on machine learning. PMLR, 2021.
[2] Dosovitskiy, Alexey, et al. “An image is worth 16x16 words: Transformers for image recognition at scale.” arXiv preprint arXiv:2010.11929 (2020).
[3] Jeong, Jongheon, et al. “Winclip: Zero-/few-shot anomaly classification and segmentation.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023.
[4] Li, Yi, et al. “Clip surgery for better explainability with enhancement in open-vocabulary tasks.” arXiv preprint arXiv:2304.05653 (2023).
[5] Bergmann, Paul, et al. “MVTec AD–A comprehensive real-world dataset for unsupervised anomaly detection.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019.
[6] Zou, Yang, et al. “SPot-the-Difference Self-supervised Pre-training for Anomaly Detection and Segmentation.” Computer Vision–ECCV 2022: 17th European Conference, Tel Aviv, Israel, October 23–27, 2022, Proceedings, Part XXX. Cham: Springer Nature Switzerland, 2022.
[7] Roth, Karsten, et al. “Towards total recall in industrial anomaly detection.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.