[ ICLR 24 ] AnomalyCLIP: 제로샷 이상 탐지를 위한 객체 독립적 프롬프트 학습
작성자: Qihang Zhou*, Guansong Pang*, Yu Tian, Shibo He, Jiming Chen.
2024년 3월 19일 : 코드가 공개되었습니다!!!
2024년 8월 8일 : 하나의 이미지를 테스트하기 위한 코드를 업데이트합니다.
제로샷 이상 탐지(ZSAD)에는 대상 데이터 세트에서 훈련 샘플 없이 이상을 탐지하기 위해 보조 데이터를 사용하여 훈련된 탐지 모델이 필요합니다. 데이터 프라이버시 등 다양한 문제로 인해 학습 데이터에 접근할 수 없는 경우 중요한 작업이지만, 모델이 전경 객체, 비정상적인 영역 및 배경 특징의 출현과 같은 다양한 영역에 걸쳐 이상 현상을 일반화해야 하기 때문에 어려운 작업입니다. 다양한 제품/장기의 결함/종양 등은 크게 다를 수 있습니다. 최근 CLIP과 같은 대규모 사전 훈련된 VLM(비전 언어 모델)은 이상 탐지를 포함한 다양한 비전 작업에서 강력한 제로샷 인식 능력을 입증했습니다. 그러나 VLM은 이미지의 비정상/정상성보다는 전경 개체의 클래스 의미를 모델링하는 데 더 중점을 두기 때문에 ZSAD 성능이 약합니다. 이 논문에서는 다양한 도메인에 걸쳐 정확한 ZSAD를 위해 CLIP을 적용하는 새로운 접근 방식, 즉 AnomalyCLIP을 소개합니다. AnomalyCLIP의 핵심 통찰력은 전경 개체에 관계없이 이미지의 일반적인 정상 및 비정상을 캡처하는 개체 독립적인 텍스트 프롬프트를 학습하는 것입니다. 이를 통해 우리 모델은 객체 의미보다는 비정상적인 이미지 영역에 초점을 맞출 수 있어 다양한 유형의 객체에 대한 일반화된 정상 및 비정상 인식이 가능합니다. 17개의 실제 이상 탐지 데이터 세트에 대한 대규모 실험에서는 AnomalyCLIP이 다양한 결함 검사 및 의료 영상 영역의 매우 다양한 클래스 의미 체계의 데이터 세트에서 이상을 감지하고 분할하는 뛰어난 제로샷 성능을 달성한 것으로 나타났습니다. 모든 실험은 단일 NVIDIA RTX 3090 24GB를 사용하는 PyTorch-2.0.0에서 수행되었습니다.
아래 데이터세트를 다운로드하세요.
산업 분야: MVTec, VisA, MPDD, BTAD, SDD, DAGM, DTD-Synthetic
의료 도메인: HeadCT, BrainMRI, Br35H, COVID-19, ISIC, CVC-ColonDB, CVC-ClinicDB, Kvasir, Endo, TN3K.
Google 드라이브 링크(자주 요청되는 데이터 세트): SDD, Br35H, COVID-19
MVTec AD를 예로 들어 보겠습니다(여러 변칙 범주 포함).
MVTec 폴더의 구조:
mvtec/ │ ├── meta.json │ ├── bottle/ │ ├── ground_truth/ │ │ ├── broken_large/ │ │ │ └── 000_mask.png | | | └── ... │ │ └── ... │ └── test/ │ ├── broken_large/ │ │ └── 000.png | | └── ... │ └── ... │ └── ...
CD 생성_데이터세트_json 파이썬 mvtec.py
SDD를 예로 들어보겠습니다(단일 이상 범주 사용).
SDD 폴더의 구조:
SDD/ │ ├── electrical_commutators/ │ └── test/ │ ├── defect/ │ │ └── kos01_Part5_0.png | | └── ... │ └── good/ │ └── kos01_Part0_0.png │ └── ... │ └── meta.json
CD 생성_데이터세트_json 파이썬 SDD.py
해당 스크립트를 선택하고 실행합니다(AnomalyCLIP이 보고한 데이터 세트에 대한 모든 스크립트를 제공합니다). 생성된 JSON은 AnomalyCLIP에 필요한 모든 정보를 저장합니다.
자신의 데이터세트의 폴더 구조에 따라 폴더 generate_dataset_json에 새 JSON 스크립트를 생성하세요.
데이터세트의 관련 정보(예: 데이터세트 이름 및 클래스 이름)를 스크립트dataset.py에 추가하세요.
빠른 시작(사전 훈련된 가중치 사용)
배쉬 test.sh
자신만의 웨이트 트레이닝
배쉬 열차 .sh
코드 저장소인 open_clip, DualCoOp, CLIP_Surgery 및 VAND에 감사드립니다.
이 논문과 저장소가 유용하다고 생각되면 우리 논문을 인용해 주세요.
@inproceedings{zhou2023anomalyclip, title={AnomalyCLIP: Object-agnostic Prompt Learning for Zero-shot Anomaly Detection}, author={Zhou, Qihang and Pang, Guansong and Tian, Yu and He, Shibo and Chen, Jiming}, booktitle={The Twelfth International Conference on Learning Representations}, year={2023} }