Development of Game Module Using Technology of Human Pose Estimation for the Neurological Rehabilitation System
- Authors: Pavlikov A.E.1
-
Affiliations:
- Moscow Technical University of Communications and Informatics
- Issue: Vol 12, No 1 (2025)
- Pages: 116-128
- Section: INFORMATICS AND INFORMATION PROCESSING
- URL: https://journals.eco-vector.com/2313-223X/article/view/679152
- DOI: https://doi.org/10.33693/2313-223X-2025-12-1-116-128
- EDN: https://elibrary.ru/MQMTIG
- ID: 679152
Cite item
Full Text
Abstract
The development of deep learning algorithms makes it possible to extend the scope of their application to various spheres of human life. Today, deep neural networks can solve problems in natural language processing, data generation, computer vision and so on. In this paper, a game module for a neurological rehabilitation system using Human pose estimation algorithm on video is designed and implemented. Different HPE algorithms including REMOTE, MAPN and MediaPipe Pose were considered in the research process and their comparative analysis on PCK, FPS and MAP metrics was done. As a result, MediaPipe Pose was selected to provide the best balance between accuracy and performance. The developed game module allows patients to perform movements in an interactive environment, and doctors to track rehabilitation progress based on movement parameters such as number of executions, time between executions, number of execution errors, and types of errors. The module allows doctors to select a difficulty level for the current game session to work with patients at different stages of rehabilitation.
Full Text
ВВЕДЕНИЕ
С конца ХХ в. в мире наблюдается уменьшение среднего возраста людей, столкнувшихся с заболеваниями, поражающими нервную систему человека, и рост DALY (годы жизни, скорректированные по нетрудоспособности), связанных с такими заболеваниями. В «Межсекторальном глобальном плане действий по борьбе с эпилепсией и другими неврологическими расстройствами» всемирной организации здравоохранения такие заболевания признаются лидирующей причиной инвалидности в мире. Согласно исследованию, опубликованному в журнале The Lancet Neurology 14 марта 2024 г. [2], в 2021 г. 43% мирового населения страдало от неврологических заболеваний или их последствий. На все неврологические заболевания пришлось 443 миллиона DALY, тогда как в 1990 г. это число составляло 375 миллионов лет. Такой рост связан со старением мирового населения. Наиболее высокими числами DALY среди патологий нервной системы обладали инсульт, неонатальная энцефалопатия и болезнь Альцгеймера. Люди, перенесшие поражение нервной системы, сталкиваются с нарушениями в работе организма, такими как ухудшение речи и чтения, слабость мышц, невозможность самообслуживания. Такой комплекс дефектов требует от пациента прохождения длительной реабилитации под наблюдением специалиста.
Необходимость применения индивидуального подхода при составлении программы реабилитации с учетом распространенности заболеваний нервной системы делает актуальным поиск и создание новых способов взаимодействия медперсонала и пациентов в рамках работ в восстановительный период. Одна из составляющих в процессе реабилитации – тренировки, восстанавливающие работоспособность мышц. Применение видеосвязи в этом процессе может позволить проходить тренировку из дома, при этом все еще требуя индивидуального внимания врача или тренера. Снизить нагрузку на медперсонал поможет автоматизация отслеживания прохождения таких тренировок. Для этого можно использовать специальное приложение, используя которое пациенты смогут регулярно проходить тренировки, получать рекомендации и консультации, в то время как врачи смогут вести нескольких пациентов. Функционал такого приложения может быть расширен согласно пожеланиям медперсонала или потребностям пациентов.
Важным компонентом приложения для дистанционной реабилитации является технология определения положения тела человека. При этом, исходя из предназначения приложения, использование этой технологии не должно вызывать трудностей у пользователя. То есть, требуется избежать покупки дополнительного оборудования, установки дополнительного оборудования и длительного обучения правильному использованию технологии.
ПОДХОДЫ К ОБНАРУЖЕНИЮ ПОЛОЖЕНИЯ ТЕЛА ЧЕЛОВЕКА
Для получения данных о положении тела человека и дальнейшей их обработки применяются различные методы, которые можно классифицировать по набору применяемых периферийных устройств. Далее будут рассмотрены методы определения положения тела человека с применением специальных контроллеров, очков, маяков и с применением видеокамеры. Оба подхода обладают определенными недостатками, ограничивающих их применение.
Специальные контроллеры и очки для отслеживания движений и положения тела человека применяются в приложениях AR/VR (дополненная реальность / виртуальная реальность). Использование этих устройств позволяет переносить движения рук в виртуальную среду, с помощью чего взаимодействовать с ней. Одним из способов трекинга контроллеров шлемом является внутренний трекинг (Inside-out tracking), который заключается в использовании камер, отслеживающих положение контроллеров в пространстве, на шлеме виртуальной реальности. Альтернатива внутреннего трекинга – использование маяков (Lighthouse). Такой способ требует наличия базовых станций. Базовые станции располагаются в пространстве так, чтобы иметь возможность передавать синхронизирующие сигналы на шлем и контроллеры [3]. Данные о положении устройств в пространстве формируются на основе разницы во времени получения ими сигналов. Применение такой периферии для отслеживания движений позволяет расходовать меньшее количество ресурсов, чем использование алгоритмов обработки видео и изображения. Это позволяет реализовывать приложения с функционалом, зависящим от определенных элементов аппаратного обеспечения, например, обработка графики и полигональных моделей на графическом процессоре. При использование аппаратного обеспечения AR/VR ограничивается узким кругом задач, что делает эти устройства менее распространенными, чем персональные компьютеры или смартфоны. С этим, также, связана повышенная стоимость комплектов периферийных устройств AR/VR. Еще одним важным недостатком этого метода определения положения тела человека является появление негативных воздействий на организм у неподготовленных пользователей [1]. Так при использовании очков виртуальной или дополненной реальности человек может сталкиваться с дезориентацией, тошнотой и головокружением. Несмотря на это, область AR/VR активно развивается, и эта технология находит применение в различных областях таких, как криминалистика [8], медицина [9], образование [13].
Отслеживание положение тела человека без специальной периферии более требовательно к ресурсам устройства, на котором работает приложение. Это связано с использованием нейросетевых алгоритмов определения положения тела человека (Human pose estimation, HPE) на видео или изображении. Такие алгоритмы получили свое развитие с появлением глубоких нейронных сетей и их применением в сфере компьютерного зрения. Например, такие модели, как YOLOv8, DensePose, DeepPose, MediaPipe Pose могут быть внедрены в настольные или веб приложения для решения задачи определения позы человека. Так приложения, использующие модули на основе нейронных сетей требуют от пользователя наличие устройства для их запуска и камеры для передачи изображения, в отличие от способов, опирающихся на датчики. Такой подход увеличивает число людей, имеющих возможность использовать приложение. При этом с помощью моделей HPE можно отслеживать движения человека по видео за счет выделения основных точек на теле как в двумерном пространстве, так и в трехмерном. За счет этого алгоритмы оценки позы человека находят свое применения в различных областях таких, как автономное управление транспортом, видеонаблюдение, здравоохранение [7; 11; 14].
Исходя из задачи, решаемой разрабатываемым модулем, для определения положения тела человека следует использовать нейронную сеть. Это позволит увеличить количество потенциальных пользователей за счет более простого использования технологии в рамках модуля.
ОБЗОР ТЕХНОЛОГИИ HUMAN POSE ESTIMATION
Human pose estimation – это область компьютерного зрения, целью которой является определение положения ключевых точек тела человека таких, как суставы и части лица, на изображении или видео. Алгоритмы HPE могут отмечать координаты отслеживаемых точек как на плоскости, так и в трехмерном пространстве.
Алгоритмы human pose estimation сталкиваются с трудностями при обработке изображений, на которых видно несколько людей. Основной проблемой при таких условиях становится необходимость разделять обнаруженные точки по принадлежности к телу определенного человека, что может быть затруднено, например, если силуэты людей на изображении пересечены. По способу решения данной проблемы алгоритмы делятся на нисходящие (Top-Down) и восходящие (Bottom-Up) [12]. Оба подхода применяются и в 2D-, и в 3D-оценке позы человека. В основе обоих подходов находятся сверточные нейронные сети (Convolutional neural network, CNN).
CNN состоит из сверточных слоев (convolution), объединяющих слоев (pooling) и полносвязного слоя (fully connected) [6; 10]. Сверточные слои находят на изображении различные признаки, являющиеся уникальными для объекта обнаружения, такие как узоры, формы, углы. Для этого используется ядро (kernel), представляющее собой матрицу размера меньшего, чем размер входного изображения. Значения в ядре формируются в ходе обучения сверточной сети. Ядро перемещается по входной матрице согласно параметру сдвига (stride) и при каждом перемещении элементы этой матрицы перемножаются с соответствующими элементами ядра. Результаты таких умножений суммируются, и сумма становится одним из элементов результирующей матрицы. Слой объединения уменьшает размер матриц, впоследствии обрабатываемых сверточными слоями, без потери важных признаков. Это позволяет уменьшить количество вычислений и выделить доминирующие признаки.
В нисходящих алгоритмах сначала происходит детекция всех людей на изображении, после чего модель оценки позы человека отдельно обрабатывает части изображения. Ключевой частью такого подхода является корректная детекция объектов. Из этого следует необходимость в использовании точных алгоритмов обнаружения для последующего корректного определения положения тела человека.
Среди недостатков нисходящих алгоритмов выделяются:
- увеличение сложности вычислений с увеличением числа людей на изображении;
- зависимость от корректного обнаружения человека на изображении;
- сложность оценки поз на изображениях с пересекающимися силуэтами.
Суть восходящих алгоритмов заключается в том, что происходит детекция всех ключевых точек на всем изображении, а уже после эти точки объединяются в отдельные группы по принадлежности к конкретному человеку основываясь на различных признаках. Результативность восходящих алгоритмов зависит от выбора таких признаков, поэтому необходимо находить и использовать те признаки или их совокупности, что позволяют безошибочно группировать ключевые точки. Основным недостатком восходящих алгоритмов является меньшая точность определения сложных поз по сравнению с нисходящими. Это связано с обработкой всего изображения, а не его части, содержащей человека. Из преимуществ восходящих алгоритмов перед нисходящими выделяется меньшая зависимость времени работы от числа людей на изображении. Сравнение двух подходов приведено в табл. 1.
Таблица 1. Сравнение подходов к определению положения тела человека
Table 1. Comparison of approaches to determining the position of the human body
Восходящий [Bottom-Up] | Нисходящий [Top-Down] | |
Определение сложных поз [Estimating difficult poses] | Затруднено на изображениях с несколькими людьми [Problematic for images of several people] | Зависит от алгоритма детекции человека [Depends on human body detection algorithm] |
Определение принадлежности ключевых точек [Keypoints attachment] | Затруднено на изображениях с пересекающимися силуэтами людей [Problematic for images of people with intersected silhouettes] | Ключевые точки определяются на каждом человеке отдельно [Attach keypoints to person separately for every human on image] |
Требовательность к ресурсам [Resource requirements] | Зависит от алгоритма определения принадлежности точек [Depends on keypoints attachment algorithm] | Более требователен, из-за этапа детекции человека [Requires more resources for human body detection step] |
Алгоритмы оценки позы человека также различаются по методу моделирования тела. Первой разновидностью алгоритмов human pose estimation по этому параметру являются алгоритмы, выделяющие скелет. Скелет, в данном контексте – это ключевые точки, соединенные прямыми линиями. Другие решения задачи human pose estimation помимо ключевых точек выделяют контур всего тела человека. Алгоритмы, определяющие положение тела человека в трехмерном пространстве, помимо вышеперечисленных методов, могут реализовывать третий – выделения объема, заключающийся в восстановлении сетки, состоящей из точек, расположенных на теле. Формирование скелета требует меньше ресурсов процессора и памяти за счет отслеживания меньшего количества точек.
ВЫБОР АЛГОРИТМА HUMAN POSE ESTIMATION
Для решения задачи human pose estimation в разрабатываемом модуле, целесообразно применять нисходящий алгоритм, так как недостатки этого подхода не повлияют на функционирование приложения. Все проблемы, возникающие при обработке изображений с несколькими людьми, не затруднят работу модуля, поскольку предполагается, что в кадре будет находится один человек – проходящий реабилитацию пациент. Также необходимо выбрать скелетный метод моделирования тела. Это снизит нагрузку на аппаратное обеспечение пациента, сохранив необходимые данные о его движениях.
В ходе разработки игрового модуля было исследовано несколько алгоритмов оценки положения тела человека на видео.
Выбор алгоритма для конечной реализации был основан на следующих метриках.
- Процент правильных ключевых точек (Percentage of Correct Key-points, PCK). Данная метрика отображает долю правильно обнаруженных точек, отслеживаемых алгоритмом, сравнивая расстояние между предсказанной и истинной координатами ключевых точек относительно заданного порога расстояния между ними. Чем выше значение PCK, тем лучше модель обнаруживает ключевые точки.
- Количество кадров в секунду (Frames per Second, FPS). Данная метрика показывает сколько кадров может обработать алгоритм за одну секунду. Чем выше FPS, тем более плавное видео будет отображено пользователю.
- Средняя точность (Mean Average Precision, MAP). Данная метрика отображает точность обнаружения и классификации ключевых точек. Значение MAP высчитывается как среднее значение AP (average precision) для каждого отслеживаемого класса объектов. В свою очередь AP показывает, насколько точно алгоритм обнаруживает определенный класс объектов.
По совокупности этих метрик можно оценить алгоритм human pose estimation с учетом специфических задач, решаемых разрабатываемым модулем.
В рамках исследования было рассмотрено несколько уже существующих алгоритмов определения положения тела человека на видео, Reinforced Motion Transformation Network, Motion Adaptive Pose Net и MediaPipe Pose.
Reinforced Motion Transformation Network или REMOTE [4] – это алгоритм определения положения тела человека на видео. Данный алгоритм реализует реализует нисходящий подход. Основным преимуществом REMOTE является возможность производить обучение с неполной разметкой данных.
При подсчете набора метрик для REMOTE было выяснено, что данный алгоритм эффективно работает лишь в сценах, где человека видно полностью и его силуэт является четким.
Motion Adaptive Pose Net, MAPN [5] – это алгоритм определения положения тела одного человека на видео, реализующий нисходящий подход. Алгоритм состоит из нескольких компонентов. Первым является алгоритм сжатия входного видео по стандарту H.264/MPEG-4 Part 10/AVC с целью уменьшения количества хранимой информации. Это достигается за счет сохранения только отличий текущего кадра от предыдущего. Для повышения эффективности кодирования используется оценка движения на основе блоков, которая предполагает, что все пиксели в блоке следуют одному и тому же вектору движения. При этом размер таких блоков варьируется от 4 × 4 до 16 × 16. Второй – это ConvLSTM. ConvLSTM является рекуррентной нейронной сетью LSTM (Long Short-Term Memory), в которой линейные слои были заменены на сверточные для обработки изображений с учетом движения объектов на них. Эта модель формирует карты признаков для полученных кадров. С помощью карт признаков, происходит дальнейшее определение позы. Третий этап – это Residual Driven Dynamic Gate. Этот алгоритм делится на два компонента: Residual Driven Gate и Dynamic Gate. Residual Driven Gate служит для сохранения ранее полученных признаков и передачи их в сверточные слои. Таким образом сохраняется информация о движениях человека на видео. Dynamic Gate позволяет определять наиболее важные признаки. Для этого Dynamic Gate опирается на работу Residual Driven Gate. Motion Adaptive Pose Net позволяет отслеживать ключевые точки только на плоскости изображения, не учитывая их глубину. MAPN способен работать в сценах с несколькими людьми в кадре и в сценах, где человек виден не полностью. При этом испытывает проблемы на слабо освещенных кадрах, также хуже распознает крайние точки конечностей (запястья, стопы).
MediaPipe Pose – это фреймворк от компании Google, представленный в 2019 г. и имеющий необходимые инструменты и библиотеки для разработки приложений компьютерного зрения и обработки мультимедиа. Алгоритм определения положения тела человека в MediaPipe Pose основан на модели BlazePose и реализует нисходящий подход. Для моделирования скелета человека или объемной сетки MediaPipe Pose использует двухэтапный конвейер. На первом этапе, используя детектор, конвейер сначала определяет местоположение интересующей области человека в кадре, это позволяет определять положение всего тела, лица или рук. На втором этапе алгоритм прогнозирует скелет или маску сегментации в пределах области, определенной на первом этапе, и продолжает отслеживать эту область для избежания повторения трудоемкой операции детекции. Если трекинг области прекратился, то алгоритм слова возвращается к первому этапу. MediaPipe Pose отслеживает ключевые точки в трехмерном пространстве. Конвейер MediaPipe Pose получает на вход видео поток. В качестве результатов возвращаются два объекта. Первый – это видео поток, на кадрах которого размечены спрогнозированные скелет тела или объемная маска. Вторым является структура, содержащая информацию о координатах ключевых точек. Наличие такой структуры на выходе позволяет обрабатывать и сохранять эти данные для дальнейшего использования. MediaPipe Pose справляется с нахождением ключевых точек на теле человека, чей силуэт в кадре не четок, размыт или не полностью виден. При этом для корректной работы алгоритма необходимо наличие однородного освещения в кадре.
Для выбора алгоритма для последующего внедрения в модуль были подсчитаны метрики. Результаты представлены в табл. 2. Расчеты производились на наборе данных COCO (Common Objects in Context) dataset1. COCO dataset содержит данные для обнаружения объектов, сегментации и определения положения тела человека. Набор предоставляет более 330 тысяч изображений, для каждого из которых описаны классы объектов. На основе полученных результатов было решено выбрать MediaPipe Pose.
Таблица 2. Сравнение методов определения положения тела человека
Table 2. Comparison of methods for determining the position of the human body
PCK | FPS | MAP | |
REMOTE | 0,96 | 12 | 0,68 |
MAPN | 0,95 | 16 | 0,63 |
MediaPipe Pose | 0,97 | 46 | 0,71 |
ОПИСАНИЕ ИНТЕРАКТИВНОЙ ИГРЫ
Согласно цели исследования, необходимо разработать игровой модуль, использующий нейронные сети для определения положения тела человека и моделирования скелета тела.
Функционал модуля представлен в виде интерактивной игры, в которой пользователю будет предложено в течении ограниченного отрезка времени подносить руки к определенной точке, отображаемой на видео, полученного с веб-камеры. Положение этой точки будет определяться псевдослучайным образом для увеличения разнообразия движений.
Алгоритм Mediapipe Pose обрабатывает каждый кадр и предоставляет данные положении ключевых точек тела человека. На основе этих данных, поверх видео с камеры пользователя изображается скелет, состоящий из ключевых точек, соединенных прямыми линиями. Левые и правые ключевые точки помечены разными цветами для простоты ориентирования. Целевая точка помечается красным цветом и так же изображается на видео. Над видео пользователь может найти таймер, указывающий на количество оставшегося времени до конца сессии. Рядом расположен счетчик повторений, указывающий на то, сколько различных целей «поймал» пользователь. Также, врач может включить отображение области, в которой точки будут появляться. Эта область отображается на видео желтым цветом. Под видео находится окно текстовых сообщений. Здесь появляются указания для пользователя такие, как просьба подносить руку к цели или просьба опустить руки в изначальное положение. Координаты плеч в первом кадре принимаются за эталонное. Далее предполагается, что пользователь не должен перемещаться до конца сессии.
Блок-схема алгоритма игровой сессии изображена на рис. 1.
Рис. 1. Блок-схема игровой сессии
Fig. 1. Game block diagram
В игре представлено несколько уровней сложности, что поможет учесть потребности пациентов на разных этапах реабилитации. Уровень сложности влияет на область появления целевых точек, следовательно, на амплитуду движений рук.
Уровни сложности:
- легкий: точки появляются в области живота (рис. 2a);
- средний: точки появляются в области живота, плеч, локтей (рис. 2b);
- высокий: точки появляются по сторонам от пациента, над плечами или в области живота (рис. 2c);
- смешанный: точки появляются во всех областях, описанных выше (рис. 2d);
Рис. 2. Игровые сессии с различными уровнями сложности
Fig. 2. Game sessions with different difficulty levels
Код алгоритма генерации координат целевой точки на языке Python представлен в листинге 1.
Листинг 1. Алгоритм генерации координат целевой точки
from random import randint, uniform
# Проверка на отсутствие уже существующей точки
if target is not None:
continue
# Параметры отображаемого на экране видео
canvas_width = canvas.width # ширина отображаемого
canvas_heigth = canvas.heigth # высота отображаемого видео
# Единичные отрезки для каждой из координат
# Коэффициенты выбраны в ходе экспериментов
baseline_shoulder_dist = (
left_baseline_shoulder[0] –
right_baseline_shoulder[0]
)
x_segment = baseline_shoulder_dist * 0.8
y_segment = x_segment * canvas_heigth / canvas_width * 1.2
# Смещенное начало координат
x_base_coord = canvas_width / 2
y_base_coord = canvas_heigth – 2 * y_segment
# Коэффициент сложности
# Коэффициенты выбраны в ходе экспериментов
if difficulty == "easy":
coefficient = 1
Если ( ) тогда
elif difficulty == "medium":
coefficient = 2
else:
coefficient = 2.8
# Пороговые значения координат целевой точки
min_x = x_base_coord – x_segment
max_x = x_base_coord + x_segment
min_y = y_base_coord – y_segment
max_y = y_base_coord + y_segment
# Получение координат целевой точки
if difficulty == "random":
target = [uniform(min_x, max_x), uniform(min_y, max_y)]
else:
# Y координата
target_y = uniform(min_y, max_y)
# X координата с учетом пустой области
if (target_y < min_y + y_segment) or (target_y > max_y – y_segment):
target_x = uniform(min_y, max_y)
else:
if randint(0, 1) == 0:
target_x = uniform(min_x, min_x + x_segment)
else:
target_x = uniform(max_x – x_segment, max_x)
target = [target_x, target_y]
# Нормализация координат
norm_target = [target[0] / canvas_width, target[1] / canvas_height]
# Проверка выход за границы
if norm_target[0] > 1.0:
norm_target[0] = 0.95
elif norm_target[0] < 0.0:
norm_target[0] = 0.05
if norm_target.y > 1.0:
norm_target.y = 0.95
elif norm_target.y < 0.0:
norm_target.y = 0.05
Для наблюдения за прогрессом реабилитации пациентов отслеживается время, затраченное на одно движение. С этой же целью обнаруживаются ошибки, совершаемые пациентом при выполнении движений.
Набор отслеживаемых ошибок определен специфической задачей, решаемой модулем – реабилитационная тренировка в игровой форме. Для определения ошибки, совершенной пользователем, модуль собирает данные о положении плеч, рта и ушей и сравнивает координаты этих точек в текущем кадре и сравнивает их с координатами в предыдущем. Также, модуль сохраняет начальное положение плеч пользователя и использует его в качестве эталонного. Все дополнительные расчеты координат и сравнения производятся после нормализации координат, для сохранения работоспособности при разных размерах окна браузера.
Отслеживаемые ошибки:
- сильный наклон плеч (рис. 3a);
- сильный наклон головы (рис. 3b);
- движения плеч (рис. 3c);
Рис. 3. Ошибки в движениях и предупреждения о них
Fig. 3. Movement mistakes and warnings
В качестве эталонных (baseline) принимаются положения каждого плеча в начале игровой сессии. Код алгоритма отслеживания ошибок на языке Python представлен в листинге 2.
Листинг 2. Алгоритм отслеживания ошибок при выполнении тренировки
# Считывание текущих координат (уже нормализованных) основных точек
left_shoulder = normalize(get_pose_landmarks("left_shoulder"))
right_shoulder = normalize(get_pose_landmarks("right_shoulder"))
left_ear = normalize(get_pose_landmarks("left_ear"))
right_ear = normalize(get_pose_landmarks("right_ear"))
left_mouth = normalize(get_pose_landmarks("left_mouth"))
right_mouth = normalize(get_pose_landmarks("right_mouth"))
# Средняя координата по оси X между точками рта
mouth_x = (left_mouth[0] + right_mouth[0] ) / 2
# Модули разностей по оси X от плеч и ушей до средней точки рта
left_shoulder_mouth_dif = abs(left_shoulder[0] – mouth_x)
right_shoulder_mouth_dif = abs(right_shoulder[0] – mouth_x)
left_ear_mouth_dif = abs(left_ear[0] – mouth_x)
right_ear_mouth_dif = abs(right_ear[0] – mouth_x)
# Разница между базовыми и текущими значениями по оси Y для плеч
left_baseline_dif = abs(left_baselineShoulder[0] – left_shoulder[0])
right_baseline_dif = abs(right_baseline_shoulder[0] – right_shoulder[0])
# Сравнение разницы между левыми и правыми точками
shoulders_mouth_dif = abs(left_shoulder_mouth_dif – right_shoulder_mouth_dif)
ears_mouth_dif = abs(left_ear_mouth_dif – right_ear_mouth_dif)
# Определение типа ошибки на основе полученных разностей
# Коэффициенты выбраны в ходе экспериментов
if (
left_baseline_dif > 0.03 or roght_baseline_dif > 0.03
) and shoulders_mouth_dif < 0.01:
error = "подъем плеча"
else if ears_mouth_dif > 0.03:
error = "наклон головы"
else if shouldersMouthDif > 0.045 and earsMouthDif > 0.02:
error = "наклон тела"
Код алгоритма проверки выполнения движения на языке Python приведен в листинге 3.
Листинг 3. Алгоритм детектирования выполнения движения
from math import sqrt
# Получение нормализованных координат указательных пальцев обеих рук
left_index = normalize(get_pose_landmarks("left_index"))
right_index = normalize(get_pose_landmarks("right_index"))
# Расчет расстояний между целевой точкой и указательными пальцами
left_dist = sqrt(pow(left_index[0] – norm_target[0], 2) + pow(left_index[1] – norm_target[1], 2))
right_dist = sqrt(pow(right_index[0] – norm_target[0], 2) + pow(right_index[1] – norm_target[1], 2))
# Проверка выполнения условия
# Коэффициенты выбраны в ходе экспериментов
if (left_dist <= 0.08 or right_dist <= 0.08) and stage == "поднесите руку к цели":
condition = True
stage = "опустите руки"
elif (
left_index[1] > max_y /
canvas_height and
right_index[1] > max_y /
canvas_height and
stage == "опустите руки"
):
target = None
norm_target = None
Если пользователь совершил ошибку, модуль выводит текстовое предупреждение с указанием ее типа. Пока пользователь совершает ошибку выполнение не засчитывается. Предупреждение выделено красным текстом. Количество совершенных пользователем ошибок сохраняется. Каждый тип ошибки считается отдельно от остальных.
Для использования модуля пациенту требуется наличие персонального компьютера, подключенного к сети Интернет, и одной веб-камеры.
После завершения сессии происходит сохранение данных о ее результатах. Врач, наблюдающий за пациентом, может просмотреть эти данные в любой момент и, на их основе, получить представление о прогрессе, что поможет своевременно скорректировать программу реабилитации.
Показатели, сохраняемые для сессии:
- дата и время выполнения;
- затраченное время;
- количество повторений;
- время между повторениями;
- счетчики ошибок.
ЭКСПЕРИМЕНТ И РЕЗУЛЬТАТЫ
Для проверки работоспособности и удобства использования разработанного игрового модуля был проведен эксперимент с участием двух групп людей: 10 здоровых добровольцев и 10 пациентов, проходящих неврологическую реабилитацию. Цель эксперимента состояла в том, чтобы оценить:
- пользовательский опыт при работе с разными уровнями сложности в игре;
- возможные ограничения, возникающие при выполнении движений в условиях реабилитации.
Всего в исследовании приняли участие 20 человек, разделенных на две группы по 10 человек в каждой. Первая группа (G1) – здоровые добровольцы, не испытывающие затруднений в выполнении двигательных заданий. Вторая группа (G2) – пациенты, проходящие курс неврологической реабилитации.
Каждому участнику предлагалось в течение пяти дней выполнять игровые сессии продолжительностью 5 минут ежедневно. Во время сессии участники использовали персональный компьютер с веб-камерой, запуская разработанный игровой модуль через веб-приложение. Игровые сессии проводились в контролируемых условиях, чтобы обеспечить стабильность освещения и наличие устойчивого интернет-соединения.
Всем участникам последовательно предлагалось пройти три уровня сложности (легкий, средний, высокий). Между сессиями предусматривались короткие перерывы для предотвращения накопления усталости у пациентов.
По завершении эксперимента участники заполняли краткую анкету, оценивая удобство интерфейса, комфорт при выполнении движений, а также общее впечатление о реабилитационном потенциале модуля.
В процессе сеанса автоматически регистрировались время на выполнение движений, число ошибок, затраты времени на каждое повторение, а также общее число корректных попаданий в появлявшиеся цели. Дополнительно фиксировалось время отклика системы (FPS) и число сбоев в распознавании ключевых точек тела.
Большинство участников (как в группе здоровых добровольцев, так и среди пациентов, проходящих реабилитацию) отметили положительный опыт взаимодействия с игровым модулем, указывая на удобство интерфейса и легкость первоначальной настройки (подключение веб-камеры, запуск веб-приложения). Здоровые добровольцы не испытывали затруднений даже на высоком уровне сложности, тогда как некоторые пациенты сообщали о трудностях, связанных с высокой скоростью появления целевых точек и увеличенной амплитудой движений рук. Это свидетельствует о необходимости адаптировать нагрузку к индивидуальным возможностям: резкий переход к более сложным паттернам провоцировал рост числа ошибок и мог вызывать дискомфорт. При этом сама структура сессий и алгоритм распознавания позы не вызывали серьезных затруднений; общее число сбоев в распознавании ключевых точек оказалось минимальным, а скорость обработки (30–40 кадров в секунду) обеспечивала плавную визуализацию движений. Собранные данные показывают, что модуль может с успехом использоваться для регулярных реабилитационных сеансов в дистанционном формате, а дальнейшее усовершенствование – в частности, гибкая настройка уровня сложности и временных параметров – будет способствовать более комфортному применению и для пациентов, и для здоровых пользователей.
ЗАКЛЮЧЕНИЕ
В ходе проведенного исследования была разработана интерактивная игра, ориентированная на контроль и анализ движений верхних конечностей с помощью технологии оценки положения тела человека. В рамках пилотного эксперимента, в котором приняли участие две группы (10 здоровых добровольцев и 10 пациентов, проходящих неврологическую реабилитацию), было подтверждено, что игра может успешно применяться для дистанционной реабилитации. В течение пяти дней участники ежедневно выполняли упражнения по 5 минут и, согласно результатам, могли поддерживать заданный темп движений, определять скорость реакции и фиксировать точность выполнения заданий. При этом пациентам требовалось лишь наличие персонального компьютера, веб-камеры и подключения к интернету, без необходимости в дополнительных датчиках.
По итогам эксперимента здоровые добровольцы не испытывали значительных затруднений при любом уровне сложности, тогда как пациенты отметили повышенную нагрузку и необходимость более плавного наращивания амплитуды движений на высоких уровнях. Эта особенность свидетельствует о важности индивидуальной настройки игры в зависимости от степени заболевания и динамики реабилитации. Благодаря многоуровневой системе сложности, а также возможности фиксировать различные показатели (количество повторений, время реакции, ошибки в исполнении), разработанный модуль предоставляет врачам объективные данные о ходе восстановительных процедур.
К текущим ограничениям игры можно отнести обязательное наличие веб-камеры и постоянного доступа к Интернету, что не всегда возможно для некоторых пациентов. В дальнейшем планируется внедрить гибкую конфигурацию различных параметров (число повторений, время сессии, скорость появления целей), а также добавить иные игровые сценарии, расширяющие потенциал дистанционной реабилитации для пациентов с разными типами и степенями неврологических нарушений.
1 COCO (Common Objects in Context) dataset. URL: https://cocodataset.org/ (data of accesses: 30.01.2025).
About the authors
Artyom E. Pavlikov
Moscow Technical University of Communications and Informatics
Author for correspondence.
Email: a.e.pavlikov@mtuci.ru
ORCID iD: 0009-0001-6165-7474
SPIN-code: 7266-2752
Scopus Author ID: 58204705000
Assistant of the Department of PI
Russian Federation, MoscowReferences
- Hak Gu Kim, Sangmin Lee, Seongyeop Kim. Towards a better understanding of VR sickness: Physical symptom prediction for VR contents. arXiv. 2021.
- Steinmetz J.D., Seeher K.M., Schiess N. et al. Global, regional, and national burden of disorders affecting the nervous system, 1990–2021: A systematic analysis for the Global Burden of Disease Study 2021. The Lancet Neurology. 2024. Vol. 23. Issue 4. Pp. 344–381.
- Sungtaek Cho, Dongyeon Kim, Sungon Lee. A comparative evaluation of a single and stereo lighthouse systems for 3-D estimation. IEEE Sensors Journal. 2021. P. 99.
- Xianzheng Ma, Hossein Rahmani, Zhipeng Fan et al. REMOTE: Reinforced motion transformation network for semi-supervised 2D pose estimation in videos. In: The Thirty-Sixth AAAI Conference on Artificial Intelligence (AAAI-22). 2022. Pp. 1944–1952.
- Zhipeng Fan, Jun Liu, Yao Wang. Motion adaptive pose estimation from compressed videos. IEEE/CVF International Conference on Computer Vision (ICCV). 2021. Pp. 11719–11728.
- Bychkov A., Kiseleva T., Maslova E. Usage of convolutional neural networks for image classification. Bulletin of the Siberian State Industrial University. 2023. No. 1. Pp. 39–49. (In Rus.)
- Karyakin A.V. Research of the problem of human detection using computer vision. URL: https://www.researchgate.net/publication/381037033_Issledovanie_zadaci_detektirovania_celoveka_s_pomosu_komputernogo_zrenia (data of accesses: 24.04.2025)
- Kislenko S.L., Menzhega M.M. Use of modern technical means in the process of fixing the crime scene examination’s results. Bulletin of the Institute of Law of Bashkir State University. 2024. No. 7(3(23)). Pp. 108–123. (In Rus.)
- Konovalov A.N., Pilipenko Yu.V. et. al. Augmented reality as a method of neuronavigation for extra-intracranial microanastomosis. Russian Journal of Operative Surgery and Clinical Anatomy. 2024. Vol. 8. No. 3. Pp. 28–34. (In Rus.)
- Kudinov Ya.O. Study of the possibility of classifying paintings using computer vision. URL: https://www.researchgate.net/publication/377219522_Klassifikacia_kartin_s_pomosu_komputernogo_zrenia (data of accesses: 30.01.2025).
- Leonov I.Yu. Human pose estimation on images of yoga asanas. URL: https://www.researchgate.net/publication/381116740_Human_pose_estimation_na_izobrazeniah_asan_v_joge (data of accesses: 30.01.2025)
- Pavlikov A.E., Gorodnichev M.G. Overview of technologies for determining the position of the human body. Models, systems, networks in economics, technology, nature and society. 2023. No. 3. Pp. 81–97. (In Rus.)
- Pisar N.V. Virtual and augmented reality technologies as a tool for teaching communication in Russian. Prepodavatel XXI vek. Russian Journal of Education. 2023. No. 3. Part 1. Pp. 212–222. (In Rus.)
- Khuako V.O., Abakumov A.A. Determination of human body position using neural networks. URL: https://www.researchgate.net/publication/380785157_Opredelenie_polozenia_tela_celoveka_s_ispolzovaniem_nejronnyh_setej (data of accesses: 30.01.2025).
Supplementary files



