В основе методики лежит отслеживание направления взгляда, которое осуществляет устройство “Tobii Eye Tracker 4C”. На экран компьютера выводится таблица с несколькими картинками. Если задержать взгляд на отдельной картинке, то будет озвучена соответствующая ей фраза, например, «пить», «повернуть на бок», «смотреть мультики».

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

Что потребуется (в двух словах)?

  1. компьютер
  2. айтрекер — устройство отслеживания направления взгляда
  3. бесплатное программное обеспечение (от автора статьи)

Содержание


Как это работает?

Подробная инструкция
1. Выбор компьютера
2. Устройство Tobii Eye Tracker 4C
2.1 Крепление айтрекера на монитор
3. Установка программного обеспечения
3.1. Добыть файл TobiiGazeCore32.dll версии 4.1.3.938 или более новый
3.2. Установка драйверов и калибровка
3.3. Установка “Microsoft Visual C++ Redistributable for Visual Studio 2012 Update 4”
3.4. Установка и настройка бесплатного программного обеспечения (от автора статьи)
3.4.1. Настройка программы для работы в режиме таблицы
4. Использование программы
5. Как изменить содержимое таблицы

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

Как это работает?


Видео, иллюстрирующее работу программы:


Виолетта учится работать с программой:


Виолетта капризничает и говорит «Нет!» при помощи программы:


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

Чтобы программа работала в таком режиме, нужно в качестве используемого устройства выбрать Аэромышь (2 на рисунке ниже), но сначала не забудьте поставить галочку в поле “Режим таблицы (GRID) – для детей” (1).



Подробная инструкция


1. Выбор компьютера


Какой компьютер для этого подойдёт? Я бы сказал так: современный со средними характеристиками и операционной системой Windows версий 7, 8.1, 10 (Windows 10 – только 64 бита). Несмотря на то, что в рекомендациях по использованию айтрекера Tobii 4c (https://help.tobii.com/hc/en-us/articles/213414285-Specifications-for-the-Tobii-Eye-Tracker-4C) советуют использовать компьютер с процессором Intel i5 или i7, мне удавалось работать и на современных процессорах подешевле: i3, Pentium, Celeron, и даже на Atom x5, хотя работа на последних двух может показаться заторможенной.

Другими словами, если у вас уже есть компьютер, и он не архаичный, то стоит попробовать работать на нём. Если же думаете купить компьютер, главное – не берите старый, и не берите с процессором Atom. Хотя, если денег совсем нет, то можно и такой попробовать, но лучше обговорить возможность возврата.

У компьютера должен быть по крайней мере один порт USB версии 2 или 3. Лучше, чтобы было хотя-бы два порта, чтобы можно было кроме айтрекера хоть мышь воткнуть. (Планшеты, кстати, часто грешат тем, что порт USB у них только один).

2. Устройство Tobii Eye Tracker 4C


Это устройство выпускается компанией Tobii для игроков в компьютерные игры и продаётся по умеренной цене. Чтобы не создавать конкуренции своим значительно более дорогим устройствам, “Tobii Eye Tracker 4C” сделан несовместимым с программами для людей с ограниченными возможностями, выпускаемыми ей же.

Однако, выпущенные компанией Tobii средства разработки оставили мне лазейку, позволяющую написать такие программы самому. Возможно, не столь совершенные, но зато бесплатные.

Сегодня (осень 2018) это устройство можно легко купить в нескольких магазинах. Вы без труда найдёте самый удобный для себя вариант. Я брал весной 2018 года за 11500 российский рублей.

2.1 Крепление айтрекера на монитор.


Видео, иллюстрирующее установку на ноутбук:


Компьютер может быть большой с отдельно стоящим монитором или мобильный (ноутбук). Может быть даже планшет Windows. Но нужно помнить, что айтрекер нужно располагать точно ПОД монитором так, чтобы крепление было жёстким. И если к обычному монитору айтрекер крепится идущим в комплекте самоклеющимся магнитом, то к планшету его приходится крепить как-нибудь виртуозно. На фотографии ниже планшет и айтрекер закреплены на куске доски, которая, в свою очередь, соединена с кронштейном, поворачивающимся на углу стола.



Также нужно помнить, что за тёмным стеклом (прозрачным только в ИК-диапазоне) в центре айтрекера находится камера, а по краям — инфракрасные светодиоды. При креплении хомутами важно не загородить ни то, ни другое.

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

Расстояние от глаз до монитора с айтрекером должно быть около 50 см (расстояние вытянутой руки) или чуть дальше. Поэтому крепить айтрекер к телевизору на стене не получится – слишком далеко.

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

3. Установка программного обеспечения


Всё делать именно в такой последовательности!

3.1. Добыть файл TobiiGazeCore32.dll версии 4.1.3.938 или более новый


Ранее этот файл можно было скачать в составе Tobii Gaze SDK. Сейчас компания Tobii прекратила его предоставлять, и приходится пользоваться трюком, описанным ниже.

Нужно скачать и установить программное обеспечение Tobii EyeX 2.1.1. После этого в одном из каталогов появится этот файл. Нужно скопировать его в надёжное место, после чего установленное программное обеспечение можно удалить.

Устанавливать это программное обеспечение нужно ДО установки драйверов от Tobii, иначе нужный нам файл TobiiGazeCore32.dll может не появится (кому интересно, мы решали эту проблему вот здесь: github.com/MastaLomaster/bkb/issues/6 )

Итак, скачиваем Tobii EyeX 2.1.1 ( files.update.tech.tobii.com/engine/Tobii.EyeX_2.1.1.293.exe) и запускаем. Соглашаемся с условиями: ставим галочку и жмём кнопку ‘Next”.



Ждём…



Готово, жмём “Finish”.



После установки появилось два файла TobiiGazeCore32.DLL. Более новый лежит в каталоге “C:\Program Files (x86)\Tobii\Tobii EyeX”. Это можно проверить, если нажать на имени файла правую кнопку мыши и выбрать «Свойства» в контекстном меню.



И затем, на закладке «Подробно» посмотреть на номер версии:



Копируем этот файл в надёжное место, например, создадим каталог BKB на диске C и положим файл туда:



Теперь можно удалить программу Tobii EyeX – мы взяли из неё всё, что нужно.
В Windows 10 для этого жмём кнопку «Пуск», потом — появившуюся кнопку с шестерёнкой.



Затем выберем раздел «Приложения»



Находим и удаляем всё, что начинается на “Tobii”, нажимая на кнопку «Удалить»:



3.2. Установка драйверов и калибровка


Заходим на страницу tobiigaming.com/getstarted и нажимаем на кнопку «Tobii Eyetracking»:



Затем на появившуюся кнопку «Download»:



Сохраняем файл (на будущее), и потом запускаем его:



Ставим галочку, жмём кнопку «Next»:



Ждём…





Жмём кнопку “Continue”:



Потом жмём кнопку “Get Started”:



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





По завершению нажать кнопку “Done”.

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



Если кружки расположены не в центре экрана (как на картинке сверху), наклоните монитор, чтобы сдвинуть их.
Если кружки большие и мутные – вы слишком близко придвинулись к монитору.
Если кружки маленькие и мутные – вы слишком отдалились от монитора.

Как я уже писал выше, оптимальное расстояние от монитора до глаз – около 50 см.

Далее начинается калибровка айтрекера.

ВАЖНО!!!

Если айтрекером будет пользоваться ребёнок, то калибровку нужно будет выполнить глазами ребёнка!!


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



После того, как вы зафиксируете взгляд на одной из точек, она разлетится на кусочки, как верхняя точка на картинке выше.

После окончания калибровки введите имя человека, для глаз которого проводилась калибровка и нажмите кнопку “Save”



Далее запустится игра, в которой вы двигаете глазами прицел космического корабля, а затем стреляете по астероидам клавишей «пробел»:



Выйти из игры можно, нажав на клавишу “Escape”.

На панели задач появится значок с двумя кружочками, изображающими глаза:



Если устройство видит только один глаз, то будет показан только один кружочек:



Если устройство вообще не находит глаз, то будут нарисованы два крестика:



ВАЖНО! Для того, чтобы программы не мешали работать друг другу, нужно отключить стандартные действия, которые производит драйвер Tobii.

Для этого щёлкаем на значок с кружочками (1) и в открывшемся меню заходим в раздел Interactions (2):



В каждом из разделов (Touchpad, Mouse, Windows) переведите все выключатели в положение “OFF”:







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



Затем выбираем пункт “Create New Profile…” (1) и повторяем калибровку для нового человека.

Переключение между профилями различных людей делается в области ниже (2). Текущий профиль отмечен голубым кружком:



3.3. Установка “Microsoft Visual C++ Redistributable for Visual Studio 2012 Update 4”


Если вы пропустите этот шаг, то при запуске программы вы увидите сообщение о том, что не найден файл msvcrt110.dll:



Заходим по ссылке: www.microsoft.com/ru-ru/download/details.aspx?id=30679



Качаем и устанавливаем версию для процессоров x86:











3.4. Установка и настройка бесплатного программного обеспечения (от автора статьи)


Заходим по ссылке.

После этого жмём кнопку “Download” или “View Raw”



Сохраняем файл.



(если кому интересно, там рядом лежат и исходные коды на языке С++)

Создаём каталог “C:\bkb” и копируем туда содержимое скачанного архива “bkb32c-Russian.zip”.

Туда же копируем файл “TobiiGazeCore32.dll” (см. п. 3.1. инструкции).

Должен получиться каталог вот с такими файлами и подкаталогом “grid”:



Вообще-то вы можете выбрать и другой каталог для программы, но это не должен быть подкаталог “Program Files…”. Дело в том, что программа сохраняет файл конфигурации “config.bkb” в этом каталоге, а подкаталоги “Program Files…” закрыты на запись. (Да, я знаю, что нужно было писать в %AppData%, но так уж сложилось исторически).

3.4.1. Настройка программы для работы в режиме таблицы

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

Поэтому при старте программы ворон не ловим, а быстренько ставим галочку в поле “Режим таблицы (GRID) – для детей” (1).



Также рекомендую нажать кнопку “Все настройки” (2) и установить побольше время фиксации взгляда на картинках, а также время ожидания следующей фиксации взгляда:



Жмём кнопку «Сохранить» и выбираем наш айтрекер, например, Tobii (3).

Если вы не успели поставить галочку или войти в настройки, и программа запустилась, закройте её и попробуйте снова.

Выйти из программы можно, только закрыв её окно в панели задач:



4.Использование программы


После запуска в режиме таблицы программа развернёт на весь экран вот такое изображение:



Свернуть эту таблицу до одной клеточки можно, посмотрев на стрелку влево (свернуть). Например, чтобы посмотреть мультфильмы.

Если посмотреть на свернутую таблицу, то она снова развернётся на весь экран.

Если смотреть на зелёный кружок, будет произноситься слово «Да»

На красный – слово «Нет»

На колокол – звук колокола.

На одну из картинок – соответствующая фраза:
Ячейка таблицы
0. Болит живот.
1.Пить.
2.Кушать.
3.Какать.
4.Купаться.
5.Смотреть мультики.
6.Рисовать.
7.Повернуть на бок.
8.Спать
9.Смотреть в окошко.
a.Почесать лобик.
b.Читать сказку.


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

5. Как изменить содержимое таблицы


Можно изменить содержимое таблицы, положив в каталог “grid” собственные файлы.

Для картинок – это файлы в формате BMP. (желательно сохранять их в программе Microsoft Paint, иначе программа может их не прочитать).

Для звуков – это файлы в формате WAV.

В первой ячейке таблицы отображается файл 0.BMP и проигрывается звук 0.WAV
Во второй ячейке – 1.BMP и 1.WAV
Всего на одном уровне может быть до 16 ячеек, они нумеруются так:
0,1,2,3,4,5,6,7,8,9,A,B,D,E,F

То есть к 16-й ячейке будут привязаны файлы F.BMP и F.WAV

Можно сделать дополнительные уровни таблицы.
Например, при выборе ячейки «Кушать» можно открывать таблицу с выбором еды.

В таблице второго уровня файлы именуются двузначными значениями.
Например, «Кушать» на первом уровне имеет номер 2, а из неё мы попадаем в таблицу с ячейками, начинающимися на 2: 20, 21, 22……

Попробуйте сделать так:

Возьмите файл 2.BMP и скопируйте его в файл 20.bmp, и ещё в файл 21.bmp. Затем в графическом редакторе измените файл 20.bmp, чтобы там появилась тарелка с кашей. А файл 21.bmp отредактируйте так, чтобы там было изображение пюре.

Теперь запишите два звуковых файла: 20.wav и 21.wav. В первом запишите, как вы произносите слово “каша”, а во втором – слово “пюре”.

Теперь перезапустите программу, и когда ребёнок будет смотреть на картинку со словом “кушать”, то после произнесения этого слова откроется новая таблица с вашими картинками 20.bmp, и 21.bmp. А при остановке взгляда на этих картинках – будут произносится слова, записанные в файлах 20.wav и 21.wav соответственно.

Всего может быть три уровня, как показано ниже:



Ячейки следующего уровня добавляют ещё одну цифру к имени файла верхнего уровня:
2-кушать, 20-каша, 200-манная каша.

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

Записывайте свои звуки, создавайте свои картинки, объединяйте их в свои собственные таблицы.

А можно вместо этого купить готовую систему от известного производителя?


Конечно, можно. Но за программное обеспечение они просят денег, и эти программы не работают с дешёвыми геймерскими айтрекерами.

Вот, например, трекер с базовой программой за $1700.

Приветы и благодарности


Режим таблицы для общения детей я сделал с подачи Александра Макарчука – руководителя благотворительного фонда «у Совы» ( sova.by ) из Беларуси. Александр также помог мне со сбором требований и тестированием. Фонд, в числе прочего, занимается организацией дистанционного обучения людей с инвалидностью с последующем трудоустройством. Саша, привет и успехов тебе!

Комментарии (15)


  1. safari2012
    20.09.2018 14:11

    Подскажите, на каком максимальном расстоянии этот трекер может эффективно распознавать глаза?


    1. MastaLomaster Автор
      20.09.2018 14:23

      Сейчас специально замерил — с моими глазами хорошо работает где-то до 90 см. При 120 см ещё работает, но уже нестабильно.


  1. sinc
    20.09.2018 14:37

    я так понимаю, что этот трекер отличается от просто веб-камеры дополнительным ик светодиодом?


    1. MastaLomaster Автор
      20.09.2018 14:43

      Насколько мне известно, в современных трекерах светодиоды синхронизированы с кадровой развёрткой камеры: один кадр подсвечивается левым светодиодом, второй кадр — правым. Так проще разделять блики на зрачках. Плюс, обработка картинки (поиск зрачков, бликов на зрачках, вычисление углов, под которыми свет ИК-светодиодов падает на зрачки с учётом кривизны зрачка, измеренной при калибровке, отсечение бликов от очков и контактных линз) может осуществляться как в самом айтрекере (встроенным компьютером), так и быть возложено на компьютер, к которому он подключён. В этом трекере большая часть обработки происходит внутри, и компьютер сильно не нагружается.


  1. sergkaneff
    20.09.2018 18:47

    Тот редкий случай, когда есть смысл поспамить ссылкой на статью на Хабре на различных специализированных форумах и группах в соц.сетях.
    Очень подробное описание, даже достаточно далекие от ИТ люди смогут разобраться! Вы молодец! ;)


  1. VirusPva
    20.09.2018 22:50

    Вы частично повторили то что делает TobiiDynavox www.tobiidynavox.com/products/software
    Можно сказать Communicator своими руками. Очень приятно что люди этим занимаются и выкладывают в опенсорс. С детального описания складывается мнение что вы пользовались или разрабатывали Communicator.


    1. MastaLomaster Автор
      20.09.2018 23:06

      Когда я начинал работу над этой программой, не было TobiiDynavox. Были отдельно Dynavox со своим EyeMax, и отдельно Tobii. А ещё были Sensomotoric Instruments, TheEyeTribe, LC Technologies, EyeTech, Gazepoint и другие. У всех было нечто для взаимодействия с компьютером. Идеи витали в воздухе, и все друг у друга их заимствовали. Так что вы найдёте много похожего в продуктах этих компаний, хоть некоторые из этих компаний уже не существуют. Из последних поглощений: TobiiDynavox поглощает Smartbox — производителя софта для рисования озвучиваемых таблиц на экране, вроде той, что я здесь описал, но с функционалом покруче.


  1. DmitrySpb79
    20.09.2018 23:33

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

    На досуге как-нибудь попробую с OpenCV.


    1. sinc
      21.09.2018 15:15

      Там глаза специально подсвечивают ик-светодиодом, чтобы выделить зрачки (они очень хорошо ик отражают). Затем на камере стоят фильтры. В итоге на изображении остаются два ярких пятна. По отклонению которых от окружности можно судить о направлении. А без этого скорее всего слишком шумно будет — разрешение сильно пострадает. И к тому же, как писал автор выше, эта штука сама занимается трекингом зрачков, что не будет процессор грузить.


      1. DmitrySpb79
        21.09.2018 15:22

        Если я правильно понял, Tobii «заточен» под игры, и точность трекинга там нужна высокая. А если на экране всего 4-10 огромных иконки, то все должно быть гораздо проще.

        В статье совсем не раскрыты возможности их SDK, сложно понять что же в итоге сделал автор кроме подмены DLL :)


        1. sinc
          21.09.2018 15:48

          В качестве проекта выходного дня можно попробовать. Можно раздербанить пульт от телека. Особенно классно, если в нем есть крышечка-фильтр (вроде такого). Взять оттуда светодиод и фильтр. Фильтр нацепить на вебку, а светодиод через резистор к транзистору. Запитать от usb, а транзистором управлять можно от звуковухи. Вычитаем подсвеченное и неподсвеченное изображения и должны получить зрачки. потом контуры выделяем по ним строим окружности. и почти все готово.


          1. DmitrySpb79
            21.09.2018 17:24

            Да, есть даже готовые проекты под opencv, можно попробовать запустить вообще без каких-либо переделок:
            https://github.com/kcmahip/opencv-eye-tracking

            Спец.решение понятно что лучше, здесь зато практически бесплатно.


          1. DmitrySpb79
            22.09.2018 23:35

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


        1. VirusPva
          21.09.2018 23:37

          У Tobii очень много разных айтрекеров заточенных под разные потребности. От простых дешевых с 30 фпс с апрограмным контроллером до очень дорогих с 1000 фпс с апартным модулем обработки. Также выпускают айтрекеры встроенные в оправу очков и работают над VR шлемами.


  1. kokoino
    21.09.2018 21:46

    Может для человечества ещё не всё потеряно, раз есть люди готовые помогать таким образом другим людям, а не тупо извлекать коммерческую выгоду.
    Автор молодец!