[ ICLR 24 ] AnomalyCLIP : apprentissage rapide indépendant des objets pour la détection d'anomalies sans tir
par Qihang Zhou*, Guansong Pang*, Yu Tian, Shibo He, Jiming Chen.
19.03.2024 : Le code a été publié !!!
08.08.2024 : Mise à jour du code pour tester une image.
La détection des anomalies sans tir (ZSAD) nécessite des modèles de détection entraînés à l'aide de données auxiliaires pour détecter les anomalies sans aucun échantillon d'entraînement dans un ensemble de données cible. Il s'agit d'une tâche cruciale lorsque les données d'entraînement ne sont pas accessibles en raison de diverses préoccupations, par exemple la confidentialité des données, mais elle constitue un défi car les modèles doivent se généraliser aux anomalies dans différents domaines où l'apparition d'objets de premier plan, de régions anormales et de caractéristiques d'arrière-plan, tels que des défauts/tumeurs sur différents produits/organes, peuvent varier considérablement. Récemment, de grands modèles de langage de vision (VLM) pré-entraînés, tels que CLIP, ont démontré une forte capacité de reconnaissance de tir nul dans diverses tâches de vision, y compris la détection d'anomalies. Cependant, leurs performances ZSAD sont faibles puisque les VLM se concentrent davantage sur la modélisation de la sémantique de classe des objets de premier plan plutôt que sur l'anomalie/normalité des images. Dans cet article, nous introduisons une nouvelle approche, à savoir AnomalyCLIP, pour adapter CLIP pour un ZSAD précis dans différents domaines. L'idée clé d'AnomalyCLIP est d'apprendre des invites textuelles indépendantes des objets qui capturent la normalité et les anomalies génériques dans une image quels que soient ses objets de premier plan. Cela permet à notre modèle de se concentrer sur les régions anormales de l'image plutôt que sur la sémantique des objets, permettant ainsi une reconnaissance généralisée de la normalité et des anomalies sur divers types d'objets. Des expériences à grande échelle sur 17 ensembles de données de détection d'anomalies du monde réel montrent qu'AnomalyCLIP atteint des performances supérieures en matière de détection et de segmentation des anomalies dans des ensembles de données de sémantique de classe très diversifiée provenant de divers domaines d'inspection des défauts et d'imagerie médicale. Toutes les expériences sont menées dans PyTorch-2.0.0 avec un seul NVIDIA RTX 3090 24 Go.
Téléchargez l'ensemble de données ci-dessous :
Domaine industriel : MVTec, VisA, MPDD, BTAD, SDD, DAGM, DTD-Synthetic
Domaine médical : HeadCT, BrainMRI, Br35H, COVID-19, ISIC, CVC-ColonDB, CVC-ClinicDB, Kvasir, Endo, TN3K.
Lien Google Drive (ensemble de données fréquemment demandé) : SDD, Br35H, COVID-19
Prenez MVTec AD par exemple (avec plusieurs catégories d'anomalies)
Structure du dossier MVTec :
mvtec/ │ ├── meta.json │ ├── bottle/ │ ├── ground_truth/ │ │ ├── broken_large/ │ │ │ └── 000_mask.png | | | └── ... │ │ └── ... │ └── test/ │ ├── broken_large/ │ │ └── 000.png | | └── ... │ └── ... │ └── ...
cd generate_dataset_json python mvtec.py
Prenez SDD par exemple (avec une seule catégorie d'anomalie)
Structure du dossier SDD :
SDD/ │ ├── electrical_commutators/ │ └── test/ │ ├── defect/ │ │ └── kos01_Part5_0.png | | └── ... │ └── good/ │ └── kos01_Part0_0.png │ └── ... │ └── meta.json
cd generate_dataset_json python SDD.py
Sélectionnez le script correspondant et exécutez-le (nous fournissons tous les scripts pour les ensembles de données signalés par AnomalyCLIP). Le JSON généré stocke toutes les informations dont AnomalyCLIP a besoin.
Créez un nouveau script JSON dans Fold generate_dataset_json en fonction de la structure de pliage de vos propres ensembles de données.
Ajoutez les informations associées à votre ensemble de données (c'est-à-dire le nom de l'ensemble de données et les noms de classe) dans le script dataset.py
Démarrage rapide (utilisez les poids pré-entraînés)
bash test.sh
Entraînez vos propres poids
bash train.sh
Nous remercions pour le référentiel de code : open_clip, DualCoOp, CLIP_Surgery et VAND.
Si vous trouvez cet article et ce référentiel utiles, veuillez citer notre article.
@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} }