Skip to content

Face detection & mask classification in a video stream using python, opencv and keras

Notifications You must be signed in to change notification settings

artchere/face_mask_detector

Repository files navigation

Face & mask detection

Image alt

Задача

В данном проекте реализован детектор лиц и классификатор медицинских масок в видеопотоке с помощью 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/res10_300x300_ssd_iter_140000.caffemodel

https://github.com/gopinath-balu/computer_vision/blob/master/CAFFE_DNN/deploy.prototxt

Структура проекта:

Image alt

Метрика - accuracy

Качество полученного классификатора:

Image alt

Запуск

  1. Можно запустить скрипт 3_detect_mask_video.py, который использует уже обученный классификатор масок mask_detector.model (полученный скриптом 1_mask_detector_training.py) и посмотреть на работу детектора;
  2. Можно пройти заново по всем скриптам, то есть с помощью 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://www.pyimagesearch.com/2020/05/04/covid-19-face-mask-detector-with-opencv-keras-tensorflow-and-deep-learning/

Датасеты:

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

https://www.kaggle.com/andrewmvd/face-mask-detection

About

Face detection & mask classification in a video stream using python, opencv and keras

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages