Научная статья на тему 'БИБЛИОТЕКА ДЛЯ ОНЛАЙН-ВЕРИФИКАЦИИ РУКОПИСНОЙ ПОДПИСИ'

БИБЛИОТЕКА ДЛЯ ОНЛАЙН-ВЕРИФИКАЦИИ РУКОПИСНОЙ ПОДПИСИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
117
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РУКОПИСНАЯ ПОДПИСЬ / ОНЛАЙН-ВЕРИФИКАЦИЯ ПОДПИСИ / ГРАДИЕНТНЫЙ БУСТИНГ / МЕТОД ОПОРНЫХ ВЕКТОРОВ / АЛГОРИТМ ДИНАМИЧЕСКОЙ ТРАНСФОРМАЦИИ ВРЕМЕННОЙ ШКАЛЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вдовкина София Александровна, Шибанов Сергей Владимирович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «БИБЛИОТЕКА ДЛЯ ОНЛАЙН-ВЕРИФИКАЦИИ РУКОПИСНОЙ ПОДПИСИ»

УДК 004.93Ч

БИБЛИОТЕКА ДЛЯ ОНЛАЙН-ВЕРИФИКАЦИИ РУКОПИСНОЙ ПОДПИСИ

С. А. Вдовкина1, C. В. Шибанов2

^Пензенский государственный университет, Пенза, Россия

1sophia.vdovkina@gmail.com 2serega@pnzgu.ru

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

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

Для цитирования: Вдовкина С. А., Шибанов С. В. Библиотека для онлайн-верификации рукописной подписи // Вестник Пензенского государственного университета. 2022. № 2. С. 76-84.

Введение

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

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

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

При разработке библиотеки были поставлены две задачи:

1) извлечение признаков (характеристик) из рукописной подписи;

2) верификация рукописной подписи по извлеченным признакам.

© Вдовкина С. А., Шибанов С. В., 2022

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

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

Также статический метод дает меньше информации по сравнению с динамическим методом, так как известны лишь координаты точек.

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

В пользу приведенных выше аргументов был выбран онлайн-подход к верификации подписи.

В онлайн-режиме верификации подписи применяются два основных способа представления рукописной подписи:

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

- параметрический подход - подпись описывается как вектор, элементы которого соответствуют отдельным характеристикам подписи.

Характеристики (параметры) подписи при параметрическом подходе подразделяются на локальные и глобальные. Локальные параметры описывают каждую отдельную точку подписи. Глобальные параметры описывают подпись в целом и процесс ее написания, например, общее затраченное время, среднее давление, средняя скорость и т.д.

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

Библиотека предназначена для внедрения в проекты с целью осуществления аутентификации с использованием рукописной подписи или для использования рукописной подписи в качестве основного пароля человека.

Анализ методов верификации подписи

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

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

Методы онлайн-верификации рукописной подписи можно разделить на три основные категории:

- методы сопоставления с шаблоном, в которых верифицируемый экземпляр подписи сопоставляется с шаблонами подписей;

- статистические методы, в которых оценивается один или несколько показателей, вычисленных статистическими методами;

- структурные методы, которые базируются на структурном представлении подписей и их сравнении с помощью методов сопоставления графов или деревьев [3].

В библиотеке были реализованы статистические методы (метод опорных векторов, xgboost) и метод сопоставления с шаблоном (алгоритм динамической трансформации временной шкалы).

Представление подписи в библиотеке

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

В процессе ввода получаем точки, которые характеризуются координатами х и у, давлением и временем относительно предыдущей точки, математическое представление можно увидеть в (1).

[{х^ Уъ VI. ЬИ^ У2, P2, ■■■ , Ут Рт ¿п1] С1)

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

Получаемые параметры представлены ниже:

Скорость Ускорение

Угол касательной к траектории в точке Радиус кривизны в точке

Далее происходит стандартизация параметров и линейная интерполяция до 256 точек.

Таким образом, полученные параметры должны быть представлены в формате dataframe библиотеки pandas со следующими колонками:

{х, у, р, V, acceleration, angle, radius, personjd} (2)

J(Ax2+Ay2) At

Av At

arctan x/y lx'' *y' —x' *y''l

((x')2+(y')2)3/2

В (2) x - координата x введенной подписи, y - координата y введенной подписи, p -значения давления введенной подписи, v - скорость, acceleration - ускорение, angle -угол касательной к траектории в точке, radius - радиус кривизны в точке, person_id -уникальный идентификатор пользователя.

После этого данные подписи/подписей должны быть переданы в метод библиотеки по верификации train() при регистрации пользователя либо в метод verify() (передать в качестве параметров полученные признаки и id-пользователя). Также в данные функции должно быть передано одно из значений Enum класса Methods, которые представляют собой различные методы верификации.

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

Листинг 1 - Преобразование идентификаторов

le = preprocessing.LabelEncoderO

le.fit(data.person_id) data.person_id = le.transform(data.person_id)

pickle.dump(le, open('encoder.pkl', 'wb'))

Имплементированные алгоритмы верификации

В библиотеке поддерживаются следующие алгоритмы: метод опорных векторов, алгоритм динамической трансформации временной шкалы, XGBoost. Подробнее о них ниже.

Метод опорных векторов, или SVM (от англ. Support Vector Machines) - это набор методов машинного обучения с учителем, используемых в задачах классификации, регрессии и для обнаружения выбросов в данных. Таким образом, основной задачей SVM как классификатора является нахождение уравнения разделяющей гиперплоскости:

W1X1 + Ш2Х2 + ••• + шпхп + = 0, (3)

в пространстве Rn, которая бы разделила два класса неким оптимальным образом.

Преимущества метода опорных векторов:

- эффективен в пространствах больших размеров;

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

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

К недостаткам опорных векторных машин можно отнести следующее:

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

- SVM не предоставляет оценки вероятностей, они рассчитываются с использованием дорогостоящей перекрестной проверки [4].

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

Сначала алгоритм тренируется на объектах из обучающей выборки, для которых заранее известны метки классов. Далее уже обученный алгоритм предсказывает метку класса для каждого объекта из отложенной/тестовой выборки. Пусть метки классов могут принимать значения Y = {-1, +1}. Объект - вектор c N-признаками х = (х1; х2,..., хп)

в пространстве Яп. При обучении алгоритм должен построить функцию Р(х) = у, которая принимает в себя аргумент х - объект из пространства № и выдает метку класса у.

Общий вид преобразования F объекта X в метку класса у:

Р(х) = 51дп(^тх — Ь), (4)

где ж = ...,шп); Ь = из (3). После настройки весов алгоритма ж и Ь (обуче-

ния) все объекты, попадающие по одну сторону от построенной гиперплоскости, будут предсказываться как первый класс, а объекты, попадающие по другую сторону, как второй класс.

В основе хобоо81 лежит алгоритм градиентного бустинга деревьев решений. Градиентный бустинг - это техника машинного обучения для задач классификации и регрессии, которая строит модель предсказания в форме ансамбля слабых предсказывающих моделей, обычно деревьев решений. Обучение ансамбля проводится последовательно. На каждой итерации вычисляются отклонения предсказаний уже обученного ансамбля на обучающей выборке. Следующая модель, которая будет добавлена в ансамбль, будет предсказывать эти отклонения. Таким образом, добавив предсказания нового дерева к предсказаниям обученного ансамбля, мы можем уменьшить среднее отклонение модели, которое является целью оптимизационной задачи. Новые деревья добавляются в ансамбль до тех пор, пока ошибка уменьшается либо пока не выполняется одно из правил «ранней остановки» [5]. В XGBoost ответы суммируются по всем деревьям ансамбля:

ВД= П^Мх). (5)

Суммарная функция потерь в XGBoost выглядит следующим образом:

Ша11озз = Ъ^ЬззСуиР&М+уЪ^Ть+^Ъ^Ы2. (6)

В (6) у, ^ - гиперпараметры; Тк - количество листьев в к-м дереве ансамбля; wk -вектор, составленный из выходных значений на всех листьях к-го дерева.

Алгоритм динамической трансформации временной шкалы (DTW) вычисляет оптимальную последовательность трансформации (деформации) времени между двумя временными рядами. Алгоритм вычисляет оба значения деформации между двумя рядами и расстоянием между ними [6].

Предположим, что у нас есть две числовые последовательности (а1,а2,.,ап) и (Ь1,Ъ2, ...,Ьт). Длина двух последовательностей может быть различной. Алгоритм начинается с расчета локальных отклонений между элементами двух последовательностей, использующих различные типы отклонений. Самым распространенным способом для вычисления отклонений является метод, рассчитывающий абсолютное отклонение между значениями двух элементов (Евклидово расстояние). В результате получаем матрицу отклонений, имеющую п строк и т столбцов общих членов:

йц = 1^1 — ^1,1= 1,п,} = 1,т. (7)

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

Щ = ¿1] + т\п(а1-1,]-1, Щ-^, а^-г). (8)

В (8) ац - минимальное расстояние между последовательностями (а1,а2,.,ап) и (Ь1,Ь2, ...,Ьт). Путь деформации - это минимальное расстояние в матрице между элементами а11 и апт, состоящими из тех а^- элементов, которые выражают расстояние

до апщ.

Глобальные деформации состоят из двух последовательностей и определяются по следующей формуле:

СС^-^ищ. (9)

В (9) - элементы, которые принадлежат пути деформации; р - их количество.

Таким образом, пользователь может выбрать метод верификации из предложенных выше. Стоит заметить, что для достижения предсказуемого результата методы 1га1п() и veriJУ() должны быть вызваны с одинаковыми параметрами выбора функции верификации. Если метод veriJУ() вызван, но переданной модели не существует, будет выдана ошибка.

Структура библиотеки

В рамках библиотеки реализованы два основных класса:

- класс MentificationService для идентификации рукописной подписи;

- класс VerificationService для верификации рукописной подписи;

- класс FeatureEхtracter извлечения признаков рукописной подписи.

На рис. 1 приведены спецификации методов класса идентификации рукописной подписи IdentificationService. На рис. 2 приведены спецификации методов класса верификации рукописной подписи VerificationService. На рис. 3 приведены спецификации методов класса извлечения признаков рукописной подписи FeatureEхtracter. На рис. 4 приведены спецификации перечисления.

Метод train

Назначение метода: создание модели машинного обучения для идентификации подписи

Сигнатура: int train(DataFrame data, Methods method)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Краткое описание: создается модель для дальнейшей идентификации подписей. Данный метод в некоторых случаях вызывается в одноименном методе класса VerificationService

Входные данные: данные всех подписей в формате из (2) и объект класса методов (выбранный алгоритм верификации). Далее в спецификации данные формата DataFrame подразумевают формат (2)

Выходные данные: код ответа (200 при удачном завершении обучения)

Метод identifícate

Назначение метода: идентификация человека по подписи

Сигнатура: int, UID, float identifícate (DataFrame data, Methods method) Краткое описание: происходит идентификация подписи с использованием ранее тренированной модели

Входные данные: данные подписи и объект класса методов (выбранный алгоритм верификации)

Выходные данные: int - код ответа, UID - уникальный идентификатор пользователя в формате, который идентичен 'person_id', переданному в метод создания модели, float -уверенность идентификатора

Рис. 1. Спецификации методов класса IdentificationService

8l

Метод train

Назначение метода: создание шаблона для верификации Сигнатура: int train(dict data, Methods method)

Краткое описание: создаются шаблоны эталонных подписей для дальнейшей верификации по ним

Входные данные: данные подписей в исходном формате (1) и объект класса методов (выбранный алгоритм верификации)

Выходные данные: код ответа (200 при удачном завершении обучения)

Метод verify

Назначение метода: верификация человека по подписи Сигнатура: int, bool verify(dict data, Methods method)

Краткое описание: происходит верификация человека по подписи с использованием шаблонов

Входные данные: данные подписей в исходном формате (1) и объект класса методов

Выходные данные: код ответа и булевое значение, которое оповещает: принадлежит подпись верифицируемому человеку или нет

Рис. 2. Спецификации методов класса VerificationService

Метод init

Назначение метода: инициализация объекта Сигнатура:_init_(diet data)

Краткое описание: инициализируется класс извлечения признаков Входные данные: данные подписей в исходном формате (1) Выходные данные: объект класса FeatureExtracter

Метод extract Назначение метода: извлечение признаков

Сигнатура: diet extract()_

Краткое описание: извлечение признаков (2) из подписи

Входные данные: берутся из поля data

Выходные данные: словарь извлеченных признаков

Рис. 3. Спецификации методов класса FeatureExtracter

Перечисление алгоритмов (Methods(enum.Enum))

SVM Метод опорных векторов

DTW Алгоритм динамической трансформации временной шкалы

XGB Градиентный бустинг

Рис. 4. Спецификации перечисления 82

Применение библиотеки представлено на рис. 5.

Рис. 5. Диаграмма последовательности применения библиотеки

Для подключения библиотеки достаточно импортировать класс библиотеки, объявить объект и использовать методы по назначению.

Заключение

Представлена библиотека методов идентификации и верификации рукописной подписи. Библиотека функционирует в составе онлайн REST сервиса по верификации подписи.

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

Список литературы

1. Fierrez-Aguilar J., Krawczyk S., Ortega-Garcia J., Jain A. K. Fusion of Local and Regional Approaches for On-Line Signature Verification // Advances in Biometric Person Authentication. IWBRS 2005. Lecture Notes in Computer Science / Li S. Z., Sun Z., Tan T., Pankanti S., Chollet G., Zhang D. (eds). Berlin, Heidelberg : Springer, 2005. Vol. 3781. URL: https://link.springer.com

2. Вдовкина С. А., Шибанов С. В. Обзор методов онлайн-верификации рукописной подписи // Аналитические и численные методы моделирования естественно-научных и социальных проблем : сб. ст. по материалам XVI Междунар. науч.-техн. конф. (г. Пенза, Россия, 1-4 декабря 2021 г.) / под ред. проф. И. В. Бойкова. Пенза : Изд-во ПГУ, 2021. С. 108-113.

3. Jain A. K., Griess F. D., Connell S. D. On-line Signature Verification // Pattern Recognition. 2002. Vol. 35, № 12. P. 2963-2972.

4. Platt J. Probabilistic Outputs for SVMs and Comparisons to Regularized Likelihood Methods // Advances in Large Margin Classifiers. 1999. URL: https: //www.herbrich.me

5. Chen T., Guestrin C. XGBoost: A Scalable Tree Boosting System // Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, 2016. P. 785-794.

6. Salvador S. FastDTW: Toward Accurate Dynamic Time Warping in Linear Time and Space // IEEE Transactions on Biomedical Engineering. Vol. 43, № 4. URL: https://www.iosrjournals.org>

Информация об авторах Вдовкина София Александровна, студентка, Пензенский государственный университет

Шибанов Сергей Владимирович, кандидат технических наук, доцент, доцент кафедры «Математическое обеспечение и применение ЭВМ», Пензенский государственный университет

Авторы заявляют об отсутствии конфликта интересов.

i Надоели баннеры? Вы всегда можете отключить рекламу.