AdaCLIP 开源项目使用教程

AdaCLIP 开源项目使用教程

AdaCLIP [ECCV2024] The Official Implementation for ''AdaCLIP: Adapting CLIP with Hybrid Learnable Prompts for Zero-Shot Anomaly Detection'' AdaCLIP 项目地址: https://gitcode.com/gh_mirrors/ad/AdaCLIP

1. 项目介绍

AdaCLIP 是一个针对零样本异常检测(Zero-Shot Anomaly Detection, ZSAD)任务的开源项目。该项目基于预训练的视觉语言模型 CLIP,通过引入可学习的提示(prompts)并对这些提示进行优化,以增强 CLIP 在零样本异常检测方面的能力。AdaCLIP 提出了两种类型的提示:静态提示和动态提示,结合这两种提示可以实现更好的异常检测效果。在多个现实世界的异常检测数据集上的实验表明,AdaCLIP 的性能优于其他 ZSAD 方法,并且能够更好地泛化到不同的类别甚至领域。

2. 项目快速启动

环境安装

首先,克隆项目仓库:

git clone https://github.com/caoyunkang/AdaCLIP.git
cd AdaCLIP

然后,可以使用提供的安装脚本来自动设置环境:

sh install.sh

如果希望手动设置环境,可以按照以下步骤进行:

conda create -n AdaCLIP python=3.9.5 -y
conda activate AdaCLIP
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
pip install tqdm tensorboard setuptools==58.0.4 opencv-python scikit-image scikit-learn matplotlib seaborn ftfy regex numpy==1.26.4
pip install gradio  # 可选,用于应用

确保在 config.py 中更新数据集的根目录:

DATA_ROOT = '../datasets'

数据集准备

请将处理过的视觉异常检测数据集下载到 DATA_ROOT 指定的路径。

训练模型

默认情况下,使用 MVTec AD 和 ColonDB 数据集进行训练,VisA 数据集用于验证:

CUDA_VISIBLE_DEVICES=0 python train.py --save_fig True --training_data mvtec colondb --testing_data visa

如果需要在 MVTec AD 和 ColonDB 上进行评估,可以使用 VisA 和 ClinicDB 数据集进行训练,MVTec AD 数据集用于验证:

CUDA_VISIBLE_DEVICES=0 python train.py --save_fig True --training_data visa clinicdb --testing_data mvtec

为了构建一个健壮的 ZSAD 模型,也可以在提到的所有 AD 数据集上训练 AdaCLIP:

CUDA_VISIBLE_DEVICES=0 python train.py --save_fig True \
--training_data \
br35h brain_mri btad clinicdb colondb \
dagm dtd headct isic mpdd mvtec sdd tn3k visa \
--testing_data mvtec

测试模型

从验证集中选择最佳模型,并将其放置在 weights/ 目录中。然后运行以下测试脚本:

sh test.sh

如果想要在单张图像上测试,可以参考 test_single_image.sh

CUDA_VISIBLE_DEVICES=0 python test.py --testing_model image --ckt_path weights/pretrained_all.pth --save_fig True \
--image_path asset/img.png --class_name candle --save_name test.png

3. 应用案例和最佳实践

  • 案例一:使用 AdaCLIP 进行工业视觉异常检测,如 MVTec AD 数据集中的各类物体。
  • 最佳实践:在训练过程中,使用半精度浮点数(FP16)可能会导致训练不稳定,建议多次运行训练过程,并选择在验证集上性能最佳的模型。

4. 典型生态项目

  • VAND-APRIL-GAN:一个用于异常检测的生成对抗网络项目。
  • AnomalyCLIP:另一个基于 CLIP 的异常检测项目。
  • SAA:用于异常检测的自适应 attention 机制项目。

AdaCLIP [ECCV2024] The Official Implementation for ''AdaCLIP: Adapting CLIP with Hybrid Learnable Prompts for Zero-Shot Anomaly Detection'' AdaCLIP 项目地址: https://gitcode.com/gh_mirrors/ad/AdaCLIP

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解岭芝Madeline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值