Рубрики
Без рубрики

Как обнаружить ваше лицо через изображение или видеокамеру в Python

Ускоренный курс в компьютерном видении. Помечено с Python, Opencv, обнаружением лица, компьютерное зрение.

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

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

  • Обнаружение лица: Это предварительная обработка для распознавания лица. Основная функция этого шага – определить, появляются ли человеческие лица в данном изображении и где расположены эти лица. Помимо служения предварительной обработки для распознавания лица, обнаружение лица может быть использовано для области обнаружения и классификации изображений.

  • Распознавание лица: После формализации представления каждого лица второй шаг состоит в том, чтобы распознать тождество этих граней. Для достижения автоматического распознавания для создания базы данных лица требуется. Для каждого объекта/человека берутся несколько изображений, и их функции извлекаются и хранятся в базе данных. Затем, когда приходит изображение ввода лица, мы выполняем обнаружение лица и извлечение функции, и сравните его функцию каждому классу для лица, хранящегося в базе данных.

В этом обсуждении мы собираемся говорить о обнаружении лица и применять это обнаружение на любом изображении или с помощью камеры

Сначала определите ваше лицо через изображение

Первое, что мы должны импортировать наши библиотеки, numpy и cv2

import cv2
import numpy as np

Затем мы должны загрузить файлы XML, которые имеют некоторые функции для его использования. Мы можем получить его от открытого файла CV, источников, данных и Haarcascades, которые имеют все функции C: \ opencv \ Sources \ data \ haarcascades

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

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

Скачать наше изображение. Затем преобразуйте его в серое изображение

img = cv2.imread('mm.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

Тогда мы должны обнаружить все лицо на нашем изображении, который соответствует всем функциям в нашем файле XML. Таким образом, мы будем использовать функцию DetectmultiScale, которая принимает три параметра (наше изображение, масштабный фактор, миннегборы)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

После обнаружения любого лица на нашем изображении он вернет верхний левый (X, Y), высоту и ширину. Тогда мы должны рисовать прямоугольник для каждого лица. cv2.rectangleangle принимает наше изображение, верхний левый, верхний правый, цвет и толщина

for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

Мы поставили наш образ в областях интереса. Другими словами, мы определяем лицо.

    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]

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

    eyes = eye_cascade.detectMultiScale(roi_gray)

    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)


Наконец мы покажем наше изображение

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()


Наконец, посмотрите это видео.

Если вы хотите обнаружить ваше лицо через камеру. Это та же идея здесь

Вот репо, вы можете найти исходный код в Python.

Оригинал: “https://dev.to/mkhy19/detect-your-face-through-image-or-video-camera-in-python-55em”