Научная статья на тему 'Использование веб-интерфейсов для анализа перемещений мобильного устройства'

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

CC BY
181
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
WEB API / DTW-АЛГОРИТМ / АКСЕЛЕРОМЕТР / DTWALGORITHM / ACCELEROMETER

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

В данной работе рассматриваются алгоритмы использования веб-интерфейсов для анализа перемещений мобильных устройств, а также разработан и реализован алгоритм такого анализа перемещения с интерфейсом для пользователя. Задача состоит в создании некоторой универсальной библиотеки на языке JavaScript, которая может быть использована в мобильных веб-приложениях. Библиотека использовала веб-интерфейсы для доступа к данным о перемещении устройства для анализа перемещения мобильного устройства. Предложен и реализован алгоритм определения перемещений, основанный на сравнении подобия временных рядов. Проведен анализ свойств предложенного алгоритма. На данном этапе алгоритм может с высокой долей вероятности детектировать движение телефона для заранее заданных наборов движений. Для реализации алгоритма использовались последние стандарты языков веб-программирования и технологии разработки. Были проведены эксперименты на реальном мобильном устройстве и сделаны выводы по реализации построенного алгоритма. Использование веб-интерфейса позволит применять разработанный алгоритм как в браузерных приложениях на мобильных телефонах, так и в мобильных приложениях, которые используют веб-технологии в своём исходном коде. Разработанный алгоритм не зависит от платформы конкретного мобильного устройства, так как используемые веб-интерфейсы поддерживаются в большинстве существующих мобильных веб-платформ.In this paper, we consider the algorithms for using web interfaces for analyzing the movements of mobile devices, and we also developed and implemented an algorithm for such a movement analysis with a user interface. The task is to create some universal JavaScript library that can be used in mobile web applications. The library used web interfaces to access device movement data. to analyze the movement of a mobile device. An algorithm for determining displacements, based on a comparison of the similarity of time series, is proposed and implemented. The analysis of the properties of the proposed algorithm is carried out. At this stage, the algorithm can with high probability detect the movement of the telephone for predefined sets of movements. To implement the algorithm, the latest standards of web programming languages and development technologies were used. Experiments were conducted on a real mobile device and conclusions were drawn on the implementation of the constructed algorithm. Using the web interface will allow you to apply the developed algorithm both in browser applications on mobile phones and in mobile applications that use web technologies in their source code. The developed algorithm does not depend on the platform of a specific mobile device, since the web interfaces used are supported in most existing mobile web platforms.

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

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

Использование веб-интерфейсов для анализа перемещений мобильного устройства

И. А. Петров, Д. Е. Намиот

Аннотация — В данной работе рассматриваются алгоритмы использования веб-интерфейсов для анализа перемещений мобильных устройств, а также разработан и реализован алгоритм такого анализа перемещения с интерфейсом для пользователя. Задача состоит в создании некоторой универсальной библиотеки на языке JavaScript, которая может быть использована в мобильных веб-приложениях. Библиотека использовала веб-интерфейсы для доступа к данным о перемещении устройства для анализа перемещения мобильного устройства. Предложен и реализован алгоритм определения перемещений, основанный на сравнении подобия временных рядов. Проведен анализ свойств предложенного алгоритма. На данном этапе алгоритм может с высокой долей вероятности детектировать движение телефона для заранее заданных наборов движений. Для реализации алгоритма использовались последние стандарты языков веб-программирования и технологии разработки. Были проведены эксперименты на реальном мобильном устройстве и сделаны выводы по реализации построенного алгоритма. Использование веб-интерфейса позволит применять разработанный алгоритм как в браузерных приложениях на мобильных телефонах, так и в мобильных приложениях, которые используют веб-технологии в своём исходном коде. Разработанный алгоритм не зависит от платформы конкретного мобильного устройства, так как используемые веб-интерфейсы поддерживаются в большинстве существующих мобильных веб-платформ.

Ключевые слова — WEB API, DTW-алгоритм, акселерометр.

I. Введение

В современном мире большинство людей на нашей планете используют интернет для поиска информации, пользования услугами, игр и многого другого.

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

Самым популярным языком программирования на Статья получена 23 апреля 2020.

И. А. Петров - МГУ имени М. В. Ломоносова (e-mail: petrov.igor.a@gmail.com)

Д. Е. Намиот - МГУ имени М. В. Ломоносова (e-mail: dnamiot @ gmail.com)

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

Для работы с мобильными устройствами разработчику на JavaScript необходим API (Application Programming Interface), который позволяет программисту «общаться» с мобильным устройством и использовать такое «общение» в своём программном продукте. Стандартизацией Web API занимается специальная рабочая группа W3C Web API организации, называемой Консорциум Всемирной паутины (W3C, World Wide Web Consortium) [8]. На странице [9] собран список различных JavaScript Web API.

Для анализа перемещений мобильного устройства непосредственно в мобильном устройстве находится специальный прибор, который называется акселерометр. Данный прибор позволяет получать значения ускорения телефона по трём координатным направлениям (Рисунок 1) относительно центра телефона, хотя более верно будет сказать - относительно места расположения акселерометра в мобильном устройстве.

-Y

Рис. 1: Система координат акселерометра

При помощи Web API разработчик может брать показания этого прибора и использовать их внутри своего алгоритма анализа движения мобильного устройства либо для других целей.

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

Анализ движение мобильного устройства может

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

Использование веб-интерфейса позволит применять разработанный алгоритм как в браузерных приложениях на телефонах, так и в мобильных приложениях, которые используют веб-технологии в своём исходном коде. То есть, такой алгоритм будет являться многофункциональным. К тому же, данный алгоритм не будет зависеть от платформы конкретного мобильного устройства, так как используемые веб-интерфейсы поддерживаются в большинстве существующих платформ.

Для анализа результата анализа перемещений мобильного устройства проводились измерения при помощи Web API. Пример измерений на JavaScript ниже на Рисунке 2.

if (curTent_time <= start_time + MEASUREMENT^ I ME) { // Lou pass filter

outx = out_x + alpha * (event.acceleration.x - out_x); out_y = out_y + alpha * (event.acceleration.у - out_y); out_z = out_z + alpha * (event.acceleration.x - out_z);

user_motion_stn += out_x + " " + out_y + " " + out_z -f ' ' ;

}

Рис. 2: Измерения показаний акселерометра на JS

После анализа пользователь будет иметь строковое представление (наименование) движения из заранее заданного набора (Рисунок 3).

const motions = [ "up1j "down", "left", "right" ]; Рис. 3: Набор движений для анализа в JS-файле

Вообще говоря, этот набор не обязательно делать заранее «вшитым» в программу. Можно задавать её непосредственно перед началом анализа. Такая модель была выбрана для конкретных экспериментов.

II. Модель системы

A. Временные ряды показаний акселерометра

Как нам уже известно, у программиста с помощью Web API есть возможность получать показания акселерометра по трём координатам в координатной плоскости, связанной с устройством, в котором, собственно, и расположен акселерометр. Получение этих значений происходит в течение времени, то есть, запоминая значения показаний прибора, мы получаем последовательность этих показаний, тем самым, образуя временной ряд показаний акселерометра.

По определению временным рядом называются последовательно измеренные через некоторые (не всегда равные) промежутки времени данные [1]. В нашем случае в качестве данных выступают показания

акселерометра по трём координатам, то есть вектора

а = (А* о?'а?). гДе

ах - значение ускорения по координате х,

ау - значение ускорения по координате у,

аг - значение ускорения по координате г.

Отметим, что значения Ал. й-.- и аг являются скалярными

величинами, равными длине вектора-компоненты

ускорения по соответствующей координатной прямой.

Таким образом, получаем последовательность векторов Л = [о;. (¡1. — 1 о^Г), где число я - количество замеров показаний акселерометра. Эти замеры могут проводиться либо заданное число раз, либо в течение заданного промежутка времени, в зависимости от выбранного алгоритма. Также можно применять комбинации этих стратегий.

Два временных ряда показаний акселерометра

равными, если т = н (то есть количество векторов-элементов в них одинаково) = 1.., я: с^ = ¡у

В дальнейшем понятие временного ряда будет основным при формулировках и выкладках.

В. Общая модель

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

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

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

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

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

Таким образом, основная задача состоит в поиске

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

С. Математическая модель

Пусть имеется непустое множество Е = [Б], ..., Б} эталонных временных рядов показаний акселерометра:

Константу

Ei E2

Es = {9[fel,„.9^J,

в} = {вЦ. 6 К* V I = } = 1, „^

показания акселерометра в определённый момент времени.

Пусть также в соответствии с движением пользователя на вход подаётся упорядоченная последовательность показаний акселерометра (временной ряд) 4 = {а^ в^, где

= б К8 V* = ТТТТго.

Числа тп, ^ IЛ, Е N являются некоторой функцией, зависящей от времени замера и от внешних факторов системы:

■■: - .-начало замера последовательности А,

где ДГ. Е И - некоторая функция, зависящая от

времени замера ге К. последовательности и случайной величины, характеризующей внешние факторы системы и зависящей от времени начала измерений г^ 6 К* последовательности.

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

Необходимо найти такое значение р, при котором расстояние между двумя временными рядами А и является минимальным, то есть где У^Л' - временных рядов

р = aro ?п;п

показаний акселерометра:

1) D(X,Y) > D(X, Y) = 0 « X = Y,

Функцию U назовём расстоянием между временными рядами.

III. Некоторые методы

Итак, нам необходимо из непустого множества

временных последовательностей .....

выбрать такое р E{li«»i}, что функция расстояния между входящим временным рядом и рядом является минимальным по множеству Е.

A. Последовательности одинаковой длины

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

можно выбрать несколькими вариантами:

1) с - заранее заданное натуральное число. В этом случае нам не важно время, в течение которого происходил замер, нам лишь важно количество таких замеров;

2) с = лип Е, I, так как множество эталонных

Е;€Е 1 1'

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

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

ЧХ - х^.х^.....я^ Г = й, л, . IV

1-1

где с' - некоторая метрика для двух трёхмерных векторов. Везде далее мы будем использовать евклидову метрику и в качестве символа с использовать квадрат её значения:

Уо = {а^Оу.а^) е Ь = (Ьх, Ъу,Ьг) е К3:

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

гшп I fl

in ) 7

¿sf

данного

метода

двумя имеет

- = arg

I с<ш

J4

Основные преимущества заключаются в следующем:

1) Данный метод лёгок для понимания

2) Легко запрограммировать

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

3) Не требует дополнительной памяти

4) Определение расстояние между

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

1) При выборе константной функции длины

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

2) При выборе константной функции длины

временного ряда показаний акселерометра время, в течение которого будут производиться замеры, может сильно отличаться (с учётом п. 1))

3) Такой метод имеет низкий процент точных

определений движений

Итак, данный метод является простым в понимании и непосредственном его программировании. Однако использование такого метода приводит к неприемлемым

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

B. DTW-алгоритм

DTW-алгоритм (Dynamic Time Warping Algorithm), или алгоритм динамической трансформации временной шкалы [2], [3], [4] - это алгоритм, позволяющий найти оптимальное соответствие между двумя временными последовательностями. Данный алгоритм нередко используется в распознавании голоса [5], [6] и текста [7], поскольку в этих областях также приходится иметь дело с временными рядами.

В алгоритме рассматриваются два временных ряда:

Б = blrb-.....Ьп.

Отметим, что в общем случае "1 — м.

Для элементов данных рядов задано расстояние d между ними в пространстве, соответственно, данных элементов.

Двум исходным рядам ставится в соответствие матрица трансформаций D — (J)y) е где

её элементы определяются рекурсивной формулой:

Dy г I I =9шш] =

Wft* bj) + j' ^-u-¿иначе.

Таким образом, в элементе ^.г. можно получить расстояние между последовательностями .-i и Б. Будем обозначать функцию расстояния между двумя временными рядами .-i и S, найденного по DTW-алгоритму, через D7TV(AB).

У данного алгоритма есть ряд преимуществ:

1) Длины последовательностей могут иметь (и так

чаще всего и происходит) различные значения

2) Алгоритм учитывает смещение временной

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

3) Имеет не самую трудную программную

реализацию

4) Данный алгоритм успешно применяется во

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

5) Данный алгоритм можно успешно применить к

поставленной задаче

Однако, стоит обратить внимание и на некоторые недостатки данного алгоритма:

1) Алгоритм имеет сложность 0(тп} как по

времени работы, так и по занимаем памяти

2) В некоторых случаях может выдавать неверный

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

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

ряда при сравнении с другим рядом, что делает этот метод высокоточным.

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

Можно отметить, что задача анализа подобия временных рядов является весьма часто используемой в самых различных применениях [10,11]. Обзор методов сравнения подобия временных рядов есть, например, в работе [12]. К числу основных достоинств DTW относят тот факт, что алгоритм может работать с рядами разной длины.

IV. Алгоритм анализа перемещения

Шаги данного алгоритма выглядят следующим образом:

0) Сделать замер эталонных движений устройства. С

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

1) Происходит замер показаний акселерометра при

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

2) При помощи DTW-алгоритма вычисляем

расстояния между временными рядами эталонных движений и рядом, полученном после движения устройства пользователя

3) Из вычисленных расстояний выбираем

минимальное и в качестве ответа выдаём пользователю эталонное движение,

соответствующее данному минимальному расстоянию.

А. Фильтр низких частот

Как отмечалось выше в реальных условиях в системе возможно наличие шумов, которые могут повлиять на итоговый результат. Тем более, что показания акселерометра на мобильном устройстве порой достигает 0.08g [10], что для нас непозволительная роскошь. В таких условиях необходимо использовать фильтры для сглаживания и собственно фильтрации данных акселерометра устройства.

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

Группа фильтров низких частот существует для фильтрации показаний, превышающих определённую частоту. Таким образом, фильтр будет пропускать низкие частоты, и фильтровать высокие. В качестве частоты в нашем случае выступают показания акселерометра. Фильтр низких частот хорошо подходит для нашей задачи, так позволяет нивелировать скачки в показаниях прибора.

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

Рассмотрим работу фильтра на одном из шагов п замера показаний: пусть 1п - входное значение прибора на шаге и, а € (0.1] - коэффициент фильтрации, Сц_1 -выходное значение фильтра на шаге п-1. Тогда очередное выходное значение Оп вычисляется по следующей формуле:

0Ч = + «('п -

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

В. Замер эталонных движений

Теперь, применяя фильтр низких частот с параметром , необходимо построить непустое множество I эталонных временных рядов

показаний акселерометра. Типы движений и количество эталонных движений определяются заранее. Для начала мы хотим научиться детектировать самые простые движения пользователя. Считаем, что мобильное устройство находится в лежачем положении экраном вверх. Будем пытаться определить следующие движения: вертикально вверх, вертикально вниз, горизонтально вправо, горизонтально влево. Отметим один из плюсов нашего алгоритма - он является довольно масштабируемым, в том смысле, что легко добавить в множество эталонных движений новые движения.

Итак, пусть мы делаем замер эталонного временного ряда показаний акселерометра Е; (:' = !-,,£)• Тогда на замере под номером } имеем входной вектор значений показаний акселерометра [Пй;е = (¡^.е,:', ¿„^у- пРяУ Далее, полагая р^, = (0.0.01, V; = Т7ТТ7Г делаем:

= {еу-> Л-Il

■ЦнА

а , р^"1

I су у fin1

Напомним, что длина каждого эталонного временного ряда показаний акселерометра Е1 определяется некоторой (не известной нам) функцией длины временного ряда показания акселерометра /(^£(^¡1), которая зависит от времени замера * и некоторых (не известных нам во время замера показаний) внешних факторов $ системы. При указанных нюансах заметим, что длины эталонных рядов, вообще говоря, заранее неизвестны и могут (и, скорее всего, будут) отличаться между собой. Единственное, что мы можем контролировать при данных условиях, это - время замера движения.

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

С. Замер движения пользователя

Описание замера перемещения устройства пользователя в целом повторяет описание замера эталонных движений, только теперь мы не контролируем движение - оно нам заранее неизвестно.

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

Как и в случае с эталонными ) обозначим полагая й^ = (0,0.0),

замерами, через и,*!*- = входной вектор на шаге к и, Ук = ГТТ^:

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

Б. Анализ пользовательского ряда

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

У нас есть система £ = .....эталонных

временных рядов показаний акселерометра и временной

ряд показании акселерометра

полученный в результате движения пользователя. Напомним, что наша цель найти р = arg D(A, F,).

I; ff ц

В качестве функции расстояния D выбирается IV-

расстояние между временными рядами. То есть мы

решаем задачу р = arg DT\Y(A, Е"£).

i]F[lf

Тогда, чтобы определить расстояние между временной последовательностью --i и некоторой эталонной временной последовательностью Е^ е Е, необходимо построить матрицу трансформации ..гг..' - . для данных временных

последовательностей, где каждый её элемент вычисляется по рекурсивной формуле: 0. к = / = 0 к = О или; = 0 (fc * j)

i r DLi.rH-u- L)' И|аянА-

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

В самом начале расчёта значений матрицы, все элементы первой строки и первого столбца полагаются равными кроме самого первого. Это начальная инициализация элементов, которые не соответствуют ни одной паре векторов из Л и Матрица трансформаций будет выглядеть следующим образом:

О

"ft.

со

А*

»Li

После полного рекурсивного обхода всей матрицы в последнем (расположенном в нижнем правом углу) её элементе -п ( будет вычислено расстояние между входными временными рядами показаний акселерометра, то есть:

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

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

0) Пусть искомое значение р — 0, а переменную,

обозначающую минимальное расстояние между пользовательским временным рядом и эталонным временным рядом, назовём и-' и положим равной №. Положим i=l;

1)Мы находимся на шаге i. Тогда при помощи DTW-алгоритма вычисляем значение DL = D7*IV(A Е; J;

2)Если < Di, переходим к шагу 3), иначе -полагаем w = Д. р = ¿;

3) Увеличиваем i на 1, и если t < то переходим на

шаг 1);

4) В качестве ответа выдаём значение .

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

V. Эксперименты

В самом начале, чтобы продемонстрировать недостатки метода последовательностей одинаковой длины приведём процент успешных определений движений для него. Как уже неоднократно оговаривалось, измерения проводятся для четырёх типов движений: вертикально вверх - Up, вертикально вниз -Down, горизонтально вправо - Right, горизонтально влево - Left. Телефон находится в горизонтальном положении экраном вверх. В таблице 1 указан процент успешно определённых движений для каждого из четырёх приведённых типов. Для каждого типа движения было проделано 100 попыток анализа перемещения.

Таблица 1: Анализ для метода последовательностей одинаковой длины.

Тип движения Точность

Up 42 %

Down 40 %

Right 37 %

Left 38 %

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

Теперь попробуем сделать измерения алгоритма с использованием БТ'^расстояния, но без применения фильтра низких частот. В таблице 2, как и в таблице 1, для каждого типа движения указан процент правильно определённых движений.

Таблица 2: Анализ DTW-метода без применения _фильтра_

Тип движения Точность

Up 83 %

Down 87 %

Right 82 %

Left 81 %

Точность результатов возросла более чем в два раза для каждого из направлений. Средняя точность находится в районе отметки в 80 %. То есть лишь в двух из 10 случаев алгоритм даёт помарку. Как мы видим, алгоритм динамической трансформации временной шкалы демонстрирует очень хорошие результаты.

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

Таблица 3: Анализ перемещения с использованием БТ'^расстояния и фильтра низких частот

Как видим, применение фильтра позволило повысить точность анализа. Средняя точность составляет чуть менее 90 %, то есть лишь в одном из 10 случаев мы получим ошибку вычисления.

VI. Заключение

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

Тип движения Точность

Up 89 %

Down 93 %

Right 89 %

Left 88 %

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

Библиография

[1] Временной ряд http://www.machinelearning.ru/wiki/index.php7titfc%D0%92%D1 %80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE% D0%B9_%D1%80%D1%8F%D0%B4 Retrieved: Apr, 2020

[2] Ghazi Al-Naymat, Sanjay Chawla, Javid Taheri. Sparse DTW: A novel approach to speed up Dynamic Time Warping [Электронный ресурс]. URL: https://arxiv.org/pdf/1201.2969v1.pdf

[3] Eamonn J. Keogh, Michael J. Pazzani. Derivative Dynamic Time Warping, Section 1 [Электронный ресурс]. URL: https://www.cs.rutgers.edu/~pazzani/Publications/sdm01.pdf Retrieved: Apr, 2020

[4] Pavel Senin. Dynamic Time Warping Algorithm Review [Электронный ресурс]. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.4905& rep=rep1&type=pdf Retrieved: Apr, 2020

[5] Lindasalwa Muda, Mumtaj Begam and I. Elamvazuthi. Voice Recognition Algorithms using Mel Frequency Cepstral Coefficient (MFCC) and Dynamic Time Warping (DTW) Techniques // JOURNAL OF COMPUTING, VOLUME 2, ISSUE 3, MARCH 2010, ISSN 2151-9617 [Электронный ресурс]. URL: https ://arxiv.org/ftp/arxiv/papers/1003/1003.4083 .pdf Retrieved: Apr, 2020

[6] Titus Felix FURTUNA. Dynamic Programming Algorithms in Speech Recognition // Revista Informatica Economica nr, 2008 [Электронный ресурс]. URL: http://www.revistaie.ase.ro/content/46/S%20-%20Furtuna.pdf Retrieved: Apr, 2020

[7] Maher Khemakhem and Abdelfettah Belghith. Towards A Distributed Arabic OCR Based on the DTW Algorithm: Performance Analysis // The International Arab Journal of Information Technology, Vol. 6, No. 2, April 2009 [Электронный ресурс]. URL: https://ccis2k.org/iajit/PDF/vol.6,no.2/7TDAOBDAPA153.pdf

[8] W3C Web API https://www.w3.org/2006/webapi/ Retrieved: Apr, 2020

[9] JavaScript Web API https://developer.mozilla.org/en-US/docs/Web/API Retrieved: Apr, 2020

[10] Lin J., Khade R., Li Y. Rotation-invariant similarity in time series using bag-of-patterns representation //Journal of Intelligent Information Systems. - 2012. - Т. 39. - №. 2. - С. 287-315.

[11] Lhermitte S. et al. A comparison of time series similarity measures for classification and change detection of ecosystem dynamics //Remote sensing of environment. - 2011. - Т. 115. - №. 12. - С. 3129-3152.

[12] Namiot D., Pokusaev O. On mobility patterns in Smart City. - 2019.

On using web interfaces to analyze mobile

device movements

Igor Petrov, Dmitry Namiot

Abstract — In this paper, we consider the algorithms for using web interfaces for analyzing the movements of mobile devices, and we also developed and implemented an algorithm for such a movement analysis with a user interface. The task is to create some universal JavaScript library that can be used in mobile web applications. The library used web interfaces to access device movement data. to analyze the movement of a mobile device. An algorithm for determining displacements, based on a comparison of the similarity of time series, is proposed and implemented. The analysis of the properties of the proposed algorithm is carried out. At this stage, the algorithm can with high probability detect the movement of the telephone for predefined sets of movements. To implement the algorithm, the latest standards of web programming languages and development technologies were used. Experiments were conducted on a real mobile device and conclusions were drawn on the implementation of the constructed algorithm. Using the web interface will allow you to apply the developed algorithm both in browser applications on mobile phones and in mobile applications that use web technologies in their source code. The developed algorithm does not depend on the platform of a specific mobile device, since the web interfaces used are supported in most existing mobile web platforms.

Keywords — WEB API, DTW- algorithm, accelerometer.

References

[1]Vremennoj rjad http://www.machinelearning.ru/wiki/index.php?title=%D0%92%D1%80% D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_% D1%80%D1%8F%D0%B4 Retrieved: Apr, 2020

[2]Ghazi Al-Naymat, Sanjay Chawla, Javid Taheri. Sparse DTW: A novel approach to speed up Dynamic Time Warping [Jelektronnyj resurs]. URL: https://arxiv.org/pdf/1201.2969v1.pdf

[3]Eamonn J. Keogh, Michael J. Pazzani. Derivative Dynamic Time Warping, Section 1 [Jelektronnyj resurs]. URL: https://www.cs.rutgers.edu/~pazzani/Publications/sdm01.pdf Retrieved: Apr, 2020

[4] Pavel Senin. Dynamic Time Warping Algorithm Review [Jelektronnyj resurs]. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.4905&rep=r ep1&type=pdf Retrieved: Apr, 2020

[5]Lindasalwa Muda, Mumtaj Begam and I. Elamvazuthi. Voice Recognition Algorithms using Mel Frequency Cepstral Coefficient (MFCC) and Dynamic Time Warping (DTW) Techniques // JOURNAL OF COMPUTING, VOLUME 2, ISSUE 3, MARCH 2010, ISSN 2151-9617 [Jelektronnyj resurs]. URL: https://arxiv.org/ftp/arxiv/papers/1003/1003.4083.pdf Retrieved: Apr, 2020

[6] Titus Felix FURTUNA. Dynamic Programming Algorithms in Speech Recognition // Revista Informatica Economica nr, 2008 [Jelektronnyj resurs]. URL: http://www.revistaie.ase.ro/content/46/S%20-%20Furtuna.pdf Retrieved: Apr, 2020

[7]Maher Khemakhem and Abdelfettah Belghith. Towards A Distributed Arabic OCR Based on the DTW Algorithm: Performance Analysis // The International Arab Journal of Information Technology, Vol. 6, No. 2, April 2009 [Jelektronnyj resurs]. URL: https://ccis2k.org/iajit/PDF/vol.6,no.2/7TDAOBDAPA153.pdf

[8] W3C Web API https://www.w3.org/2006/webapi/ Retrieved: Apr, 2020

[9] JavaScript Web API https://developer.mozilla.org/en-US/docs/Web/API Retrieved: Apr, 2020

[10] Lin J., Khade R., Li Y. Rotation-invariant similarity in time series using bag-of-patterns representation //Journal of Intelligent Information Systems. - 2012. - T. 39. - #. 2. - S. 287-315.

[11] Lhermitte S. et al. A comparison of time series similarity measures for classification and change detection of ecosystem dynamics //Remote sensing of environment. - 2011. - T. 115. - #. 12. - S. 3129-3152.

[12] Namiot D., Pokusaev O. On mobility patterns in Smart City. - 2019.

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