- •Аннотация
- •Введение
- •Термины и определения
- •Биометрические методы идентификации
- •Анатомия пальца человека
- •Общие сведения о преобразовании Габора
- •Обзор существующих методов генерации отпечатков пальцев
- •Обзор существующего программного обеспечения
- •Введение
- •Формализация алгоритма генерации искусственных биометрических образов
- •Математическая постановка задачи
- •Обоснование выбранного решения
- •Введение
- •Разработка общей структуры по
- •Выбор языка программирования
- •Выбор типа оп и формирование глобальных признаков
- •Построение поля направлений
- •Построение шаблона
- •Применение фильтра Габора
- •Обрезание изображения
- •Введение
- •Расчёт трудоёмкости проекта
- •4.2.2 Построение сетевого графика
- •4.2.3 Диаграмма Гантта
- •4.2.4 Анализ структуры затрат проекта
- •4.2.5 Затраты на выплату заработной платы
- •4.2.6 Отчисления на социальные нужды
- •4.2.7 Материальные затраты
- •4.2.8 Прочие затраты
- •4.2.9 Затраты на организацию рабочих мест
- •4.2.10 Накладные расходы
- •4.2.11 Суммарные затраты на реализацию программного проекта
- •Исследование рынка
- •4.3.1 Планирование цены и прогнозирование прибыли
- •4.3.2 Сервисное обслуживание
- •4.3.3 Отчисления на социальные нужды
- •Введение
- •Конституция Российской Федерации
- •Доктрина информационной безопасности Российской Федерации
- •Федеральный Закон «Об информации, информационных технологиях и о защите информации»
- •Федеральный Закон «о персональных данных»
- •Постановление Правительства Российской Федерации «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных»
- •Гражданский Кодекс Российской Федерации
- •Уголовный Кодекс Российской Федерации
Применение фильтра Габора
Первым шагом на этом этапе является генерация фильтра Габора. Ниже приведен код функции, реализующий генерацию фильтра Габора по заданным углом theta.
function gb=gabor_fn(theta)
% bw = bandwidth, (1)
% gamma = aspect ratio, (0.5)
% psi = phase shift, (0)
% lambda= wave length, (>=2)
% theta = angle in rad, [0 pi)
bw = 0.7;
gamma = 1;
psi = 1;
lambda = 8;
sigma = lambda/pi*sqrt(log(2)/2)*(2^bw+1)/(2^bw-1);
sigma_x = sigma;
sigma_y = sigma/gamma;
sz=fix(8*max(sigma_y,sigma_x));
if mod(sz,2)==0, sz=sz+1;end
[x y]=meshgrid(-fix(sz/2):fix(sz/2),fix(sz/2):-1:fix(-sz/2));
% Rotation
x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);
gb=exp(-0.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);
end
Рисунок 30. Примеры сгенерированных фильтров Габора.
Следующим шагом является наложение фильтра Габора на изображение с учетом расположения минуций и значений углов. Функция наложения зависит от входного изображения img и поля направлений orient.
Ниже приведен код программы, реализующий данную функциию:
function [ img ] = gabbor_app( img, orient)
win_size = 3;
for a = (fix(win_size/2)+1:win_size:size(img,1)-fix(win_size/2)-10)
for b = (fix(win_size/2)+1:win_size:size(img,2)-fix(win_size/2)-10)
gab = gabor_fun(orient(ceil(a/9),ceil(b/9)));
%gab = gabor_fun(pi/4);
M = zeros(win_size, win_size);
for c = (1:win_size)
for d =(1:win_size)
M(c,d) = img(a-fix(win_size/2+1)+c, b-fix(win_size/2+1)+d);
end
end
M = imfilter(M, gab);
for c = (1:win_size)
for d =(1:win_size)
img(a-fix(win_size/2+1)+c, b-fix(win_size/2+1)+d) = M(c,d);
end
end
end
end
end
Обработка изображения фильтром Габора проходит в несколько итераций. При этом происходит постепенное наращивание папиллярных линий ОП.
Рисунок 31. Процесс наращивания папиллярных линий
Обрезание изображения
После построения шаблона линий, он обрезается по выбранной форме отпечатка.
Рисунок 32. Пример сгенерированного ОП.
Выводы
В данной части была сконструирована структура ПО, а также сформулированы требования к каждой подсистеме. Был произведен выбор языка программирования с учетом требований к разрабатываемому ПО. Также была проведена реализация программного обеспечения, выполняющего генерацию искусственных отпечатков пальцев, основанную на фильтре Габора. Приведены результаты работы отдельных частей алгоритма и конечный результат работы программы – образ сгенерированного отпечатка пальца.
Организационно-экономическая часть
Введение
Разработка программного обеспечения предполагает необходимость координации значительного количества весьма разноплановых работ, в которых принимают участие специалисты различного профиля и квалификации. Необходимость обеспечения эффективности разработки требует формирования единого плана, предусматривающего окончание всего комплекса работ и отдельных его составляющих в заданные сроки и при ограниченных издержках.
Анализ предстоящей разработки целесообразно проводить, представляя работу в виде экономико-функциональных блоков, что позволяет спланировать деятельность оптимальным образом и обоснованно спрогнозировать конкретные сроки выполнения отдельных этапов работы. Построение диаграммы Гантта позволяет наглядно представить последовательные и параллельные участки, продолжительность и очерёдность работ.