Intel Perceptual Computing SDK

от автора

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

В настоящее время компания Intel ведет работу в этом направлении, в октябре прошлого года на сайте компании появилась первая версия PerC SDK, которая поддерживала следующие возможности:

  • Распознавание жестов, положения рук, пальцев, уровень открытости ладони
  • Отслеживание положения лица, определение контрольных точек (губы, нос, глаза), идентификация («узнавание») лица
  • Отслеживание положение 2-х и 3-х мерных объектов

В конце ноября появилась новая версия (Beta 2) — помимо исправления ошибок и работы над оптимизацией разработчики также добавили возможность работы с голосом. Это стало возможным благодаря включению в состав SDK модуля Nuance Dragon Assistant.
На данный момент Beta 2 является последней версией, но уже включает в себя ряд возможностей, способных помочь разработчику добавить в свое программное обеспечение новые способы взаимодействия с пользователем.
Чтобы получить более полное представление о возможностях PerC SDK, вы можете посмотреть видео, показывающее его работу на приемре нескольких приложений, доступное на странице SDK.

Камера

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

Спецификация

  • Разрешение RGB сенсора: 720p (1280 x 720)
  • Разрешение IR Depth сенсора: QVGA (320 x 240)
  • Угол обзора (градусы): 73
  • Частота работы (кадров в секунду): 30
  • Расстояние: от 15 см до 1 метра
  • Питание: USB 2.0 (< 2.5 Ватт)

Системные требования

  • Процессор 2-го поколения Intel Core и выше
  • Порт USB 2.0
  • Windows 7 SP1 и выше

Архитектура SDK

Архитектура SDK представлена на картинке ниже.

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

Модули

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

Модуль ввода-вывода

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

Драйвер

Работает напрямую с камерой, использует возможности аппаратной платформы для ускорения работы SDK. Для использования аппаратной поддержки при обработке кадров используются Media SDK, VCA, Intel Integrated Performance Primitives, что позволяет выиграть не только в скорости, но и в энергопотреблении.

Поддерживаемые языки программирования и фреймворки

PerC SDK предоставляет необходимые файлы (заголовочники, библиотеки) для использования его возможностей в приложениях, написанных на С++, С#. Так же в SDK включена поддержка для Unity Game Engine, openFrameworks, Processing framework. Также доступна стороняя библиотека для Cinder framework.
При желании можно добавить поддержку и для любых других платформ, языков программирования путем создания библиотек, оберток на С++, C#. В качестве примера хочу привести свое расширение для Google Chrome, позволяющее HTML5 приложениям получать уведомления о распознанных жестах. Для его работы расширения требуется предустановленный PerC SDK и камера от Creative.

С чего начать

В принципе, работа с SDK возможна и без камеры от Creative, правда в этом случае будут доступны только модули распознавания речи и определения положения и маркеров лица. Для того, чтобы воспользоваться всеми возможностями необходимо заказать камеру, сделать это можно на этой странице, доставка работает для многих стран, включая Россию.
SDK можно загрузить на официальной странице Intel PerC SDK, в его состав входят все модули для работы с жестами, отслеживанием, за исключением модуля для распознавания речи, который устанавливается отдельно и доступен для загрузки там же. В состав SDK входят множество примеров, доступных как в виде бинарников, так и в виде исходных текстов.

Области применения

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

Управление игровым процессом и пользовательским интерфейсом на примере игры Kung Pow Kevin

Распознавание лица здесь тоже пригодится, можно, например, загружать профиль пользователя, используя идентификацию лица.
Используя информацию о положении лица, маркеров можно создать «примерочную» в режиме реального времени, дать пользователю возможность менять прически, головные уборы, очки, макияж и т.д.
В бизнес приложениях SDK также может найти применение, например, навигация в приложении с использованием жестов, голоса, опять же – идентификация пользователя.
В образовательных приложениях для детей, например, обучение счету, можно просить дать правильный ответ, показав нужное количество пальцев.
Еще одно интересное применение – камера помогает делать вычитание фона, без использования каких либо сложных алгоритмов. Посмотрите на картинку ниже – результат работы инфракрасной камеры, используя эту информацию отделить изображение пользователя от фона не составляет труда.

Мне самому понравилось эксперементировать с камерой, она на самом деле инфракрасная, вот что получится, если показать камере купюру.

В темноте она видит тоже неплохо.

Снимок сделан в комнате при полном отсутствии освещения, экран ноутбука был отключен.
Как я уже сказал выше – возможности широкие, главное включить фантазию. В следующих статьях я расскажу об использовании SDK на примере простого приложения.

ссылка на оригинал статьи http://habrahabr.ru/company/intel/blog/166529/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *