УДК 004.93.11, 004.354
А. В. Хельвас1, Н.Г. Беляйкина2, А. А. Гиля-Зетинов3, Д. Д. Черникова3, В. М. Шабунин3, Е. О. Япрынцев4
ХООО «Лаборатория моделирования систем» 2Национальный исследовательский университет МИСИС 3Московский физико-технический институт (государственный университет) 4Московский инженерно-физический институт
Распознавание жестов с помощью нейронной сети и применение этого подхода для создания игровых гаджетов нового поколения
В статье рассмотрена задача распознавания жестов, выполняемых жезлом (палочкой), находящимся в руке человека, на основе анализа потока данных с инерциального модуля, встроенного внутрь палочки. Для анализа использована рекуррентная нейронная сеть с долгой краткосрочной памятью. Приведены результаты эксперимента по распознаванию четырех простейших жестов. Для результатов распознавания даны традиционные метрики, описывающие их качество.
Ключевые слова: распознавание жестов, инерциальный датчик, нейронная сеть, волшебная палочка.
A. V. Helvas1, N. G. Belyaikina2, A. A. Gilya-Zetinov3, D.D. Chernikova3, V. M. Shabunin3, Y. O. Yapryntsev4
1 Systems Simulation Laboratory LLC 2 The National University of Science and Technology MISiS 3Moscow Institute of Physics and Technology (State University) 4 Moscow Engineering Physics Institute
Gesture recognition by neural network and its implementation for the new generation of interactive
gadgets for children
The article deals with the problem of recognizing gestures performed by a stick, which is in the person's hand on the basis of data stream analysis from the inertial measurement unit module inside the stick. The Long shortterm memory (LSTM) neural network is used for analysis. The results of four simplest guestures recognition experiment are presented. For the results оf recognition, the common quality metrics are presented.
Key words: gesture recognition, IMU, LSTM neural network, magic stick.
1. Введение
26 июня 2017 года весь мир отметил 20-летие со дня выхода первой книги о Гарри
Поттере. Популярность серии фильмов про Гарри Поттера является уникальным культурологическим явлением, породившим целую индустрию игровых гаджетов, повторяющих те, которыми пользовались герои фильма.
Современные технологии позволяют частично реализовать функционал волшебной палочки. На Amazon.com продается устройство Harry Potter Magic Wand (рис. 1), которое с помощью встроенного инерциального модуля IMU обеспечивает распознавание 13 жестов и может ставить им в соответствие команды, передаваемые внешнему устройству через инфракрасный порт.
Таким образом, «волшебная палочка» оказывается интересным элементом «Интернета вещей» в качестве инструмента управления IoT-устройствами для детей и подростков.
C нашей точки зрения, несмотря на наличие у ИК-порта таких достоинств, как простота реализации процесса управления, использованный авторами подход имеет ряд существенных недостатков:
• наличие весьма ограниченного набора внешних устройств, имеющих встроенный ИК-порт управления;
• невозможность гибкой перенастройки с одного объекта управления на другой;
• невозможность управления объектами в виртуальной и дополненной реальности.
Прикладной целью работы является создание прототипа волшебной палочки, лишенного перечисленных недостатков и встроенного в единую облачную инфраструктуру В рамках данной статьи описаны:
• конструкция макета, на основе которого проводились исследования;
• алгоритм распознавания жестов с помощью нейронной сети;
• результаты проведенных экспериментов.
2. Описание аппаратной части решения
При разработке дизайна и конструкции решения мы исходили из того, что оно относится к индустрии технических игрушек и предназначено для управления игровыми устройствами, оснащенными механизмами управления в рамках концепции IoT (Internet of Things).
2.1. Описание макета устройства
Разработанный макет устройства, использованный далее в экспериментах, имеет следующие технические характеристики:
• протоколы подключения к сети: Wi-fi IEEE 802.11 и Bluetooth IEEE 802.15.1;
• время беспрерывной работы без подзарядки аккумулятора - 4 часа;
• вес устройства 150 г;
• макет устройства имеет форм-фактор цилиндра с размерами: диаметр 31 мм, длина 202 мм (при конструировании финальной версии изделия диаметр будет уменьшен до 18 мм);
• диапазон рабочих температур: -5... +40 °С;
Рис. 1. Устройство «Harry Potter Magic Wand»
• напряжение питания +5 В;
• частота опроса датчиков 1Ми 300 Гц;
• корпус устройства и общие требования по безопасности должны соответствовать ГОСТ 25779-90;
• допустимая температура окружающей среды от - 10°С до +40°С;
• влажность не более 90%.
Решение работает следующим образом.
При выполнении жеста с помощью однокристалльного 1Ми 9255 (9-координатное устройство позиционирования) происходит измерение линейных и угловых ускорений и изменения вектора напряженности магнитного поля Земли. Далее с помощью микроконтроллера STM32F051x происходит предварительная обработка полученных данных и далее передача информации с помощью —ьй-модуля ESP8266 в приложение с развёрнутой рекуррентной нейронной сетью в облаке. Нейросеть, основываясь на полученных данных, распознает жесты и формирует управляющий сигнал.
Схема решения представлена на рис. 2.
Рис. 2. Охема устройства
В состав устройства входят:
• блок питания, для подачи постоянного напряжения +3.7 В для работы всех модулей устройства;
• контроллер, являющийся аппаратно-программным интерфейсом для всей периферии;
• модуль индикации осуществляет индикацию состояния работы устройства;
• модуль управления необходим для выбора режимов работы;
• 9-координатный 1Ми, предназначенный для регистрации параметров движения устройства;
• приёмопередатчик выполняет функцию обеспечения сетевого взаимодействия с программным обеспечением на сервере и объектом управления.
В составе макета использован микроконтроллер STM32f4, обладающий избыточными для серийного образца характеристиками, но позволяющий проводить эксперименты по уточнению возможностей разрабатываемого решения при переходе к задачам биометрической идентификации пользователя и диагностики состояния пользователя, которые выходят за рамки данной статьи.
Устройство индикации подключается к регистрам общего назначения и представляет собой RGB-светодиод, обеспечивающий обратную связь с пользователем. В случае если устройство потеряет связь с сетью, загорается синий светодиод. Об успешном распознавании жеста сообщает зелёный светодиод. При возникновении проблем - красный.
Для связи с сетью использован подключенный через UART приёмопередатчик ESP8266. который обеспечивает взаимодействие по протоколу -т-й.
Заявленную автономность в 4 часа поддерживает встроенный литий-ионный аккумулятор ёмкостью 2800 мАч с выходным напряжением +5 В и регулятор напряжения LP2985AIM5.
Внешний вид разработанного макета устройства приведен на рис. 3.
Прототип, 1 версия устройства для управления игрушками на основе распознавания жестов, представлен на рис. 3.
Рис. 3. Макет устройства для управления на основе распознавания жестов
На рис. 4 изображена система управления игрушкой с -т-й-интерфейсом.
Рассмотрим принцип соединения с управляемым устройством-игрушкой. Так как устройство «привязано» к домашней сети, достаточно программно реализовать распознавание её МАС-адреса. Посылка команды управления содержит служебную информацию (адрес и т.д.) и код управляющей команды.
Устройство "Волшебная палочка"
Блок питания Контроллер Модуль индикации Модуль управления модуль 1ми
1оТ игрушка
Исполнительные устройства
Приемник
Облачная вычислительная система
Нейронная сеть
Сеть управления логикой
Рис. 4. Система управления 1оТ-устройствами
2.2. Реализация сенсорной поверхности устройства
Для передачи дополнительных сигналов устройству предложен принципиально новый подход к реализации сенсорного датчика.
На поверхность ручки гаджета 1, являющуюся изолятором, наносится ряд металлизированных площадок с электрическими контактами 4 (см. рис. 5).
Для формирования контактов может использоваться, например, технология травления проводящего слоя 2.
Далее на поверхность наносится слой пластика, в котором находится некоторое количество одностенных углеродных нанотрубок. Благодаря нанотрубкам слой 3 становится проводящим.
За счет влияния прикосновений пальцем 5 на сопротивление между контактами К^п мы получаем возможность по набору Ккп решить задачу определения положения пальца относительно поверхности.
Изучение возможностей управления проводимостью слоя 3 путем изменения его толщины ! и создания градиента концентрации нанотрубок по оси X выходит за рамки данной публикации.
Также представляет интерес возможность обработки слоя 3 механическим способом или лазерным лучом с целью управления проводимостью слоя 3.
Рис. 5. Предлагаемое решение для сенсорной поверхности устройства
3. Алгоритмы распознавания жестов
3.1. Описание решения
Для распознавания жестов предложено применить подход, основанный на использовании рекуррентной нейронной сети с долгой краткосрочной памятью (Long short-term memory, LSTM). Данный вид сетей ранее успешно применялся при решении схожей задачи распознавания движений руки по показаниям акселерометра «умных» часов [2], а также задачи определения вида деятельности человека по нескольким датчикам (HAR) [3], [4].
3.2. Исходные данные
Обучающая выборка представляет собой совокупность потоков данных, каждый их которых содержит серию жестов, совершенных одним пользователем.
Каждый элемент потока содержит в себе:
1) прошедшее время ti с момента начала записи;
2) измеренный вектор ускорения Ai;
3) измеренный вектор угловой скорости Ui;
4) измеренный вектор напряженности магнитного поля Mi;
5) строковое поле Mvi, равное коду жеста в момент начала его исполнения и «none» - в остальные моменты времени (это поле необходимо для обучения классифицирующего алгоритма и присутствует только в потоках данных из обучающей выборки).
Для обучения и классификации непрерывный поток данных разбивается на перекрывающиеся участки фиксированной длины tw, с постоянным расстоянием между ними At. Размер участка должен превышать ожидаемую продолжительность жеста tmove.
Использованные в работе значения составили: tw - 2 секунды, tmome - 1.5 секунды, At - 200 миллисекунд.
В зависимости от степени перекрытия участка с размеченными с помощью поля Mvi областями жестов, при обучении классификатора возможны следующие варианты.
1) Участок не пересекается ни с одним из размеченных в потоке жестов либо доля его пересечения ниже некоторого предела r. В таком случае участку присваивается класс «none».
2) Один из размеченных жестов полностью содержится внутри участка. В этом случае участку присваивается класс, соответствующий классу совершенного жеста.
3) Участок пересекается с размеченным жестом M, и доля его пересечения выше предела r. Это - особый случай. С одной стороны, доля пересечения может быть недостаточна для определения жеста, и поэтому участок не может быть однозначно размечен классом M. С другой стороны, определение классификатором этого участка как M ошибкой не является. Исключение этих участков из обучающей выборки может привести к ложным классификациям на границах совершаемых жестов, поэтому таким участкам присваиваются сразу два класса - «none» и M, особым образом учитываемых в алгоритме обучения классификатора.
Полученная совокупность участков в дальнейшем обрабатывается независимо.
3.3. Предварительная обработка
Решение задачи поиска и классификации жеста на участке разбивается на этапы.
1) Перевод показаний акселерометра в неподвижную систему координат.
2) Переход в систему отсчета, инвариантную относительно направления жеста.
3) Преобразование последовательности значений ускорения в последовательность векторов, инвариантную относительно операции растяжения по времени.
4) Классификация полученной последовательности векторов и вектора дополнительных признаков при помощи нейронной сети.
Переход в неподвижную систему координат осуществляется методом оценки ориентации устройства по показаниям акселерометра, гироскопа и магнитометра. Этот алгоритм описан, например, в [1].
Используется гипотеза о том, что существует некоторая плоскость, приближающая траекторию жеста достаточно хорошо, и нормаль к этой плоскости и будет является направлением жеста.
Формально это можно записать следующим образом.
Пусть Ai - ускорение устройства в неподвижной системе координат в момент времени ti, п1 - нормаль, pi - радиус-вектор некоторой точки плоскости. Тогда параметры этой плоскости можно определить путем минимизации суммы квадратов расстояний от точек в пространстве ускорений до этой плоскости :
n
min^((Ai - pi)ni)2. (1)
nUP i=i
Полученная нормаль этой плоскости ni используется в качестве первого базисного вектора для новой системы координат.
Вторым базисным вектором является проекция вектора ускорения свободного падения g на полученную плоскость.
Третий базисный вектор Пз берется равным векторному произведению ni и П2.
После перехода в систему координат {ni,n2,n3} проводится ряд преобразований:
1) к каждой компоненте ускорения ai,j ,j Е [1, 3], в новой системе координат применяется 1-мерный гауссов фильтр;
2) из последовательности векторов ускорения удаляются все элементы за исключением локальных максимумов и минимумов компонент а^1,а^2;
3) все значения нормируются на максимум модуля соответствующей компоненты;
4) в вектора экстремумов добавляются новые компоненты. Компонента а^4 равна индексу компоненты, экстремум, который наблюдается в данном векторе - в диапазоне [0,1]. Компонента а^5 равна 1 в случае максимума, 0 - в случае минимума.
Полученная последовательность 5-компонентных векторов имеет, как правило, небольшой размер и пригодна в качестве входных данных для классификатора на основе рекуррентной нейронной сети.
Помимо последовательности aij, на вход сети подается также вектор дополнительных признаков bi:
1) bi - z-компонента (сонаправленная с вектором гравитационного поля Земли) вектора п1;
2) b2 - z-компонента вектора п2;
3) Ьз - максимум модуля ai (до нормировки), деленный на g;
4) b4 - максимум модуля а2 (до нормировки), деленный на g.
3.4. Структура нейронной сети
Предлагаемая архитектура сети, размеры слоев и функции активации изображены на рис. 6. Размер последнего слоя совпадает с числом распознаваемых жестов.
Результатом работы нейронной сети являются вероятности pi, i е [0,N], где N - число жестов, po - вероятность того, что на данном участке жест совершен не был.
В качестве алгоритма оптимизации весов сети использовалась разновидность стохастического градиентного спуска - алгоритм ADAM [5]. Сеть обучалась на 70% от собранных данных, остальные 30% использовались для валидации.
Рис. 6. Структура нейронной сети
4. Обсуждение экспериментальных результатов 4.1. Постановка эксперимента
Для построения обучающей выборки был использован следующий сценарий.
Участник обучающей группы берет в палочку с установленным программным обеспечением и включает запись. Далее повторным нажатием кнопки отмечает начало жеста и совершает жест.
Аналогичным образом участник совершает серию движений одного типа. Далее двукратным нажатием кнопки выключает запись. Аналогично участник проводит запись серии жестов для движений других типов.
Был проведен эксперимент с десятью участниками для четырех простейших видов движений:
• влево-вправо (жест С\);
• вверх-вниз (жест С2);
• круговое движение по часовой стрелке (жест Сз);
• круговое движение против часовой стрелки (жест С4).
Также результатом может быть решение «ни один из перечисленных», которому поставим в соответствие обозначение Со.
Для обучения нейросети была использована часть массива данных, включающая в себя жесты, полученные от первых семи участников эксперимента. Жесты оставшихся трех участников были использованы для валидации полученных результатов.
4.2. Оценка эффективности алгоритма
В простейшем случае метрикой, служащей для определения эффективности алгоритма, может быть величина A (Accuracy):
A=N
где P - количество жестов, по которым классификатор принял правильное решение, а N - размер обучающей выборки.
Однако эта метрика не дает исчерпывающего представления об эффективности алгоритма в случае, когда доля жестов сильно смещена в сторону какого-нибудь класса.
Для более эффективной оценки воспользуемся таким понятием, как матрица неточностей.
Матрица неточностей - матрица размера N х N, где N - количество классов (в нашем случае N = 4). Столбцы этой матрицы резервируются за экспертными решениями, а строки - за решениями классификатора. Когда мы классифицируем жест из тестовой выборки, мы инкрементируем число, стоящее на пересечении строки класса, который вернул классификатор, и столбца класса, к которому действительно относится жест.
Для определения эффективности алгоритма используем также понятия полноты (precision) и точности класса (recall), а также F-меры алгоритма.
Точность системы в пределах класса - доля исходов, действительно принадлежащих данному классу относительно всех исходов, которые система отнесла к этому классу.
Полнота системы - доля найденных классификатором исходов, принадлежащих классу относительно всех исходов этого класса в тестовой выборке.
Точность класса равняется отношению соответствующего диагонального элемента матрицы неточностей и суммы всей строки класса.
Полнота класса равняется отношению диагонального элемента матрицы и суммы всего столбца класса.
Результирующая точность классификатора рассчитывается как арифметическое среднее его точности по всем классам. Аналогичным образом рассчитывается полнота.
Precision = Ac'c
Recallc =
A •' Z^i=l AC'i
Ac'c
£1=1 Ai
Л=12 ^C
F-мера представляет собой гармоническое среднее между точностью и полнотой нашего алгоритма:
2 * Precision * Recall
F =-.
Precision + Recall
4.3. Особенности обработки полученных результатов
Назовем действительным тот тип жеста, который совершил участник эксперимента. Если алгоритм в качестве результата выдаст не тот жест, который совершил участник эксперимента, назовем такой жест ошибочным.
Алгоритм разбивает полученный файл с серией жестов на отдельные фреймы.
В случае, если фрейм попадает в промежуток времени, когда не совершалось жеста, или промежуток, полностью лежащий внутри отрезка времени совершения жеста, данные в столбцах Expected и Required совпадают. В этом случае мы считаем, что классификатор правильно определяет тип жеста, если то же значение имеет колонка Result.
В случае, когда фрейм частично попадает на отрезок времени совершения жеста, а частично - на отрезок, где жест не совершается, допустимо получить в качестве результата как действительный жест Gi — G4, так и Go. Это не будет являться ошибкой, поэтому необходимо дополнительно указать, как такие случаи будут учитываться при вычислении матрицы неточностей.
Обозначим ячейку матрицы неточностей как «Столбец-Строка». Где первое значение -название столбца, т.е. экспертное решение, а второе - название строки, т.е. решение классификатора.
В таком случае, если Required не совпадает с Expected, а Result - это действительный жест либо Go, увеличиваем на 1 значение в ячейке «Действительный жест-Действительный жест».
Если же Result - это ошибочный жест, увеличиваем на 0.5 значение в ячейке «Действительный жест-Ошибочный жест» и в ячейке «None-Ошибочный жест».
4.4. Результаты вычисления метрик
Матрица неточностей - это матрица размера 5 на 5. Столбцы этой матрицы резервируются за экспертными решениями, а строки - за решениями нашего классификатора.
Число, стоящее на пересечении строки класса, который вернул классификатор, и столбца класса, к которому действительно относится данное измерение во время классификации описывает точность реализуемого подхода.
В табл. 1 приведена матрица неточностей для обучающей выборки, а в табл. 2 - матрица неточностей для валидационной выборки.
Таблица1
Матрица неточностей для обучающей выборки
none leftright updown clockwise counterclck
none 3697.0 11.0 23.0 7.0 2.0
leftright 61.5 1384.0 2.0 1.0 0.5
updown 29.0 0.0 1657.0 0.0 0.0
clockwise 29.0 0.5 1.5 1524.0 0.0
counterclck 52.0 0.5 0.5 0.0 1524.0
Таблица2
Матрица неточностей для валидационной выборки
none leftright updown clockwise counterclck
none 784.0 6.0 24.0 0.0 0.0
leftright 21.0 430.0 0.0 0.0 0.0
updown 15.0 0.0 465.0 0.0 0.0
clockwise 10.0 1.0 0.0 451.0 0.0
counterclck 12.0 0.0 0.0 0.0 429.0
По результатам эксперимента для обучающей выборки были получены метрики, приведенные в табл. 3.
ТаблицаЗ
Метрики для обучающей и валидационной выборки
Обучающая выборка Валидационная выборка
Accuracy 0.9779 0.9664
Precision 0.9746 0.9669
Recall 0.9848 0.9732
F-Measure 0.9797 0.9700
Как видно, для трех человек, не участвовавших в обучении классификатора, получены очень хорошие результаты. Это говорит о высокой эффективности предложенного алгоритма классификации.
Были также рассчитаны таблицы контингентности для каждого класса жестов.
Недиагональные элементы таблицы контингентности соответствуют вероятностям ложно-положительных и ложно-отрицательных срабатываний алгоритма.
Нужно заметить, что для класса жестов Со число ложно-положительных решений соответствует количеству случаев ошибочного пропуска жеста.
Соответственно число ложно-отрицательных срабатываний соответствует количеству случайных срабатываний алгоритма в то время, когда жест пользователем на самом деле не выполняется и обнаружение движения произошло случайно.
Изменяя требования к числу ложно-отрицательных срабатываний, мы можем управлять «чувствительностью» алгоритма.
Вероятности для всех классов указаны в процентах.
Таблица4
Таблица контингентности для использованных классов
Экспертная оценка
Положительная Отрицательная
Оценка системы для класа Go «None» Положительная 95.1 0.9
Отрицательная 5.9 99.1
Оценка системы для класса Gi «L-R» Положительная 99.0 0.8
Отрицательная 1.0 99.2
Оценка системы для класса G2 «U-D» Положительная 97.7 0.4
Отрицательная 2.3 99.6
Оценка системы для класса G3 «CW» Положительная 99.6 0.4
Отрицательная 0.4 99.6
Оценка системы для класса G4 «CCW» Положительная 99.9 0.6
Отрицательная 0.1 99.4
4.5. Размер обучающей выборки
Можно считать, что размер обучающей выборки является достаточным, если удается определять жесты с заданными вероятностными характеристиками.
В нашем эксперименте размер обучающей выборки был весьма невелик, но позволил определять жесты с параметрами, указанными в табл. 4. Достоверность распознавания оказалась для нашей выборки весьма высокой. Предполагается провести целенаправленное исследование параметров распознавания для различных выборок и различных групп пользователей, но эта работа выходит за рамки настоящего исследования.
При добавлении новых жестов систему необходимо будет дообучить, дополнив обучающую выборку таким образом, чтобы в результате параметры распознавания были лучше минимально приемлемых.
5. Выводы
В статье был предложен оригинальный подход к распознаванию жестов, выполняемых манипулятором в форм-факторе дирижерской или игровой палочки на основе реккурент-ной нейронной сети с долгой краткосрочной памятью (ЦГБМ).
Продемонстрировано эффективное распознавание несложных жестов разработанной нейронной сетью и возможность пополнения библиотеки распознаваемых жестов. Для полученных экспериментальных данных проведен расчет качества распознавания и подтверждена правильность выбранного подхода для решения поставленной задачи.
Обсуждение вопросов, связанных с созданием эффективного алфавита жестов и возможностями биометрического распознавания пользователя и диагностики его психофизического состояния, выходит за рамки данной статьи.
Описано разработанное устройство, использованное в экспериментах, и предложен принципиально новый подход к превращению поверхности устройства в сенсорную панель.
На основе созданного устройства и пакета программных решений возможно создание инновационного устройства и его вывод на рынок IoT в качестве устройства управления, ориентированного на детскую аудиторию.
Литература
1. Madgwick S., Harrison A., Vaidyanathan R. Estimation of IMU and MARG orientation using a gradient descent algorithm. Rehabilitation Robotics (ICORR) // 2011 IEEE International Conference. Р. 1-7.
2. Shin S., Sung W. Dynamic hand gesture recognition for wearable devices with low complexity recurrent neural networks. Circuits and Systems (ISCAS) // IEEE International Symposium. 2016. Р. 2274-2277.
3. Guan Y., Ploetz T. Ensembles of Deep LSTM Learners for Activity Recognition using Wearables // arXiv preprint arXiv:1703.09370. 2017.
4. Chen Y. [et al.] LSTM Networks for Mobile Human Activity Recognition. 2016.
5. Kingma D, Ba J. Adam: A method for stochastic optimization // arXiv preprint arXiv:1412.6980. 2014.
References
1. Madgwick S., Harrison A., Vaidyanathan R. Estimation of IMU and MARG orientation using a gradient descent algorithm. Rehabilitation Robotics (ICORR). 2011 IEEE International Conference. Р. 1-7.
2. Shin S., Sung W. Dynamic hand gesture recognition for wearable devices with low complexity recurrent neural networks. Circuits and Systems (ISCAS). IEEE International Symposium. 2016. Р. 2274-2277.
3. Guan Y., Ploetz T. Ensembles of Deep LSTM Learners for Activity Recognition using Wearables. arXiv preprint arXiv:1703.09370. 2017.
4. Chen Y. [et al.] LSTM Networks for Mobile Human Activity Recognition. 2016.
5. Kingma D., Ba J. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. 2014.
Поступила в редакцию 03.07.2017