Обнаружение аномалий «ученик-учитель»
Это реализация статьи «Неинформированные студенты: обнаружение аномалий между учениками и учителями с помощью дискриминативных скрытых вложений».
Как использовать
- Запустите сценарий mvtec_dataset.sh, чтобы загрузить и подготовить набор данных MVTec в правильном формате. Для этого требуется около 5 ГБ дискового пространства.
Папка данных должна быть доступна сейчас. Каждая подпапка в данных имеет название категории. В качестве примера построим модель для категории ковер .
(Необязательно) Запустите сценарий resnet18_training.py для дальнейшего обучения resnet18 на вашем наборе данных.
cd src
python3 resnet18_training.py --dataset carpet
- Запустите Teacher_training.py, чтобы применить знания о resnet18 к нейронной сети меньшего размера. Это ускорит обработку изображений. Эта нейронная сеть, называемая Учитель, выводит 512-мерный вектор описания для каждого участка изображения размером <patch_size>. Поддерживаемые значения patch_size:
- size = 17, эффективно, если мы ищем аномалии небольшого размера.
- размер = 33, эффективен, если мы ищем аномалии среднего размера.
- размер = 65, эффективен, если мы ищем аномалии большого размера.
cd src
python3 teacher_training.py --dataset carpet --patch_size 33
- Запустите Student_training.py, чтобы обучить группу из M=3 учеников сети учителей. Обучение студентов проводится на наборе данных без аномалий. Мы ожидаем, что они будут плохо обобщать изображения, содержащие аномалии.
cd src
python students_training.py --dataset carpet --patch_size 33 --n_students 3
- Запустите anomaly_detection.py, чтобы получить карту аномалий для каждого изображения тестового набора. Карта аномалий рассчитывается с использованием дисперсии прогнозов учеников и ошибки между прогнозами учеников и учителя.
cd src
python anomaly_detection.py --dataset carpet --patch_size 33 --n_students 3
Результаты



Дополнительные результаты доступны в папке /result .
Производительность

Ссылки
Оригинальная бумага
- https://arxiv.org/pdf/1911.02357v2.pdf
Документ с набором данных MVTec
- https://openaccess.thecvf.com/content_CVPR_2019/papers/Bergmann_MVTec_AD_--_A_Comprehensive_Real-World_Dataset_for_Unsupervised_Anomaly_CVPR_2019_paper.pdf
Быстрое плотное извлечение функций
- https://www.dfki.de/fileadmin/user_upload/import/9245_FastCNNFeature_BMVC.pdf
- https://github.com/erezposner/Fast_Dense_Feature_Extraction