- Custom’ная калибровка Eye-tracker’а
- Алгоритм калибровки (прост до безумия)
- Использование (еще проще)
- Управление компьютером при помощи глаз — практическая реализация
- 1. Необходимость и постановка задачи
- 2. Выбор из существующих решений
- 3. Детали реализации
- 3.1. Аппаратная часть
- 3.1.1. Вариант первый: Tobii Eye Tracker 4C
- 3.1.2. Вариант второй: Tobii EyeX
- 3.1.3. Другие поддерживаемые устройства
- 3.2 Программное обеспечение
- 4. Проблема работы в очках
- 5. Другие способы, которые я не попробовал
- 5.1. Продукты коммерческих компаний
- SMI — senso-motoric instruments
- Tobii
- EyeTech
- DynaVox
- EyeGaze Edge (от LC Technologies)
- 5.2. Проекты с открытым исходным кодом
- GazeTracker
Custom’ная калибровка Eye-tracker’а
Скоро будет год, как мы выпустили продукт с Custom’ной калибровкой Eye-tracker’а на борту. К сожалению, по разным причинам, все никак не получалось добить эту статью. Однако, недавно произошел забавный случай, который побудил закончить начатое. Но, обо всем по порядку. Надеюсь, кому-нибудь все-таки пригодится наш опыт, несмотря на то, что пост получился сыроватым.
Если кратко, Eye-tracker – это устройство, позволяющие отслеживать направление взгляда, а также положение глаз и головы.
У Eye-tracker’ов довольно много сфер применения, одной из таких – является индустрия компьютерных игр (немного подробнее).
Зачастую, детекция взгляда отвечает за второстепенные (вспомогательные), но немаловажные действия в играх:
- перемещение камеры;
- прицеливание;
- выделение объектов для взаимодействия;
- выбор оружия;
- автоматический вызов паузы при потере взгляда;
- прочие.
В большинстве случаев, стандартной калибровки (речь пойдет об устройстве Tobii Eye Tracker 4C) хватает для комфортного использования Eye Track’ера.
Но, к сожалению, для наших целей, точности устройства, достигающейся стандартной калибровкой недостаточно, поскольку, в нашем проекте взгляд — это основная механика управления.
Из всего вышесказанного, сформировалась задача: улучшить стандартную калибровку;
условия: устройство Tobii Eye Tracker 4C, язык разработки – C# (WPF).
Вроде бы решение на поверхности: хочешь большей точности – добавь больше калибровочных точек, но не так все просто.
Tobii AB имеет довольно много инструментов для работы со своими девайсами. Радости не было предела, когда был обнаружен Tobii Pro SDK, в котором есть все плюшки для работы с калибровкой, но как выяснилось позже, данный SDK не пригоден для работы конкретно с моделью eye tracker’а, которая имеется у нас (хотя странно, что детекция взгляда устройством при использовании данного SDK все же присутствовала). Пришлось взять инструменты попроще – Tobii.EyeX.Client.
Эмпирическим путем было выявлено оптимальное количество точек калибровки и их расположение: матрица 4×3 с расположенными 12ю калибровочными точками (каждая в центре ячейки).
Также эмпирическим путем были найдены следующие параметры:
- время на калибровку по одной калибровочной точке – 3 сек;
- индекс рассматриваемой точки – 5 (если индекс получаемой с устройства точки кратен данному, то учитываем ее при расчетах калибровки);
- максимально допустимое отклонение от калибровочной точки (px), вычисляется по формуле:
где и
– ширина и высота ячейки калибровочной матрицы соответственно
Алгоритм калибровки (прост до безумия)
Калибровка производится последовательно, по каждой ячейке калибровочной матрицы:
- если расстояние, между текущей калибровочной точкой и точкой, получаемой с устройства меньше, максимально допустимого отклонения, то такая точка (получаемая с устройства) попадает в коллекцию для дальнейшей обработки, иначе – калибровка по текущей ячейке сбрасывается до исходного состояния (и все по новой);
- после того, как время на калибровку по одной калибровочной точке исчерпано, получаем усредненное значение смещения по собранным ранее данным.
По завершению калибровки имеем коллекцию из 12ти усредненных значений смещений по регионам (ячейкам матрицы).
Использование (еще проще)
- определяем, в какой регион попадает точка, получаемая с устройства;
- смещаем точку, получаемую с устройства, на усредненное значение смещения в данном регионе.
Таким образом, удалось программным способом повысить точность устройства Tobii Eye Tracker 4C (сделав надстройку над стандартной калибровкой).
К сожалению, из-за договора о неразглашении, я не могу указать ни название ПО, ни выложить исходники или скрины. Благо хоть алгоритмом разрешили поделиться. Надеюсь, что кому-нибудь пост все же будет полезным.
В статье приведено максимально простое описание основного процесса калибровки. Помимо этого, происходит куча еще чего:
- усреднение значения точки с предыдущим (для плавности);
- проверка выхода за границы экрана;
- отслеживание потери взгляда;
- отслеживание изменения положения глаз в пространстве;
- отслеживание статуса Eye Tracker’а;
- отслеживание изменения разрешения экрана;
- отслеживание отмены калибровки;
- рандомный выбор типа калибровочных меток;
- и многое другое.
А вот и то самое событие, которое способствовало «завершению» статьи: по какому-то немыслимому стечению обстоятельств, моему другу (из предыдущего поста) довелось вживую пообщаться с разработчиком из Tobii AB. В ходе разговора, разработчик упомянул о неидеальности стандартной калибровки и что наши усилия были не напрасны.
Источник
Управление компьютером при помощи глаз — практическая реализация
1. Необходимость и постановка задачи
2. Выбор из существующих решений
Поиск в интернете по ключевым словам «Eye Gaze Tracking» и «Assisitive Technology» даёт множество ссылок, после копания в которых прихожу к выводам:
- Готовые устройства существуют, но стоят удивительных денег; на территории России их никто не продаёт, не обслуживает; программное обеспечение не предусматривает работу с русским языком (в частности, нет клавиатуры с кириллицей).
- Есть программное обеспечение с открытым исходным кодом, нацеленное на создание самодельных систем. Испытания со своей камерой не дают приемлемого качества работы.
- Есть возможность купить устройства для разработчиков (developer edition) по сходной цене в компаниях Tobii и TheEyeTribe. Но по схеме «утром — деньги, вечером — стулья», то есть предзаказ можно оформить осенью 2013 года, а получить устройство — в начале 2014 года.
Для справки, в разделе «5. Другие способы, которые я не попробовал» привожу описание разных устройств, о которых я набрал информацию.
Неожиданно в середине декабря компания Tobii меняет концепцию, переходит на разработку нового устройства EyeX, а своё старое устройство REX рассылает разработчикам по цене, в три раза ниже первоначальной и прямо сейчас, уверяя, что написанный для REX код будет работать и с EyeX.
Долго думать не стал, заказал REX, на основе которого и сделана система.
[исправление от 22.08.2017] В настоящий момент появились более современные айтрекеры, которые также могут быть использованы (см. ниже)
3. Детали реализации
3.1. Аппаратная часть
3.1.1. Вариант первый: Tobii Eye Tracker 4C
Наиболее актуальная на лето 2017 года модель недорогого айтрекера.
Рекомендую именно это устройство. По сравнению с моделью EyeX:
- продаётся в России (около 11 500 рублей)
- не требует порта USB 3.0, достаточно USB 2.0
- меньше светит в глаза красными лампочками
- меньше грузит процессор
- провод USB жёстко заделан в корпусе, а не вываливается из mini-USB разъёма
- железо поновее
3.1.2. Вариант второй: Tobii EyeX
Предыдущая модель от Tobii. Сейчас ещё можно купить, но только если с деньгами совсем туго. Приготовьтесь глазеть на красные лампочки. Тем не менее, очень достойный аппарат для своего времени.
Внимание! Для работы EyeX требуется USB3! Если в вашем компьютере нет портов USB3, устройство работать не будет!
Заказать устройство можно на сайте Tobii.
Доставляют UPS’ом из Швеции.
3.1.3. Другие поддерживаемые устройства
Tobii REX – больше не продаётся, но была очень хорошая машинка с двумя камерами.
TheEyeTribe – больше не продаётся. Так себе железка. Хотя и сделала прорыв в области малобюджетных айтрекеров, заставив Tobii существенно снизить цены.
GazePoint GP3 – весьма дорогой прибор, в то же время уступающий более дешёвым приборам от Tobii.
3.2 Программное обеспечение
В комплекте с устройствами идут только демонстрационные программы, призванные показать, на что способно устройство, и средства для написания своих собственных программ (SDK). Документация, которая идёт с SDK, можно сказать, никакая. Но есть примеры на С++ и С#, изучив которые, можно понять, как и что надо делать.
При попытке использовать программное обеспечение от других, более дорогих моделей Tobii, именуемое Tobii Gaze Interaction, ничего не получилось. Но понравилась идея, там реализованная.
Итак, программное обеспечение пришлось писать самому.
Была написана программа, которая позволяет имитировать глазами действия мышью: левый, правый, двойной щелчок, drag-and-drop, колесо прокрутки, а также набирать текст глазами на виртуальной клавиатуре.
Лучше, впрочем, один раз увидеть. Демонстрацию работы программы приглашаю посмотреть здесь.
Программа доступна для скачивания (в том числе в исходных кодах) на github: здесь.
Для скачивания нужно нажимать кнопку «RAW» — так принято на github.
Подробная инструкция по установке программы приведена вот здесь. Пусть вас не смущает, что там описывается только работа в режиме таблицы.
Программа пригодилась нескольким людям из разных стран, больным боковым амиотрофическим склерозом (БАС). Вот в этом клипе фонда «Милосердие» рассказана одна из таких историй.
4. Проблема работы в очках
Используемое устройство, так же как и большинство других аналогичных, использует для определения направления взгляда блики на зрачках, которые получаются от инфракрасной подсветки. К сожалению, очки добавляют паразитные блики.
Несмотря на то, что при настройке устройства под конкретного пользователя есть возможность указать, что человек носит очки, это не слишком помогает, устройство постоянно теряет положение зрачков.
Буду благодарен за проверенные рекомендации по устранению бликов на линзах очков в инфракрасном диапазоне.
5. Другие способы, которые я не попробовал
[устаревшая информация, это было актуально в 2013-2014 годах]
Сразу оговорюсь, что устройства используются не только для облегчения работы на компьютере для людей с ограниченными возможностями, но и, например, для исследования того, каким частям веб-страниц пользователи уделяют наибольшее внимание. Поэтому иногда за такие системы заламывают чудовищные деньги. Впрочем, и за устройства для инвалидов часто заламывают удивительные деньги.
5.1. Продукты коммерческих компаний
SMI — senso-motoric instruments
Их устройства можно посмотреть вот здесь.
Устройства можно купить в России (не буду давать ссылку), но когда я поинтересовался ценой самого дешёвого, мне озвучили цену в один миллион двести тысяч рублей. До свидания, SMI.
Tobii
Фирма давно выпускает продукты для людей с ограниченными возможностями. Даже Intel инвестировала в них несколько миллионов долларов. У них был альянс с фирмой Dell, когда планшет поставлялся с железкой для отслеживания глаз, причём техническую поддержку оказывала Dell.
На русском можно прочитать здесь.
На английском — на их сайте.
Много всего про эти устройства можно посмотреть на youtube.
Совсем недавно цены начинались с $4000. В настоящее время (январь 2014) цена на PCEye упала до $2000, но софт не русифицирован (Tobii Gaze Interaction).
EyeTech
Тоже давно работают в этой сфере, кажется с конца 90-х. Их устройства более аляповатые, но очень понравился софт, демонстрацию которого можно посмотреть вот здесь.
В то же время есть клип, на котором человек моргает глазами для нажатия на кнопку мыши — это не понравилось, обморгаешься. У Tobii такого не видел.
Есть три устройства, различающихся только размером, для разных мониторов, от ноутбука до 30 дюймов. Цена, которую мне удалось найти — $8700. Господа не скромничают.
Но то, как работает их софт, приметим.
DynaVox
Специализированное устройство, нельзя пользоваться стандартными компьютерными программами.
EyeGaze Edge (от LC Technologies)
Монстроподобное устройство, включающее в себя камеру и компьютер, который обрабатывает её данные. Можно подсоединить весь этот агрегат к своему компьютеру (в том числе беспроводно), тогда он заменит мышь и клавиатуру, что позволит работать с обычными программами. Опять 8-10 тысяч долларов.
Вроде бы есть набор «EyeGaze Edge Pack», где компьютер вы используете свой, просто добиваете в него их камеру и софт, но цены на него не нашёл нигде.
Это основные игроки на рынке. Одна из маленьких новых амбициозных контор, которая сама не смогла довести до ума свой продукт, тем не менее не поленилась раскритиковать лидеров и привела вот такую табличку, из которой понятно, что сами они самые крутые (хотя продукта ещё нет, а демо-ролик показывает, что позиция зрачка всё время скачет). Но сравнение остальных весьма показательно. Хотя оборудование там приведено часто уже устаревшее, но можно оценить порядок цен и кто продвинулся дальше.
5.2. Проекты с открытым исходным кодом
К сожалению, ни одна из упомянутых ниже программ не дала достаточно точного определения направления взгляда на имеющемся оборудовании (видеокамера PC104E с режимом ночной съёмки и отдельно расположенная инфракрасная светодиодная подсветка). Тем не менее, возможно у кого-то заработает лучше.
GazeTracker
Рекомендую начать с того, что посмотреть клип на этой странице.
Проект развивался в университете ИТ Копенгагена. Развивался где-то до конца 2010 года, после чего впал в апатию. Тем не менее многими уважаем за свою открытость, некоммерциализованность и определённые достижения. Изначально был нацелен на возможность работы с оборудованием типа «сделай сам» (DIY — do it yourself). Многие самодельщики использовали этот софт со своими железками, часто обходившимися им в 20-30 долларов. См., например, вот это.
Текущая версия 2.0 beta, до этого был ряд стабильных версий, например 1.6, 1.8.
В инструкции по использованию упоминается, что сами разработчики использовали камеру Sony HDR-HC5 с одной или двумя лампами подсветки от той же Sony, модель HVL-IRM.
На сайте [относительно] живой форум, можно пообщаться если не с разработчиками, то с апологетами.
Источник