diplom_1_2 (1)

СОДЕРЖАНИЕ

13 TOC \o "1-3" \h \z \u 1413 LINK \l "_Toc452216121" 14Введение 13 PAGEREF _Toc452216121 \h 1471515
13 LINK \l "_Toc452216122" 141 Обзор существующих решений и методов решений поставленной задачи 13 PAGEREF _Toc452216122 \h 1481515
13 LINK \l "_Toc452216123" 141.1 Параметры оценки биометрических методов 13 PAGEREF _Toc452216123 \h 1481515
13 LINK \l "_Toc452216124" 141.2 Биометрические методы и их характеристики 13 PAGEREF _Toc452216124 \h 1481515
13 LINK \l "_Toc452216125" 141.2.1 Аутентификация по отпечаткам пальцев 13 PAGEREF _Toc452216125 \h 1491515
13 LINK \l "_Toc452216126" 141.2.2 Аутентификация по радужной оболочке 13 PAGEREF _Toc452216126 \h 14101515
13 LINK \l "_Toc452216127" 141.2.3 Аутентификация по геометрии лица 13 PAGEREF _Toc452216127 \h 14111515
13 LINK \l "_Toc452216128" 141.2.4 Аутентификация по сетчатке глаза 13 PAGEREF _Toc452216128 \h 14121515
13 LINK \l "_Toc452216129" 141.2.5 Аутентификация по голосу 13 PAGEREF _Toc452216129 \h 14131515
13 LINK \l "_Toc452216130" 141.2.6 Аутентификация по клавиатурному почерку 13 PAGEREF _Toc452216130 \h 14131515
13 LINK \l "_Toc452216131" 141.2.7 Аутентификация по рукописному почерку 13 PAGEREF _Toc452216131 \h 14141515
13 LINK \l "_Toc452216132" 141.3 Постановка задачи 13 PAGEREF _Toc452216132 \h 14151515
13 LINK \l "_Toc452216133" 142 Структура работы и математическая модель 13 PAGEREF _Toc452216133 \h 14161515
13 LINK \l "_Toc452216134" 142.1 Алгоритмы распознавания подписи 13 PAGEREF _Toc452216134 \h 14161515
13 LINK \l "_Toc452216135" 142.1.1 Алгоритм, основанный на распознавании образов 13 PAGEREF _Toc452216135 \h 14161515
13 LINK \l "_Toc452216136" 142.1.2 Алгоритм аппроксимации кривыми Безье 13 PAGEREF _Toc452216136 \h 14171515
13 LINK \l "_Toc452216137" 142.1.3 Алгоритм на основе вычисления матрицы расстояния 13 PAGEREF _Toc452216137 \h 14171515
13 LINK \l "_Toc452216138" 142.1.4 Алгоритм сопоставления локальных экстремумов 13 PAGEREF _Toc452216138 \h 14181515
13 LINK \l "_Toc452216139" 142.1.5 Алгоритм, основанный на разложении функций X(t), Y(t), P(t) в ряды 13 PAGEREF _Toc452216139 \h 14191515
13 LINK \l "_Toc452216140" 142.2 Алгоритм, основанный на распознавании образов c применением DTW 13 PAGEREF _Toc452216140 \h 14191515
13 LINK \l "_Toc452216141" 143 Создание программного средства 13 PAGEREF _Toc452216141 \h 14301515
13 LINK \l "_Toc452216142" 143.1 Описание классов, атрибутов и методов 13 PAGEREF _Toc452216142 \h 14301515
13 LINK \l "_Toc452216143" 143.2. Модуль интерфейса пользователя 13 PAGEREF _Toc452216143 \h 14321515
13 LINK \l "_Toc452216144" 143.3 Модуль ядра 13 PAGEREF _Toc452216144 \h 14321515
13 LINK \l "_Toc452216145" 143.4. Модуль Matlab 13 PAGEREF _Toc452216145 \h 14341515
13 LINK \l "_Toc452216146" 143.5. Модуль, отвечающий за работу с графическим планшетом 13 PAGEREF _Toc452216146 \h 14341515
13 LINK \l "_Toc452216147" 144 Руководство по использованию 13 PAGEREF _Toc452216147 \h 14361515
13 LINK \l "_Toc452216148" 145 Тестирование программного средства 13 PAGEREF _Toc452216148 \h 14391515
13 LINK \l "_Toc452216149" 146 Технико-экономическое обоснование пс 13 PAGEREF _Toc452216149 \h 14421515
13 LINK \l "_Toc452216150" 146.1 Характеристика программного продукта 13 PAGEREF _Toc452216150 \h 14421515
13 LINK \l "_Toc452216151" 146.2 Расчет сметы затрат и цены программного средства 13 PAGEREF _Toc452216151 \h 14421515
13 LINK \l "_Toc452216152" 146.3 Вывод 13 PAGEREF _Toc452216152 \h 14541515
13 LINK \l "_Toc452216153" 14Список использованных источников 13 PAGEREF _Toc452216153 \h 14561515
13 LINK \l "_Toc452216154" 14Приложение А Исходный текст приложения 13 PAGEREF _Toc452216154 \h 14571515
15


ОПРЕДЕЛЕНИЯ И СОКРАЩЕНИЯ

В настоящей пояснительной записке применяются следующие определения и сокращения.
Биометрическая аутентификация - процесс доказательства и проверки подлинности заявленного пользователем имени, через предъявление пользователем своего биометрического образа и путем преобразования этого образа в соответствии с заранее определенным протоколом аутентификации [1].
Биометрический образ - образ человека, полученный с выходов первичных измерительных преобразователей физических величин, подвергающийся далее масштабированию и иной первичной обработке с целью извлечения из него контролируемых биометрических параметров человека [1].
Биометрические данные - данные с выходов первичных измерительных преобразователей физических величин, совокупность которых образует биометрический образ конкретного человека [1].
LDA – линейный дискриминантный анализ.
QDA – квадратичный дискриминантный анализ.
PCA – метод главных компонент.
DTW - алгоритм динамической трансформации временной шкалы.





























ВВЕДЕНИЕ

Проблема создания быстрого и надежного способа аутентификации человека была и является одной из самых актуальных, особенно сейчас в 21 веке, веке информационных технологий. Существует большое разнообразие методов идентификации и многие из них получили широкое коммерческое применение. На сегодняшний день в основе наиболее распространенных технологий верификации и идентификации лежит использование паролей и персональных идентификаторов (personal identification number - PIN) или документов (паспорта, водительских прав). Однако такие системы слишком уязвимы и могут легко пострадать от подделки, воровства и, самое главное, утери. Поэтому все больший интерес вызывают методы, в которых идентификатором является сам человек.
Биометрическая аутентификация процесс, позволяющий уверенно аутентифицировать потенциального пользователя путем измерения физиологических параметров и характеристик человека, особенностей его поведения.
Основные достоинства использования биометрической аутентификации:
- высокая степень достоверности аутентификации по биометрическим признакам (из-за их уникальности);
- неотделимость биометрических признаков от дееспособной личности (нельзя потерять, не может быть украден);
- трудность фальсификации биометрических признаков.
Целью дипломного проекта является создание программного средства позволяющего аутентифицировать пользователя по его биометрической характеристике. В последнее время к методу биометрической аутентификации по подписи проявляется большой интерес, вероятно, в связи с распространением устройств с сенсорными экранами. Для более точной верификации подписи можно использовать специальные световые перья. В некоторых зарубежных странах электронные документы, снабженные биометрической подписью, имеют юридическую силу, что позволяет переводить значительную часть документооборота в сетевую сферу. К сожалению, в Беларуси пока доверяют только подписанному бумажному документу либо электронному документу с официально зарегистрированной электронно-цифровой подписью. Однако существенным недостатком ЭЦП является то, что она может быть передана другому лицу, тогда как биометрическая подпись является неотчуждаемой от владельца. Тем не менее, в некоторых крупных банках Беларуси активно начинают внедрять этот метод аутентификации.



1 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ И МЕТОДОВ РЕШЕНИЙ ПОСТАВЛЕННОЙ ЗАДАЧИ

1.1 Параметры оценки биометрических методов

В отличие от аутентификации пользователей по паролям или уникальным цифровым ключам, биометрические технологии всегда вероятностные, так как всегда сохраняется малый, иногда крайне малый шанс, что у двух людей могут совпасть сравниваемые биологические характеристики. И как в любой вероятностной системе, существуют ошибки первого и второго рода:
- FRR (False Rejection Rate) вероятность того, что человек может быть не распознан системой (коэффициент ложного отказа в доступе);
- FAR (False Acceptence Rate) процентный порог, определяющий вероятность того, что один человек может быть принят за другого (коэффициент ложного доступа).
Необходимо учитывать взаимосвязь этих показателей: искусственно снижая уровень «требовательности» системы (FAR), мы, как правило, уменьшаем процент ошибок FRR, и наоборот. Система тем лучше, чем меньше значение FRR при одинаковых значениях FAR. Иногда используется и сравнительная характеристика, определяющая точку в которой графики FRR и FAR пересекаются. Но она далеко не всегда репрезентативна. На сегодняшний день ни одна из биометрических технологий не способна гарантировать полное отсутствие ошибок FAR/FRR, и нередко данное обстоятельство служит основой для не слишком корректной критики биометрии [2].
Существуют и другие показатели для оценки биометрической системы:
устойчивость к подделке – насколько легко обмануть систему;
устойчивость к окружающей среде – как работает система при различных внешних условиях( например освещение или температура);
простота использования – насколько сложно пользоваться системой;
скорость работы системы;
стоимость системы;
склонность к изменениям - может ли меняться оцениваемый параметр во времени.


1.2 Биометрические методы и их характеристики

На сегодняшний день существует огромное количество биометрических методов. Разделим их на 2 большие группы:
Статические методы. Они основаны на физиологических характеристиках человека, присутствующих от рождения и до смерти, находящиеся при нём в течение всей его жизни, и которые не могут быть потеряны, украдены и скопированы.
Динамические методы. Основываются на поведенческих характеристиках человека, на его подсознательных движениях при совершении какого-либо обыденного действия.

На рис.1 можно увидеть сегментацию биометрических систем на мировом рынке.





Рисунок 1 - Доли мирового рынка в сфере биометрических систем.


1.2.1 Аутентификация по отпечаткам пальцев

Самый распространенный метод в биометрии – аутентификация по отпечатку пальца. Как известно, невозможно найти человека с таким же папиллярном узором пальцев, как и у вас. Для получения сведений используется специальные сканеры, которые преобразуют узор в цифровой код, а затем код сравнивается с ранее введенными наборами эталонов.
На данный момент системы распознавания по отпечаткам пальцев занимают более половины биометрического рынка. Множество российских и зарубежных компаний занимаются производством систем управления доступом, основанных на методе дактилоскопической идентификации. По причине того, что это направление является одним из самых давнишних, оно получило наибольшее распространение и является на сегодняшний день самым разработанным. Сканеры отпечатков пальцев прошли “длинный” путь к улучшению. Современные системы оснащены различными датчиками (температуры, силы нажатия и т.п.), которые повышают степень защиты от подделок. С каждым днем системы становятся все более удобными и компактными. По сути, разработчики достигли уже некоего предела в данной области, и развивать метод дальше некуда. Кроме того, большинство компаний производят готовые системы, которые оснащены всем необходимым, включая программное обеспечение. Крупным компаниям, которые хотят внедрить данный тип аутентификации, намного проще купить данную систему аутентификацию у поставщиков, тем более выбор очень широкий. Делать свою дорого, невыгодно и займет много сил.
Преимущества использования: низкая стоимость устройств, высокая достоверность ( статистические показатели методы выше показателей способов идентификации по лицу, голосу, росписи), достаточно простая процедура сканирования.
Недостатки использования: папиллярный узор отпечатка пальца очень легко повреждается мелкими царапинами, порезами, а также для некоторых людей с «неподходящими» пальцами (особенности температуры тела, влажности) вероятность отказа в доступе может достигать 100%.
Среди зарубежных компаний, занимающихся системами распознавания по отпечаткам пальцев, можно отметить SecuGen, [ Cкачайте файл, чтобы посмотреть ссылку ] (USB-сканеры для PC, сканеры, которые можно устанавливать на предприятия или встраивать в замки, SDK и ПО для связи системы с компьютером); Bayometric Inc., bayometric.com (fingerprint scanners, TAA/Access control systems, fingerprint SDKs, embedded fingerprint modules); DigitalPersona, Inc. crossmatch.com (USB-scanners, SDK). В России в данной области работают компании: BioLink, biolink.ru (дактилоскопические сканеры, биометрические устройства управления доступом, ПО); Сонда, sonda.ru (дактилоскопические сканеры, биометрические устройства управления доступом, SDK); СмартЛок, smartlok.ru (дактилоскопические сканеры и модули) и др.

1.2.2 Аутентификация по радужной оболочке

Радужная оболочка глаза является уникальной характеристикой человека. Рисунок радужки формируется на восьмом месяце внутриутробного развития, окончательно стабилизируется в возрасте около двух лет и практически не изменяется в течение жизни, кроме как в результате сильных травм или резких патологий. Метод является одним из наиболее точных среди биометрических технологий.
Система идентификации личности по радужной оболочке логически делится на две части: устройство захвата изображения, его первичной обработки и передачи вычислителю; вычислитель, производящий сравнение изображения с изображениями в базе данных, передающий команду о допуске исполнительному устройству.
Время первичной обработки изображения в современных системах примерно 300-500 мс, скорость сравнения полученного изображения с базой имеет уровень 50000-150000 сравнений в секунду даже на обычном персональном компьютере. Такая скорость сравнения не накладывает ограничений на применение метода в больших организациях при использовании в системах доступа. При использовании же специализированных вычислителей и алгоритмов оптимизации поиска становится даже возможным идентифицировать человека среди жителей целой страны.
Преимущества: высокая степень распознавания, бесконтактный способ сканирования.
Недостатки: необходимо "примериться" к использованию этой системы, неприемлемость метода некоторыми людьми из-за возможности обнаружения болезней.
Лидером по разработке ПО в данной области является компания Iridian Technologies (веб-сайт: iridian-optical-filters.com)
Вход на рынок большому количеству производителю был ограничен технической сложностью сканеров и, как следствие, их высокой стоимостью, а так же высокой ценой ПО из-за монопольного положения Iridian на рынке. Эти факторы позволяли развиться в области распознавания радужной оболочки только крупным компаниям, скорее всего уже занимающимся производством некоторых компонентов пригодных для системы идентификации (оптика высокого разрешения, миниатюрные камеры с инфракрасной подсветкой и т.п.). Примерами таких компаний могут быть LG Electronics, Panasonic, OKI. Они заключили договор с Iridian Technologies, и в результате совместной работы появились следующие системы идентификации: Iris Access 2200, BM-ET500, OKI IrisPass. В дальнейшем возникли усовершенствованные модели систем, благодаря техническим возможностям данных компаний самостоятельно развиваться в этой области. Следует сказать, что вышеперечисленные компании разработали также собственное ПО, но в итоге в готовой системе отдают предпочтение программному обеспечению Iridian Technologies.

1.2.3 Аутентификация по геометрии лица

Существует множество методов распознавания по геометрии лица. Все они основаны на том, что черты лица и форма черепа каждого человека индивидуальны. Эта область биометрии многим кажется привлекательной, потому что мы узнаем друг друга в первую очередь по лицу. Данная область делится на два направления: 2D-распознавание и 3D-распознавание. У каждого из них есть достоинства и недостатки, однако многое зависит еще и от области применения и требований, предъявленных к конкретному алгоритму.
2D-распознавание лица один из самых статистически неэффективных методов биометрии. Появился он довольно давно и применялся, в основном, в криминалистике, что и способствовало его развитию. Впоследствии появились компьютерные интерпретации метода, в результате чего он стал более надежным, но, безусловно, уступал и с каждым годом все больше уступает другим биометрическим методам идентификации личности. В настоящее время из-за плохих статистических показателей он применяется, в основном, в мультимодальной или, как ее еще называют, перекрестной биометрии. Реализация данного метода представляет собой довольно сложную задачу. Несмотря на это, в настоящее время существует множество методов по 3D-распознаванию лица. Ниже рассматривается один из самых распространенных.
Метод проецирования шаблона состоит в том, что на объект (лицо) проецируется сетка. Далее камера делает снимки со скоростью десятки кадров в секунду, и полученные изображения обрабатываются специальной программой. Луч, падающий на искривленную поверхность, изгибается чем больше кривизна поверхности, тем сильнее изгиб луча. Изначально при этом применялся источник видимого света, подаваемого через «жалюзи». Затем видимый свет был заменен инфракрасным, который обладает рядом преимуществ. Обычно на первом этапе обработки отбрасываются изображения, на которых лица не видно вообще или присутствуют посторонние предметы, мешающие идентификации. По полученным снимкам восстанавливается 3D-модель лица, на которой выделяются и удаляются ненужные помехи (прическа, борода, усы и очки). Затем производится анализ модели выделяются антропометрические особенности, которые в итоге и записываются в уникальный код, заносящийся в базу данных. Время захвата и обработки изображения составляет 1-2 с для лучших моделей.
Преимущества: отсутствие необходимости контактировать со сканирующим устройством, низкая чувствительность к внешним факторам как на самом человеке так и в окружении, высокий уровень надежности сравнение с методом идентификации по отпечаткам пальцев.
Недостатки: дороговизна оборудования, изменение мимики лица и помехи на лице ухудшают статистическую надежность метода, метод еще недостаточно хорошо разработан.
На сегодняшний день можно отметить следующие компании, занимающиеся развитием данной технологии: Geometrix, Inc. (3D сканеры лица, ПО), Genex Technologies (3D сканеры лица, ПО) в США, Cognitec Systems GmbH (SDK, специальный вычислители, 2D камеры) в Германии, Bioscrypt (3D сканеры лица, ПО) – дочернее предприятие американской компании L-1 Identity Solutions.

1.2.4 Аутентификация по сетчатке глаза

До последнего времени считалось, что самый надежный метод биометрической идентификации и аутентификации личности это метод, основанный на сканировании сетчатки глаза. Он содержит в себе лучшие черты идентификации по радужной оболочке и по венам руки. Сканер считывает рисунок капилляров на поверхности сетчатки глаза. Сетчатка имеет неподвижную структуру, неизменную во времени, кроме как в результате глазной болезни, например, катаракты.
Сканирование сетчатки происходит с использованием инфракрасного света низкой интенсивности, направленного через зрачок к кровеносным сосудам на задней стенке глаза. Сканеры сетчатки глаза получили широкое распространение в системах контроля доступа на особо секретные объекты, так как у них один из самых низких процентов отказа в доступе зарегистрированных пользователей и практически не бывает ошибочного разрешения доступа.
К сожалению, целый ряд трудностей возникает при использовании этого метода биометрии. Сканером тут является весьма сложная оптическая система, а человек должен значительное время не двигаться, пока система наводится, что вызывает неприятные ощущения.
Преимущества метода: высокий уровень статистической надежности, из-за низкой распространенности систем мала вероятность разработки и способы их обмануть, бесконтактный метод снятия данных.
Недостатки метода: сложная при использовании система с долгим временем обработки, высокая стоимость системы, отсутствие широкого рынка предложения и, как следствие, недостаточна интенсивность развития.
Применяется очень редко, нет крупных компаний производителей.

1.2.5 Аутентификация по голосу

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

1.2.6 Аутентификация по клавиатурному почерку

Анализ клавиатурного почерка представляет собой один из самых перспективных на сегодня методов биометрической аутентификации. Клавиатурный почерк – поведенческая биометрическая характеристика, которую описывают следующие параметры: скорость ввода, интервалы между нажатиями клавиш; время удержания клавиш, число перекрытий между клавишами; степень аритмичности при наборе, частота возникновения ошибок при вводе; использование функциональных клавиш. Эта технология универсальна, но лучше всего она подходит для аутентификации пользователей с удаленным доступом к информации. Сегодня разработка и оптимизация алгоритмов, осуществляющих контроль за доступом к сетевым ресурсам посредством анализа клавиатурного почерка, является одним из приоритетных направлений исследования в области информационных технологий как в России, так и за рубежом.
Существуют два способа аутентификации пользователя по клавиатурному почерку: по вводу известной фразы (пароля) и по вводу неизвестной фразы, генерируемой случайно. Оба способа должны включать в себя режим обучения и собственно режим аутентификации. В режиме обучения путём многократного повторения ввода рассчитываются эталонные характеристики набора текста. Как показал ряд экспериментов, для идентификации пользователя в большинстве случаев достаточно рассматривать временные интервалы между нажатием клавиш и временные интервалы удержания клавиш. Аутентификация тем более надёжна, чем длиннее набираемая пользователем фраза.
Преимущества: возможность реализации без специального оборудования, удобство пользования и возможность скрытой аутентификации.
Недостатки: моторное поведение человека зависит от состояния его здоровья, возраста и даже от усталости, почерк меняется при смене клавиатуры, а для мобильных устройств настраивать алгоритм придется отдельно. Как показали недавние исследования, повысить эффективность этого метода аутентификации может искусственное добавление ритма. Пользователю предлагается набирать пароль с заранее известным ритмом (например, под какую-нибудь мелодию). Ритмичность набора повышает устойчивость клавиатурного почерка, кроме того, в процесс аутентификации вносится дополнительная биометрическая характеристика, украсть или скопировать которую не представляется возможным.
Ведущие производители: BioPassword Security Software, biopassword.com; Checco, biochec.com ( помимо аутентификации предоставляет возможность регулировать доступ к информации по ролям).

1.2.7 Аутентификация по рукописному почерку

Метод биометрической аутентификации по рукописному почерку основывается на специфическом движении человеческой руки во время подписания документов. Для сохранения подписи используют специальные ручки или восприимчивые к давлению поверхности. Этот вид аутентификации человека использует его подпись. Шаблон создается в зависимости от необходимого уровня защиты. Обычно выделяют два способа обработки данных подписи:
- анализ самой подписи, то есть используется просто степень совпадения двух картинок;
- анализ динамических характеристик написания, то есть для аутентификации строится свертка, в которую входит информация по подписи, временными и статистическими характеристиками её написания.
Шаблон подписи создаётся в зависимости от необходимого уровня защиты. Так как все планшеты опрашиваются с конечной частотой, а процесс оставления человеком подписи занимает обычно около 1-2 секунд, то на одну подпись приходится всего 100-200 точек, по которым её можно анализировать. Но если пользователь расписывается световым пером, кодируются не только координаты кончика пера, но и сила нажатия (давление) пера на планшет, угол наклона пера относительно планшета и угол пера по часовой стрелке.
Преимущества: недорогой метод, очень удобен для пользователя.
Недостатки: подпись может меняться со временем, как и моторные функции человека. В целом, при использовании «обучающихся» алгоритмов количество ошибок сильно зависит от продолжительности фазы обучения.
Ведущие производителями являются CIC, cic.com (предоставляют разные биометрические решения, не только по подписи); Cyber-SIGN, cybersign.com ( позволяют производить не только аутентификацию, а также защищают целостность электронных документов); SOFTPRO, kofax.com (предоставляют легко-интегрируемую систему, а так же позволяют защищать документ при помощи ЭЦП).

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

Целью дипломного проекта является создание программного средства, основной функцией которого является аутентификация пользователя по биометрическому параметру, в данном случае по рукописной подписи. Разумеется, для аутентификации необходимо предварительно провести процедуру регистрации, а именно сбор данных о подписи, обработка этих данных и сохранение в некое место на диске. Для сбора данных будет использовано графическое устройство Huion 420d, которое по определенному протоколу возращает данные о положения пера ( X и Y) и давление. Так же у каждого пользователя будет свой личный идентификационный номер, который присвоит ему оператор.











2 СТРУКТУРА РАБОТЫ И МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

Существует две группы методов для аутентификации подписей по способу получения данных.
Первый метод - статический. Система анализирует изображение, содержащую подпись человека. Метод так же называют off-line методом. Такой метод дает мало информации, так как известны только координаты точке. Второй метод - динамический. Для сбора данных используется графический планшет. Динамическая информация может содержать в себе следующие характеристики:
- пространственная координата конца пера x(t);
- пространственная координата конца пера y(t);
- давление конца пера на планшет;
- угол движения пера;
- наклон пера.
Динамический метод имеет более высокую степень надежности, так как, помимо статической информации, содержит дополнительную, динамическую. Соответственно, последний метод получил большую степень распространения.
2.1 Алгоритмы распознавания подписи
Для каждого человека можно выявить уникальные характеристики при написании подписи. Исследования в области биометрии предполагают выбор оптимального способа сравнения двух биометрических объектов для конкретного человека. Например, для одного человека характерно быстрое написание подписи с резкими пиками и впадинами, а для другого постоянно сильное давление на ручку и гладкость линии. Существует достаточное количество алгоритмов выявления различных характеристик подписи и дальнейшего их сравнения. Разные алгоритмы отражают разные свойства подписи, поэтому в общем случае нельзя сравнивать алгоритмы между собой.

2.1.1 Алгоритм, основанный на распознавании образов

Популярные техники теории распознавания образов применимы и для распознавания подписи. Например, скрытая марковская модель и алгоритм динамического трансформирования времени (DTW алгоритм). Также возможны комбинации методов. Подпись предварительно разбивается на участки следующим образом. Вычисляются координаты геометрического центра всей подписи, а затем подпись разбивается на два участка относительно центра масс. Далее разбиение продолжается на каждом участке. После завершения разбиения каждому участку подписи ставится в соответствие эллипс инерции. Эллипсом инерции в данном случае называется эллипс, центр которого совпадает с геометрическим центром участка подписи, а сам эллипс строится аналогично эллипсу инерции физического тела, принимая массу точки подписи за единицу [4]. Таким способом строится пирамидальное представлением подписи эллиптическими примитивами. В дальнейшем сравнение осуществляется между представлениями подписи.

2.1.2 Алгоритм аппроксимации кривыми Безье

Со считывающего устройства считываются координаты точек подписи. Затем происходит разбиение массива точек на участки, например, по принципу выделения локальных экстремумов по осям или разбиение точками пересечения линий подписи. После этого на каждом из участков проводится кривая Безье на основе набора точек участка. Таким образом, каждому участку сопоставляется массив коэффициентов, задающих кривую Безье. Сравнение двух подписей осуществляется сопоставлением соответствующих участков подписей и дальнейшим сравнением коэффициентов при аппроксимирующем многочлене Безье на участках[5].

2.1.3 Алгоритм на основе вычисления матрицы расстояния

Результатом действия алгоритма является матрица расстояний, инвариантная относительно сдвига, поворота и изменения масштаба. Иными словами, если взять образец подписи, затем растянуть, повернуть и сдвинуть подпись, то матрица расстояний будет такая же как и у исходной подписи. Матрица вычисляется следующими действиями:
1. Центрируются исходные данные относительно среднего значения
.
2. Вычисляются нормированные на элемент, имеющий максимальную величину, координаты
.
3. Вычисляется матрица расстояния для всей совокупности нормированных координат

,
где rij - расстояние между i-й и j-й координатами.
В дальнейшем, сравниваются матрицы расстояний двух подписей.

2.1.4 Алгоритм сопоставления локальных экстремумов



Рисунок 2 - Сопоставление локальных экстремумов подписи
Распознавание подписи является достаточно схожей задачей по отношению к распознаванию человеческой речи. Поэтому существующие методы в области распознавания речи применимы к распознаванию рукописного текста с некоторыми дополнениями. Одним из основных методов верификации является подход с использованием нейронных сетей и сопоставление точек динамических кривых методом динамической трансформации временной шкалы(DTW алгоритм). Метод DTW имеет некоторые недостатки: трудоемкость вычислений и приведение даже поддельной подписи к эталонному виду. Чтобы устранить эти недостатки был предложен метод сравнения подписей на основе поиска соответствия экстремальных точек (extreme points warping, EPW). Из зависимости x(t) и y(t) выделяется последовательность максимумов и минимумов. Поэтому следует находить соответствия между точками, заключенными между соответствующими минимумом и максимумом. После того, как построено соответствие точек одной подписи точкам другой подписи, сравниваются непосредственно соответствующие друг другу точки разных подписей (рис. 2)[6].



2.1.5 Алгоритм, основанный на разложении функций X(t), Y(t), P(t) в ряды

Разложение в ряды позволяет компактно хранить данные о подписи с возможностью исходных восстановления и отображает динамику написания подписи. Функции X(t), Y(t), P(t) могут быть разложены по коэффициентам Фурье или вейвлет-разложения. Далее сравнение подписей производится сравнением соответствующих массивов коэффициентов разложения. По полученному массиву коэффициентов разложения также возможно восстановление исходных функций. При использовании вейвлет-преобразования уменьшается количество ошибок первого рода, при фиксированной ошибке второго рода. Но следует отметить, что вейвлет-преобразование имеет большую вычислительную сложность алгоритмов, нежели преобразования Фурье, для которого существуеталгоритм быстрого преобразования Фурье.
Часто сравниваются дополнительные характеристики подписи: отношение длины подписи к её ширине, угол наклона подписи, угол наклона между центрами половин подписи[7].

2.2 Алгоритм, основанный на распознавании образов c применением DTW

Для того, чтобы произвести аутентификацию личности по подписи по алгоритму, обязательны следующие шаги:
получение данных подписей(-и) от устройства;
предварительная обработка подписей(-и);
выделение ключевых особенностей подписей(-и) и DTW особенностей;
cохранение шаблонов подписи ( или сравнение подписи с шаблонами);
верификация ( успешно или нет).


2.2.1 Предварительная обработка

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

[ Cкачайте файл, чтобы посмотреть картинку ] (2.1)

где

(2.2)

Так же подписи от одного и того же человека могут сильно отличаться по размеру, поэтому следует их нормализовать по размеру.

[ Cкачайте файл, чтобы посмотреть картинку ] (2.3)


где [ Cкачайте файл, чтобы посмотреть картинку ], [ Cкачайте файл, чтобы посмотреть картинку ] - координаты необработанной подписи;
[ Cкачайте файл, чтобы посмотреть картинку ]  - одно из измерений ( широта или высота ) нормализованной подписи.
Для сравнения пространственных особенностей, временные зависимости следует исключить из представления, это достигается путем передискретизации. Временные характеристики должны быть извлечены, прежде чем проводить передискретизацию. Частота выборки: 100 образцов/сек.
Так же следует соединить все штрихи в один длинный штрих, или в одну длинную строку. Штрих - последовательность точек между опущенным и поднятым пером. Делается это для того, чтобы облегчить процедуру сравнения строк (см. рис. 3).



Рисунок 3 - Соединение штрихов

И еще один из важных пунктов в пред обработке подписи - выделение критических точек. Критические точки - точки которые несут больше информации, чем все остальные точки. Это точки где меняется направление движения штриха или конечные точки штриха ( см. рис. 4).



Рисунок 4 - Критические точки

На рис.5 можно видеть необработанный вариант подписи, а на рис.6 нормализованную подпись.


Рисунок 5 - Необработанная подпись



Рисунок 6 - Нормализованная подпись


2.2.2 Выделение ключевых особенностей

Ключевые особенности делят на глобальные и локальные. Глобальные особенности описывают всю подпись целиком, и в результате получается одно или несколько значений, представляющих определенную характеристику. Локальные извлекаются в локальной окрестности точки образца. Также можно выделить и пространственно-временные особенности, позволяющие уловить динамику процесса подписи.
Основными локальными особенностями являются:
- dx - разница по X-координате между соседними двумя точками;
- dy - разница по Y-координате между соседними двумя точками;
- dp - разница в давлении между соседними двумя точками;
- sin 13 QUOTE 1415cos 13 QUOTE 1415 - синус и косинус углов с x-координатой;
- absolute y - абсолютная Y-координата;
- curvature - кривизна штриха.
Временные особенности:
- абсолютная и относительная скорости между каждыми точками;
- velocity - абсолютная и относительная скорости между критическими точками.
Скорость определяется как расстояние за единицу времени. Прибор считывает данные с планшета 100раз/сек. Это уже обеспечивает равномерную единицу времени. Расстояние между двумя последовательными точками является мерой скорости письма между этими точками. Ресамплинг разрушает исходную информацию о скорости. Таким образом, скорость должна быть извлечена до или во время повторной выборки.
Нормализация локальной скорости в каждой точке выборки по средней скорости записи по всей подписи дает функцию скорости, которая не зависит от общей скорости. При этом принимается во внимание тот факт, что из-за
написания обстоятельств и из-за размера подписи, средняя скорость записи писателя может варьироваться. Относительная скорость в каждой точке внутри подписи, тем не менее должна быть стабильной.
Другой подход состоит в извлечении скорости только в критических точках и измерении средней скорости от одной критической точки к следующей. Это значение также может быть нормировано средней скоростью подписи. Несмотря на то, критические точки извлекаются и хранятся перед любой предварительной обработке, средняя скорость вычисляется перед предварительной обработки, так как длины дуг между двумя последовательными критическими точками могут быть изменены в процессе передискретизации и сглаживания.
Глобальные особенности учитывать не будем, но тем не менее они имеют место быть, так как несут информацию обо всей подписи целиком.

2.2.3 Регистрация шаблонов подписи

Для того, чтобы аутентифицировать пользователь, он должен предоставить несколько примеров, чтобы зарегистрироваться в системе. Количество подписей, как правило, колеблется в пределах от 5 до 10. Затем из этого набора подписей генерируется шаблон (эталон). Множество подписей обозначим знаком R.
Первый шаг здесь - сравнить все подписи попарно и найти расстояние между парами. Используя эти оценки, выбрать подпись с минимальными расстояниями до всех остальных подписей, эта подпись и будет эталонной.
Второй шаг - посчитать три средних величины для R :
- среднее значение расстояние до ближайшего соседа;
- среднее значение расстояние до дальнего соседа;
- среднее значение расстояние до эталонной подписи.
Средние значения выбраны не случайно, а для устранения погрешностей в написании подписи. А минимальное, максимальное и расстояние до эталона и описывают амплитуду расхождения подписей.
Для подсчета расстояния и используется алгоритм DTW.

2.2.3.1 Алгоритм алгоритм динамического трансформирования времени (DTW)

DTW вычисляет оптимальную последовательность трансформации (деформации) времени между двумя временными рядами. Алгоритм вычисляет оба значения деформации между двумя рядами и расстоянием между ними.
Предположим, что у нас есть две числовые последовательности ааааааааааа и . Как видим, длина двух последовательностей может быть различной. Алгоритм начинается с расчета локальных отклонений между элементами двух последовательностей, использующих различные типы отклонений. Самый распространенный способ для вычисления отклонений является метод, рассчитывающий абсолютное отклонение между значениями двух элементов (Евклидово расстояние). В результате получаем матрицу отклонений, имеющую n строк и m столбцов общих членов:

[ Cкачайте файл, чтобы посмотреть картинку ] (2.4)

где - Евклидово расстояние.
Минимальное расстояние в матрице между последовательностями определяется при помощи алгоритма динамического программирования и следующего критерия оптимизации:

[ Cкачайте файл, чтобы посмотреть картинку ] (2.5)

где - минимальное расстояние между последовательностями аааааааааааа и .
Путь деформации – это минимальное расстояние в матрице между элементами и , состоящими из тех элементами , которые выражают расстояние до .
Глобальные деформации состоят из двух последовательностей и определяются по следующей формуле:

[ Cкачайте файл, чтобы посмотреть картинку ]                                 (2.6)
где [ Cкачайте файл, чтобы посмотреть картинку ]– элементы, которые принадлежать пути деформации;
 [ Cкачайте файл, чтобы посмотреть картинку ] – их количество.
Существует три условия, налагаемых на DTW алгоритм для обеспечения быстрой конвергенции:
1) Монотонность – путь никогда не возвращается, то есть: оба индекса, i и j, которые используются в последовательности, никогда не уменьшаются.
2) Непрерывность – последовательность продвигается постепенно: за один шаг индексы, i и j, увеличиваются не более чем на 1.
3) Предельность – последовательность начинается в левом нижнем углу и заканчивается в правом верхнем.
Так как для определения основы последовательности в динамическом программировании оптимальным является использование метод обратного программирования, необходимо использовать определенный динамический тип структуры, который называется «стек». Подобно любому динамическому алгоритму программирования, DTW имеет полиномиальную сложность. Когда мы имеем дело с большими последовательностями, возникают два неудобства:
- запоминание больших числовых матриц;
- выполнение большого количества расчетов отклонений.
Существует улучшенная версия алгоритма, FastDWT, которая решает две вышеуказанные проблемы. Решение заключается в разбиении матрицы состояний на 2, 4, 8, 16 и т.д. меньших по размеру матриц, посредством повторяющегося процесса разбиения последовательности ввода на две части. Таким образом, расчеты отклонения производятся только на этих небольших матрицах, и путях деформации, рассчитанных для небольших матриц. С алгоритмической точки зрения, предлагаемое решение основано на методе “Divide et Impera” (прим. пер. от лат. «Разделяй и влавствуй»).

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

Тренировочный набор будет состоять из 80% процентов подлинных подписей и 20% ошибочных на человека, для того чтобы обучить классификаторы, используемые в процессе проверки. Каждая подпись (Y) из тренировочного набора сравнивается с подписями из R набора и вычисляются 13 INCLUDEPICT
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·FMgCRKlCBqXlUJBLvC-HbHtaNs2iDa-pWCez3e9lhEUXM6GH09InyYHwQVPvJ7WaB0rhjOCCV-pjEvU5KOylTTDNxbM" \* MERGEFORMATINET 1415 значения. Это процедура делается и для тренировочного набора, и для проверки подписи. Затем эти значения нормализуются и каждую подпись можно описать вектором признаков:

(2.7)

Для того, чтобы найти границу, разделяющую подлинными и фальшивые подписи, можно использовать следующие классификаторы: линейный дискриминантный анализ ( LDA ) или квадратичный дискриминантный анализ ( QDA ). Оба классифиратора являются классификаторами, где обучение “с учителем”.

2.2.4.1 Линейный дискриминантный анализ

Линейный дискриминантный анализ или LDA (Linear Discriminant Analysis)[8] это старейший из методов классификации, разработанный Р. Фишером. Метод предназначен для разделения на два класса.
Обучающий набор состоит из двух матриц X1 и X2, в которых имеется по I1 и I2 строк (образцов). Число переменных (столбцов) одинаково и равно J. Исходные предположения состоят в следующем:
1. Каждый класс (k=1 или 2) представляется нормальным распределением
2. Ковариационные матрицы этих двух классов одинаковые





Классификационное правило в LDA очень простое – новый образец x относится к тому классу, к которому он ближе в метрике Махаланобиса


(2.8)


где - расстояние Махаланобиса.
На практике неизвестные математические ожидания и ковариационная матрица заменяются их оценками

(2.9)

В формуле (2.9) [ Cкачайте файл, чтобы посмотреть картинку ] обозначает центрированную матрицу [ Cкачайте файл, чтобы посмотреть картинку ]. Если приравнять расстояния в формуле (2.8), то можно найти уравнение кривой, которая разделяет классы. При этом квадратичные члены [ Cкачайте файл, чтобы посмотреть картинку ]сокращаются, и уравнение становится линейным

,
(2.10)

где


(2.11)


Величины, стоящие в разных частях уравнения (2.10) называются LDA-счетами, f1 и f2. Образец относится к классу 1, если f1 > f2 , и, наоборот, к классу 2, если f1 < f2.
Главной проблемой в методе LDA является обращение матрицы S. Если она вырождена, то метод использовать нельзя. Поэтому часто, перед применением LDA, исходные данные X заменяют на матрицу PCA-счетов T, которая уже не вырождена.
Недостатки LDA:
не работает, когда матрица ковариаций вырождена, например, при большом числе переменных. Требуется регуляризация, например, PCA;
не пригоден, если ковариационные матрицы классов различны;
неявно использует предположение о нормальности распределения;
не позволяет менять уровни ошибок 1-го и 2-го родов.
Достоинства LDA:
прост в применении.

2.2.4.2 Метод главных компонент ( PCA )

Пусть имеется матрица переменных X размерностью (IЧJ), где I - число образцов (строк), а J - это число независимых переменных (столбцов), которых, как правило, много (J>>1). В методе главных компонент используются новые, формальные переменные ta (a=1,A), являющиеся линейной комбинацией исходных переменных xj (j=1,J)


(2.12)

С помощью этих новых переменных матрица X разлагается в произведение двух матриц T и P :



(2.13)

Матрица T называется матрицей счетов (scores). Ее размерность - (IЧA).
Матрица P называется матрицей нагрузок (loadings). Ее размерность (AЧJ).
E - это матрица остатков, размерностью (IЧJ).





Рисунок 7 - Разложение по главным компонентам

Чаще всего для построения PCA счетов и нагрузок, используется рекуррентный алгоритм NIPALS[8], который на каждом шагу вычисляет одну компоненту. Сначала исходная матрица X преобразуется (как минимум – центрируется) и превращается в матрицу E0, a=0. Далее применяют следующий алгоритм.
1. Выбрать начальный вектор t
2. pt = tt Ea / ttt
3. p = p / (ptp)Ѕ
4. t = Ea p / ptp
5. Проверить сходимость, если нет, то идти на 2
После вычисления очередной (a-ой) компоненты, полагаем ta=t и pa=p. Для получения следующей компоненты надо вычислить остатки Ea+1 = Ea – t pt и применить к ним тот же алгоритм, заменив индекс a на a+1.
После того, как построено пространство из главных компонент, новые образцы Xnew могут быть на него спроецированы, иными словами – определены матрицы их счетов Tnew. В методе PCA это делается очень просто


(2.14)


Во многих случаях, перед применением PCA, исходные данные нужно предварительно подготовить: отцентрировать и/или отнормировать. Эти преобразования проводятся по столбцам - переменным.
Центрирование - это вычитание из каждого столбца xj среднего (по столбцу) значения

. (2.15)

Центрирование необходимо потому, что оригинальная PCA модель не содержит свободного члена.
Второе простейшее преобразование данных - это нормирование. Это преобразование выравнивает вклад разных переменных в PCA модель. При этом преобразовании каждый столбец xj делится на свое стандартное отклонение.

(2.16)

Комбинация центрирования и нормирования по столбцам называется автошкалированием.

(2.17)

Любое преобразование данных - центрирование, нормирование, и т.п. - всегда делается сначала на обучающем наборе. По этому набору вычисляются значения mj и sj, которые затем применяются и к обучающему, и к проверочному набору.

2.2.4.3 Квадратичный дискриминантный анализ

Квадратичный дискриминантный анализ, QDA (Quadratic Discriminant Analysis) является естественным обобщением метода LDA. QDA– многоклассный метод и он может использоваться для одновременной классификации нескольких классов k=1,, K.
Обучающий набор состоит из K матриц X1 ,, XK, в которых имеется I1 ,, IK строк (образцов). Число переменных (столбцов) одинаково и равно J. Ковариационные матрицы в каждом классе различны. Тогда QDA-счета вычисляются по формуле:

(2.18)

Классификационное правило QDA такое – новый образец x относится к тому классу, для которого QDA-счет наименьший.
На практике, также как и в LDA, неизвестные математические ожидания и ковариационные матрицы заменяются их оценками



(2.19)

В этих формулах обозначает центрированную матрицу Xk. Поверхность, разделяющая классы k и l определяется квадратичным уравнением


(2.20)

поэтому метод и называется квадратичным.
Квадратичный дискриминантный анализ сохраняет большинство недостатков LDA.
не работает, когда матрицы ковариаций вырождены, например, при большом числе переменных. Требуется регуляризация, например, PCA;
неявно использует предположение о нормальности распределения;
не позволяет менять уровни ошибок 1-го и 2-го родов.

















3 СОЗДАНИЕ ПРОГРАММНОГО СРЕДСТВА

3.1 Описание классов, атрибутов и методов

Перед началом создания программного средства необходимо определить список используемых языков программирования, библиотек и технологий, которые будут использоваться при написании приложения. Разные языки и технологии подходят для задач определенного типа и могут совершенно не подходить или быть крайне неудобными при реализации задач другого типа.
Для разработки программного средства, реализуемого в ходе данного дипломного проекта, выбран язык программирования C#. Выбор был обусловлен несколькими факторами:
единые средства API для разработки программ на разных языках;
простота стыковки разноязыковых модулей;
многие классов, реализующие различные алгоритмы, сокращают время
разработки программы и повышают ее надежность;
установка программ под .NET не требует программ-инсталляторов,
делается простое копирование программы в нужную папку. Как следствие, при установке не вносятся ни какие записи в реестр Windows, поэтому после удаления таких программ в реестре не остается «мусор».
Так как наше приложение будет иметь сложную математику ( особенно на этапе верификации), то был сделан выбор интегрировать MATLAB модули в программу. MATLAB является отличным средством для решения, но слаб в создании полноценного пользовательского приложения (можно воспользоваться инструментами GUI MATLAB'a, но не в нашем случае). Основные преимущества MATLAB, выгодно выделяющие ее среди существующих ныне математических систем и пакетов (MathCad, Mathe- matica и др.), заключаются в следующем:
Система MATLAB специально создана для проведения именно
инженерных расчетов: математический аппарат, используемый ею, предельно приближен к современному математическому аппарату инженера и ученого и опирается на вычисления с матрицами, векторами и комплексными числами; графическое представление функциональных зависимостей здесь организовано в форме, требуемой именно инженерной документацией;
Язык программирования системы MATLAB очень прост, близок к
языку Basic, посилен любому начинающему; он содержит всего несколько десятков операторов; незначительное количество операторов здесь компенсируется большим числом процедур и функций, смысл которых понятен пользователю с соответствующей математической и инженерной подготовкой;
В отличие от большинства математических систем, MATLAB
является открытой системой; это означает, что практически все процедуры и функции MATLAB доступны не только для использования, но и для коррекции и модификации; MATLAB - система, которую пользователь может расширять по своему усмотрению созданными им программами и процедурами (подпрограммами); ее легко приспособить к решению нужных классов задач;
Очень удобна возможность, как составлять, собственные отдельные
программы с целью многократного их использования для исследований, так и применять практически все вычислительные возможности системы в режиме чрезвычайно мощного научного калькулятора; это делает MATLAB незаменимым средством проведения научных и инженерных расчетных исследований;
Последние версии MATLAB позволяют легко интегрировать ее с
текстовым редактором Word, что дает возможность использовать при составлении текстовых документов вычислительные и графические средства MATLAB;
Возможности системы огромны, а по скорости выполнения задач она
опережает многие другие подобные системы. Все эти особенности делают систему MATLAB весьма привлекательной для использования в учебном процессе высших учебных заведений.
Ввод информационных данных будет осуществляться с помощью графического планшета. Графический планшет расширяет возможности ввода пользователя. Кроме координат курсора, графический планшет может предоставлять информацию о нажатии на перо, поворот пера, вращение пера и т.п. Возможности планшетов варьируются в зависимости от конкретной модели.
Так как планшет является специфическим устройством ввода, в .Net не существует встроенной поддержки работы с ним.
Для обеспечения единого интерфейса взаимодействия приложений и разнообразных по функциональности графических планшетов была разработана спецификация WinTab [9]. В рамках этой спецификации описывается система, предоставляющая API для взаимодействия с устройством. Центральным компонентом системы является библиотека wintab32.dll, которая с одной стороны предоставляет пользователю набор стандартных функций, а с другой взаимодействует со специфическим драйвером устройства. Эта библиотека устанавливается в систему вместе с драйверами графического планшета.
В рамках этой спецификации приложение манипулирует специальными объектами – контекстами оцифровки (или просто контекстами), которые чем-то схожи с контекстами устройства GDI. Контексты используются для установки размеров области ввода приложения, масштабирования области ввода и управления событиями. Для создания контекста приложение передает библиотеке дескриптор окна и параметры контекста, библиотека создает контекст и связывает его с этим окном. После этого окно начинает получать сообщения windows, которые содержат информацию о событиях, связанных с вводом графического планшета. Приложение обрабатывает эти события и вызывает функции WinTab для получения пакетов с данными от графического планшета. Формат пакета настраивается в зависимости от потребностей приложения.
Так как среда исполнения платформы .Net является средой исполнения управляемого кода, а использование WinTab подразумевает вызов неуправляемых функций, поддержку ввода с графического планшета выделим в отдельный компонент. Он будет осуществлять общение с библиотекой WinTab, а пользователю предоставлять интерфейс на основе событий .Net. Это позволит взаимодействовать с графическим планшетом таким образом, который похож на обычную обработку сообщений мыши в .Net приложениях.
Программа будет представлена только в виде клиентской части. Интерфейс пользователя должен:
- отображать подпись пользователя в специально отведенном окне;
- показывать данные о введеной подписи ( координаты и давление);
- позволять сохранить данные о подписи, а так же ID пользователя, кто ее ввел;
- позволять верифицировать подпись и аутентифицировать пользователя.
Реализация клиентского приложения разделена на несколько частей: модуль, отвечающий за работу с графическим планшетом, модуль интерфейса пользователя, модуль ядра, где представлена основная логика и модуль для работы c Matlab.

3.2. Модуль интерфейса пользователя

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

3.3 Модуль ядра

Модуль, который отвечает за логику программы, за сохранение подписей в базу и их верификацию.
Рассмотрим каждый класс более подробно и опишем их методы и свойства.
Класс Sign является классом для хранения информации о подписи.
Основные свойства:
X - массив x-координат;
Y - массив y-координат;
P - массив давлений;
T - массив для хранения времен;
PartsSize - массив для хранения мест, где штрихи были соединены в длинную линию;
Vx - массив для хранения изменения скорости X;
Vy - массив для хранения изменения скорости Y;
CriticalPoints - критические точки подписи;
InternalAngles - внутренние углы подписи;
ExternalAngles - внешние углы подписи.
Методы класса Sign по большей части вспомогательные:
Сount() - возращает количество точек;
MinX(), MaxX(), MeanX() - минимальное, максимальное и среднее значение X соответственно;
MinY(), MaxY(), MeanY() - минимальное, максимальное и среднее значение Y соответственно.
Класс Normalizer отвечает за нормализацию подписи. Содержит следующие методы:
ApplyRotation() - нормализация по вращению;
ApplySize() - нормализация по размеру;
Merge() - отвечает за соединение штрихов в линию.
Класс Extractor отвечает за извлечение локальных особенностей. Метод CalculateVelocities отвечает сразу за подсчет скорости X и Y координат, а так же за извлечение критических точек. Метод CalculateAngles за подсчет внешних и внутренних углов.
Класс GMath является вспомогательным для подсчета математики.
Класс DynamicTimeWarping содержит методы, реализующие DTW-алгоритм.
Класс DTWCalculator cодержит методы для подсчета различных расстояний:
CoordsDTW() - считает расстояние между координатами;
VelDTW() - считает расстояние между скоростными особенностями;
CriticalPointsDTW() - считает расстояние между критическими точками;
InternalAnglesDTW(), ExternalAnglesDTW() - считают расстояния между углами;
PressionDTW() - считает расстояние для давлений двух подписей.
Класс ReferenceSet является одним из основных для верификации. Хранит массив подписей из R множества. Основные методы здесь:
Add() - добавить подпись в R-множество;
CalculateDtwPairwise() - метод, отвечающий за подсчет расстояний между подписями;
GetAverageByMinDtw() - возвращает среднее минимальное значение расстояний;
GetAverageByMaxDtw() - возвращает среднее максимально значение расстояний;
SetTemplateSign() - устанавливает шаблонную подпись из множества;
GetAverageByTempDtw() - возвращает среднее расстояние от подписи-шаблона до всех остальных подписей из набора;
CalculateDtwWithSign() - возращает расстояния от Y подписи до подписей из набора;
GetFeatureVector() - возвращает FeatureVector для Y подписи.
Класс Saver сохраняет и восстанавливает подписи в файл и из файла соответственно.
Класс Verificator имеет один метод Verificate, который, используя функционал всех предыдущих классов, считывает подписи из файлов, занимается подсчетом векторов особенностей, а затем посылает эти значения на сторону Matlab компонента, который, в свою очередь, подсчитывает QDA стандартными средствами, и возращает true или false.

3.4. Модуль Matlab

Интеграция С# кода с .m файлом матлаба не является сложной задачей. Достаточно .m файл скомпилировать в dll и подключить эту dll в программу.

3.5. Модуль, отвечающий за работу с графическим планшетом


Приложенные файлы

  • doc 18242034
    Размер файла: 2 MB Загрузок: 0

Добавить комментарий