Detección de anomalías alumno-profesor
Esta es una implementación del artículo Estudiantes desinformados: detección de anomalías entre estudiantes y profesores con incrustaciones latentes discriminativas.
como usar
- Ejecute el script mvtec_dataset.sh para descargar y preparar el conjunto de datos MVTec en el formato correcto. Esto requiere alrededor de 5 GB de espacio en disco.
La carpeta de datos debería estar disponible ahora. Cada subcarpeta de datos tiene el nombre de una categoría. Construyamos un modelo para la categoría alfombra como ejemplo.
(Opcional) Ejecute el script resnet18_training.py para entrenar más a resnet18 en su conjunto de datos.
cd src
python3 resnet18_training.py --dataset carpet
- Ejecute Teacher_training.py para destilar el conocimiento de resnet18 en una red neuronal más pequeña. Esto acelerará el procesamiento de imágenes. Esta red neuronal, llamada Profesor, genera un vector de descripción de 512 dimensiones para cada parche de tamaño <patch_size> de la imagen. Los valores de patch_size admitidos son:
- tamaño = 17, efectivo si buscamos anomalías de tamaño pequeño
- tamaño = 33, efectivo si buscamos anomalías de tamaño medio
- size = 65, efectivo si buscamos anomalías de gran tamaño
cd src
python3 teacher_training.py --dataset carpet --patch_size 33
- Ejecute Students_training.py para capacitar a un conjunto de M=3 estudiantes en la red de profesores. La formación de los estudiantes se realiza sobre un conjunto de datos libre de anomalías. Esperamos que generalicen mal en imágenes que contienen anomalías.
cd src
python students_training.py --dataset carpet --patch_size 33 --n_students 3
- Ejecute anomaly_detection.py para obtener un mapa de anomalías para cada imagen del conjunto de prueba. Se calcula un mapa de anomalías utilizando la varianza de las predicciones de los Estudiantes y el error entre las predicciones de los Estudiantes y el Profesor.
cd src
python anomaly_detection.py --dataset carpet --patch_size 33 --n_students 3
Resultados
Y hay más resultados disponibles en la carpeta /resultados
Actuación
Referencias
papel original
- https://arxiv.org/pdf/1911.02357v2.pdf
Documento de conjunto de datos de MVTec
- https://openaccess.thecvf.com/content_CVPR_2019/papers/Bergmann_MVTec_AD_--_A_Comprehensive_Real-World_Dataset_for_Unsupervised_Anomaly_CVPR_2019_paper.pdf
Extracción rápida de características densas
- https://www.dfki.de/fileadmin/user_upload/import/9245_FastCNNFeature_BMVC.pdf
- https://github.com/erezposner/Fast_Dense_Feature_Extraction