Больше, чем кажется на первый взгляд - зрачок

Краткий обзор и сравнение текущих методов обнаружения зрачков на изображениях анфас.

Зачем нужны методы определения зрачков?

Появляется тенденция к созданию приложений для смартфонов, которые измеряют все виды личных данных, чтобы получить представление об определенных аспектах чьего-либо здоровья. Однако некоторые приложения для здоровья немного более специализированы для определенной группы людей. В Orikami мы разрабатываем цифровые биомаркеры и внедряем их в мобильное приложение, такое как MS Sherpa. MS Sherpa подбирает индивидуальные медицинские услуги для людей с рассеянным склерозом (РС) и измеряет подвижность, когнитивные функции и утомляемость пациента с течением времени. Один из этих аспектов, утомляемость, может определяться задержкой и скоростью саккады глаза после определенных зрительных стимулов (Finke et al. 2012). Пока пациент выполняет задачу глазной саккады на своем смартфоне, передняя камера пациента фиксирует лицо. Прежде чем мы сможем определить задержку и скорость саккады по этой записи, нам сначала нужно определить местоположение зрачка пациента. Здесь на помощь приходят методы обнаружения зрачка, которые помогают нам найти центр зрачка.

В этом посте я представлю четыре метода обнаружения зрачков и сравню их друг с другом на четырех разных наборах данных.

Какие существуют методы обнаружения зрачков?

Большинство методов обнаружения зрачков разработаны для носимых устройств отслеживания движения глаз, которые регистрируют глаза с близкого расстояния с помощью камеры с высоким разрешением и инфракрасного излучения. Эти носимые устройства в основном используются при исследовании визуального внимания, чтобы оценить, куда смотрит объект. В менее контролируемой и непринужденной обстановке использование такого айтрекера может быть немного ограниченным. В этих случаях вместо этого можно использовать простую веб-камеру или камеру смартфона. Однако теперь у нас есть запись как минимум всего лица. К счастью, существуют также методы обнаружения зрачков, предназначенные для изображений в анфас. При работе с изображениями в анфас нам всегда нужно сначала извлекать области глаз из изображений. Обычно для прогнозирования расположения глаз используется оценщик лицевых ориентиров. Даже некоторые методы обнаружения зрачка для носимых айтрекеров могут хорошо работать с этими выделенными областями глаз.

Методы обнаружения зрачка, которые будут сравниваться в этом посте, - это градиентный подход (Timm & Barth, 2011), модель полого круглого ядра (CHK) (Ince et al. 2019), PUpil REconstructor (PuRe) (Сантини и др., 2017) и DeepVOG (Ю и др., 2019). Градиентный подход и модель CHK предназначены для данных изображений полного лица, тогда как PuRe и DeepVOG на самом деле предназначены для данных носимых устройств отслеживания движения глаз.

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

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

Следующий метод, PuRe, представляет собой алгоритм на основе всех ребер. PuRe пытается найти изогнутые краевые сегменты любого размера в области глаза и прогнозирует, насколько вероятно, что они будут частью границы зрачка. Крайний сегмент с наибольшей вероятностью снабжен эллипсом. Центр этого эллипса считается центром зрачка. Реализация PuRe, которая используется в экспериментах, представляет собой стороннюю реализацию Python, которую можно найти здесь.

Последний метод - DeepVOG - единственный метод глубокого обучения. DeepVOG - это сверточная нейронная сеть в форме U-образной сети. Выход сети ограничен порогом и снабжен эллипсом. Центр эллипса предсказывается как центр зрачка.

Данные

Чтобы сравнить методы, мы тестируем их на четырех разных наборах данных, которые в основном различаются разрешением изображений. Первый набор данных, база данных BioID, представляет собой набор данных с низким разрешением, содержащий 1521 изображение 23 различных субъектов. Второй набор данных, база данных GI4E, представляет собой набор данных от среднего до высокого разрешения и состоит из 1236 изображений 103 различных субъектов. Затем у нас есть база данных IMM Frontal Face Database со 120 изображениями 12 разных предметов, что представляет собой набор данных с высоким разрешением. Последний набор данных - это набор видеоданных с говорящим лицом, который состоит из 5000 изображений из видео, на котором один субъект разговаривает с камерой. Этот последний набор данных имеет среднее разрешение. Конкретные разрешения можно найти на изображении ниже.

Результаты

Для каждого полного изображения лица я рассчитал нормированную ошибку пикселей (NPE) для двух глаз. NPE определяется как расстояние в пикселях между истинным центром зрачка и прогнозируемым центром зрачка, деленное на расстояние между двумя истинными центрами зрачка. Нормализуя ошибку, мы можем сделать определенные предположения о том, насколько низкой должна быть ошибка для точного обнаружения зрачка. Ошибка менее 0,05 отражает предполагаемый зрачок в пределах границ зрачка. Ошибка менее 0,10 отражает предполагаемый зрачок в пределах границы радужной оболочки. Для точного определения зрачка нам нужен метод, который оценивает центр зрачка, по крайней мере, в пределах его границ. Таким образом, мы ищем самый высокий уровень обнаружения при NPE 0,05. Нас интересует наилучший прогноз для наихудшего прогнозируемого глаза на изображении, поэтому мы будем использовать NPE для наихудшего прогнозируемого глаза в качестве показателя эффективности для всего, полного лицо, изображение. Результаты четырех методов для четырех наборов данных показаны на рисунке ниже.

Первое, что бросается в глаза, это то, что PuRe сильно уступает по производительности остальным трем методам во всех наборах данных. Это не совсем неожиданно, поскольку PuRe был разработан для данных с высоким разрешением от носимых айтрекеров. Однако DeepVOG, который также предназначен для тех же целей, что и PuRe, дает очень хорошие результаты. Следует отметить, что DeepVOG иногда неспособен предсказать что-либо значимое, поскольку выходные данные сети устанавливаются пороговыми значениями. Только для BioID это проблематично, поскольку четверть изображений невозможно правильно предсказать. В других наборах данных разница между скоростью обнаружения DeepVOG и другими методами на границе зрачка больше, чем процент пропущенных изображений DeepVOG, что означает, что DeepVOG все равно будет лидером. Градиентный подход занимает второе место после DeepVOG, за исключением набора данных BioID. Здесь модель CHK выходит вперед.

Здесь также очень интересно учесть время обработки методов. На рисунке ниже показано время обработки всех методов для всех наборов данных. Следует добавить примечание о DeepVOG, поскольку это единственный метод, который использует графический процессор для вычислений. Здесь мы видим, что DeepVOG не только очень хорош с точки зрения производительности, но и относительно быстр. Что также стоит отметить, так это то, что время обработки модели CHK очень зависит от разрешения, что имеет смысл, поскольку это метод на основе пикселей. Реализация градиентного подхода использует небольшую хитрость: размер входных изображений изменяется до максимальной высоты глаз, так что время обработки не увеличивается для изображений с более высоким разрешением, как это происходит для модели CHK.

So…

В этом посте я сделал небольшой обзор современных методов обнаружения зрачков. Я сравнил их на четырех наборах данных, различающихся разрешением. Самый эффективный метод различается для разных наборов данных. Для наборов данных с низким разрешением, таких как BioID, модель CHK работает лучше всего. Однако для наборов данных с более высоким разрешением, таких как GI4E и IMM, DeepVOG работает лучше всего. Если вы хотите использовать обнаружение зрачков на своих данных, вы должны принять во внимание разрешение ваших данных, прежде чем выбирать правильный метод.

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

Ссылки на наборы данных
BioID: https://ftp.uni-erlangen.de/pub/facedb/readme.html
GI4E : http://www.unavarra.es/gi4e/databases/gi4e/
IMM: http://www2.imm.dtu.dk/pubdb/pubs/3943 -full.html
TalkingFace: https://www-prima.inrialpes.fr/FGnet/data/01-TalkingFace/talking_face.html

Ссылки
Финке, К., Печ, Л.М., Земмер, К., Шлихтинг, Дж., Стрикер, С., Эндрес, М., Остендорф, Ф., Плонер, К.Дж., Брандт, Австралия, и Пол, Ф. (2012). Динамика параметров саккад у больных рассеянным склерозом с переутомлением. Журнал неврологии, 259 (12), 2656–2663. DOI: https://doi.org/10.1007/s00415-012-6565-8.

Инс, И. Ф., Эрдем, Ю. С., Булут, Ф., и Шариф, М. Х. (2019). Недорогой алгоритм локализации центра зрачка, основанный на максимальном интегральном голосовании круглых полых ядер. Компьютерный журнал, 62 (7), 1001–1015. DOI: https://doi.org/10.1093/comjnl/bxy102.

Сантини Т., Фуль В. и Каснечи Э. (2018). PuRe: надежное обнаружение зрачков для всестороннего отслеживания глаз в реальном времени. Компьютерное зрение и понимание изображений, 170, 40–50. DOI: https://doi.org/10.1016/j.cviu.2018.02.002.

Тимм Ф. и Барт Э. (2011). Точная локализация глазного центра с помощью градиентов. Visapp, 11, 125–130. DOI: 10.5220 / 0003326101250130

Ю, Ю. Х., Абулатта, М., Райзер, Т., Офи, Л., Фланагин, В. Л., цу Эйленбург, П., и Ахмади, С. А. (2019). DeepVOG: Сегментация учеников с открытым исходным кодом и оценка взгляда в нейробиологии с использованием глубокого обучения. Журнал методов нейробиологии, 324, 108307. DOI: https://doi.org/10.1016/j.jneumeth.2019.05.016.