Научная статья на тему 'АЛГОРИТМ РАСЧЕТА УГЛОВ МЕЖДУ ОПОРНЫМИ ТОЧКАМИ ДЛЯ РАСПОЗНАВАНИЯ ПОЗ'

АЛГОРИТМ РАСЧЕТА УГЛОВ МЕЖДУ ОПОРНЫМИ ТОЧКАМИ ДЛЯ РАСПОЗНАВАНИЯ ПОЗ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3
1
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
OpenCV / распознавание движений / ориентиры позы / расчет углов на плоскости / Python. / OpenCV / motion recognition / posture landmarks / calculation of angles on a plane / Python.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Назина С. Л.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ALGORITHM FOR CALCULATING ANGLES BETWEEN REFERENCE POINTS FOR POSITION RECOGNITION

The article describes an algorithm for calculating angles between reference points for recognizing poses on a video stream from a camera. The process of placing key landmarks on the image, their location and calculation of angles between them is described. The recognition of four poses using this technique is implemented.

Текст научной работы на тему «АЛГОРИТМ РАСЧЕТА УГЛОВ МЕЖДУ ОПОРНЫМИ ТОЧКАМИ ДЛЯ РАСПОЗНАВАНИЯ ПОЗ»

МАТЕМАТИКА, ИНФОРМАТИКА И ИНЖЕНЕРИЯ

УДК 004.02

Назина С.Л. студент магистратуры преподаватель СПО НИУ «БелГУ» Россия, г.Белгород

АЛГОРИТМ РАСЧЕТА УГЛОВ МЕЖДУ ОПОРНЫМИ ТОЧКАМИ

ДЛЯ РАСПОЗНАВАНИЯ ПОЗ

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

Ключевые слова: OpenCV, распознавание движений, ориентиры позы, расчет углов на плоскости, Python.

Nazina S.L. undergraduate student teacher of vocational education National Research University "BelSU",

Russia, Belgorod

ALGORITHM FOR CALCULATING ANGLES BETWEEN REFERENCE POINTS FOR POSITION RECOGNITION

Abstract. The article describes an algorithm for calculating angles between reference points for recognizing poses on a video stream from a camera. The process of placing key landmarks on the image, their location and calculation of angles between them is described. The recognition of four poses using this technique is implemented.

Keywords: OpenCV, motion recognition, posture landmarks, calculation of angles on a plane, Python.

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

Распознавание движений имеет широкий спектр применений, включая следующие области:

1. Взаимодействие с устройствами: управление устройствами без использования рук, например, с помощью жестов или движений головы.

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

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

4. Виртуальная и дополненная реальность: создание интерактивных сценариев или игр, в которых пользователь может взаимодействовать с виртуальным окружением с помощью своих движений [1].

Для работы алгоритма по расстановке ориентиров на позе при загрузке видеопотока с помощью библиотеки OpenCV необходимо считать образец изображения с помощью функции cv2.imread(), а отобразить его посредством matplotlib библиотеки.

После этого необходимо передать изображение в конвейер машинного обучения для определения позы с помощью функции mp.solutions.pose.Pose().process(). Но так как конвейер ожидает входные изображения в RGB цветном формате, то сначала нужно преобразовать образец изображения из BGR в RGB формат с помощью функции cv2.cvtColor(), поскольку OpenCV считывает изображения в BGR формате (вместо RGB).

После выполнения определения позы на выход поступает список из тридцати трех ориентиров, представляющих места расположения суставов тела видного человека на изображении. Каждый ориентир обладает следующими параметрами: x: расположение по координате x, по ширине изображения; y: расположение по координате y, по высоте изображения; z: расположение по z-координате, нормализованный примерно к тому же масштабу, что и x, он представляет глубину ориентира, в качестве исходной точки используется средняя точка бедер, чем меньше z, тем ближе ориентир к камере; visibility: значение, представляющее видимость ориентира [2-3].

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

mp.solutions.drawing_utils.draw_landmarks() и отобразить результирующее изображение с помощью matplotlib библиотеки.

Для того, чтобы классифицировать позы по полученным ориентирам необходимо рассчитать угол между тремя определенными ориентирами. Так, чтобы рассчитать угол сгиба левой руки в локте необходимо найти угол между левым запястьем, левым локтем и левым плечом. По сути, для этого происходит расчет угла между двумя векторами, где первая опорная точка считается начальной точкой первого вектора, вторая - конечной точкой

первого вектора, а также начальной точкой второго вектора, а третья -конечной точкой второго вектора.

При реализации окно видеосигнала с вебкамеры обновляется каждые десять секунд для ввода нового символа (позы пароля). Распознавание позы «Обе руки наверху» представлено на рисунке 1.

Рисунок 1 - Распознавание позы «Обе руки наверху» Распознавание позы «Правая рука наверху» представлено на рисунке

2.

Рисунок 2 - Распознавание позы «Правая рука наверху»

Распознавание позы «Левая рука наверху» представлено на рисунке

3.

Рисунок 3 - Распознавание позы «Левая рука наверху»

Распознавание позы «Т-поза» представлено на рисунке 4.

VH

Рисунок 4 - Распознавание позы «T-поза»

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

Использованные источники:

1. Колегаев, Б.Я. Методика построения человеко-машинного интерфейса для управления компьютером на основе библиотеки mediapipe / Б.Я. Колегаев // Молодой исследователь Дона. - 2023. - № 1(40) - С. 5-10.

2. Залуская, Е.Е. Определение положения тела человека: сравнение mediapipe и openpos / Е.Е. Залуская, А.А. Тур // Наукосфера. - 2023. - № 82 - С. 53-57.

3. Ткаченко, С.В. Система компьютерного зрения в мобильных устройствах / С.В. Ткаченко, Т.В. Смирнова // Журнал Белорусского государственного университета. - 2022. - № 4 - С. 4-14

i Надоели баннеры? Вы всегда можете отключить рекламу.