[ ICLR 24 ] AnomalyCLIP: aprendizaje rápido independiente del objeto para la detección de anomalías de disparo cero
por Qihang Zhou*, Guansong Pang*, Yu Tian, Shibo He, Jiming Chen.
19.03.2024 : ¡¡¡Se ha publicado el código !!!
08.08.2024 : actualice el código para probar una imagen.
La detección de anomalías de disparo cero (ZSAD) requiere modelos de detección entrenados con datos auxiliares para detectar anomalías sin ninguna muestra de entrenamiento en un conjunto de datos de destino. Es una tarea crucial cuando no se puede acceder a los datos de entrenamiento debido a diversas preocupaciones, por ejemplo, la privacidad de los datos, pero es un desafío ya que los modelos deben generalizarse a anomalías en diferentes dominios donde la apariencia de objetos de primer plano, regiones anormales y características de fondo, como defectos/tumores en diferentes productos/órganos, pueden variar significativamente. Recientemente, grandes modelos de visión y lenguaje (VLM) previamente entrenados, como CLIP, han demostrado una sólida capacidad de reconocimiento de disparo cero en diversas tareas de visión, incluida la detección de anomalías. Sin embargo, su rendimiento ZSAD es débil ya que los VLM se centran más en modelar la semántica de clase de los objetos en primer plano que en la anormalidad/normalidad de las imágenes. En este artículo presentamos un enfoque novedoso, llamado AnomalyCLIP, para adaptar CLIP para un ZSAD preciso en diferentes dominios. La idea clave de AnomalyCLIP es aprender indicaciones de texto independientes de los objetos que capturan la normalidad y anormalidad genéricas en una imagen, independientemente de sus objetos en primer plano. Esto permite que nuestro modelo se centre en las regiones anormales de la imagen en lugar de en la semántica del objeto, lo que permite el reconocimiento generalizado de normalidad y anomalías en diversos tipos de objetos. Experimentos a gran escala en 17 conjuntos de datos de detección de anomalías del mundo real muestran que AnomalyCLIP logra un rendimiento superior de disparo cero en la detección y segmentación de anomalías en conjuntos de datos de semántica de clases muy diversa de diversos dominios de inspección de defectos e imágenes médicas. Todos los experimentos se realizan en PyTorch-2.0.0 con una única NVIDIA RTX 3090 de 24 GB.
Descargue el conjunto de datos a continuación:
Dominio industrial: MVTec, VisA, MPDD, BTAD, SDD, DAGM, DTD-Synthetic
Dominio médico: HeadCT, BrainMRI, Br35H, COVID-19, ISIC, CVC-ColonDB, CVC-ClinicDB, Kvasir, Endo, TN3K.
Enlace de Google Drive (conjunto de datos solicitado con frecuencia): SDD, Br35H, COVID-19
Tomemos como ejemplo MVTec AD (con múltiples categorías de anomalías)
Estructura de la carpeta MVTec:
mvtec/ │ ├── meta.json │ ├── bottle/ │ ├── ground_truth/ │ │ ├── broken_large/ │ │ │ └── 000_mask.png | | | └── ... │ │ └── ... │ └── test/ │ ├── broken_large/ │ │ └── 000.png | | └── ... │ └── ... │ └── ...
cd generar_dataset_json Python mvtec.py
Tomemos como ejemplo SDD (con categoría de anomalía única)
Estructura de la carpeta SDD:
SDD/ │ ├── electrical_commutators/ │ └── test/ │ ├── defect/ │ │ └── kos01_Part5_0.png | | └── ... │ └── good/ │ └── kos01_Part0_0.png │ └── ... │ └── meta.json
cd generar_dataset_json Python SDD.py
Seleccione el script correspondiente y ejecútelo (proporcionamos todos los scripts para los conjuntos de datos que informó AnomalyCLIP). El JSON generado almacena toda la información que necesita AnomalyCLIP.
Cree un nuevo script JSON en el pliegue generate_dataset_json de acuerdo con la estructura de pliegue de sus propios conjuntos de datos.
Agregue la información relacionada de su conjunto de datos (es decir, el nombre del conjunto de datos y los nombres de las clases) en el script dataset.py
Inicio rápido (use las pesas previamente entrenadas)
bash prueba.sh
Entrena tus propios pesos
bash tren.sh
Agradecemos el repositorio de código: open_clip, DualCoOp, CLIP_Surgery y VAND.
Si encuentra útil este documento y este repositorio, cite nuestro documento.
@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} }