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

Обнаружение лица всего в 15 строках кода! (Ft. Python и OpenCV)

Независимо от того, начали ли вы изучать OpenCV или работали с ним в течение довольно долгого времени, … Tagged Python, OpenCV, обнаружение лица, открытый исходный код.

Если вы недавно начали изучать OpenCV или работал с этим довольно давно, в любом сценарии, вы, должно быть, столкнулись с термином Обнаружение лица Анкет Поскольку машины продолжают становиться все более и более умными, их способность имитировать поведение человека также, по -видимому, увеличивается, а обнаружение лица является одним из этих достижений в ИИ.

Итак, сегодня мы рассмотрим, что такое обнаружение лица, почему оно полезно и как вы можете практически реализовать обнаружение лица в своей системе всего за 15 строк кода!

Давайте начнем с понимания обнаружения лица.

Что такое обнаружение лица? (Объясните, как мне пять)

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

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

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

Так Как работает обнаружение лица?

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

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

Обнаружение лица с использованием openCV

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

Библиотека OpenCV имеет больше, чем 18 миллионов загрузок и активное сообщество пользователей из 47000 участников. Он имеет 2500 оптимизированных алгоритмов, в том числе комплексный набор классических и современных алгоритмов компьютерного зрения и машинного обучения, что делает его одной из самых важных библиотек в области машинного обучения.

Обнаружение лица на изображении-это простой 3-ступенчатый процесс:

Шаг 1: Установите и импортируйте модуль Open-CV:

pip install opencv-python
import cv2
import matplotlib.pyplot as plt # for plotting the image

Шаг 2: Загрузите XML-файл HAAR-CASCADE и загрузите его в систему:

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

Вы можете найти обученный файл классификатора XML для обнаружения лица здесь

# Load the cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

Шаг 3: Используйте Detectmultiscale () функционируйте в классификаторе Haar-Cascade, чтобы обнаружить лица и нарисовать ограничительные ящики вокруг них:

# Read the input image
img = cv2.imread('test.png')

# Detect faces
faces = face_cascade.detectMultiScale(image = img, scaleFactor = 1.1, minNeighbors = 5)

# Draw bounding box around the faces
for (x, y, w, h) in faces:
      cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

# Showing number of faces detected in the image
print(len(faces),"faces detected!")

# Plotting the image with face detected
finalimg = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
plt.figure(figsize=(12,12))
plt.imshow(finalimg) 
plt.axis("off")
plt.show()

Detectmultiscale () Параметры:

  • Изображение: Матрица типа CV_8U, содержащего изображение, где обнаруживаются объекты.
  • ScaleFactor: Параметр указывает, сколько размер изображения уменьшается в каждой шкале изображения.
  • Minneighbors: Параметр, указавший, сколько соседей должен его сохранить.

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

Вуаля! Точно так же вы можете реализовать одно из самых уникальных приложений компьютерного зрения.

Вы можете найти подробный шаблон кода для всей реализации обнаружения лица Здесь Анкет

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

Прежде чем ты уйдешь….

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

Надеюсь, вам понравился мой блог. Спасибо за чтение!

Не стесняйтесь комментировать, поделиться и обращаться со мной в Dev.to В Twitter , или LinkedIn Анкет

Оригинал: “https://dev.to/saharshlaud/face-detection-in-just-15-lines-of-code-ft-python-and-opencv-37ci”