В данном проекте реализован детектор лиц и классификатор медицинских масок в видеопотоке с помощью OpenCV, Keras и Python.
В итоговый датасет вошли по 2600 картинок каждого класса. Скачать: https://disk.yandex.ru/d/xzAGIUhKNMtkHg
Изображения взяты из открытых источников и предобработаны, цветовые профили приведены к RGB 8 bit с помощью PS.
Требуются imutils, tensorflow/keras 2.4.1, OpenCV
Проект включает в себя 3 скрипта:
- Обучение классификатора масок с использованием MobileNetV2, сериализация классификатора;
- Реализация детектора лиц и классификатора масок, отрисовка рамки и лейбла в кадре;
- Настройка детектора на видеопоток с веб-камеры.
Веса используемой во 2-м скрипте resnet-10:
https://github.com/gopinath-balu/computer_vision/blob/master/CAFFE_DNN/deploy.prototxt
Структура проекта:
Метрика - accuracy
Качество полученного классификатора:
Запуск
- Можно запустить скрипт 3_detect_mask_video.py, который использует уже обученный классификатор масок mask_detector.model (полученный скриптом 1_mask_detector_training.py) и посмотреть на работу детектора;
- Можно пройти заново по всем скриптам, то есть с помощью 1_mask_detector_training.py обучить классификатор масок на датасете и сохранить его как mask_detector.model, затем 2_face_mask_detector.py - здесь можно запустить проверку детектора на одиночном изображении, и уже с помощью 3_detect_mask_video.py подключиться к веб-камере своего ПК и проверить работу в realtime.
В скриптах есть парсер аргументов, можно работать с командной строкой, например:
- Открыть anaconda prompt, перейти в папку с проектом с помощью команды cd C:\Users\xxxx\mask_detector
- Передать команду python 1_mask_detector_training.py --dataset dataset (запустится первый скрипт)
- Затем можно запустить второй скрипт командой python 2_face_mask_detector.py --image examples/0.png (проверка на изображении)
- Далее - третий скрипт командой python 3_detect_mask_video.py
В данной работе использованы идеи следующего проекта:
Датасеты:
https://github.com/StephenMilborrow/muct/blob/master/
https://www.kaggle.com/dhruvmak/face-mask-detection
https://www.kaggle.com/shreyashwaghe/face-mask-dataset
https://www.kaggle.com/rakshana0802/face-mask-detection-data