Способ и система для распознавания и анализа движений пользователя в реальном времени Российский патент 2023 года по МПК G06T7/20 G06N3/02 G06T15/00 

Описание патента на изобретение RU2801426C1

Группа заявленных изобретений относится к компьютерным технологиям, в частности к области компьютерного зрения, к средствам дистанционного обучения, обучению заочному, обучению практическим навыкам (демонстрации), обучению при помощи симуляторов и т.д.

Известно решение по патенту CN 108597578, состоящее из человека, источника видеопотока, вычислительного устройства и алгоритма распознавания позы человека в двухмерном пространстве, включающее метод оценки позы человека в двухмерном пространстве основываясь на матрице ключевых точек тела человека. Недостатком данного решения является неточность оценивания позы, основываясь на данных о положениях ключевых точек тела человека в двух измерениях, отсутствие возможности записи эталонов движений с человека.

Известно решение по патенту ЕР 2815341, состоящее из человека (пользователя), фитнес-девайса, вычислительного устройства, алгоритма оценивания движений человека, включающее метод оценки движения человека по отношению к описанному в патенте фитнес-девайсу. Недостатком данного решения является отсутствие технологий компьютерного зрения и невозможность оценки движений человека без специализированного фитнес-устройства.

Известно решение по патенту CN 104021573, состоящее из человека, вычислительного устройства, инерциальных сенсоров, алгоритма оценивания движений человека, включающее метод оценивания движений человека основываясь на данных об углах между ключевыми точками тела человека, полученных с инерциальных сенсоров, расположенных на теле. Недостатком данного решения является отсутствие возможности получить координаты ключевых точек тела человека в пространстве, отсутствие алгоритма обучения движениям на базе данного метода.

Наиболее близким аналогом, прототипом, заявляемых технических решений является международная публикация WO 201261804 A1. Существо данного решения состоит в том, что система оценивает движение упражнения в двухмерном пространстве основываясь на данных об углах между ключевыми точками человека, вычисленных эмпирическим путем, с двух и более источников видеопотока и, в некоторых случаях, специализированного фитнес-браслета, и кроссовок, оснащенных датчиками.

Прототип WO 201261804 A1 обладает следующими, существенными по сравнению с заявляемым техническим решением, недостатками:

- использование двух и более источников видеопотока: в описании прототипа указано, что компьютер может использовать одно изображение для определения положения человека в пространстве, но не для определения положения в пространстве отдельных частей тела. Далее уже описано, что компьютер может обрабатывать 2 и более изображения, снятых одновременно с разных углов, и тогда уже может определять положения в пространстве отдельных частей тела;

- оценка изображений и позы человека в 2-мерном пространстве: в описании прототипа указано, что компьютер может делить изображение на секции и оценивать. Пример секций представлен на Фигуре 14 к международной публикации. Эти секции отображены в двухмерном пространстве (2D). На фигурах 15, 16А, 16В к указанной международной публикации, оценка производится на базе информации о положениях точек соответствующих частей тела в двухмерном пространстве. Возможность добавления третьего измерения и оценки по совокупности углов/точек в 3-х измерениях (3D) в прототипе не рассматривается, не упоминается и отсутствует в качестве примера на рисунках;

- отсутствие эталонного изображения/движения: в описании прототипа отсутствует информация о способе получения данных о правильности с точки зрения спорта движения упражнения. В описании также не указана информация, откуда взяты точные градусные меры и их диапазоны. Логически можно сделать вывод, что их получают эмпирическим путем, то есть это относительно субъективная, не способная к систематизации и адекватной оценке спорта, информация. То же самое можно сказать про "этапы выполнения упражнения". Запись эталонного движения и соответствующий алгоритм в прототипе отсутствуют;

- недостаточная точность позиционирования: в описании прототипа на Фигуре 5 к указанной выше международной публикации представлено тело человека, изображенное в двух плоскостях (профиль и анфас) - спереди и сбоку. Для каждой плоскости мы видим 12 секторов оценки, т.е. 12 точек, расположенных в одной плоскости. Исходя из вышеописанных возможностей технологии в один момент времени система по прототипу может оценивать только одну плоскость, то есть позу 12 секторов (точек) в двухмерном пространстве (2D). В заявляемом решении оценивается 15 и более точек.

Раскрытие изобретения

Задачей, на решение которой было направлено создание группы заявленных изобретений, является создание способа и системы, включающей как минимум один из заявляемых блоков обработки информации, позволяющих с помощью компьютера и/или мобильного устройства, камеры и/или видеозаписи/видеопотока, в том числе с возможностью передачи через интернет-соединение, осуществлять запись и воспроизведение ключевых точек движений пользователя, осуществлять сравнение позы пользователя, являющегося объектом оценивания, в реальном времени в соответствии с имеющейся записью поз эталонного движения профессионала, при этом обеспечивая скорость и точность, надлежащие для профессиональной оценки, в целях выдачи рекомендаций по коррекции выполнения движения в реальном времени.

При реализации группы заявляемых изобретений достигаются следующие общие для всех решений группы технические результаты:

- обеспечение полной или частичной автоматизации процесса записи движения пользователя;

- сокращение времени, требуемого для подготовки к записи движений пользователя в связи с отсутствием необходимости объекту записи надевать специализированные костюмы/датчики, и отсутствием необходимости также оборудовать помещение набором датчиков/камер;

- повышение точности записи и распознавания позы пользователя, являющегося объектом оценивания, благодаря оценке его позы на базе данных о положении ключевых точек тела пользователя, в том числе в трех измерениях;

- сохранение и воспроизведение поз движения пользователя, являющегося объектом оценивания, в универсальном текстовом формате для последующего воспроизведения графическими интерпретаторами;

- обеспечение полной и/или частичной автоматизации оценивания выполнения движения пользователем, являющимся объектом оценивания, в реальном времени по сравнению с записью эталонной эталонного движения упражнения профессионала;

- обеспечение надлежащего качества профессионального оценивания движения пользователя, являющегося объектом оценивания в реальном времени по сравнению с записью эталонного движения упражнения;

- обеспечение распознавания и оценки движений, видеопоток которых получен с маломощных устройств в открытых пространствах, например, на улице, благодаря клиент-серверной вариации системы, используя передачу видеопотока, в том числе через интернет-соединение;

- обеспечение полной и/или частичной автоматизации процесса воспроизведения движения пользователя, являющегося объектом оценивания из файла.

На достижение заявленных технических результатов оказывают влияние следующие признаки изобретений из группы.

Способ распознавания и анализа движений пользователя, являющегося объектом оценивания объектов в реальном времени характеризуется тем, что вначале создают систему, включающую в себя источник видеопотока, пользователя, ЭВМ, включающую постоянное хранилище данных (память компьютера), интернет-соединение, устройство отображения изображения, нейронную сеть с открытым исходным кодом для получения данных о положении ключевых точек позы пользователя в трех измерениях в поданном кадре видеопотока и модуль обработки взаимодействия с нейронной сетью, модуль обработки передачи позы в графическое пространство, модуль записи в файл поз эталонного движения упражнения профессионала, модуль воспроизведения из файла поз эталонного движения и модуль оценивания движений пользователя, являющегося объектом оценивания, в реальном времени в трехмерном формате в сравнении с массивом поз эталонного движения. После чего посредством созданной системы осуществляют захват и передачу видеопотока в нейронную сеть с открытым исходным кодом для получения данных о положении ключевых точек позы, составляющей оцениваемое движение упражнения пользователя, в трех измерениях в поданном кадре видеопотока, последующую запись кадр за кадром полученных данных по очереди в ассоциативный массив для каждой позы пользователя и запись такого массива в файл. Далее осуществляют оценку положений ключевых точек поочередно для каждой позы, являющегося объектом оценивания, в реальном времени в сравнении с данными поз эталонного движения профессионала, полученными на основе записи движений профессионала в интересующей области, посредством позиционирования набора ключевых точек поз эталонного движения в соответствии с позицией и углом поворота пользователя, являющегося объектом оценивания, в реальном времени по отношению к источнику видеопотока, и дальнейшее покадровое сравнение положений соответствующих ключевых точек на конкретном этапе выполнения движения пользователем. Затем обеспечивают отображение на устройстве отображения изображения результатов оценивания движений выполненного пользователем упражнения посредством звуковых сигналов и/или синтеза голоса, и/или графического отображения.

Система для распознавания и анализа движений пользователя в реальном времени, заявленная в составе группы изобретений, также направлена на достижение завяленных выше технических результатов.

Сущность системы для распознавания и анализа движений человека в реальном времени заключается в следующем. Система включает в себя источник видеопотока, пользователя, ЭВМ, включающую постоянное хранилище данных (память компьютера), сетевое соединение, устройство отображения изображения, компьютер-сервер с нейронной сетью с открытым исходным кодом и модулем обработки взаимодействия с нейронной сетью, модуль обработки передачи позы в графическое пространство, модуль записи в файл поз + эталонных движений профессионала, модуль воспроизведения из файла поз эталонных движений профессионала и модуль оценивания движений пользователя, являющегося объектом оценивания, в реальном времени в сравнении с массивом поз эталонного движения профессионала (Фиг. 1).

Перечень фигур

Осуществление изобретения поясняется следующими фигурами.

На фиг. 1 представлены основные действия способа и принцип работы системы для распознавания и анализа движений пользователя в реальном времени

На фиг. 2 наглядно представлен пример структуры ключевых точек и положения векторов одной позы пользователя.

На фиг. 3 представлено схематическое отображение необходимых положений человека при записи движения.

На фиг. 4 схематично представлен пример работы алгоритма подстановки данных записанной позы эталонного движения профессионала к данным о позе оцениваемого движения пользователя в реальном времени.

Способ распознавания и анализа движений пользователя и принцип работы непосредственно системы распознавания и анализа движений пользователя, в частности, человека, в реальном времени, как это наглядно представлено на Фиг. 1, заключается в следующем. Вначале создают систему распознавания и анализа движений пользователя 100, включающую в себя пользователя 101, источник видеопотока 102, компьютер-сервер 103, содержащий нейронную сеть с открытым исходным кодом 104 для получения данных о положении ключевых точек позы пользователя в поданном кадре видеопотока и модуль обработки взаимодействия с нейронной сетью 105, сетевое соединение, например сеть Интернет, 106, посредством которого осуществляется передача видеосигнала на компьютер-сервер 103, ЭВМ, включающую постоянное хранилище данных (память компьютера) 107, модуль обработки передачи позы в графическое пространство 108, модуль записи в файл поз эталонного движения упражнения профессионала 109, модуль воспроизведения из файла поз эталонного движения 110, модуль оценивания движений пользователя, являющегося объектом оценивания, в реальном времени в сравнении с массивом поз эталонного движения 111 и устройство отображения изображения 112. При этом пользователем 101 может быть не только человек, но и другое живое существо, а также, например, роботизированный человекоподобный организм. Источником видеопотока 102 могут быть камера, в том числе веб-камера, видеопоток, получаемый из сети Интернет, а также заранее записанное видео с камеры. В качестве ЭВМ 107 могут быть использованы как персональный компьютер, так и ноутбук, терминал, портативное устройство, смартфон и т.д., включающие постоянное хранилище данных (память компьютера), осуществляющее хранение и доступ к файлам поз эталонных движений. Компьютером-сервером 103 может быть как персональный компьютер, ноутбук, терминал, портативное устройство, смартфон, так и суперкомпьютер, облачный сервис, выделенный сервер. В качестве устройства отображения изображения 112 используют дисплей, монитор, телевизор, экран мобильного устройства, терминала, ноутбука, проектор и т.д.

Затем осуществляют запуск системы 100. Объект - пользователь 101 осуществляет двигательную активность, например, физические упражнения перед камерой 102. Далее осуществляют захват и передачу видеопотока в нейронную сеть с открытым исходным кодом 104 для получения данных о положении ключевых точек позы, составляющей оцениваемое движение упражнения пользователя, в трех измерениях в поданном кадре видеопотока. Видеопоток с камеры 102 со скоростью примерно 30 изображений в секунду, которая зависит от мощности ЭВМ 107 и/или скорости сетевого соединения 106 поступает на модуль обработки передачи позы в графическое пространство 108, который в свою очередь запускает работу модуля обработки взаимодействия с нейронной сетью 105, где осуществляется преобразование изображения в формат «numpy array» - подходящий для восприятия формат, и далее это изображение в формате «numpy array» отправляется в качестве входных данных в нейронную сеть с открытым исходным кодом 104. Модуль обработки передачи позы в графическое пространство 108 и модуль обработки взаимодействия с нейронной сетью 105 также могут взаимодействовать, например, через «websocket» по интернет-соединению. Модуль обработки взаимодействия с нейронной сетью 105 заранее должен быть активирован на компьютере-сервере (host PC) 103, так как модуль обработки передачи позы в графическое пространство 108 не запускает модуль обработки взаимодействия с нейросетью 105. Далее осуществляют последующую запись кадр за кадром полученных данных по очереди в ассоциативный массив для каждой позы пользователя и запись такого массива в файл в трех измерениях в поданном кадре видеопотока. В качестве выходных данных от нейронной сети 104 модуль обработки взаимодействия с нейросетью 105 получает массив - набор значений о положении в трехмерном пространстве 15 ключевых точек (200-215) позы пользователя 101, например, человека (см. Фиг. 2). Поза, полученная от нейронной сети 104, структурируется и преобразуется в строку в формате «JSON» и отправляет такую строку (выходные данные) через websocket-соединение в ответ на каждый кадр, присланный через сеть Интернет 106 модулем обработки передачи позы в графическое пространство 108. Одна поза представляет собой положение относительно центра отсчета координат (0,0,0) 15-ти ключевых точек (200-215) позы человека по трем координатам (x,y,z), обеспечивая распознавание позы в трехмерном формате (см. Фиг. 2). Таким образом, одна поза представляет собой 45 записей-переменных в формате «JSON». Данные с видеопотока - изображение, ранее поданное на вход нейронной сети 104 в формате «numpy array», кодируется в массив байт, который, преобразуется в строку в формате «base64string» и отправляет такую строку на компьютер-сервер 103, посредством заранее активированного на нем модуля обработки взаимодействия с нейронной сетью 105 с помощью функции «websocket.send». Структура общей строки, которая создается в Python-процессе, то есть каждый распознаваемый кадр выглядит следующим образом: "JSON | base64strmg", или "{dot0: {х:0.12, у:0.45, z:-0.31}, dot1:{х:0.4,…} | 4sddfg43dh7ignf7gqwdposc3pjn…". Далее эта строка отправляется в оперативную память ЭВМ с помощью функции «stdout.buffer.write», и далее буфер оперативной памяти очищается. Модуль обработки передачи позы в графическое пространство 108 считывает данные из оперативной памяти ЭВМ по мере подачи их запущенным модулем обработки взаимодействия с нейронной сетью 105. Передача данных через оперативную память ЭВМ значительно быстрее передачи данных с помощью записи/считывания данных из файла, что ускоряет процесс передачи точек в графическую часть и облегчает нагрузку на процессор ЭВМ.

Модуль записи в файл эталонных движений упражнения с профессионала 109 находится в следящем режиме, пока пользователю или разработчику не потребуется записать движение нового упражнения. Модуль оценивания движений упражнения 111 в реальном времени в трехмерном формате (3D) в сравнении с эталонной записью начинает работу, как только человек выберет в меню пункт, например, "Заниматься фитнесом" и система 100 начнет оценивать выполнение упражнений.

Также модуль обработки передачи позы в графическое пространство 109 десериализует данные после получения строки от модуля обработки взаимодействия с нейросетью 105: берет их из данных строки в формате JSON и записывает в переменные, а далее нормализует, посредством умножения некоторых из них на коэффициенты (-1; 1.5; -1.5) для верной систематизации точек в модулях, которые обрабатывают (оценивают и/или записывают) движения и корректного зеркального отображения ключевых точек по отношению к пользователю в графической составляющей, а данные сроки в формате «base64string» декодируются и преобразуются обратно в изображение и отображаются в графической составляющей. Таким образом происходит отображение видеопотока и точек в графическом пространстве (Фиг. 2). За графическую составляющую отвечает, например, Unity3d engine. Далее с модуля записи в файл эталонных движений упражнения с профессионала 109, модуля воспроизведения из файла записанных эталонных движений 110 и модуля оценивания движений упражнения в реальном времени в трехмерном формате в сравнении с эталонной записью 111 вычисляют и добавляют еще одну точку 216 и два вектора 217 и 218, основываясь на положениях точек, полученных от нейронной сети (Фиг. 2).

Вычисляемая точка 216 расположена посередине между точками правого и левого бедра и служит для определения положения центра таза. Первый вектор 217, расположен там же, где точка, соответствующая правому бедру 203, и направлен на левое бедро 202 и служит для определения градусной меры поворота корпуса в пространстве относительно камеры 102. Второй вектор 218 расположен там же, где точка, соответствующая правому плечу 213, и служит для определения градусной меры поворота "бюста" в пространстве относительно камеры 102.

Модуль записи в файл эталонных движений упражнения с профессионала 109 получает значения о положении 15 или более точек в реальном времени, что позволяет задать необходимую длину массива поз. При активации переменной isRecord записывает в массив поз 15 или более точек (200-215) позы человека в каждом новом кадре, полученном с камеры 102. По окончанию записи скрипт преобразует массив поз в строку формата JSON "{pose0: {dot0: {x: '0.46', у: '0.2', z: '0.65'}, …}, pose1:{dot0:{… }, … }, … }" и записывает в текстовый файл. Записывается одно упражнение за один "круг" записи. В одном файле хранится набор данных эталонных поз одного упражнения. Как представлено на Фиг. 3, одно движение (упражнение) записывается следующим способом: после нажатия кнопки "запись" профи выполняет по одному повторению упражнения, стоя перед камерой в 3-х позициях: под 45 градусов правым боком к камере Фиг. 3(а), лицом к камере Фиг. 3(b), под 45 градусов левым боком к камере Фиг. 3(с). На изображении левое плечо обозначается 302а, 302b, 302с, правое плечо обозначается 303а, 303b, 303с соответственно. После этого запись останавливается кнопкой "остановить запись" и массив поз движений записывается в файл в память компьютера 107. После окончания записи движений упражнения в модуле записи в файл эталонных движений упражнения с профессионала нужно указать номера кадров в записи (массиве поз) начала и конца повторения упражнения в каждой позиции Фиг. 3 (а, b, с) положения профессионала перед камерой 102 текущего движения. Модуль составляет из них массив, конвертирует его в строку в формате "{0,12,36,50,67,89,106}" и сохраняет в текстовый файл в памяти компьютера 107. Таким образом посредством модуля записи в файл эталонных движений упражнения мы получаем на одно упражнение 2 текстовых файла с движением, записанным в 3-х положениях относительно камеры 102 и с номерами кадров начала и конца движения в каждом из этих 3-х положений (пример: movel.txt и movel_mp.txt). Модуль воспроизведения из файла записанных эталонных движений 110 берет текстовый файл из памяти компьютера 107 с записанным массивом поз в формате JSON и десериализует JSON-строку, далее записывая ее в пустой аналогичный массив. Так же берется второй текстовый файл с номерами начальных и конечных кадров поз в 3-х позициях и аналогичным образом десериализуются данные из него. Далее этот код при активации переменной (нажатии на кнопку) присваивает физическим точкам на экране позиции точек из считанного файла по очереди кадр за кадром. Позиция позы в массиве - номер кадра при записи. Таким образом воспроизводится движение.

Модуль оценивания движений упражнения в реальном времени в 3D формате в сравнении с эталонной записью 111 получает данные о ключевых точках человека в реальном времени в 3-мерном пространстве 401, и также берет уже записанный массив поз 402, используя модуль воспроизведения из файла записанных эталонных движений 111 (Фиг. 4). Далее модуль оценивания движений упражнения в реальном времени в сравнении с эталонной записью 111 оценивает положение человека 101 в пространстве, оценивает поворот к камере 102, и подставляет соответствующую градусной мере поворота человека запись данного движения 403, 404 (если человек примерно под углом 45 градусов правым боком - подставляет и нормализует под более точный реальный угол поворота запись эталона под 45 градусов тем же боком к камере). Далее вычисляются и для воспроизводимого массива и для распознанной в реальном времени позы точка 216 и 2 вектора 217 и 218 положения соответствующих точек и векторов эталона и позы на текущем этапе выполнения движения сравниваются, с учетом переменной погрешности, которая нужна для того, чтобы задать возможную допустимую разницу движения человека 101 по сравнению с движением эталона, для допущения различного роста и пропорций тела. На базе данного сравнения алгоритм отображает на дисплее 112 ошибочные положения конечностей пользователя 101, отображая соответствующие точки красным цветом.

Таким образом, реализация на практике описанных выше системы и способа позволяет записывать движения человека, человекоподобного роботизированного устройства, изображения человека, осуществлять воспроизведение и оценку движений пользователя в реальном времени (в формате 3D) по сравнению с записанным ранее эталонным движением профессионала.

Похожие патенты RU2801426C1

название год авторы номер документа
СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ЭМОЦИОНАЛЬНОГО СОСТОЯНИЯ СОТРУДНИКОВ 2021
  • Гордеев Дмитрий Владимирович
  • Кондратьев Кирилл Андреевич
  • Островский Константин Игоревич
RU2768545C1
Способ записи, редактирования и воссоздания компьютерного сеанса 2018
  • Бекмамбетов Тимур
  • Гай Бедфорд
  • Даниэль Кехо
RU2733919C2
СПОСОБ ПЕРЕДАЧИ ДВИЖЕНИЯ СУБЪЕКТА ИЗ ВИДЕО НА АНИМИРОВАННОГО ПЕРСОНАЖА 2019
  • Ашманов Станислав Игоревич
  • Сухачев Павел Сергеевич
RU2708027C1
СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ТРЕВОЖНЫХ СОБЫТИЙ ПРИ ВЗАИМОДЕЙСТВИИ С УСТРОЙСТВОМ САМООБСЛУЖИВАНИЯ 2019
  • Балашов Александр Викторович
  • Давидов Дмитрий Георгиевич
RU2713876C1
СПОСОБ РАСПОЗНАВАНИЯ ЛИЦА НА СИСТЕМАХ КОНТРОЛЯ И УПРАВЛЕНИЯ ДОСТУПОМ 2021
  • Горбунов Вадим Александрович
  • Пех Андрей Евгеньевич
  • Гайн Ильдар Раисович
  • Абдрахманов Артур Мансурович
RU2765439C1
СПОСОБ ДИАГНОСТИКИ БОЛЕЗНИ ПАРКИНСОНА НА ОСНОВЕ АНАЛИЗА ВИДЕОДАННЫХ С ПРИМЕНЕНИЕМ МАШИННОГО ОБУЧЕНИЯ 2021
  • Сомов Андрей Сергеевич
  • Дылов Дмитрий Владимирович
  • Коваленко Екатерина Алексеевна
  • Талицкий Александр Михайлович
  • Аникина Анна Сергеевна
  • Щербак Алексей Сергеевич
RU2764568C1
Система для построения модели трехмерного пространства 2023
  • Человьян Дмитрий Владимирович
RU2812950C1
Устройство для семантической классификации и поиска в архивах оцифрованных киноматериалов 2016
  • Подлесный Сергей Юрьевич
  • Кучеренко Алексей Валентинович
RU2628192C2
СПОСОБ И КОГНИТИВНАЯ СИСТЕМА ВИДЕОАНАЛИЗА, МОНИТОРИНГА, КОНТРОЛЯ СОСТОЯНИЯ ВОДИТЕЛЯ И ТРАНСПОРТНОГО СРЕДСТВА В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ 2018
  • Гоценко Илья Павлович
  • Филистеева Мария Игоревна
  • Сысуев Артем Олегович
  • Каширин Павел Дмитриевич
  • Минасян Ваагн Володяевич
  • Мельников Сергей Геннадьевич
  • Загитов Рифкат Рифкатович
RU2684484C1
СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ЛИЦ И ПОСТРОЕНИЯ МАРШРУТА С ПОМОЩЬЮ СРЕДСТВА ДОПОЛНЕННОЙ РЕАЛЬНОСТИ 2019
  • Кудияров Дмитрий Сергеевич
  • Балашов Александр Викторович
  • Евграшин Александр Сергеевич
RU2712417C1

Иллюстрации к изобретению RU 2 801 426 C1

Реферат патента 2023 года Способ и система для распознавания и анализа движений пользователя в реальном времени

Изобретение относится к области вычислительной техники для распознавания и анализа движений пользователя в реальном времени. Технический результат заключается в повышении точности записи и распознавания позы пользователя, являющегося объектом оценивания. Технический результат достигается за счет того, что осуществляют захват и передачу видеопотока в нейронную сеть с открытым исходным кодом для получения данных о положении ключевых точек позы, составляющей оцениваемое движение упражнения пользователя, в трех измерениях в поданном кадре видеопотока, последующую запись кадр за кадром полученных данных по очереди в ассоциативный массив для каждой позы пользователя и запись такого массива в файл. Далее осуществляют оценку положений ключевых точек поочередно для каждой позы пользователя в реальном времени в сравнении с данными поз эталонного движения профессионала, полученными на основе записи движений профессионала, посредством позиционирования набора ключевых точек поз эталонного движения в соответствии с позицией и углом поворота пользователя в реальном времени по отношению к источнику видеопотока, и дальнейшее покадровое сравнение положений таких ключевых точек на конкретном этапе выполнения движения (упражнения) пользователем. 2 н. и 11 з.п. ф-лы, 4 ил.

Формула изобретения RU 2 801 426 C1

1. Способ распознавания и анализа движений пользователя в реальном времени, характеризирующийся тем, что

- вначале создают систему, включающую в себя источник видеопотока, пользователя, ЭВМ, содержащую постоянное хранилище данных (память компьютера), сетевое соединение, устройство отображения изображения, нейронную сеть для получения данных о положении ключевых точек позы пользователя в трех измерениях в поданном кадре видеопотока и модуль обработки взаимодействия с нейронной сетью, модуль обработки передачи позы в графическое пространство, модуль записи в файл эталонных движений упражнения профессионала, модуль воспроизведения из файла записанных эталонных движений и модуль оценивания движений пользователя в реальном времени в трехмерном формате в сравнении с массивом поз эталонного движения профессионала;

- после чего осуществляют захват и передачу видеопотока в нейронную сеть для получения данных о положении ключевых точек позы, составляющей оцениваемое движение упражнения пользователя, в трех измерениях в поданном кадре видеопотока, последующую запись кадр за кадром полученных данных по очереди в ассоциативный массив для каждой позы пользователя и запись такого массива в файл, при чем передачу видеопотока в нейросеть для получения данных о положении ключевых точек позы пользователя в трех измерениях в поданном кадре видеопотока, последующую запись кадр за кадром полученных данных по очереди в ассоциативный массив и запись этого массива в файл осуществляют путем кодирования изображения в массив байт, который преобразуется в строку в формате base64string, и формирования ассоциативного массива ключевых точек позы пользователя, полученных от нейронной сети, а структура общей строки, которая создаётся в модуле обработки передачи позы в графическое пространство, имеет формат: “JSON | base64string“;

- получение значения положения 15 (пятнадцати) или более ключевых точек позы одного эталонного движения профессионала в реальном времени в каждом новом кадре обеспечивают при записи в файл эталонного массива поз движения профессионала, состоящего из набора ассоциативных массивов указанных ключевых точек позы профессионала в каждом новом кадре, полученном с источника видеопотока, что позволяет задать необходимую длину массива поз, после чего посредством модуля записи в файл эталонных движений системы преобразуют массив поз в строку формата JSON “{pose0: { dot0:{x: ‘0.46’, y: ‘0.2’, z: ‘0.65’], …} , pose1:{dot0:{ … } , … }, … }” и записывают эту строку в текстовый файл таким образом, что одно движение записывается за один этап записи, а в одном файле хранится эталонный массив поз одного движения;

- причем запись одного эталонного движения осуществляют следующим образом: сначала активируют запись и профессионал выполняет по одному повторению эталонного упражнения, стоя перед источником видеопотока, например, камерой, в трех позициях: под 45 градусов правым боком к источнику видеопотока, непосредственно напротив источника видеопотока и под 45 градусов левым боком к источнику видеопотока, при этом на устройстве отображения изображения обозначаются его левое и правое плечи, после этого запись останавливают, и массив данных поз эталонных движений сохраняется в файл в память компьютера; после чего производят нумерацию кадров в полученной записи, создавая массив индексов поз начала и конца повторения движения в каждой позиции профессионала перед источником видеопотока, конвертируют такой массив в строку в формате “{0,12,36,50,67,89,106}” и сохраняют в текстовый файл в памяти компьютера, в результате чего на одно движение получают два текстовых файла: файл с эталонным массивом поз, содержащим набор ассоциативных массивов ключевых точек поз повторения движения в трех позициях относительно источника видеопотока и файл с массивом индексов поз начала и конца эталонного движения для каждой из трех позиций профессионала относительно источника видеопотока, при этом для воспроизведения движения из файла с эталонным массивом поз, сначала используют текстовый файл из памяти компьютера с записанным эталонным массивом поз в формате JSON, десериализуют JSON-cтроку и устанавливают как эталонный массив поз в системе, далее таким же образом используют второй текстовый файл, содержащий строку с массивом индексов начальных и конечных поз в трех позициях и аналогичным образом десериализуют из него данные и устанавливают в системе, после чего позиции ключевых точек из массива поз присваивают точкам на устройстве отображения ЭВМ, поочередно кадр за кадром таким образом, что индекс позы в массиве поз соответствует номеру кадра при записи;

- кроме того, при записи в файл ассоциативного массива позы, составляющей эталонное движение упражнения профессионала, при воспроизведении из файла ассоциативного массива позы эталонного движения профессионала, при оценке движений упражнения в трехмерном формате в реальном времени в сравнении с записанным эталонным движением профессионала вычисляют и добавляют еще 1 точку и 2 вектора для эталонного движения профессионала и для оцениваемого движения пользователя, основываясь на полученные от нейронной сети данные о положениях ключевых точек, при этом вычисляемая и добавляемая точка расположена посередине между точками правого и левого бедра человека и служит для определения положения центра таза человека; первый вычисляемый и добавляемый вектор расположен идентично месту расположению ключевой точки, соответствующей правому бедру, направлен на левое бедро и служит для определения градусной меры поворота корпуса человека в пространстве относительно источника видеопотока, а второй вычисляемый и добавляемый вектор расположен идентично расположению ключевой точки, соответствующей правому плечу, и служит для определения градусной меры поворота корпуса пользователя в пространстве относительно источника видеопотока;

- далее осуществляют оценку положений ключевых точек поочередно для каждой позы пользователя в реальном времени в сравнении с данными эталонных движений упражнения, полученными на основе записи движений профессионала, посредством позиционирования набора ключевых точек поз эталонного движения в соответствии с позицией и углом поворота пользователя в реальном времени по отношению к источнику видеопотока, и дальнейшее покадровое сравнение положений соответствующих ключевых точек на конкретном этапе выполнения движения пользователем и эталонного движения профессионала;

- затем обеспечивают отображение на устройстве отображения изображения результатов оценивания движений упражнения, выполненных пользователем, посредством звуковых сигналов и/или синтеза голоса, и/или графического отображения;

- при этом взаимодействие с нейронной сетью осуществляют путем получения данных о ключевых точках позы пользователя из строки в формате JSON и записи в переменные, а далее нормализуют обработку данных посредством умножения тех данных, в отношении которых требуется коррекция изображения пропорций распознаваемых ключевых точек движений пользователя в зависимости от погрешности работы нейронной сети, качества видеопотока и отличий в росте и пропорциях тела указанных объектов сравнения, на коэффициенты динамической допустимой погрешности (-1; 1.5; -1.5) для верной систематизации ключевых точек в модулях системы, которые осуществляют обработку данных движения пользователя и корректного зеркального отображения ключевых точек по отношению к пользователю в графической составляющей, а полученная строка в формате base64string декодируется и преобразуется обратно в изображение и отображается на устройстве отображений изображения.

2. Способ по п. 1, отличающийся тем, что поток изображений с источника видеопотока с помощью ЭВМ передаётся через Интернет-соединение компьютеру-серверу, который содержит запущенную нейронную сеть и подаёт в неё полученный посредством интернет-соединения поток изображений, а компьютер-сервер отправляет ассоциативный массив поз пользователя в виде строки в формате JSON обратно на ЭВМ, отправляющую компьютеру-серверу поток изображений.

3. Способ по п. 1, отличающийся тем, что осуществление/реализация результатов работы системы посредством звуковых сигналов, синтеза голоса и графического отображения содержит в том числе рекомендации по коррекции выполнения движения, количество раз, которое объект оценивания повторил движение, указание на верные/неверные положения ключевых точек позы объекта оценивания по сравнению с эталонным массивом поз на данном этапе выполнения движения.

4. Способ по п. 1, отличающийся тем, что осуществляется отображение на устройстве отображения изображения ошибочных положений конечностей пользователя, посредством обозначения соответствующих ключевых точек цветом, отличным от остальных верных положений, например, красным цветом.

5. Система распознавания и анализа движений пользователя в реальном времени, включающая источник видеопотока, пользователя, ЭВМ, содержащую постоянное хранилище данных, сетевое соединение, устройство отображения изображения, нейросеть с открытым исходным кодом, модуль обработки взаимодействия с нейронной сетью, модуль обработки передачи позы в графическое пространство, модуль записи в файл эталонных движений упражнения профессионала, модуль воспроизведения из файла записанных эталонных движений и модуль оценивания движений пользователя в реальном времени в сравнении с эталонным массивом поз, при этом модуль записи в файл поз эталонного движений упражнения осуществляет запись одного эталонного движения профессионала за один этап записи и позволяет задать необходимую длину массива поз за счет получения при начале записи с источника видеопотока значений положения 15 (пятнадцати) или более ключевых точек эталонного движения в реальном времени в каждом новом кадре, полученном с источника видеопотока, что позволяет задать необходимую длину массива поз, после чего посредством модуля записи в файл эталонных движений системы преобразуют массив поз в строку формата и преобразования скриптом массива поз в строку формата JSON “{pose0: { dot0:{x: ‘0.46’, y: ‘0.2’, z: ‘0.65’], …} , pose1:{dot0:{ … } , … }, … }” и записи этой строки в текстовый файл по окончании записи таким образом, что одно движение записывается за один этап записи, а в одном файле хранится эталонный массив поз одного движения.

6. Система по п. 5, отличающаяся тем, что модуль воспроизведения из файла эталонных движений осуществляет десериализацию эталонного массива поз записанного с профессионала движения из файла, и десериализацию массива индексов поз начала и конца выполнения эталонного движения профессионала в каждой из 3-х позиций относительно источника видеопотока.

7. Система по п. 5, отличающаяся тем, что модуль оценивания движений пользователя в реальном времени в сравнении с эталонным массивом поз движений профессионала осуществляет подстановку воспроизведённого из файла эталонного движения профессионала под соответствующее положение пользователя в реальном времени относительно источника видеопотока и осуществляет оценку и отображение ошибок/верного положения ключевых точек его позы при выполнении движения.

8. Система по п. 5, отличающаяся тем, что модуль обработки взаимодействия с нейронной сетью получает из нейронной сети ассоциативный массив с данными о положении, например, в трёхмерном пространстве 15 (пятнадцати) ключевых точек пользователя, структурирует и преобразует этот массив в строку формата JSON.

9. Система по п. 5, отличающаяся тем, что в качестве источника видеопотока могут быть использованы, например, камера, веб-камера, видеопоток из интернета, заранее записанное видео с камеры.

10. Система по п. 5, отличающаяся тем, что в качестве ЭВМ могут быть использованы, например, персональный компьютер, ноутбук, планшет, терминал, портативное устройство, смартфон.

11. Система по п. 5, отличающаяся тем, что в качестве постоянного хранилища данных могут быть использованы, например, персональный компьютер, компьютер-сервер, суперкомпьютер, облачный сервис, выделенный сервер, ноутбук, терминал, планшет, портативное устройство, мобильное устройство, смартфон.

12. Система по п. 5, отличающаяся тем, что в качестве устройства отображения изображения могут быть использованы, например, дисплей, монитор, телевизор, экран мобильного устройства, терминала, ноутбука, планшета, портативного устройства, проектора.

13. Система по п. 5, отличающаяся тем, что в качестве эталонного движения могут быть использованы движения, например, профессионала в интересующей области, человека, роботизированного человекоподобного устройства.

Документы, цитированные в отчете о поиске Патент 2023 года RU2801426C1

Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем 1924
  • Волынский С.В.
SU2012A1
US 10824954 B1, 03.11.2020
СПОСОБ И СИСТЕМА ОТСЛЕЖИВАНИЯ ДВИЖЕНИЙ ЧЕЛОВЕКА 2018
  • Куковякина Надежда Андреевна
  • Куликов Роман Сергеевич
  • Царегородцев Дмитрий Викторович
RU2736876C2

RU 2 801 426 C1

Авторы

Большаков Эмиль Юрьевич

Даты

2023-08-08Публикация

2022-09-18Подача