Керування в іграх за допомогою очей

У цьому практичному кейсі розглядається розробка продукту із застосуванням технологій відстеження погляду та положення голови для віддаленого керування пристроєм. Використовуючи методи розпізнавання зображень, ми прагнемо покращити взаємодію з користувачем, особливо з погляду часових затримок та точності позиціонування.

Завдання

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

Як розширення впровадження технології плануються наступні напрямки, які вже не пов'язані з ігровою індустрією, наприклад:

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

Дослідження у створенні інноваційних підходів до управління навігації у додатках. Проведені дослідження мобільних пристроїв показали, що близько половини користувачів смартфонів використовують лише одну руку для взаємодії з інтерфейсом, при цьому вони часто кладуть смартфон на долоню іншої руки; і лише 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