AnomalyGPT:基于大视觉语言模型的工业异常检测

AnomalyGPT:基于大视觉语言模型的工业异常检测

【免费下载链接】AnomalyGPT 【免费下载链接】AnomalyGPT 项目地址: https://gitcode.com/gh_mirrors/an/AnomalyGPT

AnomalyGPT是首个基于大视觉语言模型(LVLM)的工业异常检测(IAD)方法,能够在不需要手动指定阈值的情况下检测工业图像中的异常。现有的IAD方法只能提供异常分数并需要手动设置阈值,而现有的LVLM无法检测图像中的异常。AnomalyGPT不仅可以指示异常的存在和位置,还可以提供图像的相关信息。

技术原理

AnomalyGPT利用预训练的图像编码器和大语言模型(LLM),通过模拟异常数据来对齐IAD图像及其对应的文本描述。我们采用轻量级的、基于视觉-文本特征匹配的图像解码器来获取定位结果,并设计了一个提示学习器来为大语言模型提供细粒度语义,并使用提示嵌入对LVLM进行微调。我们的方法还可以在提供少量正常样本的情况下检测先前未见过的物品的异常。

技术架构图 AnomalyGPT技术架构图

环境安装

克隆仓库到本地:

git clone https://gitcode.com/gh_mirrors/an/AnomalyGPT

安装所需依赖包:

pip install -r requirements.txt

模型准备

准备ImageBind检查点

下载预训练的ImageBind模型,将下载的文件(imagebind_huge.pth)放在pretrained_ckpt/imagebind_ckpt/目录下。

准备Vicuna检查点

按照pretrained_ckpt目录中的说明准备预训练的Vicuna模型。

准备AnomalyGPT权重

下载AnomalyGPT权重文件,将其放在code/ckpt/目录下。我们提供多种训练配置的权重:

  • 在MVTec-AD数据集上无监督训练
  • 在VisA数据集上无监督训练
  • 在MVTec-AD、VisA、MVTec-LOCO-AD和CrackForest数据集上的监督训练

部署演示

完成上述步骤后,可以在本地运行演示:

cd ./code/
python web_demo.py

训练自定义AnomalyGPT

数据准备

下载MVTec-AD数据集和VisA数据集,将数据放在data/目录下。数据目录结构应如下所示:

data
|---pandagpt4_visual_instruction_data.json
|---images
|-----|-- ...
|---mvtec_anomaly_detection
|-----|-- bottle
|-----|-----|----- ground_truth
|-----|-----|----- test
|-----|-----|----- train
|-----|-- capsule
|-----|-- ...
|----VisA
|-----|-- split_csv
|-----|-----|--- 1cls.csv
|-----|-----|--- ...
|-----|-- candle
|-----|-----|--- Data
|-----|-----|-----|----- Images
|-----|-----|-----|--------|------ Anomaly
|-----|-----|-----|--------|------ Normal
|-----|-----|-----|----- Masks
|-----|-----|--- image_anno.csv
|-----|-- capsules
|-----|-----|----- ...

训练配置

以下是我们实验中使用的训练超参数,这些参数基于我们的计算资源限制(2 x RTX3090 GPU)进行选择:

基础语言模型训练轮数批次大小学习率最大长度
Vicuna-7B50161e-31024

训练AnomalyGPT

要在MVTec-AD数据集上训练AnomalyGPT,请运行以下命令:

cd ./code
bash ./scripts/train_mvtec.sh

训练脚本的关键参数包括:

  • --data_path:json文件pandagpt4_visual_instruction_data.json的数据路径
  • --image_root_path:PandaGPT训练图像的根路径
  • --imagebind_ckpt_path:ImageBind检查点的路径
  • --vicuna_ckpt_path:保存预训练Vicuna检查点的目录
  • --max_tgt_len:训练实例的最大序列长度
  • --save_path:保存训练后增量权重的目录(将自动创建)
  • --log_path:保存日志的目录(将自动创建)

应用示例

混凝土裂缝检测 混凝土裂缝检测示例

裂纹胶囊检测 胶囊裂纹检测示例

切开的榛子检测 切开的榛子检测示例

损坏的瓶子检测 损坏的瓶子检测示例

正常地毯图像 正常地毯图像示例

有缺陷的木材检测 有缺陷的木材检测示例

正常织物图像 正常织物图像示例

核心优势

无需手动阈值设置

AnomalyGPT能够自动检测异常,无需像传统方法那样需要手动设置阈值。

多模态理解能力

结合视觉和语言模型,能够提供更丰富的异常描述和定位信息。

强大的泛化能力

即使在提供少量正常样本的情况下,也能检测先前未见过的物品的异常。

实时检测性能

基于预训练模型,能够在保持高精度的同时实现快速检测。

许可证

AnomalyGPT采用CC BY-NC-SA 4.0许可证。

引用

如果您在研究中使用了AnomalyGPT,请使用以下BibTeX格式引用:

@article{gu2023anomalyagpt,
  title={AnomalyGPT: Detecting Industrial Anomalies using Large Vision-Language Models},
  author={Gu, Zhaopeng and Zhu, Bingke and Zhu, Guibo and Chen, Yingying and Tang, Ming and Wang, Jinqiao},
  journal={arXiv preprint arXiv:2308.15366},
  year={2023}
}

【免费下载链接】AnomalyGPT 【免费下载链接】AnomalyGPT 项目地址: https://gitcode.com/gh_mirrors/an/AnomalyGPT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值