首页 > 其他分享 >[AAAI2024]AnomalyGPT Detecting Industrial Anomalies Using Large Vision-Language Models

[AAAI2024]AnomalyGPT Detecting Industrial Anomalies Using Large Vision-Language Models

时间:2024-11-05 14:32:08浏览次数:1  
标签:AAAI2024 mathbb Industrial Language IAD 样本 times 图像 文本

本篇论文将大语言模型应用在工业异常检测(Industrial Anomaly Detection,IAD)任务。

引言

IAD任务旨在检测和定位工业产品图像中的异常。由于现实世界样本的稀有性和不可预测性,要求模型仅在正常样本上进行训练,并实现对测试时异常样本的检测。

如图1,现有的IAD方法给出异常样本的概率,但需要手动设置阈值。大视觉语言模型(Large Vision-Language Models,LVLMs)能够过给出(有时不能给出)图片的描述,但不能实现异常检测。因此本篇文章将大语言模型应用在IAD任务中,提出AnomalyGPT模型(但实际上本文于GPT模型无关)。

相关工作

先用的IAD任务方法可分为两类

基于重建的方法 reconstruction-based

基于重建的目的是将异常样本重建为相应的正常样本,并通过计算重建误差来检测异常,使用的网络架构包括但不限于:自动编码器和,GAN,Transformer和扩散模型。

基于特征嵌入的方法 feature embedding-based

  • 例如PatchSVDD(Yi and Yoon 2020)的方法通过建立包裹正常样本的超球面(hypersphere)。
  • PyramidFlow(Lei et al. 2023)使用正则化流将正常样本投影到高斯分布上。
  • CFA(Lee, Lee, and Song 2022)建立正常样本patch的embedding,比较测试样本的embedding与正常样本的距离,实现异常检测。

然而,上述方法学习到的类是固定的,不能识别新的类,这在实际的生产环境中并不适用。

对于大模型的使用,作者考虑了两个问题

数据稀缺性

LLaVA(Liu et al. 2023)和PandaGPT(Su et al. 2023)等方法在 16 万张图像上进行了预训练,并配有相应的多轮对话。IAD 数据集仅包含几千个样本,因此直接微调很容易导致过度拟合和灾难性遗忘。

针对这点,作者在框架中加入了额外的可学习prompt embedding层,而不是直接微调参数模型。

细粒度语义

大语言模型对于具有判别性的细粒度语义学习不充分。

针对这点,作者引入了轻量级视觉-文本对齐解码器,去生成像素级别的异常定位。

方法

图像特征处理

作者考虑两种IAD任务设置:无监督和few-shot。中间公共的部分:输入样本\(x\in\mathbb{R}^{W\times H\times C}\),被Image Encoder提取的\(C_1\)维度的特征\(F_{img}\in\mathbb{R}^{C_1}\),经过线性层投影后的特征为 \(E_{img}\in\mathbb{R}^{C_{emb}}\)

无监督设置下,输入图片没有标签,但会提供两条文本,例如:“A photo of a normal bottle. A photo of an abnormal capsule.” 两条文本经过预训练的Text Encoder后得到特征\(F_{text}\in\mathbb{R}^{C_{text}}\)。

输入文本变化起的格式包含 state-level,对于normal/anomaly的文本分别为文本的格式如下:

normal anomaly
c:="[o]" c:="damaged [o]"
c:="flawless [o]" c:="broken [o]"
... ...

Token [o]可被替换为物体名,若物体名不可用,则使用“object”代替。完整 state-level的prompt template后填入 Template-level的文本,template-level的文本格式包括:

  • "a cropped photo of the [c]."
  • "a cropped photo of a [c]."
  • "a close-up photo of a [c]."
  • ...

经过文本编码器后的文本特征为\(F_{text}\in\mathbb{R}^{2\times C_{text}}\)。\(x\)输入图像Encoder后,对于中间4层的特征表示为\(F_{patch}^i\in\mathbb{R}^{H_i\times W_i\times C_i}\),再经过线性层投影得到\(\tilde{F}_{patch}^i\in\mathbb{R}^{H_i\times W_i\times C_{text}}\)。

然后将文本特征与图像特征做矩阵乘法并上采样得到Mask:\(M=Upsample\left(\sum_{i=1}^4softmax(\tilde{F}_{patch}^iF_{text}^T)\right)\)。

Few-shot设置下,每个类存在几个带标注的样本,图像Encoder中间4层,分别对应一个容量为\(N\)的memory bank:\(B^i\in\mathbb{R}^{N\times C_i}\),然后把整个bank的特征拿来计算,求最大,并把4个结果相加上采样得到掩码mask:\(M=Upsample\left(\sum_{i=1}^4\left(1-max(F_{patch}^i\cdot {B^i}^T)\right)\right)\)。

两种设置下,掩码大小与输入图像一致\(M\in R^{H\times W}\)。

可学习的prompt embedding层

为了利用图像中的细粒度语义并保持 LLM 和解码器输出之间的语义一致性,引入了一个提示学习器,将定位结果\(M\)转换为prompt embedding。prompt embedding层输出\(n_1\)的向量:\(E_{base}\in\mathbb{R}^{n_1\times C_{emb}}\)。

掩码经过卷积、投影变为长度为\(n_2\)的向量:\(M\in R^{H\times W}\rightarrow E_{dec}\in\mathbb{R}^{n_2\times C_{\boldsymbol{e}mb}}\)。再concat向量得到:\(E_{prompt}\in\mathbb{R}^{(n_1+n_2)\times C_{emb}}\)。

用户输入图片的文本描述

为了帮助大模型更好的理解图片内容,可以输入图片描述完善以下内容:
## Human: <img> \(E_{img}\) </img> \(E_{prompt}\) [Image Description ] ls there any anomaly in the image? # Assistant:

每个类含若干个描述,例如:
Bottle:This is a photo of a bottle for anomaly detection, which should be round and without any damage, flaw, defect, scratch, hole or broken part.

然而,在实际生产中,文本描述也可以不提供。作者表示,仅提供\(E_{img}\),模型也能有较好的表现。

最后,对于大模型的输出大概是“Yes, there is an anomaly in the image, at the bottom left of the image. or No, there are no anomalies in the image.”

为了让模型更好的理解位置,图片被分为9格

损失函数

用交叉熵计算模型生成的文本序列与目标文本序列之间的损失(其中\(n\)是token的数量):

\[L_{ce}=-\sum_{i=1}^ny_ilog(p_i) \]

\(y_i\)是第i个token真实标签,\(p_i\)为第i个token的概率预测。

在IAD任务中,异常图像中的大多数区域仍然是正常的,采用Focal损失可以缓解类别不平衡的问题(其中n=H×W表示像素总数):

\[L_{focal}=-\frac1n\sum_{i=1}^n(1-p_i)^\gamma log(p_i), \]

并额外使用了Dice损失:

\[L_{dice}=-\frac{\sum_{i=1}^ny_i\hat{y}_i}{\sum_{i=1}^ny_i^2+\sum_{i=1}^n\hat{y}_i^2}, \]

\(y_i\)是图像decoder的输出,\(\hat{y}_i\)的ground-truth。最后的损失函数表示为:

\[L=\alpha L_{ce}+\beta L_{focal}+\delta L_{dice} \]

实验

数据集

  • MVTec-AD 包含 15 个不同类别的 3629 张训练图像和 1725 张测试图像。
  • VisA 包含 12 个类别的 9621 张正常图像和 1200 张异常图像。

与之前的IAD方法一致,仅使用这些数据集中的正常数据进行训练。为了模拟异常样本,作者使用poisson图像编辑,相较于裁剪-粘贴,对于边缘处理更平滑

参考文献

  1. Gu, Zhaopeng, et al. "Anomalygpt: Detecting industrial anomalies using large vision-language models." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 38. No. 3. 2024.

标签:AAAI2024,mathbb,Industrial,Language,IAD,样本,times,图像,文本
From: https://www.cnblogs.com/zh-jp/p/18526426

相关文章

  • Hierarchical Cross-Modal Agent forRobotics Vision-and-Language Navigation论文的
    GitHub-GT-RIPL/robo-vln:PytorchcodeforICRA'21paper:"HierarchicalCross-ModalAgentforRoboticsVision-and-LanguageNavigation"Installationgitclonehttps://github.com/GT-RIPL/robo-vlncdrobo-vlnexportrobovln_rootdir=$PWD......
  • HE-Drive:Human-Like End-to-End Driving with Vision Language Models
    文章目录前言一、介绍二、相关工作2.1端到端自动驾驶2.2用于轨迹生成的扩散模型2.3用于轨迹评估的大型语言模型(LLMs)三、方法论3.1稀疏感知3.2基于扩散的运动规划器3.3基于大语言模型的轨迹评分器3.3.1基于规则的轨迹评分策略3.3.2VLMs帮助调整驾驶风格。3.4......
  • 论文阅读《SpotServe:Serving Generative Large Language Models》
     记录我在本科期间的论文阅读笔记,可能有些地方理解的不对,理性看待哈!SportServe:在抢占式实例上为生成式大型语言模型服务摘要LLM(大型语言模型)具有非常高昂的计算代价,所以降低他们的成本非常具有挑战性,本文利用云服务上的可抢占式的GPU实例来降低成本,但要解决频繁的实例抢......
  • NLP论文速读|DDCoT: Duty-Distinct Chain-of-Thought Prompting for Multimodal Reaso
    论文速读|Duty-distinctchain-of-thoughtpromptingformultimodalreasoninginlanguagemodels论文信息:简介:   论文探讨了如何使大型语言模型(LLMs)在多模态环境中进行复杂的推理,这一直是人工智能系统的长期目标。尽管最近的研究表明,通过模仿人类思维过程的“......
  • Autodesk Maya 2025.3 Multilanguage (macOS, Windows) - 三维动画和视觉特效软件
    AutodeskMaya2025.3Multilanguage(macOS,Windows)-三维动画和视觉特效软件三维计算机动画、建模、仿真和渲染软件请访问原文链接:https://sysin.org/blog/autodesk-maya/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org三维计算机动画、建模、仿真和渲染软件......
  • LLM | 论文精读 | 地学视觉语言大模型:Towards Vision-Language Geo-Foundation Model:
    论文标题:TowardsVision-LanguageGeo-FoundationModel:ASurvey作者:YueZhou,LitongFeng,YipingKe,XueJiang,JunchiYan,XueYang,WayneZhang期刊:未提供DOI:https://arxiv.org/abs/2406.09385email:[email protected]创作不易,恳请大家点赞收藏支持:)论......
  • 论文阅读Nature:Detecting hallucinations in large language models using semantic e
    论文阅读-Nature:Detectinghallucinationsinlargelanguagemodelsusingsemanticentropy(使用语义熵来检测大模型中的幻觉)作者:SebastianFarquhar,JannikKossen,LorenzKuhn&YarinGal单位:牛津大学,计算机科学学院,OATML实验室期刊:Nature时间线:2023年7月提交→......
  • PromQL (Prometheus Query Language)进阶教程
    PrometheusQueryLanguage典型应用场景:在仪表板中可视化Prometheus数据、使用Prometheus的警报管理器构建警报规则等。了解如何构建PromQL是使用Prometheus的一项基本技能,通过上篇文章学习了基础知识,本文带你更深入学习并实践。Prometheusmetrics类型我们已经知道,Promet......
  • CE243 using C language and ARM
    SchoolofComputerScienceandElectronicEngineering1CE243(NWU)Assignment2(2020-2021)ObjectivesTheobjectiveofthisassignmentistodemonstrateyourunderstandingoftheembeddedsystemthatcanbeeffectivelycontrolledusingClanguageandA......
  • 《FashionViL: Fashion-Focused Vision-and-Language Representation Learning》中文
    文章汉化系列目录文章目录文章汉化系列目录摘要1引言2相关工作3方法论3.1模型概述3.2预训练任务4实验*4.1预训练数据集和下游任务4.2比较结果4.3消融研究4.4可视化5结论摘要 大规模视觉-语言(V+L)表示学习的预训练已被证明在提升各种下游V+L任务上非......