Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом_Сисакян_АА-образец для 3 курса.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.46 Mб
Скачать

Анализ рассмотренных методов

Вопрос автоматического поиска глаз на изображении имеет достаточную историю развития, достигнуты хорошие результаты, но пока его невозможно считать полностью решенным [6]. Существующие ныне методы чувствительны к таким факторам, как:

  • Эмоции на лице, сощуривание или закрытие глаз

  • Поворот головы

  • Освещенность (как к слишком темным, так и к излишне светлым)

  • Рассовые различия

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

Постановка задачи

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

Необходимо разработать программу, позволяющую определить центры зрачков на входных изображениях лиц.

Алгоритм

Общая схема алгоритма нахождения зрачков глаз, разработанная в дипломной работе.

Поиск кожи

Поиск глаз

F(t), T

Входные изображение и набор изображений

Вычисление расстояния Махаланобиса

Классификация

G(t)

Фильтрация

Оценка на радиус глаза

Перевод в цветовое пространство ST

Удаление областей, не относящихся к коже

Усреднение по входному набору и расчет дисперсии

Применение детектора границ Канни

Применение преобразования Хафа для поиска круглых объектов на изображении

Выделение кожи на изображении лица

На входе мы имеем 16 изображений, близких по параметрам съемки к исследуемому, размером 640х480 каждое и 1 обрабатываемое изображение 640х480 в цветовом пространстве RGB (название образовано по начальным буквам основных цветовых компонент пространства - Red Green Blue – Красный Зеленый Синий [12]). Для проведения тестирования алгоритма в работе взяты изображения из базы лиц IMM [12, 13].

Фильтрация

Необходимо убрать из рассмотрения те пиксели, которые заведомо не являются кожными. Для достижения результата необходимо задать ограничения на значения основных компонент пространства RGB[14].

Значения RGB лежат в диапазоне от 0 до 255. Ниже приведено условие, оформленное по правилам языка C#, реализующее ограничения на цвета.

if ( (B > 160 && R < 180 && G < 180) || // слишком много синего

(G > 160 && R < 180 && B < 180) || // слишком много зеленого

(B < 100 && R < 100 && G < 100) || // слишком темный

(G > 200) || // зеленый

(R+G > 400) || // слишком много красного с зеленым (желтого как цвета)

(G > 150 && B < 90) || // желтый цвет

(B/(R+G+B) > .40) || // слишком много синего по сравнению с остальными цветами

(G/(R+G+B) > .40) || // слишком много зеленого по сравнению с остальными цветами

(R < 102 && G > 100 && B > 110 && G < 140 && B < 160) // голубой

)

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

if ((B > 160 && R < 180 && G < 180) ||

(G > 160 && R < 180 && B < 180) ||

(B < 100 && R < 100 && G < 100) ||

(G > 180) || //усилен порог на зеленый цвет

(R + G > 400) ||

(G > 150 && B < 90) ||

(B / (R + G + B) > 0.40) ||

(G / (R + G + B) > 0.40) ||

(R < 110 && G > 90 && B > 110 && G < 140 && B < 160)) //усилены пороги на красный и синий цвета.

Стоит так же заметить, что отсеянные пиксели стоит выбрасывать из рассмотрения на дальнейших этапах.

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