Erkennung von Schüler-Lehrer-Anomalien
Dies ist eine Implementierung des Papiers „Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings“.
Wie zu verwenden
- Führen Sie das Skript mvtec_dataset.sh aus, um den MVTec-Datensatz im richtigen Format herunterzuladen und vorzubereiten. Dies erfordert etwa 5 GB Speicherplatz.
Der Datenordner sollte jetzt verfügbar sein. Jeder Unterordner in Daten hat den Namen einer Kategorie. Lassen Sie uns als Beispiel ein Modell für die Kategorie Teppich erstellen.
(Optional) Führen Sie das Skript resnet18_training.py aus, um resnet18 weiter auf Ihrem Datensatz zu trainieren
cd src
python3 resnet18_training.py --dataset carpet
- Führen Sie teacher_training.py aus, um das Wissen über resnet18 in einem kleineren neuronalen Netzwerk zu destillieren. Dadurch wird die Verarbeitung von Bildern beschleunigt. Dieses neuronale Netzwerk, Teacher genannt, gibt einen 512-dimensionalen Beschreibungsvektor für jeden Patch der Größe <patch_size> des Bildes aus. Die unterstützten patch_size-Werte sind:
- Größe = 17, effektiv, wenn wir nach kleinen Anomalien suchen
- Größe = 33, effektiv, wenn wir nach Anomalien mittlerer Größe suchen
- Größe = 65, effektiv, wenn wir nach großen Anomalien suchen
cd src
python3 teacher_training.py --dataset carpet --patch_size 33
- Führen Sie Students_training.py aus, um eine Gruppe von M=3 Schülern gegen das Lehrernetzwerk zu trainieren. Die Schulung der Studierenden erfolgt anhand eines anomaliefreien Datensatzes. Wir gehen davon aus, dass sie sich in Bildern, die Anomalien enthalten, schlecht verallgemeinern lassen
cd src
python students_training.py --dataset carpet --patch_size 33 --n_students 3
- Führen Sie anomaly_detection.py aus, um eine Anomaliekarte für jedes Bild des Testsatzes zu erhalten. Eine Anomaliekarte wird anhand der Varianz der Schülervorhersagen und des Fehlers zwischen den Schülervorhersagen und den Lehrervorhersagen berechnet.
cd src
python anomaly_detection.py --dataset carpet --patch_size 33 --n_students 3
Ergebnisse
Weitere Ergebnisse sind im Ordner /result verfügbar
Leistung
Referenzen
Originalpapier
- https://arxiv.org/pdf/1911.02357v2.pdf
MVTec-Datensatzpapier
- https://openaccess.thecvf.com/content_CVPR_2019/papers/Bergmann_MVTec_AD_--_A_Comprehensive_Real-World_Dataset_for_Unsupervised_Anomaly_CVPR_2019_paper.pdf
Schnelle Extraktion dichter Merkmale
- https://www.dfki.de/fileadmin/user_upload/import/9245_FastCNNFeature_BMVC.pdf
- https://github.com/erezposner/Fast_Dense_Feature_Extraction