Захват движений человека в реальном времени.

Захват движений человека в реальном времени.
Даты проведения
с 2023-02-01 по 2023-10-01

Захват движений человека в реальном времени. Львова Диана, Сопина Елизавета. Класс: 11. Государственное бюджетное общеобразовательное учреждение "Санкт-Петербургский губернаторский физико-математический лицей №30", г. Санкт-Петербург. 199004, г. Санкт-Петербург, 7-я линия ВО, д.52, тел.: 3233555; E-mail: info@school30.spb.ru; Научный руководитель: Галинский Виталий Александрович, преподаватель информатики и программирования физико-математического лицея № 30, руководитель группы компьютерной графики

В настоящее время существует проблема захвата движений человека. В нашей работе предлагается её решение. Готовые аналоги существуют, однако большинство из них недоступны рядовым пользователям, так как для их применения необходимо дорогостоящее оборудование. Нашей целью было создать программное обеспечение, позволяющее любому пользователю решить эту задачу без использования каких-либо сторонних приспособлений кроме двух камер. Для реализации нашего проекта мы выбрали язык программирования C++, так как он позволяет добиться максимальной производительности ПО. Для вывода результата работы на экран в программе используется система отрисовки 3D сцен на базе низкоуровневого интерфейса Vulkan. Логика работы программы подразделяется на несколько этапов. Исходная информация о позе человека получается с двух камер. Эти изображения обрабатываются нейронной сетью в параллельных потоках, результатом работы которой являются два набора экранных координат всех распознанных точек тела, после чего данные объединяются, и полученные трёхмерные координаты точек передаются на следующие этапы работы программы. Данные наборов координат объединяются при помощи математических преобразований, основывающихся на взаимном положении камер, которое определяется автоматически. Для удобства пользователя в проект были добавлены режимы записи и воспроизведения анимации на основе собственного формата. Это позволяет отделить этапы получения исходных изображений, их обработки нейронной сетью и дальнейшего преобразования в трёхмерные координаты в отдельные проходы, из-за чего появляется возможность применить сглаживающие преобразования для итоговых данных. Таким образом, результат работы программы выглядит более плавным.

В процессе изучения существующих нейронных сетей по распознаванию движений мы нашли подходящую нам и по производительности, и по точности работы. Поэтому нами было принято решение использовать уже обученную нейронную сеть. Данное решение позволило нам сэкономить время и ресурсы, а также сосредоточиться на разработке и улучшении функционала нашей программы. При выборе нейронной сети, наиболее подходящей для применения при выполнении задач проекта, нами было проведено сравнение их производительности и точности работы. В результате исследования по всем параметрам серьезное преимущество на фоне аналогов продемонстрировала нейронная сеть OpenPose. Она показывает наивысшую производительность при обработке малого количества людей и практически не теряет в производительности при повышении количества обрабатываемых людей. Данная нейронная сеть позволяет нам получать 25 точек тела человека при обработке исходных изображений и может также предоставлять данные о позициях пальцев рук при необходимости, чего более чем достаточно для высокой точности работы. Стоит отметить, что в проекте была реализована система генерации динамического окружения, задача которой – дополнять визуализацию проекта при выполнении главных задач. В основе её реализации лежит алгоритм фотореалистичного вывода RayMarching. В целях оптимизации вычисления данной системы были полностью перенесены на графический процессор. На данный момент пользователю доступно множество вариантов динамических окружений, например, снег, вода или лава. Итогом проделанной работы стала система, позволяющая захватывать и выводить на экран движения человека в реальном времени, а также поддерживающая дополнительный функционал, например, режимы записи и воспроизведения анимации.

Литература: 1. R. Parent, Computer Animation: Algorithms and Techniques, 2008 2. J. Hughe, A. van Dam, M. McGuire, D. Sklar, J. Foley, S. Feiner, K. Akeley, Computer Graphics: Principles and Practice, 2014

О проекте

Проект опубликовал

Целевая аудитория

школьники 5-7 класс школьники 8-11 класс абитуриенты студенты

Специализации

Программирование

Области знаний

Математика и информатика Техника и инженерные науки