Скачиваний:
24
Добавлен:
01.05.2014
Размер:
684.03 Кб
Скачать

Министерство образования и науки РФ

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»

кафедра математического обеспечения ЭВМ

Пояснительная записка

к курсовой работе

по дисциплине «Компьютерные методы идентификации личности»

Выполнил: студент гр. 3341 Рыжок М.

Проверил: Каменская Е.

Санкт-Петербург, 2008

Курсовая работа

Программирование фоторобота в среде инженерных разработок Matlab

Выделение области подбородка на фотографии человека

Цель работы: освоить методы выделения частей лица на фотографии человека для создания фоторобота..

Задание: Реализовать алгоритм выделения области подбородка на фотографии человека.

Теоретические сведения : Определение подбородка – это одно из главных требований в моделировании и распознавании лиц. Эта подзадача может быть отнесена к задачам выделения границ объекта, для решения которых традиционно используют деформируемые модели и активные контурные модели.

Деформируемая модель (deformable template model) представляет собой шаблон некоторой формы (для двумерного случая - открытая либо замкнутая кривая, для трехмерного - поверхность). Наложенный на изображение, шаблон деформируется под воздействием различных сил, внутренних (определенных для каждого конкретного шаблона) и внешних (определенных изображением, на которое наложен шаблон) -- модель меняет свою форму, подстраиваясь под входные данные. В результате из шаблона, инициированного в приблизительном местонахождении искомого объекта, получаем явное описание границы объекта. Задачи поиска границы объекта при наличии информации о его приблизительном положении широко распространены в области создания естественных интерфейсов человек-компьютер (отслеживание положения руки, чтение по губам, распознавание черт лица), в задачах трэкинга (отслеживания) объектов.

Рисунок 1

Активная контурная модель, или змея - это деформируемая модель, шаблон которой задан в форме параметрической кривой, инициализированный вручную набором контрольных точек, лежащих на открытой или замкнутой кривой на входном изображении. [1]

Анализ характеристик подбородка.

Контур подбородка лица состоит из двух типов областей. По бокам, в области щек, подбородок – фактически граница лица, которую не так трудно определить. В самой нижней части лица это сделать значительно сложнее, так как лицо и шея имеют схожую яркость кожи. Если провести от центра рта несколько радиусов в нижнюю половину лица и сравнить их профили интенсивности, можно определить характеристики подбородка. В областях щек внезапное падение или резкая перемена яркости означает переход от лица к не-лицу. В области собственно подбородка характерен более плавный переход интенсивности. Левый конец всех профилей интенсивности еще «испорчен» линией губ, что нужно учитывать. [2]

Точки челюстей могут быть определены с помощью линии, проходящей горизонтально через центр губ. Только нужно учитывать поворот головы. Область линии подбородка ищется между двумя концентрическими арками в 180 градусов с центром в середине губ и границей лица. Диаметр внешней арки в 1.2 раза больше, чем ширина между точками челюстей, а диаметр внутренней в 1.2 раза больше, чем линия губ.

Рисунок 2

В реальном мире не так часто найти изображения с равномерным освещением. Субъекты на фотографиях могут быть освещены из-за спины или одна сторона получается ярче, чем другая, на лицо ложатся тени. Это делает обнаружение подбородка значительно более сложным делом. Довольно простым методом можно свести эти недостатки на нет. Чуть пониже линии губ выделяется прямоугольная область, длина которой соответствует линии челюстей, а ширина равна удвоенному расстоянию от носа до рта. Затем эта область делится на левую и правую часть и вычисляется их средняя яркость. Если одна сторона ярче другой более чем на 50% это сразу станет ясно.

Активная контурная модель («змейка») используется, чтобы получить точную линию подбородка. «Змейка» предложена Кассом как параметрическая кривая , на которую действуют внутренняя и внешняя силы. Баланс этих сил приближает «змейку» к выпуклым особенностям (границам интенсивностей) на изображении.

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

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

Уравнение энергии E змейки, выражающейся формулой v(s) выглядит так

Первые два терма описывают энергию регулярности змейки.В нашей полярной координатной системе v(s) = [r(s), θ(s)], s от 0 до 1. Третье слагаемое – энергия, относящаяся ко внешней силе, полученной из изображения, четвертое – с силой давления.

Внешняя сила определяется, исходя из вышеописанных характеристик. Она способна сдвинуть контрольные точки к некоторому значению интенсивности. Она вычисляется как:

Множитель градиента (производная) вычисляется в точках змейки вдоль соответствующей радиальной линии. Сила увеличивается, если градиент отрицательный и уменьшается в обратном случае. Коэффициент перед градиентом – это весовой фактор, зависящий от топологии изображения. Сжимающая сила – это просто константа, используется ½ от минимального весового коэффициента. Наилучшая форма змейки получается при минимизации энергетического функционала после некоторого числа итераций.

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

1)Определить уровень губ (рис. 3.а)

2)Построить профиль интенсивности для уровня губ, найти его максимумы – это будут крайние точки подбородка. (рис. 3.б)

3) Из условия симметричности фронтального изображения найти середину линии губ. (рис. 3.в)

4) Из середины линии губ провести в различных направлениях радиусы и построить профили интенсивности пикселей в этих радиусах. Локальные экстремумы будут соответствовать падениям и пикам интенсивности на линии подбородка. (рис 3.г.)

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

Приложение

Исходная функция на языке программирования и инженерных разработок Matlab

function C = chin_extraction(A)

A1 = A(:, :, 1);

[M, N] = size(A1);

size(A)

[M1, lip_j, lip_i] = findLips(A, true); %Находим уровень губ

%Ищем точки челюстей на уровне губ

rad = 20;

i = 1;j = N;

while A(M1, i, 1) < A(M1, 1, 1)+rad

i = i+1;

if i > N

i = 1;

break;

end

end

while A(M1, j, 1) < A(M1, N, 1)+rad

j = j-1;

if j < 1

j = N;

break;

end

end

%Находим ось симметрии лица

[index_y, eye_left, eye_right] = eye_detect(A);

center = (eye_left+eye_right)/2

center = floor(center);

%От губ вниз по оси симметрии ищем точку подбородка

chin_profile = A1(M1+floor((M-M1)/2):end, floor(center));

chin = find(chin_profile == min(chin_profile));

chin = floor(M1+floor(M-M1)/2+max(chin));

C = [M1; i];

%Строим профили интенсивности

for alpha = -pi/6:pi/12:pi/6

D = zeros(2, M-M1);

k = 1;

while k < abs(i-j)/2

D(1, k) = M1 + k;

D(2, k) = center+floor(k*tan(alpha));

k = k+1;

end

%отбрасываем части профиля, выходящие за границу изображения

D1 = [];

k = 1;

while and(D(1, k) < M, and(D(1, k)>0, and(D(2, k) < N, D(2, k) > 0)))

D1 = [D1 D(:, k)];

k = k+1;

end

d = size(D1);

Z = [];

for k = 1:d(2)

Z(k) = [A1(D1(1, k), D1(2, k))];

A(D1(1, k), D1(2, k), 1) = 255;

A(D1(1, k), D1(2, k), 2) = 0;

A(D1(1, k), D1(2, k), 3) = 0;

end

bound = floor(1/2*length(Z));

Z = Z(bound:end);

P = find(Z == min(Z));

Q = D1(:, bound+P-1);

A(Q(1)-1:Q(1)+1, Q(2)-1:Q(2)+1, 1) = 255;

A(Q(1)-1:Q(1)+1, Q(2)-1:Q(2)+1, 2) = 0;

A(Q(1)-1:Q(1)+1, Q(2)-1:Q(2)+1, 3) = 0;

C = [C Q];

end

C = [C [M1; j]];

Проблемы и недостатки алгоритма:

1)Плохо работает с лицами людей разных рас расы из-за изменения контрастности «объекта-фон»

2)Плохо работает на слишком светлом фоне (по той же причине)

3)Необходимо искусственно ограничивать радиусы профилей интенсивности, так как они могут выйти за границы лица, и определенная область подбородка оказывается неверной.

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

Используемые материалы:

[1] - http://cgm.graphicon.ru Деформируемые модели/ Анна Дегтярева, Алексей Игнатенко

[2] Improved Chin Fittinf ALGORITNM Based on adaptive, Paul Kana, Iohn Gaanax

Соседние файлы в папке Выделение области подбородка на фотографии человека