Détection des anomalies élève-enseignant
Il s'agit d'une implémentation de l'article Étudiants non informés : Détection d'anomalies étudiant-enseignant avec intégrations latentes discriminantes.
Comment utiliser
- Exécutez le script mvtec_dataset.sh pour télécharger et préparer l'ensemble de données MVTec au format correct. Cela nécessite environ 5 Go d'espace disque.
Le dossier de données devrait être disponible maintenant. Chaque sous-dossier de data porte le nom d'une catégorie. Construisons un modèle pour la catégorie tapis à titre d'exemple.
(Facultatif) Exécutez le script resnet18_training.py pour entraîner davantage resnet18 sur votre ensemble de données
cd src
python3 resnet18_training.py --dataset carpet
- Exécutez Teacher_training.py pour distiller les connaissances de resnet18 sur un réseau neuronal plus petit. Cela accélérera le traitement des images. Ce réseau neuronal, appelé Teacher, génère un vecteur de description à 512 dimensions pour chaque patch de taille <patch_size> de l'image. Les valeurs patch_size prises en charge sont :
- taille = 17, efficace si l'on recherche des anomalies de petite taille
- taille = 33, efficace si l'on recherche des anomalies de taille moyenne
- taille = 65, efficace si l'on recherche des anomalies de grande taille
cd src
python3 teacher_training.py --dataset carpet --patch_size 33
- Exécutez étudiants_training.py pour former un ensemble de M=3 étudiants sur le réseau d'enseignants. La formation des étudiants se fait sur un jeu de données sans anomalie. Nous nous attendons à ce qu'ils se généralisent mal dans les images contenant des anomalies
cd src
python students_training.py --dataset carpet --patch_size 33 --n_students 3
- Exécutez anomaly_detection.py pour obtenir une carte des anomalies pour chaque image de l'ensemble de test. Une carte d'anomalies est calculée en utilisant la variance des prédictions des étudiants et l'erreur entre les prédictions des étudiants et celles de l'enseignant.
cd src
python anomaly_detection.py --dataset carpet --patch_size 33 --n_students 3
Résultats
Et plus de résultats sont disponibles dans le dossier /result
Performance
Références
Papier original
- https://arxiv.org/pdf/1911.02357v2.pdf
Document sur l'ensemble de données MVTec
- https://openaccess.thecvf.com/content_CVPR_2019/papers/Bergmann_MVTec_AD_--_A_Comprehensive_Real-World_Dataset_for_Unsupervised_Anomaly_CVPR_2019_paper.pdf
Extraction rapide de fonctionnalités denses
- https://www.dfki.de/fileadmin/user_upload/import/9245_FastCNNFeature_BMVC.pdf
- https://github.com/erezposner/Fast_Dense_Feature_Extraction