Распознавание позы на фотографиях с помощью MediaPipe

В этой статье мы рассмотрим, как можно использовать библиотеку 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!