Способ, устройство и компьютерная программа для обработки данных датчика активности
Иллюстрации
Показать всеИзобретение относится к области распознавания активности пользователя на основе датчиков активности. Технический результат – обеспечение эффективной и разносторонней обработки данных датчиков активности, предоставляемых мобильным устройством. Способ обработки данных датчика активности включает: загрузку приложением веб-страницы, включающей встроенный модуль распознавания активности; сбор данных датчика активности по меньшей мере от одного датчика мобильного устройства посредством модуля опроса датчика; передачу данных датчика активности во встроенный модуль распознавания активности; обработку собранных данных датчика посредством встроенного модуля распознавания активности для формирования обработанных данных датчика активности; и прием обработанных данных датчика активности от модуля распознавания активности. 4 н. и 34 з.п. ф-лы, 10 ил.
Реферат
Область техники
Настоящее изобретение относится к датчикам активности и связанным с ними способам, устройствам и компьютерным программам. Конкретные раскрываемые аспекты/варианты осуществления относятся к электронному устройству, которое предоставляет и обрабатывает данные датчика активности.
Предпосылки создания изобретения
В настоящее время портативные электронные устройства, например смартфоны и другие носимые устройства, могут включать множество датчиков, которые увеличивают возможности пользователя. Обычно такое устройство включает по меньшей мере акселерометр. Самым распространенным видом используемых сегодня мобильных компьютерных средств является смартфон. Смартфоны могут оснащаться множеством различных датчиков, первоначально внедренных для улучшения взаимодействия с пользователем, как например использование акселерометра для измерения изменений ориентации экрана или магнетометра для поддержки приложений навигации и определения местонахождения. Эти датчики могут также использоваться для сбора данных, которые помогают понимать поведение человека, распознавать конкретные действия, дополнять память человека о событиях, улучшать спортивные достижения, оказывать поддержку при различных способах лечения, включая движения тела и нарушения сна.
Существуют приложения для портативных электронных устройств, в которых используются или могут использоваться данные о текущей активности пользователя, которые могут быть собраны с датчиков, но чтобы разработать новые алгоритмы датчиков от разработчиков приложений требуются знания и дополнительные ресурсы. Разработчики программ не имеют большого выбора алгоритмов распознавания активности. Разработчики либо создают и осуществляют собственный алгоритм распознавания активности, либо используют алгоритм распознавания активности операционной системы, если он имеется.
На основании вышеизложенного, существует потребность в решении, которое обеспечило бы более эффективное и разностороннее использование алгоритмов распознавания активности.
Сущность изобретения
В соответствии с первым аспектом предлагается способ, включающий загрузку приложением веб-страницы, включающей встроенный модуль распознавания активности, сбор данных датчика активности по меньшей мере от одного датчика мобильного устройства посредством модуля опроса датчика, передачу данных датчика активности во встроенный модуль распознавания активности, обработку собранных данных встроенным модулем распознавания активности для формирования обработанных данных датчика активности и прием обработанных данных датчика активности от модуля распознавания активности.
В соответствии со вторым аспектом предлагается устройство, включающее по меньшей мере один процессор и по меньшей мере одно запоминающее устройство, включающее код компьютерной программы, сконфигурированный так, чтобы при исполнении по меньшей мере одним процессором устройство выполняло: загрузку приложением веб-страницы, включающей встроенный модуль распознавания активности, сбор данных датчика активности по меньшей мере от одного датчика мобильного устройства посредством модуля опроса датчика, передачу данных датчика активности во встроенный модуль распознавания активности, обработку собранных данных встроенным модулем распознавания активности для формирования обработанных данных датчика активности и прием обработанных данных датчика активности от модуля распознавания активности.
В соответствии со вторым аспектом предлагается устройство, включающее средства для загрузки веб-страницы, включающей встроенный модуль распознавания активности, средства для сбора данных датчика активности по меньшей мере от одного датчика мобильного устройства посредством модуля опроса датчика, средства для передачи данных датчика активности во встроенный модуль распознавания активности, средства для обработки собранных данных встроенным модулем распознавания активности для формирования обработанных данных датчика активности и средства для приема обработанных данных датчика активности от модуля распознавания активности.
В соответствии со вторым аспектом предлагается компьютерная программа, включающая код для загрузки веб-страницы, включающей встроенный модуль распознавания активности, код для сбора данных датчика активности по меньшей мере от одного датчика мобильного устройства посредством модуля опроса датчика, код для передачи данных датчика активности во встроенный модуль распознавания активности, код для обработки собранных данных встроенным модулем распознавания активности для формирования обработанных данных датчика активности и код для приема обработанных данных датчика активности от модуля распознавания активности.
В одном варианте веб-страница загружается с веб-сервера.
В одном варианте загруженная веб-страница сохраняется в мобильном устройстве.
В одном варианте обработка собранных данных датчика включает: предварительную обработку и фильтрацию данных датчика активности для получения предварительно обработанных данных, вычисление вектора признаков и идентификацию активности пользователя и/или получение дополнительной статистики на основе вектора признаков.
В одном варианте обработка собранных данных датчика включает: предварительную обработку и фильтрацию данных датчика активности для получения предварительно обработанных данных, передачу предварительно обработанных данных на сетевой сервер для вычисления вектора признаков, прием вектора признаков от сетевого сервера и идентификацию активности пользователя и/или получение дополнительной статистики на основе вектора признаков.
В одном варианте обработка собранных данных датчика включает: предварительную обработку и фильтрацию данных датчика активности для получения предварительно обработанных данных, вычисление вектора признаков, передачу вектора признаков на сетевой сервер для идентификации активности пользователя и/или получения дополнительной статистики на основе вектора признаков и прием данных об активности пользователя и/или дополнительной статистики от сетевого сервера.
В одном варианте веб-страница включает модуль опроса датчика в форме встроенного модуля опроса датчика.
В одном варианте приложение включает модуль опроса датчика.
В одном варианте встроенный алгоритм распознавания активности выбирается из множества встроенных алгоритмов распознавания активности.
В одном варианте встроенный модуль распознавания активности выбирается из множества встроенных модулей распознавания активности и по меньшей мере одного модуля распознавания активности, обеспечиваемого операционной системой мобильного устройства, приложениями третьей стороны или сервисами.
В одном варианте по меньшей мере два модуля распознавания активности выбирают из множества встроенных модулей распознавания активности и/или модулей распознавания активности, обеспечиваемых операционной системой мобильного устройства, приложениями третьей стороны или сервисами; и для пользователя мобильного устройства обеспечивается отображение результатов по меньшей мере двух выбранных модулей распознавания активности одновременно.
В одном варианте выбор включает выбор модуля распознавания активности исходя из выбора пользователя, предпочтений пользователя, предпочтений системы или автоматического выбора.
В одном варианте осуществляется сбор дополнительных данных; и производится передача дополнительных данных и/или принятых обработанных данных датчика активности обратно по меньшей мере в один модуль распознавания активности.
В одном варианте передача обработанных данных датчика активности и/или данных, предоставленных приложением, осуществляется через сетевое подключение.
В одном варианте обработка собранных данных датчика включает: передачу данных в облачный сервис, прием обработанных в облачном сервисе данных из облачного сервиса, причем обработанные в облаке данные учитывают данные датчика активности по меньшей мере от одного другого устройства, при этом обработанные данные датчика активности учитывают обработанные в облаке данные.
В одном варианте загруженная веб-страница или модуль распознавания активности включает множество реализаций аналогичных модулей распознавания активности, оптимизированных для разных условий, при этом данный способ также включает: выбор реализации модуля распознавания активности, наиболее соответствующей текущему состоянию мобильного устройства.
В одном варианте выбор модуля распознавания активности производится автоматически, выполняется приложением или в ответ на выбор пользователя.
В одном варианте приложение включает множество реализаций аналогичных модулей распознавания активности, оптимизированных для различных условий, при этом данный способ также включает: выбор приложением реализации модуля распознавания активности, наиболее соответствующей текущему состоянию мобильного устройства.
Краткое описание чертежей
Сопроводительные чертежи, которые включены для более глубокого понимания изобретения и являются частью настоящего описания, поясняют варианты осуществления.
На фиг. 1А показана блок-схема приложения в соответствии с вариантом осуществления.
На фиг. 1В показана блок-схема приложения в соответствии с альтернативным вариантом осуществления.
На фиг. 2 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления.
На фиг. 3 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления.
На фиг. 4 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления.
На фиг. 5 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления.
На фиг. 6 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления.
На фиг. 7А показана блок-схема модуля распознавания активности в соответствии с вариантом осуществления.
На фиг. 7В показана блок-схема модуля распознавания активности в соответствии с альтернативным вариантом осуществления.
На фиг. 7С показана блок-схема модуля распознавания активности в соответствии с альтернативным вариантом осуществления.
На фиг. 8А показана блок-схема, поясняющая обработку данных датчика в соответствии с вариантом осуществления.
На фиг. 8В показана блок-схема, поясняющая обработку данных датчика в соответствии с альтернативным вариантом осуществления.
На фиг. 9А показана блок-схема устройства в соответствии с вариантом осуществления.
На фиг. 9В показана блок-схема устройства в соответствии с альтернативным вариантом осуществления.
На фиг. 10 показана блок-схема способа в соответствии с вариантом осуществления.
Подробное описание изобретения
Далее настоящее описание поясняется по меньшей мере частично примерами на основе языков HTML5 и JavaScript. Алгоритмы распознавания активности могут быть написаны на языке JavaScript и представлены в Интернете на веб-страницах HTML5. Реализации этих веб-страниц обеспечивают документированные интерфейсы для обмена данными с внешними приложениями. Затем, когда разработчик пишет приложение, которому требуется использовать специализированные алгоритмы распознавания активности, он использует веб-страницу HTML5 с алгоритмами датчика в своем приложении. Однако необходимо указать, что эти примеры не ограничивают настоящее изобретение, и что варианты осуществления могут быть реализованы на основе любого подходящего формата веб-страниц или языка программирования. Кроме того в вариантах осуществления используется термин «алгоритм распознавания активности», который в основном относится к модулю распознавания активности, который является приложением или компонентом программы.
Кроме того, данные датчика в данном описании относятся к данным, генерируемым по меньшей мере одним датчиком устройства, например, мобильного устройства. Устройство может иметь несколько различных датчиков, таких как акселерометр, магнетометр, гироскоп, барометр, датчик внешней освещенности, датчик температуры воздуха, датчик влажности, микрофон, камеру, сенсорный экран и т.д.
На фиг. А1 показана блок-схема приложения 100 в соответствии с вариантом осуществления. Приложение 100 включает модуль 102 логики приложения, который управляет исполнением приложения 100. Модуль 102 логики приложения также управляет отображением данных на интерфейсе 104 пользователя. Когда приложение 100 запущено, модуль 102 логики приложения может выполнять специальные процессы инициализации. Например, модуль логики приложения инициализирует окно 106 браузера и загружает из памяти 116 устройства нужную веб-страницу 108, включающую встроенный алгоритм распознавания активности. Веб-страница 108 может представлять собой веб-страницу на языке HTML5. Встроенный алгоритм 110 распознавания активности относится, например, к алгоритму распознавания активности, который написан на языке JavaScript и встроен в страницу HTML5. Когда веб-страница загружена, модуль 102 логики приложения инициализирует алгоритм 110 распознавания активности через интерфейс 114 данных активности и запускает этот алгоритм и модуль 112 опроса датчика. Интерфейс 114 данных активности осуществляет специальные процессы для обмена данными между алгоритмом 110 распознавания активности и внешними приложениями. Эти процессы могут отличаться в зависимости от платформы, на которой запускается приложение 100. Например, они могут представлять собой платформно-зависимые способы JavaScript для обмена данными с другими программами или платформно-зависимые переменные и объекты, которые доступны из других программ.
На фиг. 1А показано, что веб-страница 108 также включает модуль 112 опроса датчика в форме встроенного модуля или алгоритма. Аналогично алгоритму 110 распознавания активности, модуль 112 опроса датчика может быть написан на языке JavaScript. После запуска алгоритма 110 распознавания активности и модуля 112 опроса датчика, они выполняются в окне 106 браузера.
Модуль 112 опроса датчика собирает данные по меньшей мере от одного датчика (на фиг. 1А не показан) мобильного устройства, в котором запущено приложение 100. Собранные данные датчика пересылаются в алгоритм 110 распознавания активности. Алгоритм 110 распознавания активности обрабатывает собранные данные датчика и пересылает обработанные данные, относящиеся к обнаруженной активности, в модуль 102 логики приложения через интерфейс 114 данных активности. Модуль 102 логики приложения может обеспечивать отображение обработанных данных, по меньшей мере частично, для пользователя мобильного устройства через интерфейс 104 пользователя. Пользователь может неоднократно взаимодействовать с приложением 100 через интерфейс 104 пользователя, и приложение 100 может предоставлять пользователю информацию о текущих и прошлых действиях пользователя и другую сопутствующую информацию.
В указанном выше варианте осуществления, после того как приложение 100 установлено в устройстве пользователя, подключения к сети (например, Интернет) не требуется, поскольку веб-страница 108, включающая встроенные модули, сохраняется в памяти 116 устройства.
На фиг. 1В показана блок-схема приложения 100 в соответствии с альтернативным вариантом осуществления. Вариант осуществления на фиг. 1В является аналогичным варианту осуществления на фиг. 1А за исключением того, что приложение 100 загружает веб-страницу 106 с сервера 118 и может обновлять ее достаточно часто для гарантии того, что используется самая последняя версия алгоритма распознавания активности.
В следующем варианте осуществления со ссылкой на фиг. 1А и 1В, приложение 100 может помещать веб-страницу 108 в кэш-память устройства, чтобы она могла использоваться даже при отсутствии сетевого подключения. Кэш-память может иметь управляемый срок жизни и может быть освобождена по окончании этого срока, чтобы сделать невозможным несанкционированное копирование кэш-памяти и не позволить приложению использовать более старую версию алгоритма.
На фиг. 2 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления. Приложение 200 включает модуль 202 логики приложения, который управляет исполнением приложения 200. Модуль 202 логики приложения также управляет отображением данных на интерфейсе 104 пользователя.
В этом варианте осуществления само приложение 200 написано на языках HTML5 и JavaSvript и является веб-страницей, исполняющейся в браузере, веб-представлением в другом приложении или может запускаться внутри приложения, автоматически генерируемого в кросс-платформенной среде (например, PhoneGap). В другом варианте операционная система может допускать запуск страниц HNML5 в виде приложений (как ОС Firefox, ОС Chrome и т.д.). В этом случае страница HTML5, включающая алгоритм, может быть встроена в приложение на основе средств HTML5, например ¡frame.
Встроенная веб-страница 206 включает алгоритм 208 распознавания активности и модуль 210 опроса датчика. Алгоритм 208 распознавания активности и модуль 210 опроса датчика могут быть написаны на языке JavaScript. Модуль 210 опроса датчика собирает данные по меньшей мере от одного датчика (на фиг. 2 не показан) мобильного устройства, в котором исполняется приложение 200. Собранные данные датчика пересылаются в алгоритм 208 распознавания активности. Алгоритм 208 распознавания активности обрабатывает собранные данные датчика и пересылает обработанные данные относительно обнаруженной активности в модуль 202 логики приложения. Модуль 202 логики приложения может обеспечивать отображение обработанных данных, по меньшей мере частично, для пользователя мобильного устройства через интерфейс 204 пользователя. Пользователь может неоднократно взаимодействовать с приложением 200 через интерфейс пользователя, и приложение 200 может предоставлять пользователю информацию о текущей и прошлой деятельности пользователя и другую сопутствующую информацию.
На фиг. 3 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления. Приложение 300 включает модуль 302 логики приложения, который управляет исполнением приложения 300. Модуль 302 логики приложения также управляет предоставлением данных для интерфейса 304 пользователя. Когда приложение 300 запускается, модуль 302 логики приложения выполняет специальные процессы инициализации. Например, модуль логики приложения инициализирует окно 306 браузера и загружает из памяти устройства или из Интернета нужную веб-страницу 306, включающую встроенный алгоритм 310 распознавания активности. Веб-страница 306 может представлять собой вебстраницу на языке HTML5. Встроенный алгоритм 306 распознавания активности относится, например, к алгоритму распознавания активности, который написан на языке JavaScript и встроен в веб-страницу HTML5. Когда веб-страница загружена, модуль 302 логики приложения инициализирует алгоритм 310 распознавания активности через интерфейс 312 данных активности и запускает алгоритм. После того как алгоритм 310 распознавания активности запущен, он выполняется в окне 306 браузера.
Интерфейс 312 данных активности осуществляет специальные процессы для обмена данными между алгоритмом 310 распознавания активности и внешними приложениями. Эти процессы могут отличаться в зависимости от платформы, на которой исполняется приложение 300. Например, они могут представлять собой платформно-зависимые способы JavaScript для обмена данными с другими программами или платформно-зависимые переменные и объекты, которые доступны из других программ.
На фиг. 3 показано, что приложение 300 также включает модуль 308 опроса датчика. Модуль 302 логики приложения также запускает модуль 308 опроса датчиков, и после запуска модуль 308 опроса датчика собирает данные по меньшей мере от одного датчика (на фиг. 3 не показан) мобильного устройства, в котором исполняется приложение 300. Собранные данные датчика пересылаются в алгоритм 310 распознавания активности через интерфейс 312 данных активности. Алгоритм 310 распознавания активности обрабатывает собранные данные датчика и пересылает обработанные данные, относящиеся к обнаруженной активности, в модуль 302 логики приложения через интерфейс 312 данных активности. Модуль 302 логики приложения может обеспечивать отображение обработанных данных, по меньшей мере частично, для пользователя мобильного устройства через интерфейс 304 пользователя. Пользователь может неоднократно взаимодействовать с приложением 300 через интерфейс 304 пользователя, и приложение может предоставлять пользователю информацию о текущих и прошлых действиях пользователя и другую сопутствующую информацию.
На фиг. 4 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления. Вариант осуществления на фиг. 4 аналогичен вариантам осуществления, указанным выше, за исключением того, что существует более одного алгоритма распознавания активности, которые могут быть использованы. Все алгоритмы 406А, 406В, 406С, 406N могут быть реализованы в форме веб-страницы на языке HTML5 и JavaScript, доступной приложению 400.
На фиг. 4 алгоритмы распознавания активности 406А, 406В, 406С, 406N сконфигурированы для сбора данных по меньшей мере от одного датчика (на фиг. 4 не показан) мобильного устройства, в котором исполняется приложение 400. Алгоритмы распознавания активности 406А, 406В, 406С, 406N обрабатывают собранные данные датчика и пересылают обработанные данные в модуль 402 логики приложения.
Приложение 400 конфигурируют так, чтобы предоставлять пользователю возможность выбрать наилучший алгоритм из библиотеки или базы данных доступных алгоритмов распознавания активности через интерфейс пользователя, например с учетом текущих предпочтений пользователя или системных предпочтений (в зависимости от структуры системы). В другом варианте приложение 400 может выбирать наилучший алгоритм автоматически. В следующем варианте приложение 400 может предоставлять пользователю результаты одного или более или всех алгоритмов распознавания активности, исполняемых параллельно.
В следующем варианте осуществления на основе фиг. 4 приложение 400 может также использовать алгоритм распознавания активности, обеспечиваемый операционной системой мобильного устройства или предоставленный третьей стороной.
В следующем варианте осуществления на основе фиг. 4 приложение 400 может предоставлять для алгоритма распознавания активности дополнительные данные от различных источников через модуль 402 логики приложения с целью улучшения эффективности алгоритма, которая определяется, например, по скорости вычисления, достоверности, точности и актуальности результатов для пользователя. Кроме того, дополнительные данные могут включать результаты работы других алгоритмов распознавания активности, исполняемых параллельно, информацию о выборе пользователем одного или другого алгоритма, информацию о действиях другого пользователя в приложении 400, информацию о пользователе, подробно указывающую его текущие и прошлые действия, уникальный идентификатор пользователя или другую информацию, доступную из сети или в устройстве и имеющую отношение к анализу, производимому алгоритмом распознавания активности.
Помимо этого, алгоритм или алгоритмы распознавания активности 406А, 406В, 406С, 406N не только обрабатывают данные, но также могут пересылать данные и результаты обработки в Интернет (например, в облачный сервис) с целью улучшения текущего и будущего качества работы алгоритма. Кроме того, алгоритм или алгоритмы распознавания активности 406А, 406В, 406С, 406N могут получать из Интернета (например, из облачного сервиса) дополнительную информацию, которая может улучшить текущее и будущее качество работы алгоритма или алгоритмов распознавания активности 406А, 406В, 406С, 406N. Помимо этого данные могут анализироваться разработчиками, и затем может быть выпущена новая усовершенствованная версия алгоритма. В другом варианте данные могут анализироваться автоматически, и по результатам работы алгоритма могут генерироваться исправления и пересылаться обратно в алгоритм также автоматически.
На фиг. 5 показана блок-схема приложения в соответствии с альтернативным вариантом осуществления. Вариант осуществления на фиг. 5 является аналогичным вариантам осуществления, указанным выше, за исключением того, что код 506 веб-страницы или JavaScript самого алгоритма распознавания активности включает две или более реализаций 510А, 510В, 510N аналогичных алгоритмов, которые требуют, например разных сетевых подключений, разных вычислительных средств и разного времени готовности. Код веб-страницы или JavaScript алгоритма 506 также включает модуль 508 логики выбора, который допускает автоматическое или управляемое пользователем или приложением переключение между множеством реализаций 510A, 510В, 510N, например, в зависимости от текущего сетевого подключения, доступной мощности, объема собранных данных и т.п.
Например, когда приложение 500 только что запущено, активируется версия 510A, 510В или 510N, которая не требует первоначальных данных, и эта версия анализирует первые данные датчика. Затем, после того как собран некоторый объем данных, подключается более точная или подходящая версия алгоритма. Если потеряно соединение с Интернетом, подключается автономная версия. Далее, когда устройство питается от аккумуляторной батареи, может подключаться менее точная, но менее энергопотребляющая версия алгоритма. Переключение может происходить автоматически и может быть полностью скрыто от разработчика или пользователя приложения. В другом варианте может использоваться принцип управления, когда изменение в выборе реализации алгоритма вызывается приложением 500 или пользователем.
На фиг. 6 показана блок-схема приложения 600 в соответствии с альтернативным вариантом осуществления. Вариант осуществления на фиг. 6 является аналогичным вариантам осуществления, указанным выше, за исключением того, что приложение включает множество алгоритмов 610А, 610В, 610С, 610N распознавания активности. Модуль 602 логики приложения управляет модулем 606 логики выбора при выборе одного из алгоритмов 610A, 610В, 610С, 610N распознавания активности в зависимости от информации о статусе 608 системы. Информация о статусе системы относится, например, к текущему подключению к Интернету, доступной мощности, объему собранных данных и т.д. Кроме того, модуль 606 логики выбора может переключаться между множеством алгоритмов распознавания активности в зависимости от информации 608 о статусе. Модуль 602 логики приложения также управляет предоставлением обработанных данных датчика активности для интерфейса 604 пользователя.
На фиг. 7А показана блок-схема алгоритма 700 распознавания активности в соответствии с вариантом осуществления. В этом варианте осуществления алгоритм 700 распознавания активности включает множество шагов обработки сигналов датчика.
Исходные данные 702 датчика предварительно обрабатываются и фильтруются на шаге 704, в результате чего получают предварительно обработанные данные 706. На шаге 708 вычисляется вектор или вектора признаков на основе предварительно обработанных данных 706 датчика, в результате чего получается вектор 710 признаков. Классификатор 712 использует вектор 710 признаков для идентификации активности пользователя и получения дополнительной статистики относительно активности пользователя, в результате чего получают решение 714. Решение 714 затем может пересылаться обратно в приложение, и приложение способно предоставлять пользователю статистику через интерфейс пользователя.
На фиг. 7В показана блок-схема алгоритма 724 распознавания активности в соответствии с альтернативным вариантом осуществления. Вариант осуществления на фиг. 7В отличается от варианта осуществления на фиг. 7А тем, что часть обработки производится в облачном сервисе 720.
На шаге 704 выполняется предварительная обработка данных алгоритмом 724 распознавания активности, затем алгоритм распознавания активности пересылает предварительные данные 716 в облачный сервис 720 для вычисления вектора 718 признаков. После вычисления вектора признаков облачный сервис 720 пересылает его обратно в алгоритм 724 распознавания активности.
Такой вариант осуществления позволяет обеспечить, например, защиту проприетарных шагов алгоритма, поскольку они не загружаются в мобильное устройство. Если эта информация сохраняется в облачном сервисе, то оригинальные данные защищаются от копирования в мобильное устройство.
На фиг. 7С показана блок-схема алгоритма 734 распознавания активности в соответствии с альтернативным вариантом осуществления. Вариант осуществления на фиг. 7С отличается от варианта осуществления на фиг. 7А тем, что часть обработки производится в облачном сервисе 730.
Предварительная обработка 704 данных и вычисление 708 вектора признаков выполняются алгоритмом 734 распознавания активности, затем алгоритм 734 распознавания активности пересылает вектор 726 признаков в облачный сервис 730 для классификации посредством классификатора 728. Классификатор 728 пересылает решение 732 обратно в алгоритм 734 распознавания активности.
Вариант осуществления на фиг. 7С является полезным для снижения объема передачи данных, поскольку вектор признаков и решение классификации требуют значительно меньшего объема по сравнению с исходными или предварительными данными. Кроме того, такой вариант осуществления позволяет обеспечить, например, защиту проприетарных шагов алгоритма, поскольку они не загружаются в мобильное устройство. Если эта информация сохраняется в облачном сервисе, то оригинальные данные защищаются от копирования в мобильное устройство.
В дополнение к фиг. 7А, 7В, 7С далее приводится несколько примеров того, что может включать предварительная обработка, фильтрация сигналов, вычисление вектора признаков и классификатор.
В процессе фильтрации входной сигнал может фильтроваться с целью подавления шума и улучшения качества полезного сигнала или полезных частот. Также путем фильтрации может быть удалена лишняя информация с целью сжатия сигнала. Примером фильтрации сигналов является понижающая дискретизация входного сигнала.
Другим примером фильтрации сигналов является применение сверточного фильтра или фильтра с конечной импульсной характеристикой (КИХ-фильтр), который выводит сумму (свертку) конечного числа предыдущих отсчетов сигнала, умноженных на заданные весовые коэффициенты. Простейшим примером такого фильтра является фильтр скользящего среднего, который для заданного конечного натурального числа N выводит среднее значение для N последних отчетов входного сигнала.
Следующим примером фильтрации сигналов является применение фильтра с бесконечной импульсной характеристикой (БИХ-фильтр), который выводит взвешенную сумму M предыдущих отсчетов выходного сигнала плюс взвешенную сумму N предыдущих отсчетов входного сигнала, где M и N - заданные натуральные числа.
Следующим примером фильтрации сигналов является вычисление численных производных или интегралов от входного сигнала или применение линейных фильтров со специальным преобразованием частоты (которые, как можно доказать, эквивалентны КИХ или БИХ фильтрам).
Следующим примером фильтрации сигналов является применение нелинейных фильтров, например медианного фильтра, который выводит среднее значение для N последних отсчетов входного сигнала, где N - заданное натуральное число.
Могут быть также использованы более сложные фильтры, такие как фильтр Савицкого-Голея или фильтр Кальмана. На шаге предварительной обработки и фильтрации также может использоваться сочетание датчиков, например вычисление кватерниона ориентации устройства на основе считывания данных более чем одного датчика с использованием фильтра Кальмана или дополнительного фильтра. Невозможно перечислить здесь все известные фильтры, но обычно они хорошо известны специалисту в области обработки сигналов.
Что касается вычисления вектора признаков, то признаки - это специальные характеристики, выделяемые из входного сигнала, которые в дальнейшем используются классификатором для распознавания различных классов сигналов. Для сигналов датчика, например акселерометра, признаки могут быть вычислены для компонентов исходного сигнала, а также для амплитуды сигнала, квадрата амплитуды, абсолютной величины сигнала, углов ориентации вектора сигнала.
Признаки могут представлять собой типовые статистические характеристики, такие как среднее по времени значение, дисперсия, стандартное отклонение, квантили и гистограмма.
Признаки могут представлять собой математические выборочные моменты различной степени и свойств, такие как простые моменты, центральные выборочные моменты, нормализованные моменты. Примером такого признака может служить асимметрия, которая является центральным моментом 3-го порядка. Другим примером такого признака служит эксцесс, который является центральным моментом 4-го порядка.
Следующим примером признаков является вектор коэффициентов входного сигнала, спроецированный на определенный базис или отфильтрованный семейством фильтров. Такие признаки могут представлять собой спектральные коэффициенты Фурье, коэффициенты кепстра, коэффициенты кепстра мел-частот.
Признаки могут также использовать более одного компонента сигнала от одного датчика или множества датчиков, например смешанные моменты, такие как ковариация, коасимметрия и коэксцесс.
Что касается классификатора, то в нем используются признаки из вектора признаков сигнала для идентификации класса сигнала. Обычно классификатор описывается некоторой вычислительной моделью и набором переменных параметров. Значения переменных параметров классификатора определяются во время фазы обучения и затем устанавливаются для рабочей фазы.
Примерами классификаторов являются примитивный классификатор Бейеса, деревья решений, метод k-ближайших соседей, метод опорных векторов, нейронные сети. Далее классификаторы могут группироваться в комитеты и управляться на основе сложных методов голосования, а также обучаться передовыми способами, такими как адаптивное обучение, например AdaBoost.
На фиг. 8А показана блок-схема, отражающая обработку данных датчика в соответствии с вариантом осуществления. На фиг. 8А показаны два мобильных устройства 800, 802, которые сконфигурированы для обработки данных датчика активности, по меньшей мере частично. Мобильное устройство 800 включает алгоритм распознавания активности, который сконфигурирован для выполнения по меньшей мере части обработки, показанной на фиг. 7А. В этом варианте осуществления, более одного устройства, принадлежащих одному пользователю или разным пользователям, но связанные потребностью одного приложения использовать данные датчиков от всех этих устройств, посылают данные в облачный сервис 816. Часть алгоритма, работающего в облачном сервисе 816, принимает в расчет все доступные данные, чтобы получить более точные результаты, и отправляет данные и/или результаты обратно в мобильные устройства.
На шаге 806 вычисления в устройстве алгоритм распознавания активности обрабатывает исходные данные 804 датчика, по меньшей мере частично. Алгоритм распознавания активности в мобильном устройстве 800 может пересылать частично обработанные данные датчика в облачный сервис 816 для облачного вычисления 808. В другом варианте приложение, включающее встроенный алгоритм распознавания активности (например, алгоритм распознавания активности, рассмотренный при описании фиг. 2 или 3), пересылает частично обработанные данные датчика в облачный сервис 816 для облачного вычисления 808. Аналогично на шаге 820 вычисления в устройстве алгоритм распознавания активности обрабатывает исходные данные 818 датчика, по меньшей мере частично. Алгоритм распознавания активности в мобильном устройстве 802 может пересылать частично обработанные данные датчика в облачный сервис 816 для облачного вычисления 820. В другом варианте приложение, включающее встроенный алгоритм распознавания активности (например, алгоритм распознавания активности, рассмотренный при описании фиг. 2 или 3), пересылает частично обработанные данные да