- •Аннотация
- •Введение
- •Термины и определения
- •Биометрические методы идентификации
- •Анатомия пальца человека
- •Общие сведения о преобразовании Габора
- •Обзор существующих методов генерации отпечатков пальцев
- •Обзор существующего программного обеспечения
- •Введение
- •Формализация алгоритма генерации искусственных биометрических образов
- •Математическая постановка задачи
- •Обоснование выбранного решения
- •Введение
- •Разработка общей структуры по
- •Выбор языка программирования
- •Выбор типа оп и формирование глобальных признаков
- •Построение поля направлений
- •Построение шаблона
- •Применение фильтра Габора
- •Обрезание изображения
- •Введение
- •Расчёт трудоёмкости проекта
- •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 Отчисления на социальные нужды
- •Введение
- •Конституция Российской Федерации
- •Доктрина информационной безопасности Российской Федерации
- •Федеральный Закон «Об информации, информационных технологиях и о защите информации»
- •Федеральный Закон «о персональных данных»
- •Постановление Правительства Российской Федерации «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных»
- •Гражданский Кодекс Российской Федерации
- •Уголовный Кодекс Российской Федерации
Выбор языка программирования
Язык реализации должен быть удобен для работы с матрицами, так же плюсом является наличие готовых библиотек для работы с изображениями. Так как главной целью данной работы является разработка работоспособного алгоритма обработки образов отпечатка пальца, а не создание конечного продукта, на скорость работы программы и на требования к ресурсам вычислительной системы жестких ограничений не накладывается.
Выделим следующие требования к языку написания данного ПО:
возможность использования стандартных библиотек, предназначенных для работы с матричными типами данных;
наличие свободно распространяемых библиотек обработки изображений;
особенности системы разработки программного обеспечения (простота использования, стоимость, наличие доступной справочной документации);
опыт конкретного разработчика в области проектирования и написания кода для этого языка программирования.
С учетом перечисленных требований был выбран язык Matlab. Данный язык программирования позволяет выполнять широкий спектр операций над матричными типами данных, имеет мощную встроенную библиотеку для работы с изображениями. Так же Matlab не требователен к навыкам программирования, что позволяет писать достаточно сложные программы не имея высокого уровня знаний в области программирования.
Выбор типа оп и формирование глобальных признаков
Тип ОП характеризуется положением и количеством сингулярностей (ядер и дельт).
Рисунок 26. Расположение сингулярностей для типа отпечатка пальца «треугольная арка».
Построение поля направлений
Поле направлений строится по модели Шерлока-Монро в зависимости от выбранного типа ОП
Входными данными на данном этапе являются: cores и deltas – массивы с координатами центров и дельт данного отпечатка, size_x и size_y – размер выходной матрицы, задающей поле направлений.
function [ img ] = Sh_M_orientation( cores, deltas, size_x, size_y )
for a=(1:size_y)
for b = (1:size_x)
sum_c = 0;
sum_d = 0;
z = 0;
for c = (1:size(cores,1))
if(((size_y-a)==cores(c,2))&(b==cores(c,1)))
z=1;
end
end
for c = (1:size(deltas,1))
if(((size_y-a)==deltas(c,2))&(b==deltas(c,1)))
z=1;
end
end
if(z==0)
for c = (1:size(cores,1))
sum_c = sum_c + atan(((size_y-a)-cores(c,2))/(b-cores(c,1)));
end
for c = (1:size(deltas,1))
sum_d = sum_d + atan(((size_y-a)-deltas(c,2))/(b-deltas(c,1)));
end
line(b) = (sum_d - sum_c)/2;
else
line(b)=0;
end
end
if (a==1)
img = line;
else
img = cat(1, img, line);
end
end
end
На рисунке 27 представлен пример построения поля направлений.
Рисунок 27. Поле направлений с отмеченными позициями ядра и дельты.
Построение шаблона
На этапе построения шаблона происходил заполнение пустого изображения растровыми прототипами, соответствующими разным типам минуций.
Рисунок 28. Используемые прототипы.
Сюда функцию и описание
Рисунок 29. Расположение минуций.