# Human Pose Estimation with mediapipe ## Запуск Для тестового запуска через вебкамеру с индексом 0. ```console python3 hpe_json.py --address_input 0 --show_image True ``` Скрипт принимает следующие аргументы: * '--address_input' (type=str, default="0"): путь к файлу или индекс вебкамеры * '--scale_pose' (type=float, default=0.42): ширина плеч в метрической системе * '--crop_image' (type=float, default=1.0): коэффициент, если нужно изменить размер изображения * '--osc_address' (type=str, default="0.0.0.0"): ip-адрес для osc клиента * '--osc_port' (type=int, default="5005"): порт для osc клиента * '--osc_message_address' (type=str, default="/pose/0"): адрес для вывода сообщения через osc клиент * '--output_method' (type=str, default='file', choices=['file', 'osc']): тип вывода через файл или osc клиент * '--mirror_image' (type=bool, default=True): горизнтальное отображение выходного изображения * '--show_image' (type=bool, default=False): вывод выходного изображения через opencv Для теста с matplotlib нужно запустить скрипт (пример с вебкамерой с индексом 0): ```console python3 hpe_videocapture.py 0 ``` ## Зависимости Библиотеки python: * mediapipe * numpy * matplotlib (можно сделать опциональной) * opencv-python * json * python-osc Библиотека 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