Информационно-управляющие системы
УДК 004.93'12
РАЗРАБОТКА ПРОГРАММНОЙ БИБЛИОТЕКИ РАСПОЗНАВАНИЯ ПАТТЕРНОВ ДВИГАТЕЛЬНОЙ АКТИВНОСТИ В РЕАЛЬНОМ ВРЕМЕНИ
А. А. Канашкин
Специальное конструкторско-технологическое бюро «Наука» КНЦ СО РАН Российская Федерация, 660049, г. Красноярск, просп. Мира, 53 E-mail: antonka@dmdevelopment.ru
Рассмотрена арихтектура программной библиотеки для распознавания жестов (паттернов) в реальном времени из видеопотока. Приводится пошаговый пример работы библиотеки. Предложены алгоритмы и комплект разработки, необходимые для реализации библиотеки. Подобная библиотека может применяться при создании механических систем для проведения работ в космосе.
Ключевые слова: распознавание жестов, реальное время, видеопоток, программная библиотека.
REAL-TIME MOTOR ACTIVITY PATTERN RECOGNITION LIBRARY DEVELOPMENT
A. A. Kanashkin
Special Designed Technological Bureau "Nauka" KSC SB RAS 53, Mira Av., Krasnoyarsk, 660049, Russian Federation E-mail: antonka@dmdevelopment.ru
The architecture of program library for real-time video stream gesture (pattern) recognition is studied. A step-by-step example of the library's work is given. Necessary algorithms and SDK for library's development are offered. This library can be used to develop mechanical systems for work in the space.
Keywords: gestures recognition, real-time, video stream, program library.
Распознавание образов (объектов, сигналов, ситуаций, явлений или процессов) - это самая распространенная задача, которую человеку приходится решать практически ежесекундно от первого до последнего дня своего существования. Множество визуальных образов в окружающем мире является наиболее объемным источником для человека.
Благодаря развитию технологий, перспектива обучить современные компьютеры распознаванию образов становится реальностью. Это позволит человеку и компьютеру общаться на вполне естественном для человека языке образов и жестов.
Обучив машину распознаванию образов, возможно будет эмулировать бытовое общение между людьми. Сфера применения подобных технологий широка: начиная от систем, помогающих в ежедневных делах, заканчивая устройствами управления сложными системами. Примером последнего может быть система, позволяющая космонавту, не выходя в открытый космос, управлять механической рукой, работающей снаружи с инструментом.
В настоящее время подобные разработки ведутся такими корпорациями, как Microsoft (Handpose) [4], Intel (RealSense) [5] и многие другие разработчики.
Целью данной работы является разработка программной библиотеки, способной считывать движение руки пользователя и сопоставлять считанную информацию с некоторым паттерном, который хранится в базе данных. Подобные системы необходимы при разработке программ с поддержкой человеко-машинных интерфейсов.
Необходимость этой работы обоснована тем, что разработчикам приходится сталкиваться с ограничениями, накладываемыми поставщиками технологии и SDK, с необходимостью изучения особенностей их работы и использования. Предложена библиотека, способная взять на себя задачу поддержки различных технологий, а также предоставляющая инструменты для создания базы паттернов жестов для распознавания, необходимых конечному пользователю, в дополнение ко встроенным алгоритмам распознавания жестов.
Система в реальном времени получает данные с инфракрасного датчика, размещенного на расстоянии 0,4-0,8 м от пользователя, обычно, закрепленного на экране монитора или встроенного в панель ноутбука. Полученные данные обрабатываются входным фильтром, преобразовываются в совместимый формат и направляются требуемому модулю.
Изначально данные с датчика при обработке каждого кадра представляют собой набор («отпечаток» -snapshot) трехмерных координат кончиков пяти пальцев, центров ладони и кисти. На основе этих данных создается кинематическая модель руки: используя инверсную кинематику, строится и корректируется виртуальная моделей физической руки пользователя, в которой рассчитаны координаты остальных десяти точек (костей пальцев) [3].
После обработки кадра данные - координаты всех 17 костей - с виртуальной модели передаются распознавателю.
Распознаватель является совокупностью математических алгоритмов, решающих задачу классифика-
Решетнеескцие чтения. 2015
ции набора данных. В его памяти хранится совокупность пар «запись, класс»: запись - последовательность координат ключевых точек руки пользователя во времени, класс - уникальный идентификатор данной последовательности (целое число, хеш-сумма, подсчитанная на этапе создания нового жеста). Алгоритм во время своей работы принимает на входе обработанный и приведенный к совместимому формату сигнал с инфракрасного датчика, относит данный сигнал к некоторому классу (либо ни к одному из них) и на выходе выдает следующий результат: класс жеста (0 в случае несоответствия ни одному из них) и степень соответствия.
В качестве распознавателя может использоваться алгоритм-классификатор, который:
- должен быть подвержен машинному обучению;
- способен обрабатывать матрицы со строками одинаковой размерности;
- способен обрабатывать матрицы различной длины.
Полученные с датчиков данные ни в коем случае не могут быть похожи друг на друга, даже если это два максимально идентичные друг другу движения. Алгоритм должен быть устойчив к колебаниям входных данных в определенных диапазонах, обеспечивая при этом высокую точность распознавания. Добиться этого позволяет обучение алгоритма распознавателя на схожих примерах одного и того же движения, причем, чем больше будет повторений, тем выше будет точность.
В то же время, данные из видеопотока могут иметь различную длину: раньше/позже началась/закончилась запись, изменилась дискретность записи, добавились шумы и т. д.
В системе будут использоваться скрытые марковские модели (СММ/НММ) [1] и алгоритм Dynamic Time Warping (DTW) [2], так как они полностью соответствуют данным требованиям. Планируется провести исследование результатов работы алгоритмов с
целью определения их поведения в различных ситуациях.
В качестве устройств ввода будет использоваться комплект Intel RealSense, оснащенный камерой глубины, способный записать в реальном времени, обработать видеоизображения и создать в памяти компьютера скелетную модель руки пользователя [3].
Разрабатываемая библиотека будет иметь возможность переключения «на лету» между устройствами ввода, алгоритмами распознавания, их конфигурациями и конкретными моделями распознавателей, обученных разными наборами данных.
References
1. Wilson Andrew D., Bobick Aaron F. Hidden Markov Models for Modeling and Recognizing Gesture Under Variation. URL: http://research.microsoft.com/en-us/um/people/awilson/publications/old/ijprai.pdf (accessed: 31.8.2015).
2. Gillian Nicholas, Knapp R. Benjamin, O'Modhrain Sile. Recognition Of Multivariate Temporal Musical Gestures Using N-Dimensional Dynamic Time Warping. URL: http://www.nickgillian.com/papers/Gillian_NDDTW. pdf (accessed: 31.8.2015).
3. Stan Melax, Leonid Keselman, Sterling Orsten Dynamics Based 3D Skeletal Hand Tracking // Graphics Interface Conference (29-31 May 2013, Regina, Saskatchewan, Canada). URL: http://lkeselman.com/wp-content/uploads/2013/01/p63-melax.pdf (accessed: 8.31.2015).
4. Microsoft Research Fully Articulated Hand Tracking. URL: http://research.microsoft.com/en-us/ projects/handpose/ (accessed: 4.9.2015).
5. Intel RealSense Overview. URL: http://www.mtel. eu/content/www/eu/en/architecture-and-technology/realen-se-overview.html (accessed: 4.9.2015).
© Канашкин А. А., 2015
УДК 621.37
РАЗРАБОТКА И ПРОЕКТИРОВАНИЕ УСТРОЙСТВА ДЛЯ СЛЕЖЕНИЯ ЗА МЕСТОНАХОЖДЕНИЕМ И ПЕРЕДВИЖЕНИЕМ РОБОТОТЕХНИЧЕСКОГО КОМПЛЕКСА ДЛЯ БЕСТРАНШЕЙНОЙ ПРОКЛАДКИ ПОДЗЕМНЫХ КОММУНИКАЦИЙ
С. А. Клешнина, В. Ю. Клешнин
Сибирский федеральный университет Российская Федерация, 660041, г. Красноярск, просп. Свободный, 79 E-mail: sofya.antipckina@yandex.ru
Описываются этапы разработки и проектирования устройства для слежения местонахождения и передвижения робототехнического комплекса. Рассмотрены основные принципы построения данного устройства. Составлена структурная схема устройства и представлена её реализация в программе Altium Designer.
Ключевые слова: робототехнический комплекс, бестраншейная прокладка подземных коммуникаций, абсолютный датчик ориентации.