Смекни!
smekni.com

Система идентификации личности по отпечаткам пальцев Подсистема анализа изображения (стр. 8 из 20)

TFingPicture *pic – в результате обработки входной образ подвергается изменениям.

Используемые переменные:

Dot0, dot1 – точки принадлежащие контуру обрабатываемой линии. Начальное значение dot0 = _dot.

vec0, vec1 – локальные направления;

step – шаг получения последующей точки;

alphaTest – предопределенная константа, определяющая сильное искривление контура папиллярной линии.

Используемые подпрограммы:

GetVec(dot0, dot1)– направление из точки dot0 в dot1;

NextDotCW(dot0, step) – получение координат точки следующей через step точек.

Слипание и обрыв описаны в п.п. 2.2.4.

Схема подпрограммы «ChangeLine»

Рис. 2.10

2.5.4. Подпрограмма ReadPic

Подпрограмма ReadPic пердназначена для поиска локальных особенностей на растре. Схема подпрограммы изображена на рис. 2.11.

Синтаксис:

TAbsFing TAnalysePicture::ReadPic(list<TMapElDot>::iterator _dot)

Входные данные для данной подпрограммы представлены:

TFingPicture *pic – указатель на битовый образ в памяти, который был загружен для обработки;

list<TMapElDot>::iterator _dot – указатель на текущую обрабатываемую линию.

Выходные данные для данной подпрограммы представлены:

TAbsFing absfing – список параметров локальных особенностей, формат описан в п.п. 2.1.3.

Используемые переменные:

Dot0, dot1 – точки принадлежащие контуру обрабатываемой линии. Начальное значение dot0 = _dot;

vec0, vec1 – локальные направления;

step – шаг получения последующей точки;

alphaTest – предопределенная константа, определяющая сильное искривление контура папиллярной линии.

Используемые подпрограммы:

GetVec(dot0, dot1)– направление из точки dot0 в dot1;

NextDotCW(dot0, step) – получение координат точки следующей через step точек.

Раздвоение и окончание описаны в п.п. 2.3.4.

2.5.5. Подпрограмма DotsFilter

Подпрограмма DotsFilter предназначена для сортировки списка найденных локальных особенностей и выделение списка минюций. Схема подпрограммы изображена на рис. 2.12.

Синтаксис:

int TAnalysePicture::DotsFilter(TAbsFing &_dots)

Входные данные для данной подпрограммы представлены:

TAbsFing &_dots – список точек найденный на растре, он содержит помимо нужных точек – минюций, лишние, непостоянные точки, которые не подходят для объектного описания папиллярного узора.

Выходные данные для данной подпрограммы представлены:

TAbsFing _dots – список параметров минюций, формат описан в
п.п. 2.1.3.

Используемые подпрограммы:

Порез(dot) – относится ли данная точка к точкам образованным порезами и инородными телами (см. п.п. 2.4.4);

Filter(dot1, dot2) – условие фильтрования (см. п.п. 2.4.4).

Схема подпрограммы «ReadPic»

Рис. 2.11


Схема подпрограммы «DotsFilter»

Рис. 2.12

2.5.6. Подпрограмма AnalysePicture

Подпрограмма AnalysePicture предназначена для обработки загруженного изображения и получение из него объектного образа для последующего хранения и сравнения. Схема подпрограммы изображена на рис. 2.13.

Синтаксис:

TAbsFing TAnalysePicture::AnalysePicture()

Входные данные для данной подпрограммы представлены:

TFingPicture *pic – указатель на битовый образ в памяти, который был загружен для обработки.

Выходные данные для данной подпрограммы представлены:

TAbsFing Ret – список координат минюций в абсолютных параметрах, формат описан в п.п. 2.1.3.

Используемые переменные:

Map – список обрабатываемых линий на папиллярном узоре, каждой линии соответствует точка {x,y};

ChangeN – хранит количество сделанных изменений на растре.

Используемые подпрограммы:

LookPic – возвращает список линий на отпечатке;

ChangeLine(i, Map) – корректировка линии на растре, избавление от слипаний и обрывов;

ReadPic – возвращает список параметров специфических точек, см. формат в п.п. 2.1.3;

DotsFilter(Ret) – сортировка специфических точек, см. условия в п.п. 2.4.

2.6. Описание контрольного примера

2.6.1. Назначение программы

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

Схема подпрограммы «AnalysePicture».

Рис. 2.13

2.6.2. Исходные данные

Для теста использовалось около 50 отпечатков разных людей и разного возраста. На рис. 2.14, 2.15, 2.16 приведены несколько изображений папиллярного узора, которые предполагается сравнить между собой и другими отпечатками в базе данных отпечатков. Данные изображения получены посредством зачернения пальца и приложения его к листу белой бумаги, после чего отпечатки были отсканированы и сохранены в виде bmp файлов на компьютере. Полученные таким образом отпечатки имеют не высокое качество, поэтому можно полностью проверить все этапы работы программы.

На рис. 2.14, 2.15 представлены отпечатки одного и того же пальца, а значит, в результате работы программы они должны совпасть. Рис. 2.16 это отпечаток другого пальца, нежели предыдущие два отпечатка.

Исходный образ A1

Рис. 2.14

Исходный образ A2

Рис. 2.15

Исходный образ B

Рис. 2.16

2.6.3. Контрольный пример

Результат работы подсистемы приведен на рис. 2.17, 2.18, 2.19 – это визуализированные структурные представления входных отпечатков.

Структурное представление A1

Рис. 2.17

Структурное представление A2

Рис. 2.18

Структурное представление B

Рис. 2.19

2.6.4. Тестирование программного обеспечения системы

распознавания личности по отпечаткам пальцев

Для испытания программного обеспечения системы на вход были поданы тестовые образы, описанные в п.2.6.2. Испытания проводились согласно руководству программиста, приведенному в приложении 2, и руководству оператора, приведенному в приложении 3. В результате были получены структурные описания представленные на рис. 2.17, 2.18, 2.19.

Полученные структурные представления точно описывают входные образы, что не трудно проверить визуальным сравнением с входными образами. Статистически было выявлено, что на отпечатках имеется около 40..50 минюций, эта величина может варьироваться в больших пределах в зависимости от размеров пальца. На тестовых образах найдено 19, 40, 37 соответственно. Меньшее количество объясняется тем, что тестовые образы это лишь фрагменты полного отпечатка, а образ B это указательный палец, который меньше по размерам, чем большой.

В приложении 4 можно увидеть, что отпечатки A1 (1.bmp), A2 (R1_3rotate2.bmp) схожи между собой и схожи с отпечатком 1R1_1.bmp, что является верным, так как все они являются образами большого пальца правой руки одного и того же человека. Отпечаток B (3l2_2.bmp) не совпадает ни с одним из A1 и A2, но совпадает с 3l2_1.bmp, что является также верным результатом, это отпечатки указательного пальца правой руки другого человека.

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

А также программа, после небольшой корректировки параметров анализа и сравнения, была настроена для распознавания символов алфавита. Для проверки был введен в базу данных набор символов изображенных на рис. 2.20, который в последующем сравнивался с алфавитом на рис. 2.21.

Алфавит для базы данных

Рис. 2.20