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

Использование алгоритмов обнаружения паттернов для идентификации жестов оператора в записях управляющего сигнала манипулятора Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
177
27
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИСТАНЦИОННЫЙ МАНИПУЛЯТОР / АКСЕЛЕРОМЕТР / УПРАВЛЯЮЩИЙ СИГНАЛ / ОБНАРУЖЕНИЕ ПАТТЕРНОВ / МЕТОД ПРОНИ / АЛГОРИТМ ДИНАМИЧЕСКОГО ИСКАЖЕНИЯ ВРЕМЕНИ / АЛГОРИТМ MUEEN-KEOGH MOTIF DISCOVERY / CUDA / REMOTE MANIPULATOR / ACCELEROMETER / CONTROL SIGNAL / PATTERN DISCOVERY / PRONY METHOD / DYNAMIC TIME WARPING / MUEEN-KEOGH MOTIF DISCOVERY ALGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Пономарев Дмитрий Иванович

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Пономарев Дмитрий Иванович

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

Gesture recognition by a remote computer controller

The remote controller is based on MEMS-accelerometer tracks three dimensional movements of an operator hand. The controller driver generates a signal that controls the mouse cursor. It is shown that an intelligent driver uses the control signal repeatedly to monitor the operator actions and builds a portrait of operator arbitrary actions as a sequence of his hand gestures. For this purpose, pattern discovery algorithms are used for processing control signal records.

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

УДК 519.246

Д. И. Пономарев

Московский физико-технический институт (государственный университет)

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

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

Ключевые слова: дистанционный манипулятор, акселерометр, управляющий сигнал. обнаружение паттернов, метод Пропп, алгоритм динамического искажения времени. алгоритм Muoon-Koogh Motif Discovery. CUDA.

1. Разработка манипулятора для управления курсором компьютерной мыши

Манипулятор кренится на руке оператора и позволяет отслеживать движения ei'o руки в трехмерном пространстве (рис. 1) [1 2|.

Рис. 1. Манипулятор в руке пользователя

Основным элементом манипулятора является трехосевой МЕМЯ-акселерометр. Данные, получаемые от МЕМЯ-акселерометра, проходят оцифровку и попадают в микроконтроллер, где происходит их нормировка и цифровая фильтрация (рис. 2). Далее формируется управляющий сигнал для управления курсором компьютерной мыши и передается на компьютер через иЗВ-интерфейс.

Акселерометр АЦП Микроконтроллер USB LJ

1 • S -шт-

Компостер

Рис. 2. Блок-схема работы манипулятора

Сигнал, который поступает в микроконтроллер, содержит как электрический шум, так и шум, производимый дрожанием руки оператора. Для удаления этих шумов из управляющего сигнала манипулятора при разработке драйвера манипулятора решена задача линейной и нелинейной фильтрации управляющего сигнала по Калману [2-4]. В работе [5] фильтр Калмана применяется для фильтрации сигналов МЕМБ-акселерометра в режиме покоя. Для синхронизации сигналов, снимаемых с различных акселерометров, установленных на печатной плате манипулятора, используется марковская модель непрерывного профиля [6]. Полученные управляющие сигналы используются, например, для управления курсором стандартной компьютерной мыши.

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

2. Определение характерного временного масштаба для поиска паттернов во временных рядах

Одним из основных моментов при решении задачи обнаружения паттернов временного ряда является определение характерного временного масштаба этих паттернов [10]. Однако простой перебор всех возможных значений масштаба будет крайне нежелательным, так как это сильно увеличивает вычислительную сложность алгоритма поиска. В данной работе для оценки такого характерного временного масштаба используется средний период колебательного изменения временного ряда. Для определения такого периода могут применяться методы определения спектров частот, несоизмеримых с частотой дискретизации временного ряда [11]. Одним из таких методов является одночастотная аппроксимация сегментов временного ряда по методу Прони [12-15].

Пусть временной ряд, в котором осуществляется поиск паттернов, имеет ВИД X [1, N0] . При этом для упрощения формул предполагается, что частота дискретизации равна единице. Последовательные сегменты ряда длины N ^ N0, для которых определяется характерный период колебательного изменения, имеют вид

При этом предполагается, что длина паттерна М ^ ^ Nq существенно меньше

длины анализируемого сегмента временного ряда. Декомпозиция Прони сегмента (1) (для краткости индекс сегмента г = 1, round (Nq/N) ниже опускается) имеет вид

Где р — число определяемых полюсов сегмента временного ряда; z[l] = exp(£[Z]+ j2ж/[/]), I = 1,р — полюса сегмента (1), £[/] и f[l] — со-

ответственно фактор демпфирования (логарифмический декремент) и частота; r[l] = a[l] exp (jp[l]), I = 1,р — вычеты в этих полюсах, аЩ и <рЩ — соответственно амплитуда п фаза; п[к], к = 1,N — аддитивный шум. В преобразовании Прони у [l, N] ^ {z [l,p] , г [l,p] } или у [l, N\ ^ {f [l,p] , S [l,p] , a [l,p] , <p [l,p\ } размерность p частотного пространства всегда меньше, чем размерность N пространства сегментов (1). Возможность варьирования размерности р частотного пространства дает следующее преимущество. Линейный или нелинейный тренд в переходном сегменте у [1, N\ (1), в его декомпозиции (2) представляется составляющими с низкими частотами порядка N-1. После удаления среднего значения у = fc=i т-е-

Уі [l, N\ = х (N (і — 1) + 1) ,Ni , і = 1, round (N0/N).

(1)

(2)

у[к],к = 1,Ж ^ (у[к] — у) ,к = 1,М, либо удаления линейного или нелинейного тренда у(гДЪ) в результате регрессии (^Н — У^Д^)) ^ ш1п и преобразования

у[к],к = 1,N ^ (у[г] — y(iAt)), к = 1,N, (3)

для преобразованного сегмента у [1, N] по методу Прони определяется одночастотная аппроксимация. Она соответствует минимальному числу р = 2 полюсов в (2). Частота f [1] = Im log(z[1]) (и f [2] = —f [1]) определяет характерный период

М = 1/f [1] (М << N << No) колебательного изменения преобразованного сегмента

у [1,^ (3). Оцененный по всем последовательным сегментам полного временного ряда х [1, No], этот пер под М << No дает временной масштаб (размерность пространства поиска) при обнаружении совпадающих временных последовательностей (паттернов) временного ряда х [1, N0].

3. Использование алгоритмов сокращения размерности пространства поиска для обнаружения паттернов временного ряда

Для обнаружения паттернов используется алгоритм Mueen-Keogh (МК) Motif Discovery [7-9]. Это алгоритм реализует поиск наиболее похожих последовательностей в базе данных D, представляющей собой неупорядоченный набор временных последовательностей одинаковой длины D[k] = Sk [1, М] , к = 1, (No — М + 1). Вначале работы алгоритма выбирается произвольная последовательность из базы данных D, и все остальные последовательности упорядочиваются в соответствии с расстоянием до этой последовательности. Такое линейное упорядочивание дает полезную эвристическую информацию для поиска паттернов. Действительно, если последовательности близки в исходном пространстве, то они близки и в одномерном линейном упорядочении. Обратное утверждение не верно. Последовательности могут быть близки в линейном упорядочении и очень далеки в исходном пространстве.

Данное свойство является ключевым в реализации алгоритма. Оцененные расстояния являются нижними границами истинных расстояний между последовательностями. На следующем шаге производится просмотр полученных пар в линейном упорядочении и вычисляются расстояния между ними в исходном пространстве. Алгоритм МК Motif Discovery приведен на рис. 3.

Описанная версия алгоритма предназначена для статического поиска паттернов в уже имеющемся наборе последовательностей. Для решения задачи обнаружения почти совпадающих последовательностей в режиме реального времени авторами алгоритма предложена его модификация [9]. Ключевым моментом в реализации данной версии алгоритма является специальная структура данных, элементами которой являются последовательные сегменты временного ряда.

Кружками обозначены последовательные сегменты (1), N-cnucon — односвязный список, образованный из ближайших «соседей» данной последовательности, R-cnucon — список, в котором содержатся последовательности, для которых ближайшим является текущий элемент. Если такая структура данных поддерживается при каждом добавлении и удалении элемента, то нахождение ближайшей пары последовательностей не трудоемкое

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

Алгоритм МК Motif Discovery, работающий в режиме реального времени, является основой программы, реализованной на языке C++, для поиска паттернов в управляющих сигналах манипулятора. Данная программа считывает данные, получаемые от манипулятора, через равные промежутки времени. Далее используется скользящее временное окно заданной длины L. Для сигнала в выбранном окне вычисляется одночастотная аппроксимация по методу Прони, результатом которой является характерный временной масштаб для поиска паттернов. Далее запускается версия алгоритма МК реального времени для поиска паттернов с вычисленным значением длины паттерна.

Алгор итм л IK Nfotif Disc oveiy

Procedure [ЛД2]= MK.__Motif (Д^Г)

1 best _so _ far = INF

2 for / “ 1 to К

3 r#[t\ = случайным образом выбранная последовательность D[k\ из D

4 for у* 1 to (JVO-А/ +1)

5 Л г«[;:у] =

6 if Dist{i\j\< best_so_fcr

7 best_so_fcr =Dtl[i:j], Z.1 = k,L2 = j

8 S[/] = standard_de\iation| ,DKf£/;l,size(i}cf.2)J|

9 [£S,Z] = sort (S', "descend"}

сортировка 55 = . такая, что для индексов г ссылочной переменной {гф

5[гм]г5[г[/+1]]

10 [Д£)с*,.7] = 5ол(2)й/Г7;1,Я2е(2)&*,2)1)

сортировка £>£>/$/= £>й*[7:/]. такая, что для индексов у временных последовательностей (в П) ^>й/^[/];7[у']1< Вк1\2[1\.^ +1]]

11 offset = 0. abandon = false

12 w hile abandon = fa Is e

13 offset = offset+1, abandon= true

14 for j — 1 to m

15 reject = fake

16 for / = i to a:

17 ibweritW- \Dist[Z[r\,I\J^~ Dist[Z[!]:J[j + o/i«]]|

IS if loner _bound> best_so _ far

19 reject = true, break

20 else if / = 1

21 abandon = fake

22 if reject= false

23 if dist(i)[/I;]],i3[i[y + i^i«]])<4as/_ so _ far

Рис. 3. Алгоритм Muoori-Koogh Motif Discovory

Рис. 4. Структура данных, используемая в версии алгоритма МК Motif Discovery, работающей в режиме реального времени

Plotter Patterns

Accelerometr data j I f

1

is . 1 1

Рис. 5. Окно приложения для поиска паттернов в управляющих сигналах манипулятора

Найденные паттерны отображаются в отдельном окне программы, а также выделяются специальными маркерами в основном окне приложения (рис. 5).

Данная программа используется для выделения характерных жестов, которые формируются у оператора при управлении курсором компьютерной мыши, посредством разрабатываемого манипулятора. Желаемое перемещение курсора на экране компьютера приводит к поиску оператором необходимого жеста, его формированию и запоминанию для повторения. Программа выделяет наиболее часто встречаемые паттерны, возникающие при управлении данным манипулятором (рис. 6). Все полученные паттерны приведены на рисунке 7, который содержит характерные виды паттернов и описание соответствующих жестов руки оператора.

Рис. 6. Примеры выделения паттернов

Характерный вид паттерна

Описание жеста

Быстрое горизонтальное движение руки слева направо, с возвратом руки в исходное положение

Быстрое горизонтальное движение руки справа налево, с возвратом руки в исходное положение

Наклон руки влево, с возвратом в исходное положение

Рис. 7. Выделенные паттерны и соответствующие им жесты руки оператора

Проблема формирования произвольных движений (жестов) руки оператора при управлении техническими системами рассмотрена в [16-17]. Распознавание и классификация жестов как стандартный способ управления мобильными телефонами рассмотрено в [18].

На рис. 8 приведены примеры обнаружения длинных паттернов. Такая ситуация характерна при повторении оператором целой серии движений.

0.6

0.5

б)

Рис. 8. Примеры обнаружения длинных паттернов

4. Использование алгоритма динамического искажения времени (DTW) для обнаружения паттернов

Кроме реализованного на C++ алгоритма Mueen-Keogh существует несколько других алгоритмов, которые позволяют обнаруживать паттерны во временных рядах. Одним из наиболее распространенных алгоритмов является реализованный на C++ алгоритм динамического искажения времени (Dynamic Time Warping DTW) [19 21]. Он эффективен, как мера подобия временных рядов (time-series similarity measure), которая минимизирует эффекты временного сдвига и различного течения времени и обеспечивает непрерывное преобразование временных рядов для обнаружения одинаковых сегментов с различными фазами. Единственное ограничение, накладываемое на временные ряды, это то, что они должны представлять временные зависимости с постоянным niai'OM дискретизации времени. Алгоритм начинается с построения матрицы локальных расстояний d размерностью NxM, элементы которой d[j,k] — это расстояния между элементами x[j] и у[к] двух временных рядов. В DTW-алгоритме могут использоваться различные локальные меры расстояния, например мера редактирования. Но, как правило, в этом алгоритме строится матрица локальных расстояний d на основе евклидовой меры расстояния d[j,k] = (x[j] — у[к])2 ,j = 1,N, к = М. Если построена матрица локальных расстояний d, DTW-алгоритм определяет путь искажения времени, который идет через области наименьших аккумулированных расстояний. Фактически путь искажения времени с минимальным аккумулированым расстоянием определяется посредством алгоритма динами че-екого программирования. Аккумулированные расстояния хранятся в матрице D, которая определяется на основе матрицы локальных расстояний d следующим образом:

1) первая строка: D[1; к] = ^i=1 ^[1,1]',

2) первый столбец: D[j; 1] = ^^=1 d[j, 1];

3) остальные элементы матрицы О определяются посредством рекурсии.

( Щ - 1; к - 1],

Щ; к}= Ф'; к]+тт ! 0\э - 1; к],

( 0\з; к - 1].

Таким образом, вычисление матрицы О инициализируется как 0\1; 1] = ^[1; 1]. Когда определяются элементы первой строки матрицы О, рассматриваются только горизонтальные распространения пути. Аналогично, когда определяются элементы первого столбца матрицы О, рассматриваются только вертикальные распространения пути. Результат рекурсии: ИТШ(х,у) = П\М; М]. Реконструкция пути искажения времени требует, чтобы для каждого очередного определенного в результате рекурсии элемента 0\]; к] хранился указатель на родительский элемент для того, чтобы помнить, какой элемент из О был результатом минимального пути до этого. Путь искажения времени определяется из элемента И\К; М] при проходе назад по этим указателям. ВТ\¥-алгоритм дает оптимальное решение за время порядка О (Ж ■ М).

Работа алгоритма динамичеекого искажения времени может быть существенно ускорена, используя графический сопроцессор (СтРи) [22]. Он имеет собственную память и способен выполнять несколько потоков параллельно. В данной работе используется архитектура ХУГОIА С1ГОА, в которой несколько потоков, исполняемых на различных ядрах, выполняют одну и ту же программу для разных данных [23]. Каждая функция С1ГОА выполняется массивом потоков. Каждый такой поток имеет свой идентификатор, который используется для определения адресов памяти, с которыми он должен работать. Архитектура потоков в ХУГОIА С1ГОА изображена на рис. 9.

Рис. 9. Архитектура потоков в NVIDIA CUDA

Реализация алгоритма динами чеекого искажения времени при исполнении на графическом сопроцессоре состоит из трех ключевых шагов:

1) центральный процессор копирует данные в память графического сопроцессора;

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

2) центральный процессор вызывает ядро CUDA kernel;

3) центральный процессор копирует результаты работы из графического сопроцессора.

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

которая реализует алгоритм динамического искажения времени (БТ\¥), в различных потоках (рис. 10). Каждый поток оперирует на конкретном скользящем окне данных в два шага: сначала вычисляется среднее значение и дисперсия на данном окне, а потом вычисляется нормированное расстояние до паттерна, с которым производится сравнение.

Рис. 10. Распараллеливание вычислений Для сравнения времени выполнения алгоритма БТ\¥ были использованы две платфор-

мы:

1) Intel Celeron CPU 900 с тактовой частотой 2.2 ГГц,

2) GPU NVIDIA GeForce GT 520 M с 48 ядрами CUDA.

Рис. 11. Время работы алгоритма БТ’\¥ на СРи (сплошная линия) и СРи (пунктирная линия) при фиксированной длине паттерна 100 точек

Рис. 12. Время работы алгоритма БТ’\¥ на СРи (сплошная линия) и СРи (пунктирная линия) при фиксированной длине временного ряда 20 000 точек

На рис. 11 показаны графики зависимости времени выполнения алгоритма от длины временного ряда при фиксированной длине паттерна 100 точек на СРи (сплошная линия)

и на GPU (пунктирная линия). Как видно из графика, время работы алгоритма при увеличении длины временного ряда растет линейно. Но для GPU коэффициент наклона прямой значительно меньше, чем для CPU.

На рис. 12 показаны графики зависимости времени выполнения алгоритма от длины паттерна при фиксированной длине временного ряда 20 ООО точек для CPU (сплошной линией) и GPU (пунктирная линия). Рост времени выполнения является квадратичным по отношению к длине паттерна.

Литература

1. Пономарев Д. И. Использование методов байесовской фильтрации при обработке сигналов манипулятора // Информационные технологии: Модели и методы: сборник научных трудов. — 2010. — С. 65-72.

2. Kukharenko B.G., Ponomarev D.I. Bayesian filtering of control signal of telerobotic manipulator with precise accelerometer // Проблемы машиностроения и автоматизации.

- 2011. - № 1. - С. 72-76.

3. Simon D. Optimal State Estimation: Kalman, H^ and Nonlinear Approaches — Hoboken, New Jersey: John Wiley k, Sons, Inc, 2006.

4. Кухаренко Б.Г., Пономарев Д.И. Нелинейная байесовская фильтрация многомерных временных рядов // Информационные технологии. — 2011. — № 6. — С. 33-39.

5. Zidek К., Liska О. Accelerometer tilt application with Kalman filter implementation // Transfer inovdcii. - 2010. - N 16. - P. 256-257.

6. Пономарев Д.П., Кухаренко Б.Г. Использование алгоритма ожидания и максимизации правдоподобия в марковской модели непрерывного профиля для синхронизации сигналов манипулятора // Труды МФТИ. — 2011. — Т. 3, N8 2. — С. 112-118.

7. Chiu В., Keogh Е., Lonardi S. Probabilistic discovery of time series motifs // Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. August 24-27, 2003. - DC, Washington: ACM. - 2003. - P. 493-498.

8. Mueen A., Keogh E., Zhu Q., Cash S., Westover B. Exact discovery of time series motifs // Proceedings of the SIAM International Conference on Data Mining (SDM 2009). American Statistical Association (ASA). — 2009. — P. 473-484.

9. Mueen A., Keogh E.J. Online discovery and maintenance of time series motifs // Proceedings of the 16th ASM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD 2010), July 25-28, 2010. - Washington, DC: ACM. - 2010. - P. 1089-1098.

10. Кухаренко Б.Г., Пономарев Д-П. Использование метода Прони для оценки временного масштаба при обнаружении паттернов во временных рядах // Информационные технологии. - 2012. - № 1. - С. 37-42.

11. Бернштейн Н.А. К анализу непериодических колебательных сумм с переменными

спектрами по методу взвешенных решеток // Биофизика. — 1962. — Т. VII. Вып. 4. — С. 377-381.

12. Weiss L., McDonogh R.N. Pronv’s method, ^-transform, and Pade approximation // SIAM Review. - 1963. - V. 9, N 2. - P. 145-149.

13. Sarkar Т.К., Pereira O. Using the matrix pencil method to estimate the parameters of

a sum of complex exponentials // IEEE Antenna and Propagation Magazine. — 1995. —

V. 37. N 1. — P. 48-55.

14. Kukharenko B.G. Use of the Pronv method for modal identification of slow-evolutionary linear structures // Journal of Structural Control. - 2000. - V. 7. N 2. - P. 203-218.

15. Кухаренко Б.Г. Технология спектрального анализа на основе быстрого преобразования Прони // Информационные технологии. — 2008. — № 4. — С. 38-42.

16. Бернштейн Н.А. О построении движений. - М.: Медгиз, 1947.

17. Бернштейн Н.А. Очерки по физиологии движений и физиологии активности. — М.: Медицина, 1966.

18. Niezen G., Hancke G.P. Gesture recognition as ubiquitous input for mobile phones // Devices that Alter Perception // Proceedings of Workshop DAP2008. Seoul, South Korea: Sungkvunkwan University. — 2008. — P. 16-19.

19. Sakoe H., Chiba S. Dynamic programming algorithm optimization for spoken word recognition // IEEE Transactions on Acoustics, Speech and Signal Processing. — 1978.

- V. 26, N 1. — P. 43-49.

20. Salvador S., Chan P. Toward accurate dynamic time warping in linear time and space // Intelligent Data Analysis. - 2007. - V. 11, N 5. - P. 561-580.

21. Tomasi G., Skov Т., van den Berg F. Correlation optimized warping and dynamic time warping as preprocessing methods for chromatographic data // Journal of Chemometrics. _ 2004. - V. 18. - P. 231-241.

22. Sart D., Mueen A., Najjar W., Keogh E., Niennattrakul V. Accelerating Dynamic Time Warping Subsequence Search with GPUs and FPGAs // Proceedings of IEEE ICDM. — 2010. - P. 1001-1006.

23. NVIDIA CUDA С Programming Guide. Version 4.0. Santa Clara, CA: NVIDIA Corporation. — 2011.

Поступим в редакцию 30.11.2011.

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