Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.
Начали ли вы недавно изучать 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.
Примечание. Это руководство применимо только к распознаванию лиц в файлах изображений, а не к прямой трансляции с камеры или видео.
Это прекрасно? Вы только что узнали, как реализовать одно из самых интересных приложений искусственного интеллекта и машинного обучения. Надеюсь, вам понравится мой блог. Спасибо за чтение!
Я давно веду блог о технологиях и в основном публикуюсь через Nuggets. Это моя реализация распознавания лиц на Python. Я люблю делиться технологиями и радостью через статьи. Вы можете посетить мой блог:Талант /user/204034…Чтобы получить больше информации. Надеюсь, вам это понравится! 😊
💌 Все желающие могут оставлять комментарии и предложения в комментариях! 💌
Официальный представитель Наггетс будет вПроект «Звезда раскопок»После мероприятия в комментариях будет разыграно 100 штук Наггетсов, подробности розыгрыша читайте в статье о мероприятии.