[ ICLR 24 ] AnomalyCLIP: Objektunabhängiges Prompt-Learning für die Zero-Shot-Anomalieerkennung
von Qihang Zhou*, Guansong Pang*, Yu Tian, Shibo He, Jiming Chen.
19.03.2024 : Code wurde veröffentlicht!!!
08.08.2024 : Aktualisieren Sie den Code zum Testen eines Bildes.
Die Zero-Shot-Anomalieerkennung (ZSAD) erfordert Erkennungsmodelle, die mithilfe von Hilfsdaten trainiert werden, um Anomalien ohne Trainingsstichprobe in einem Zieldatensatz zu erkennen. Dies ist eine entscheidende Aufgabe, wenn Trainingsdaten aus verschiedenen Gründen, z. B. aus Datenschutzgründen, nicht zugänglich sind. Sie stellt jedoch eine Herausforderung dar, da die Modelle auf Anomalien über verschiedene Domänen hinweg verallgemeinert werden müssen, bei denen das Erscheinungsbild von Vordergrundobjekten, abnormalen Regionen und Hintergrundmerkmalen, B. Defekte/Tumoren an verschiedenen Produkten/Organen, können erheblich variieren. Kürzlich haben große vorab trainierte Vision-Language-Modelle (VLMs) wie CLIP bei verschiedenen Vision-Aufgaben, einschließlich der Anomalieerkennung, eine starke Zero-Shot-Erkennungsfähigkeit gezeigt. Ihre ZSAD-Leistung ist jedoch schwach, da sich die VLMs mehr auf die Modellierung der Klassensemantik der Vordergrundobjekte als auf die Abnormalität/Normalität in den Bildern konzentrieren. In diesem Artikel stellen wir einen neuartigen Ansatz vor, nämlich AnomalyCLIP, um CLIP für genaues ZSAD über verschiedene Domänen hinweg anzupassen. Die wichtigste Erkenntnis von AnomalyCLIP besteht darin, objektunabhängige Textaufforderungen zu erlernen, die generische Normalität und Abnormalität in einem Bild unabhängig von seinen Vordergrundobjekten erfassen. Dadurch kann sich unser Modell auf die abnormalen Bildbereiche und nicht auf die Objektsemantik konzentrieren und ermöglicht so eine verallgemeinerte Normalitäts- und Abnormalitätserkennung für verschiedene Objekttypen. Groß angelegte Experimente mit 17 realen Anomalieerkennungsdatensätzen zeigen, dass AnomalyCLIP eine überlegene Zero-Shot-Leistung bei der Erkennung und Segmentierung von Anomalien in Datensätzen mit sehr unterschiedlicher Klassensemantik aus verschiedenen Bereichen der Defektinspektion und medizinischen Bildgebung erzielt. Alle Experimente werden in PyTorch-2.0.0 mit einer einzelnen NVIDIA RTX 3090 24 GB durchgeführt.
Laden Sie den folgenden Datensatz herunter:
Industrieller Bereich: MVTec, VisA, MPDD, BTAD, SDD, DAGM, DTD-Synthetic
Medizinischer Bereich: HeadCT, BrainMRI, Br35H, COVID-19, ISIC, CVC-ColonDB, CVC-ClinicDB, Kvasir, Endo, TN3K.
Google Drive-Link (häufig angeforderter Datensatz): SDD, Br35H, COVID-19
Nehmen Sie zum Beispiel MVTec AD (mit mehreren Anomaliekategorien)
Struktur des MVTec-Ordners:
mvtec/ │ ├── meta.json │ ├── bottle/ │ ├── ground_truth/ │ │ ├── broken_large/ │ │ │ └── 000_mask.png | | | └── ... │ │ └── ... │ └── test/ │ ├── broken_large/ │ │ └── 000.png | | └── ... │ └── ... │ └── ...
cd generic_dataset_json Python mvtec.py
Nehmen Sie zum Beispiel SDD (mit einer einzelnen Anomaliekategorie)
Struktur des SDD-Ordners:
SDD/ │ ├── electrical_commutators/ │ └── test/ │ ├── defect/ │ │ └── kos01_Part5_0.png | | └── ... │ └── good/ │ └── kos01_Part0_0.png │ └── ... │ └── meta.json
cd generic_dataset_json Python SDD.py
Wählen Sie das entsprechende Skript aus und führen Sie es aus (wir stellen alle Skripte für Datensätze bereit, die AnomalyCLIP gemeldet hat). Der generierte JSON speichert alle Informationen, die AnomalyCLIP benötigt.
Erstellen Sie ein neues JSON-Skript in Fold generic_dataset_json entsprechend der Fold-Struktur Ihrer eigenen Datensätze.
Fügen Sie die zugehörigen Informationen zu Ihrem Datensatz (z. B. Datensatzname und Klassennamen) im Skript dataset.py hinzu
Schnellstart (verwenden Sie die vortrainierten Gewichte)
bash test.sh
Trainiere deine eigenen Gewichte
bash train.sh
Wir danken für das Code-Repository: open_clip, DualCoOp, CLIP_Surgery und VAND.
Wenn Sie dieses Papier und das Repository nützlich finden, zitieren Sie bitte unser Papier.
@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} }