Управление в играх с помощью глаз

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

Задача

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

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

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

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

Обзор решения

Ведущие компании проводят исследования в поисках альтернативных способов управления персональными устройствами, в частности Google в своём приложении "Ассистент" для управления приложением используют голос. Наша команда решила сосредоточится на идее управления при помощи камеры. Задача распознавания лица в текущий момент хорошо описана, и существуют несколько быстрых алгоритмов. Мы провели исследования, как внедрить идею управления через положение головы и глаз.

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

Особенности решения:

  • работает на consumer-grade hardware
  • не требует специальной подготовки пользователя
  • работает универсально независимо от локализации
  • нечувствительно к внешним факторам, но, естественно, чувствительно к освещению.

Технические детали

Проект был реализован как прототип игры, в котором через камеру получали видеопоток лица игрока. Из потока анализировались отдельные кадры, в которых определялся регион головы, и в нём детектировалось направление взгляда. По этим параметрам генерировалась команда, которая передавалась основному движку игры. В качестве базового фреймворка использовалась библиотека с открытым исходным кодом OpenCV. OpenCV является библиотекой компьютерного зрения, которая хорошо документирована и насчитывает более 2500 алгоритмов. К преимуществам также можно отнести кроссплатформенность (можно собрать приложение, как под десктоп операционные системы: Windows, MacOS, Linux, так и мобильные: Android, iOS). Дополнительным удобством являются биндинги под большое количество языков программирования, таких как java, python, семейство dotnet языков.

В решении был использован один из передовых методов LBF (Local Binary Features); мы также рассматривали метод ERT (Ensemble of Regression Trees) из библиотеки Dlib.

Стек технологий

C++

C++

OpenCV

OpenCV

HAAR

HAAR

LBP

LBP

Face

Face