Разделы сайта
Интересно
О том, о сём
Хвалите чаще себя

Хвалите чаще себя

Как правило, мы не забываем сказать окружающим слова благодарности за добрые дела и услуги, которые они делают для нас. А часто ли вы хвалите и благодарите самого себя? Обычно это происходит очень редко, а бывает, что мы только привыкаем ругать себя и винить во всём.

Лечебные свойства кубика льда

Лечебные свойства кубика льда

У льда есть множество полезных функций. Например, при помощи кубика льда может остановить кровотечение, снять воспаление. Также всем известно, что самое популярное применение льда – в косметологии. А массаж льдом способен избавить Вас от отеков. Как же еще можно применять «чудо» - лед? Об этом и поговорим в нашей статье.

Валенки и угги - ухаживаем правильно

Валенки и угги - ухаживаем правильно

Такая обувь, как валенки и угги, требует специального ухода. Заботясь о них правильно, Вы сможете продлить «жизнь» любимой обуви.

Поведение в обществе

Поведение в обществе

Прежде всего, необходимо воспитать в себе внимательное отношение к людям. Без этого человек на каждом шагу ставит в неловкое положение и себя, и окружающих.

Как вести себя за столом

Как вести себя за столом

Культура питания имеет очень важное значение для здоровья человека. Есть, когда придётся и что попало – это своеобразная распущенность и непростительная небрежность.

Qiansoto маска для лица способ применения


Омолаживающая маска-плёнка для лица Qiansoto "Шоколад и клубника"

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

Применение: Очистите лицо и шею. Ровным слоем нанесите маску (кроме глаз и губ). Оставьте ее до полного высыхания. Примерно через 15 минут маску нужно аккуратно снять и умыть лицо теплой водой. Косметическая процедура завершается нанесением крема.

К сожалению, отзывов о данной продукции пока нет и Ваш отзыв может стать первым!

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

Написать отзыв

chandrikadeb7 / Face-Mask-Detection: Система обнаружения лицевых масок на основе компьютерного зрения и глубокого обучения с использованием OpenCV и Tensorflow / Keras

перейти к содержанию Зарегистрироваться
  • Почему GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • команда
  • предприятие
  • Проводить исследования
    • Изучить GitHub →
    Учитесь и вносите свой вклад
    • Темы
. ,

COVID-19: Обнаружение маски лица с использованием TensorFlow и OpenCV | by Gurucharan M K

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

В эти суровые COVID-19 раз, разве не было бы приятно сделать что-то, связанное с этим? Я решил построить очень простую и базовую модель сверточной нейронной сети (CNN), используя TensorFlow с библиотекой Keras и OpenCV , чтобы определить, носите ли вы маску для защиты себя.Интересный! Не правда ли?

Фотография Фотоагентства Макао на Unsplash

Для построения этой модели я буду использовать набор данных маски лица, предоставленный Праджной Бхандари. Он состоит из примерно 1,376 изображений, из которых 690 изображений содержат людей с масками для лица и 686 изображений, содержащих людей без масок.

Я собираюсь использовать эти изображения для построения модели CNN с использованием TensorFlow, чтобы определить, надеты ли вы маску, с помощью веб-камеры вашего ПК .Кроме того, вы также можете использовать камеру телефона , чтобы сделать то же самое!

Шаг 1: Визуализация данных

На первом шаге давайте визуализируем общее количество изображений в нашем наборе данных в обеих категориях. Мы видим, что имеется 690 изображений в классе « да » и 686 изображений в классе « нет ».

 Количество изображений с лицевой маской, помеченной «да»: 690 
Количество изображений с лицевой маской, помеченной «нет»: 686

Шаг 2: Увеличение данных

На следующем шаге мы увеличиваем до нашего набор данных, чтобы включить большее количество изображений для нашего обучения.На этом этапе увеличения данных мы поворачиваем и переворачиваем каждого изображения в нашем наборе данных. Мы видим, что после увеличения данных у нас есть в общей сложности 2751 изображений с 1380 изображений в классе « yes » и « 1371 » изображений в классе « ». № 'кл.

 Количество примеров: 2751 
Процент положительных примеров: 50,163576881134134%, количество примеров pos: 1380
Процент отрицательных примеров: 49.836423118865866%, количество отрицательных примеров: 1371

Шаг 3: Разделение данных

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

В этом случае мы берем split_size = 0,8 , что означает, что 80% всех изображений перейдет в обучающий набор , а оставшиеся 20% изображений пойдут к испытательному набору .

 Количество изображений с лицевой маской в ​​обучающем наборе с меткой «да»: 1104 
Количество изображений с лицевой маской в ​​тестовой выборке с меткой «да»: 276
Количество изображений без лицевой маски в тренировочной выборке с меткой «нет» ': 1096
Количество изображений без маски в тестовом наборе, помеченном как «нет»: 275

После разделения мы видим, что желаемый процент изображений был распределен как по обучающему набору, так и по тесту, как упомянуто выше.

Шаг 4: Построение модели

На следующем этапе мы создаем нашу модель последовательной CNN с различными уровнями, такими как Conv2D, MaxPooling2D, Flatten, Dropout и Dense .В последнем плотном слое мы используем функцию « softmax » для вывода вектора, который дает вероятность для каждого из двух классов.

Последовательная модель для обнаружения маски лица

Здесь мы используем оптимизатор ‘ adam ’ и ‘ binary_crossentropy ’ как нашу функцию потерь, поскольку существует только два класса. Кроме того, вы даже можете использовать MobileNetV2 для большей точности.

CNN Model for Face Mask (Source - Self)

Шаг 5: Предварительное обучение модели CNN

После построения нашей модели, давайте создадим ' train_generator ' и ' validation_generator ', чтобы подогнать их к нашей модели на следующем шаге.Мы видим, что всего 2200 изображений в обучающем наборе и 551 изображений в тестовом наборе .

 Найдено 2200 изображений, относящихся к 2 классам. 
Найдено 551 изображение, относящееся к 2 классам.

Шаг 6: Обучение модели CNN

Этот шаг является основным этапом, на котором мы подгоняем наши изображения в обучающий набор и тестовый набор к нашей последовательной модели, которую мы построили с использованием библиотеки keras .Я обучил модель для 30 эпох (итераций). Однако мы можем тренироваться для большего количества эпох, чтобы достичь более высокой точности, чтобы не произошло переоснащения .

 history = model.fit_generator (train_generator, 
эпох = 30,
validation_data = validation_generator,
callbacks = [контрольная точка]) >> Эпоха 30/30
220/220 [============ ==================] - 231 с 1 с / шаг - потеря: 0,0368 - точность: 0,9886 - val_loss: 0.1072 - val_acc: 0.9619

Мы видим, что после 30-й эпохи наша модель имеет точность 98,86% с обучающим набором и точность 96,19% с тестовым набором. Это означает, что он хорошо натренирован без переобучения.

Шаг 7. Маркировка информации

После построения модели мы помечаем две вероятности для наших результатов. [‘0’ as ‘without_mask’ and ‘1’ as ‘with_mask’] .Я также устанавливаю цвет граничного прямоугольника, используя значения RGB. ['RED' для 'without_mask' and 'GREEN' for 'with_mask] 900_mask : 'with_mask'}
color_dict = {0: (0,0,255), 1: (0,255,0)}

Шаг 8: Импорт программы обнаружения лиц

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

 face_clsfr = cv2.CascadeClassifier ('haarcascade_frontalface_default.xml') 

Этот каскадный классификатор разработан OpenCV для обнаружения фронтального лица путем обучения тысяч изображений. Для этого необходимо загрузить файл .xml и использовать его для определения лица. Я загрузил файл в свой репозиторий GitHub.

Шаг 9: Обнаружение лиц с масками и без них

На последнем этапе мы используем библиотеку OpenCV для запуска бесконечного цикла для использования нашей веб-камеры, в которой мы обнаруживаем лица с помощью Cascade Classifier . Код webcam = cv2.VideoCapture (0) обозначает использование веб-камеры.

Модель предсказывает возможность каждого из двух классов ([без_маски, с_маской]) . В зависимости от того, какая вероятность выше, метка будет выбрана и отображена вокруг наших лиц.

Кроме того, вы можете загрузить приложение DroidCam как для мобильных устройств, так и для ПК, чтобы использовать камеру мобильного устройства и изменить значение с 0 на 1 в webcam = cv2.VideoCapture (1).

Демо

Давайте посмотрим демо, где я опробую его на себе! Демонстрационное видео

Из приведенного выше демонстрационного видео мы видим, что модель правильно смогла определить, был ли я в маске или нет, и отображает то же самое на этикетке.

Я делюсь ссылкой на мой репозиторий GitHub , где вы можете найти подробный программный код .ipynb, чтобы вы могли его опробовать.

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

Я очень надеюсь, что эти тяжелые времена скоро закончатся.Давайте все будем здоровы и будем в безопасности. А пока желаю счастливого машинного обучения!

.

Смотрите также