COVID-19 сделал обязательным ношение масок, чтобы защитить себя. В этом блоге мы обнаружим, что человек в маске или нет

Участники проекта: Утсав Багела, Саурабх, Минал

В этом блоге мы собираемся показать производительность различных алгоритмов машинного обучения и алгоритмов глубокого обучения при обнаружении лицевых масок в видео в реальном времени. В этом исследовании наборы данных используются для извлечения признаков с использованием каскада Хаара. Для процесса классификации используются алгоритм дерева решений, машина опорных векторов и случайный лес, которые обеспечивают высокую точность обнаружения в каждом наборе данных. Мы измерили производительность моделей с помощью точности после завершения этапа обучения и тестирования.

Основная цель проекта — обнаружить человека в маске или без нее на видео в реальном времени. Изображение, используемое в процессе, захватывает веб-камера. Предварительная обработка выполняется для обучающих наборов данных, а извлечение и классификация признаков выполняются с использованием CNN.

Мотивация

Пандемия коронавируса COVID-19 наносит ущерб здоровью людей во всем мире. Ежедневно огромное количество людей заражаются этой болезнью и страдают в результате нее. Для реализации основных принципов безопасности необходимо соблюдать надлежащие меры предосторожности. Для строгой проверки этого можно внедрить систему обнаружения лицевых масок.

В настоящее время ношение масок является необходимостью, чтобы защитить себя от этой смертельной пандемии. Новый вариант Omicron напоминает нам, что COVID-19 еще далек от завершения, и мы должны быть достаточно осторожны. Поэтому, если мы сможем построить систему обнаружения масок в режиме реального времени, это поможет избежать распространения вируса. Если два человека носят маски во время разговора, риск заражения COVID очень низок. Поэтому ношение маски и социальное дистанцирование являются обязательными мерами профилактики против covid-19. Многие правительства ввели правила ношения масок для личной защиты. В этом контексте используется модель, основанная на глубоком обучении, называемая CNN, для предотвращения передачи Covid-19 от человека к человеку для обнаружения лиц в масках или без них.

О наборе данных

Наш набор данных состоит из 7553 цветных изображений в 2-х папках как с маской, так и без маски. Изображения лиц с масками — 3725, изображения лиц без масок — 3828. Набор данных общедоступен на Kaggle. Вы можете скачать набор данных по указанной ссылке.

Ссылка: https://www.kaggle.com/omkargurav/face-mask-dataset

Предварительная обработка данных

В нашем подходе мы выделили 80% набора данных в качестве данных для обучения, а оставшиеся 20% — в качестве данных для тестирования, что делает коэффициент разделения 0,8: 0,2 между поездом и тестовым набором. Перед разделением мы применили к изображениям предварительную обработку, такую ​​как изменение размера, оттенки серого и т. д.

  1. Сначала мы преобразовали цветные изображения в изображения в градациях серого.

2. Реализован каскад Хаара для обнаружения лиц, присутствующих на изображениях.

3. После обнаружения лиц обработайте каждое лицо, чтобы получить границы лица.

4. Преобразуйте изображения в одномерный массив, сведя их к минимуму.

5. На изображениях, распознавание лиц которых не удалось выполнить с помощью хаар-каскада, были обучены прямое преобразование в оттенки серого и сглаживание.

6. Мы также выполнили аугментацию данных для создания данных с лицами разных углов и форм.

Методология

Базовые модели

Применение моделей машинного обучения

Обнаружение маски лица - это проблема классификации, существуют разные методы классификации машинного обучения. Данный набор данных имеет нелинейное разделение, и для создания классификатора мы использовали различные традиционные методы ML.

Мы используем четыре классификатора машинного обучения для обучения модели.

  1. Машина опорных векторов
  2. Древо решений
  3. K-ближайший сосед
  4. Алгоритм случайного леса

Для измерения производительности каждой модели мы взяли параметр точности. Ниже приведены результаты для каждой модели:

Применение модели глубокого обучения

CNN с MaxPooling

Сверточная нейронная сеть — это модель глубокого обучения, в которой в качестве базовой техники используется свертка.

Архитектура CNN

Здесь мы использовали два слоя свертки, за которыми следуют функция активации relu и слой максимального объединения в качестве архитектуры CNN. А потом разровнял второй слой. Дальнейшее добавление двух плотных слоев, одного плотного слоя с 50 функциями (узлами) и второго плотного слоя — это выходной слой с двумя узлами, представляющими метки маски и немаски. Мы применили двоичную кросс-энтропию в качестве функции потерь, поскольку у нас есть только два выхода, и использовали оптимизатор Адама для компиляции нашей модели.

Результаты (набора данных)

Результаты (видео в реальном времени)

Анализ

Мы получили оптимальное значение точности проверки для эпохи 16: 91,04%. Мы использовали два слоя свертки, за которыми следуют relu и max pooling. А затем добавьте плотный слой с 50 узлами и после этого выходного слоя с 2 узлами, которые будут предсказывать маску или отсутствие маски.

Поскольку есть только две целевые переменные для прогнозирования, мы используем бинарную кросс-энтропию в качестве функции потерь. Мы использовали оптимизатор Adam в нашей модели CNN. Мы используем точность в качестве нашей метрики для оценки модели.

Мы запустили 25 эпох для обучения нашей модели, но, тем не менее, видно, что после 5 эпохи модель стала подходящей и после нее дала минимальные отклонения в точности. После этого модель постепенно становится более подогнанной. Потери следуют аналогичным тенденциям в обратном порядке, и, таким образом, после эпохи 5 дисперсия модели начинает увеличиваться.

Заключение

Мы внедрили различные модели машинного обучения и модели глубокого обучения в набор данных, чтобы увидеть, какая модель обеспечивает наибольшую точность при обнаружении лицевых масок в реальном времени. Наша цель — разработать модель, обеспечивающую наибольшую точность, чтобы идентификация маски была простой во время пандемии.

Точность обучения CNN = 99,6%

Точность тестирования CNN = 91,04%

Мы выбрали CNN в качестве нашей окончательной модели, поскольку она способна точно предсказать наличие или отсутствие маски на лице в видео в реальном времени.

Вклад

  1. Meenal Jain:обзор литературы,анализ данных, предварительная обработка, обучение и тестирование базовых моделей, окончательная подготовка модели и обучение, отчет, ppt и работа в блоге.
  2. Saurabh Pandey:Обзор литературыПредварительная обработка данных, обучение базовых моделей, обучение окончательной модели, настройка гиперпараметров Отчет, PPT и работа в блоге.
  3. Утсав Багела: обзор литературы, выбор и подготовка данных, обучение базовых моделей, проектирование архитектуры CNN, подготовка окончательной модели, подготовка отчета и PPT, а также работа в блоге.

Подтверждение

Этот проект был частью курса Введение в машинное обучение в нашем колледже. Особую благодарность хотим выразить нашему преподавателю Dr. Tanmoy Chakraborty (наш преподаватель курса) за то, что он дал нам знания для завершения этого проекта. А также поблагодарить всех наших ассистентов за их полное руководство и поддержку.