Распознавание лиц всего за 15 строк кода! (с использованием Python и OpenCV)

задняя часть Python искусственный интеллект
Распознавание лиц всего за 15 строк кода! (с использованием Python и OpenCV)

Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.

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

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

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

Что такое распознавание лиц?

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

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

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

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

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

Распознавание лиц с помощью OpenCV

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

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

Распознавание лиц на изображениях — это простой трехэтапный процесс:

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

pip install opencv-python
import cv2
import matplotlib.pyplot as plt # 用于绘制图像

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

Скачайте XML-файл Haar-cascade Classifier и загрузите его в систему:

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

ты сможешькликните сюдаНайдите XML-файл обученного классификатора для распознавания лиц

# 加载级联
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

Шаг 3. Найдите свое лицо и нарисуйте вокруг него рамку.

Используйте функцию detectMultiScale() в каскадном классификаторе Хаара, чтобы обнаруживать лица и рисовать вокруг них ограничивающие рамки:

# 读取输入图像
img = cv2.imread('test.png')

# 检测人脸
faces = face_cascade.detectMultiScale(image = img, scaleFactor = 1.1, minNeighbors = 5)

# 在人脸周围绘制边界框
for (x, y, w, h) in faces:
      cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

# 显示图像中检测到的人脸数量
print(len(faces),"faces detected!")

# 绘制检测到人脸的图像
finalimg = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
plt.figure(figsize=(12,12))
plt.imshow(finalimg) 
plt.axis("off")
plt.show()

параметры обнаруженияMultiScale():

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

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

在这里插入图片描述

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

GitHub.com/Ван Хао221/…

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

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

Я давно веду блог о технологиях и в основном публикуюсь через Nuggets. Это моя реализация распознавания лиц на Python. Я люблю делиться технологиями и радостью через статьи. Вы можете посетить мой блог:Талант /user/204034…Чтобы получить больше информации. Надеюсь, вам это понравится! 😊

💌 Все желающие могут оставлять комментарии и предложения в комментариях! 💌

Официальный представитель Наггетс будет вПроект «Звезда раскопок»После мероприятия в комментариях будет разыграно 100 штук Наггетсов, подробности розыгрыша читайте в статье о мероприятии.