В этой статье мы рассмотрим, как можно использовать библиотеку MediaPipe для распознавания позы человека на фотографиях. MediaPipe – это мощный инструмент, разработанный Google, который позволяет легко реализовать различные задачи компьютерного зрения, включая отслеживание позы, распознавание лиц и жестов.
Код для распознавания позы
Ниже представлен Python-код, который демонстрирует процесс распознавания позы с помощью MediaPipe. Этот код поможет вам обнаружить и визуализировать ключевые точки позы на изображении.
import cv2
import mediapipe as mp
# Инициализация модели MediaPipe Pose
mp_pose = mp.solutions.pose
pose = mp_pose.Pose()
# Загрузка изображения
img = cv2.imread('путь_к_вашему_изображению.jpg')
# Конвертация изображения из BGR в RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# Обнаружение позы
results = pose.process(img)
# Проверка, была ли обнаружена поза
if results.pose_landmarks:
for landmark in results.pose_landmarks.landmark:
# Рисование точек на изображении
h, w, c = img.shape
cv2.circle(img, (int(landmark.x * w), int(landmark.y * h)), 5, (255, 0, 0), -1)
# Отображение результатов
cv2.imshow('Точки позы', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("Поза не обнаружена.")
В начале кода мы импортируем необходимые библиотеки: cv2
для обработки изображений и mediapipe
для использования модели позы. Затем мы инициализируем модель позы MediaPipe с помощью mp.solutions.pose
.
После загрузки изображения с помощью функции cv2.imread
мы конвертируем его в формат RGB, поскольку модель MediaPipe ожидает входные данные в этом формате.
Функция pose.process(img)
используется для обнаружения позы на изображении. Результатом является объект results
, который содержит информацию о позе, включая координаты ключевых точек.
Мы проверяем, была ли обнаружена поза, используя условие if results.pose_landmarks:
. Если да, то мы проходимся по всем точкам (landmarks
) и рисуем их на исходном изображении с помощью функции cv2.circle
. Размер круга и его цвет могут быть изменены в соответствии с вашими потребностями.
Наконец, мы отображаем обработанное изображение с точками позы с помощью функции cv2.imshow
.
Установка MediaPipe
Перед использованием кода необходимо установить библиотеку MediaPipe. Вы можете сделать это с помощью менеджера пакетов pip:
pip install mediapipe
После установки вы сможете импортировать и использовать MediaPipe в ваших Python-скриптах.
MediaPipe предоставляет простой и эффективный способ распознавания позы на фотографиях. Код, представленный в этой статье, является базовым примером использования библиотеки для этой задачи. Вы можете расширить его, добавив обработку нескольких поз, улучшенную визуализацию или интеграцию с другими библиотеками компьютерного зрения. Экспериментируйте и создавайте интересные проекты с помощью MediaPipe!