
Рисунок 5. Стандартная web-камера, встроенная в ноутбук
2 Многоуровневый подход для обнаружения зрачка
Процедура распознавания состоит из последовательного выполнения следующих этапов:
- Выделение характеристических особенностей лица;
- Обнаружение зрачка и координат его центра.
Блок-схема 1, иллюстрирует этапы работы eye-tracking системы.

Блок-схема1. Этапы работы eye-tracking системы.
2.1 Сегментация изображения
Первым шагом многоуровневого подхода является поиск лица, используя каскад Хаара (Рисунок 6). Работа с усилением каскадного классификатора включает в себя три основных этапа: сбор данных для обучения, подготовка и выполнение модели обнаружения.
Для обучения усиленного каскада слабых классификаторов требуется множество положительных образов, содержащих фактические объекты которые необходимо обнаружить, и набор негативных образов.
Отрицательные образы берутся из произвольных изображения, не содержащих объекты, которые мы хотим обнаружить. Негативные изображения перечисляются в специальном текстовом файле, где каждая строка содержит имя файла негативного образа.
Позитивные изображения создаются утилитой opencv_createsamples. Они используются в процессе обучения, чтобы модель обратила на них внимание при попытке найти нужный объект вызывающий интерес.

Рисунок 6. Функция обнаружения лица
2.2 Алгоритмы обнаружение зрачка
После того как необходимые области лица будут найдены, для каждого глаза применяется алгоритм обнаружения зрачка. Положение глаз должно быть получено, как можно более стабильным способом, так как глаза являются самой быстрой мышцей в нашем организме. Алгоритм каскадного обнаружения весьма вероятно потеряет информацию в случае обнаружения зрачка, именно по этой причине каскадная стабилизация не применяется.
В следующих разделах моей работы описываются и сравниваются алгоритмы обнаружения зрачка, учитывая их точность, скорость и временную стабильность:
1. Преобразование Хаафа;
2. Градиент локализация на основе алгоритма Fabian Timm;
3. Интегральная функция CDF распределения;
4. Функция GPF проецирования;
5. Edges-Analysis.
2.2.1 Преобразование Хаафа
Предлагаемый метод основан на определении точной границы зрачка на монохромном изображении. Алгоритм основан на бинаризации изображения с последующим поиском компонент связанности, граница каждой из которых подвергается преобразованию Хаафа [8].
Так как зрачок является темной областью изображения, то при значении бинаризации, превышающей яркость порога и меньшей яркости радужки, он может быть выделен в виде компонент связанности. Граница этих компонент - последовательность связанных точек и будет искомой границей зрачка (Рисунок 7)..
Алгоритм исполняется, как набор шагов:
1. Определение порогов бинаризации.
Поскольку заранее неизвестны порог бинаризации и уровень яркости зрачка и радужки, то производится несколько проходов алгоритма при разных порогах.
2. Бинаризация изображения
Всем пикселям изображения (M), значения которых меньше порога присваивается значение 1(черный цвет), а оставшимся пикселям, где значение больше, присваивается 0(белый цвет):

Операция бинаризации проводится с целью обнулить яркости, превышающие заданный порог и выделить пиксели с наиболее малыми яркостями, чтобы далее рассматривать исключительно объекты, полученные из тёмных областей.
3. Определение границ и компонент связанности.
На полученном бинарном изображении формируется несколько компонент связанности. Изображение обычно содержит несколько компонент связанности, одна из которых зрачок. Для каждой компоненты определяется упорядоченный список граничных точек, где границы компонент связанности представляют собой линию, близкую к окружности.
4. Обработка и сортировка компонент.
Для удаления компонент связанности заведомо, имеющих неадекватную форму используются параметры эквивалентного эллипса. Части изображения и их границы поочередно рассматриваются, для всех границ применяется модификация преобразования Хаафа и анализируется наличие характерного максимума, возникающего при условии, что граница связанности близка к окружности.
5. Преобразование Хаафа для компонент связанности.
Бывают случаи, когда на изображении зрачок частично перекрыт веком, в этом случае форма границы компоненты, существенно отличается от круглой. Для выбора наиболее близкой к окружности компоненты используется преобразование Хаафа.
Проводится процедура голосования: в каждом пикселе строятся внутренние нормали, на луче выбирается отрезок, ограниченный некоторыми значениями R(min) и R(max), после чего значения в точках отрезка увеличиваются на единицу. После окончания процедуры голосования значения в пространстве сглаживаются фильтром низкой частоты.

Рисунок 7. Шаги алгоритма преобразование Хаафа
Преобразование Хаафа позволяет корректно выделять центр, истинный радиус и контур зрачка даже при наличии больших помех, при условии лишь частичной видимости контура зрачка на изображении. Недостатком метода является потенциально большое время работы, возникающее при переборе большого количества компонент связанности и нескольких порогов бинаризации.
2.2.2 Градиент локализация на основе алгоритма Fabian Timm
Данный подход локализации центра глаза может эффективно и точно определять, и отслеживать местоположение центра зрачка в низком разрешении изображения или видеороликах, снятых с web-камеры[1].
Данный метод следует многоступенчатой схеме для функциональной локализации центра зрачка:
1. Геометрически центр кругового объекта может быть обнаружен путем анализа векторного поля градиентов изображения(Рисунок 8). Следовательно, мы математически описываем взаимосвязь между возможным центром и ориентацию всех градиентов изображения.

Рисунок 8. Векторное поле градентов изображения
Пусть, c - возможный центр; g(i) – градиент вектора в позиции x(i); d(i) - Нормированное смещение вектора.
Мы можем использовать данное векторное поле градиентов изображения путем вычисления точечных произведений между нормализованными векторами смещения, связанными с фиксированным центром и градиентным вектором.
Оптимальный центр кругового объекта (с*), в позиции x(i), i[1,.,n], задается следующей формулой:
,
Векторы смещения d(i) масштабируются до единичной длины, чтобы получить равный вес для всех позиций пикселей. В целях повышения устойчивости к линейным изображениям, векторы градиента g(i) должны также масштабироваться до единичной длины.
2. Предварительные знания и постобработка.
При некоторых условиях максимум нечетко определен или имеются локальные максимумы, которые приводят к неправильному определению центра. Доминирующие веки, ресницы или морщины в сочетании с низким контрастом могут привести к неправильным оценка, поэтому предлагается включить предварительные знания о глазе в целях повышения надежности.
Так как зрачок является темным по сравнению со склерой или кожей, то для каждого возможного центра (с) применяется вес w(c), для того чтобы более темные центры были вероятнее.
Интегрируя это в цель, функция приводит к:

![]()
(cx, cy) - это серое значение в сглаженном и инвертированном входном изображении I.
Области глаз необходимо сглаживать по гаусовскому фильтру(Рисунок 9, 10) чтобы избежать некоторых проблем, возникших из-за ярких бликов и отражения очков. Значения новой целевой функции значительно меняя чувствительны к изменениям в параметрах фильтра низких частот.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


