Простой код из простых шифров

Вы хотите узнать о реализации распознавания лиц в реальном времени?

Здесь eazy ciphers предлагает инновационный и простой способ запуска простого кода распознавания лиц в реальном времени, с помощью которого вы можете предсказать лицо человека.

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

Если вы хотите получить практический опыт работы с этой моделью, сделайте шаг вперед в ее реализации.

В повседневной жизни распознавание лиц стало частью повседневной жизни. Итак, перед тем, как перейти к теме, вот краткий пример распознавания лиц в реальном времени.

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

Этот процесс подхода осуществляется с помощью многих итеративных способов прогнозирования с использованием входного изображения. Точно так же распознавание лиц в реальном времени работает с реализацией python фреймворка OpenCV.

Все вместе они собраны в один комбо-уровень для реализации модели для целей реального времени.

Распознавание лица:

«Распознавание лиц» само название дает вам исчерпывающее определение того, что оно означает. Хорошо! Если говорить о нем, то распознавание лиц - это технический процесс выполнения при идентификации или обнаружении лица человека с помощью цифрового носителя в качестве входных данных.

Всегда точность распознавания лиц обеспечивает высокое качество вывода, а не игнорирует факторы проблемы, которые на него влияют. Здесь, чтобы убедиться, что наша модель запускается, вам необходимо убедиться, что библиотека установлена ​​в вашей локальной системе.

pip install face_recognition

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

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

OpenCV:

OpenCV - известная библиотека на Python для реализации приложений реального времени. В этом компьютерном мире он действует как корень дерева.

OpenCV в face_recognition делает кластер и извлечение функций из изображения лица, которое мы обучаем в качестве входных данных. Он нацеливается на ориентир на изображении, итеративно обучает их в рамках метода глубокого обучения компьютерного зрения.

Установка OpenCV в вашу локальную систему

pip install opencv-python

Обнаружение OpenCV работает как представление кластеризации, обнаружения сходства и классификации изображений с использованием алгоритмов глубокого обучения.

Почему мы используем OpenCV в качестве ключевого инструмента Face_Recognition в реальном времени?

Люди могут легко распознавать лица, но как научить машину распознавать лица? OpenCV пришел, чтобы заполнить пробел между людьми и компьютерами, и стал образцом для компьютера.

Взяв пример в реальном времени, когда человек встречает новых людей, он запоминает лица этих людей для идентификации в будущих случаях. Мозг человека итеративно тренирует лицо человека в бэкэнде. Поэтому, когда он видит лицо этого человека, он говорит: «Привет, Джон! Как дела?".

Эта идентификация и распознавание лица итеративно дает возможность компьютеру думать так же, как человек.

Важным инструментом компьютерного зрения является OpenCV. Если мы используем OpenCV, он выполняет следующие шаги:

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

Face_Recognition с OpenCV python:

Код, отображаемый здесь, также можно загрузить из нашего репозитория GitHub для вашего удобства.

Импортируем все пакеты:

import face_recognition
import cv2
import numpy as np

Загрузите и тренируйте с изображением:

# Load a sample picture and learn how to recognize it.
Jithendra_image = face_recognition.load_image_file("jithendra.jpg")
Jithendra_face_encoding = face_recognition.face_encodings(Jithendra_image)[0]
# Load a sample picture and learn how to recognize it.
Modi_image = face_recognition.load_image_file("Modi.jpg")
Modi_face_encoding = face_recognition.face_encodings(Modi_image)[0]

Кодировки лиц:

# Create arrays of known face encodings and their names
known_face_encodings = [
    Jithendra_face_encoding,
    Modi_face_encoding,  
]
known_face_names = [
    "Jithendra",
    "Modi"
]

Основной метод:

Когда идентификация лица в реальном времени верна, он обнаруживает лицо и выполняет следующие шаги в коде:

  • Захватите один кадр в видео в реальном времени.
  • Преобразуйте изображение из цвета BGR (который использует OpenCV) в цвет RGB (который использует face_recognition)
  • Найдите все лица и их кодировки в кадре видео в реальном времени.
  • Прокрутите каждое лицо в этом кадре видео и проверьте, совпадает ли лицо с существующим или нет.
  • Если лицо не распознается среди существующих лиц, выводится как неизвестное или неизвестное.
  • В противном случае нарисуйте рамку вокруг идентифицированного лица после распознавания.
  • Назовите идентифицированное лицо его именем.
  • Показать получившееся изображение после распознавания.
while True:
    ret, frame = video_capture.read()
    rgb_frame = frame[:, :, ::-1]
    face_locations = face_recognition.face_locations(rgb_frame)
    face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
    for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
        # See if the face is a match for the known face(s)
        matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
        name = "Unknown"
        # If a match was found in known_face_encodings, just use the first one.
        face_distances = face_recognition.face_distance(known_face_encodings, face_encoding)
        best_match_index = np.argmin(face_distances)
        if matches[best_match_index]:
            name = known_face_names[best_match_index]
        # Draw a box around the face
        cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
        # Draw a label with a name below the face
        cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
        font = cv2.FONT_HERSHEY_DUPLEX
        cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)
        
    # Display the resulting image
    cv2.imshow('Video', frame)

Покидать:

# Hit 'q' on the keyboard to quit!
if cv2.waitKey(1) & 0xFF == ord('q'):
   break

Отпустите ручку веб-камеры:

# Release handle to the webcam
video_capture.release()
cv2.destroyAllWindows()

Входы и выходы:

Примеры входных данных, которые были предоставлены модели в процессе обучения….

Вход:

Выход:

Наша учетная запись GitHub для справки при обработке кода: https://github.com/eazyciphers/deep-machine-learning-tutors

Использованная литература:

  1. Https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/
  2. Https://www.superdatascience.com/blogs/opencv-face-recognition
  3. Https://en.wikipedia.org/wiki/Facial_recognition_system