Arkadiy Strelnikov 5459e0f0ce First commit
2021-11-26 01:47:03 +07:00
2021-11-26 01:47:03 +07:00
2021-11-26 01:47:03 +07:00
2021-11-26 01:47:03 +07:00
2021-11-26 01:47:03 +07:00
2021-11-26 01:47:03 +07:00
2021-11-26 01:47:03 +07:00

Human Pose Estimation with mediapipe

Запуск

Для вебкамеры, где 0 - индекс самой вебкамеры, если отличается, то следует заменить на нужный.

python3 hpe_videocapture.py 0 scale_pose

Для чтения из файла

python3 hpe_videocapture.py path_to_video scale_pose

Параметр scale_pose - ширина плеч. По умолчанию равен 0,42.

Есть экспериментальная версия для взаимодействия с ffmpeg и osc:

python3 hpe_ffmpeg.py 

Внутри кода записаны параметры для osc соединения:

  • osc_address = "10.199.0.14"
  • osc_port = 5005

Предполагается вывести выше указанные параметры либо в аргументы, либо в конфиг-файл.

Зависимости

Библиотеки python:

  • mediapipe
  • numpy
  • matplotlib (можно сделать опциональной)
  • opencv-python
  • json
  • python-osc (в файле hpe_ffmpeg.py)

Библиотека mediapipe требует cudatoolkit и cudnn для работы с gpu.

Интерфейс для hpe_videocapture

Для разовой отрисовки точек в 3D с помощью matplotlib необходимо нажать клавишу 'm'.

Чтобы записать сконвертированные данные в модель UE4 в файл 'hierarchy_data.json', нужно нажать клавишу 'j'.

Для закрытия программы нужно нажать клавишу 'esc'.

Требования к постановке эксперимента

  • Человек в кадре должен быть один.
  • Камера примерно должна быть под углом 90 градусов.
  • Человек должен входить в кадр целиком.
  • Желательно, чтобы у одежда на человеке были хорошо видны контуры.

Сборка на Windows

В разработке

Config file

В разработке.

Предположительные переменные.

Параметры класса hpe_mp_class из hpe_mp_class.py:

  • hands_static_image_mode = False
  • hands_max_num_hands = 2
  • hands_min_detection_confidence = 0.7
  • hands_min_tracking_confidence = 0.5
  • pose_static_image_mode = False
  • pose_upper_body_only = False
  • pose_smooth_landmarks = True
  • pose_min_detection_confidence = 0.7
  • pose_min_tracking_confidence = 0.5
  • hol_static_image_mode = False
  • hol_upper_body_only = False
  • hol_smooth_landmarks = True
  • hol_min_detection_confidence = 0.7
  • hol_min_tracking_confidence = 0.5

Физические параметры человека (ширина плеч в метрах):

  • scale_pose = 0,42
Description
Скрипт на python для работы с библиотекой mediapipe и конвертации в модель UE4
Readme 173 KiB
Languages
Python 100%