Научная статья на тему 'ОПТИМИЗАЦИЯ РАБОТЫ БАЗЫ ДАННЫХ ОТПЕЧАТКОВ ПАЛЬЦЕВ С ПОМОЩЬЮ КЛАСТЕРИЗАЦИИ'

ОПТИМИЗАЦИЯ РАБОТЫ БАЗЫ ДАННЫХ ОТПЕЧАТКОВ ПАЛЬЦЕВ С ПОМОЩЬЮ КЛАСТЕРИЗАЦИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
72
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БИОМЕТРИЧЕСКАЯ АУТЕНТИФИКАЦИЯ / БЕЗОПАСНОСТЬ / ЗАЩИТА ДАННЫХ / КЛАСТЕРИЗАЦИЯ / ОБРАБОТКА ИЗОБРАЖЕНИЙ / BIOMETRIC AUTHENTICATION / SECURITY / DATA PROTECTION / CLUSTERING / IMAGE PROCESSING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Носов А.В., Гурко А.В.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Носов А.В., Гурко А.В.

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

OPTIMIZATION OF THE WORK OF THE FINGER PRINTS DATABASE BY CLUSTERING

Information security is the most important task of each organization. In order for the data not to fall into the hands of intruders, it is necessary to have up-to-date system protection. One of the secure methods in the modern world is biometric authentication, but as the amount of biometric data grows, the database becomes slower. In order to avoid this, you can optimize the database by storing the more similar fingerprints in separate tables, and to define these tables, you can use clustering, which itself will break a large number of fingerprints into separate table clusters. The purpose of this article is to describe the use of clustering to optimize the performance of a fingerprint database.

Текст научной работы на тему «ОПТИМИЗАЦИЯ РАБОТЫ БАЗЫ ДАННЫХ ОТПЕЧАТКОВ ПАЛЬЦЕВ С ПОМОЩЬЮ КЛАСТЕРИЗАЦИИ»

УДК 004.932

Носов А.В. студент магистратуры кафедра Информационных систем и вычислительной техники

экономический факультет Гурко А.В., к.т.н.

доцент

Санкт-Петербургский Горный университет

РФ, г. Санкт-Петербург ОПТИМИЗАЦИЯ РАБОТЫ БАЗЫ ДАННЫХ ОТПЕЧАТКОВ

ПАЛЬЦЕВ С ПОМОЩЬЮ КЛАСТЕРИЗАЦИИ Аннотация: Защита информации является важнейшей задачей каждой организации. Для того, чтобы данные не попали в руки злоумышленников, необходимо иметь актуальную защиту системы. Один из защищенных способов в современном мире - это биометрическая аутентификация, но при росте количества биометрических данных, работа базы данных становится медленнее. Для того, чтобы избежать этого, можно оптимизировать базу данных с помощью хранения более похожих друг на друга отпечатков в отдельных таблицах, а чтобы определить эти таблицы, можно использовать кластеризацию, которая сама разобьет большое множество отпечатков на отдельные кластеры-таблицы. Целью данной статьи является описание использования кластеризации для оптимизации работы базы данных отпечатков пальцев.

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

Nosov A. V.

тaster student of the Department of Information Systems and Computer

Engineering, Faculty of Economics St. Petersburg Mining University St. Petersburg, RF

Gurko A.V.

Candidate of Technical Sciences, Associate professor

St. Petersburg Mining University St. Petersburg, RF OPTIMIZATION OF THE WORK OF THE FINGER PRINTS DATABASE BY CLUSTERING Abstract: Information security is the most important task of each organization. In order for the data not to fall into the hands of intruders, it is necessary to have up-to-date system protection. One of the secure methods in the modern world is biometric authentication, but as the amount of biometric data grows, the database becomes slower. In order to avoid this, you can optimize the database by storing the more similar fingerprints in separate tables, and to define these tables, you can use clustering, which itself will break a large number of fingerprints into separate table clusters. The purpose of this article is to describe

the use of clustering to optimize the performance of a fingerprint database.

Keywords: Biometrie authentication, security, data protection, clustering, image processing.

Анализ проблемной области

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

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

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

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

Подготовка отпечатков

Отпечаток пальца - это изображение строений паппилярных линий.

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

Существует около 30 систем дактилоскопических регистраций. Основу этих систем составляет разделение на 4 типа (рис. 1):

- Дельта слева, петля справа

- Дельта справа, петля слева

- Больше одной дельты

- Нет дельт

Рисунок 1. Основная классификация папиллярных узоров

Если рассматривать отпечаток подробнее, то можно выделить больше деталей (рис. 2):

1) отросток - раздвоение длинного гребня243 на длинный и короткий гребнь

2) озеро - одиночный гребень, который раздваивается и почти сразу переходит обратно в одиночный гребень

3) дельта

4) остров - маленький гребень

5) конец гребня - гребень, который резко заканчивается

6) бифуркация - одиночный гребень, который раздваивается на два гребня

7) ядро - завершение петли

8) мост - короткий гребень, который соединяет два параллельных гребня с двумя другими гребнями

9) точка - гребень с примерно равной длиной и шириной

243 Гребень - папиллярная линия

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

Один из самых простых способов является представление отпечатка в бинарном виде (1,0), где точки изображения могут находиться только в двух состояниях: черная и белая. Чтобы добиться такого представления отпечатка, необходимо провести бинаризацию.

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

Рисунок 3. Исходное изображение отпечатка пальца

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

• Сужение (Erode) - аналог логического И, точка принимает значение 1 (белый) если все точки в окрестности белые.

• Расширение (Dilate) - аналог логического ИЛИ, точка принимает значение 1 (белый) если в окрестности есть хотя бы одна белая точка.

• Закрытие (Closing) - последовательное выполнение расширения и сужения.

• Раскрытие (Opening) - последовательное выполнение сужения и расширения

После этого для создания изображения с более равномерным фоном, вычитаем полученный фон из исходного изображения (рис. 4).

Рисунок 4. Создание равномерного фона исходного изображения Далее повышаем контрастность изображения путем растяжения значений интенсивностей динамического диапазона (рис. 5).

Рисунок 5. Повышение контрастности После проведенной обработки изображение готово для перевода в бинарный вид.

Для перевода отпечатка в бинарный вид можно использовать пороговое преобразование:

где I - пиксель, T - пороговое значение.

Когда изображение переведено в бинарный вид (рис. 6), с ним можно проводить дальнейшую работу.

Рисунок 5. Повышение контрастности Следующим этапом является скелетизация. Скелетизация - это набор простых линий, дуг и точек, которые получаются в результате утоньшения объекта. В данном случае, толщину всех линий отпечатка пальца необходимо уменьшить до 1 пикселя. Для утоньшения линий существует несколько

методов. Один из самых распространенных это алгоритм Зонга-Суня244. Описание алгоритма выглядит следующим образом:

1) В первой подитерации пиксель Р удаляется тогда и только тогда, когда удовлетворены условия G1, G2 и G3;

2) Во второй подитерации пиксель Р удаляется тогда и только тогда, когда удовлетворены условия G1, G2 и G3\

Условие G1:

х1, х2, ..., х8 - значения 8 соседей Р, пронумерованы начиная с западного соседа и пронумерованы против часовой стрелки

Условие G2:

Условие G3:

Условие G3,:

Если число итераций будет бесконечно (п=1п!), тогда итерации будут повторяться пока изображение не перейдет в скелетное состояние.

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

244 Lam, L., Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive Survey," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9, September 1992, page 879, bottom of first column through top of second column.

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

Рисунок 7. Особые точки отпечатка пальца Поиск особых точек происходит по следующему методу: если в матрице 3х3 в окрестности точки есть только одна точка, то это окончание линии, если две, то это точка линии, если три, то это разветвление. Кластеризация отпечатков

Кластеризация - это объединение объектов в непересекающиеся группы (кластеры) по их общим свойствам.

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

«Пусть заданы множества объектов X = (х1,х2,...,хи) и номеров (имён, меток) кластеров У = (у1,у2,...,у&). Для X определена некоторая функция расстояния между объектами В(х, х'), например, метрика Ь2. Кроме этого, имеется конечная выборка обучающих примеров Хт = (х1,х2,...,хт) из множества X, которую требуется разбить на Хт непересекающиеся подмножества кластеры так, чтобы каждое из них состояло бы только из элементов, близких по метрике В. При этом каждому объекту х1 из множества Хт присваивается номер кластера у1.

Тогда задача будет заключаться в поиске функции /, которая любому объекту х из множества X ставит в соответствие номер кластера у из множества У, которое само по себе бывает известно заранее. Однако в большинстве случаев приходится определять оптимальное число кластеров исходя из особенностей решаемой задачи.» [5]

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

кластеров. Здесь распространены агломеративные методы построения иерархий кластеров - в них производится последовательное объединение исходных объектов и соответствующее уменьшение числа кластеров. Иерархические алгоритмы обеспечивают сравнительно высокое качество кластеризации и не требуют предварительного задания количества кластеров. Большинство из них имеют сложность O(n2).

Неиерархические алгоритмы основаны на оптимизации некоторой целевой функции, определяющей оптимальное в определенном смысле разбиение множества объектов на кластеры. В этой группе популярны алгоритмы семейства k-средних (k-means, fuzzy c-means, Густафсон-Кесселя), которые в качестве целевой функции используют сумму квадратов взвешенных отклонений координат объектов от центров искомых кластеров. Кластеры ищутся сферической, либо эллипсоидной формы. В канонической реализации минимизация функции производится на основе метода множителей Лагранжа и позволяет найти только ближайший локальный минимум. Использование методов глобального поиска (генетические алгоритмы) значительно увеличит вычислительную сложность алгоритма.» [6]

В задаче кластеризации отпечатков пальцев предложено использовать неиерархический алгоритм кластеризации fuzzy c-means. Выбор обусловлен тем, что данный алгоритм не разбивает объекты четко по кластерам, а описывает процентную принадлежность объекта к каждому кластеру. Это помогает в задаче аутентификации тем, что если отпечаток 45% принадлежит к ^-кластеру, 45% к 5-кластеру и 10% к С-кластеру, то если система не найдет эталонный отпечаток в ^-кластере, то она не закончит работу, а попробует поискать в 5-кластере.

Например, при выборе алгоритма кластеризации k-means, отпечатки будут распределены четко по кластерам и поиск будет только в том кластере, к которому принадлежит отпечаток.

Алгоритм fuzzy c-means заключается в следующем:

«Нечеткие кластера опишем следующей матрицей нечеткого разбиения:

F = KiLi^[0,lU = ЪМ, i = ±£,

в которой k-ая строчка содержит степени принадлежности объекта (xk1,xk2,...,xkn) к кластерам Единственным отличием матриц F и U

является то, что при нечетком разбиении степень принадлежности объекта к кластеру принимает значения из интервала [0,1], а при четком - из двухэлементного множества {0,1}. Условия для матрицы нечеткого разбиения записываются так:

Ii=i,c = (1)

о < 1к=±м Vki, i = Ъ_£, (2)

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

при работе с объектами, удаленными от центров всех кластеров. Удаленные объекты имеют мало общего с любым из кластеров, поэтому интуитивно хочется назначить для них малые степени принадлежности. Однако, по условию (1) сумма их степеней принадлежностей такая же, как и для объектов, близких к центрам кластеров, т.е. равна единице. Для устранения этого недостатка можно использовать возможностное разбиение, которое требует, только чтобы произвольный объект из X принадлежал хотя бы одному кластеру. Возможностное разбиение получается следующим ослаблением условия (1): И, (pki > 0,Vk

Для оценки качества нечеткого разбиения используется такой критерий разброса:

S i=hç S ь=1М (VuT^Wi-XA2, (3)

где V,- = —=--центры нечетких кластеров;

д 1 Zk=±M tekùm ц р р ;

те[1,ю) - экспоненциальный вес, определяющий нечеткость, размазанность кластеров.

Предложено множество алгоритмов нечеткой кластеризации, основанных на минимизации критерия (3). Нахождение матрицы нечеткого разбиения F с минимальным значение критерия (3) представляет собой задачу нелинейной оптимизации, которая может быть решена разными методами. Наиболее известный и часто применяемый метод решения этой задачи алгоритм нечетких с-средних, в основу которого положен метод неопределенных множителей Лагранжа. Он позволяет найти локальный оптимум, поэтому выполнение алгоритма из различных начальных точек может привести к разным результатам.

Алгоритм нечетких с-средних:

Шаг 1. Установить параметры алгоритма: c - количество кластеров; m -экспоненциальный вес; s - параметр останова алгоритма.

Шаг 2. Случайным образом сгенерировать матрицу нечеткого разбиения F, удовлетворяющую условия (1) - (2).

Sk=i,M (№ki)m'xk

Шаг 3. Рассчитать центры кластеров: Vi = -—, i = 1, с

Sk=i,M (№ki)m

Шаг 4. Рассчитать расстояния между объектами из X и центрами кластеров:

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

Dki = jUb-V^2, к = 1,М, i = 1,с

Шаг 5. Пересчитать элементы матрицы нечеткого разбиения ( i = 1, с, к = 1, M):

если Dki > 0: ukj = —--1—-—- ;

— uik

если Dki = 0: = {1,j = i 0,j±i, j = 1, c.

Шаг 6. Проверить условие \\Р — Р*\\2 < £, где - матрица нечеткого разбиения на предыдущей итерации алгоритма. Если "да", то перейти к шагу 7, иначе - к шагу 3.

Шаг 7. Конец.» [7]

В данном алгоритме главным параметром является количество кластеров. Существует два подхода к выбору числа кластеров.

«Первый подход основан на критерии компактности и разделимости полученных кластеров. Логично предположить, что при правильном выборе количества кластеров данные будут разбиты на компактные и хорошие отделимые друг от друга группы. В противном случае, кластеры, вероятно, не будут компактными и хорошо отделимыми. Существует несколько критериев оценки компактности кластеров, однако вопрос о том, как формально и достоверно определить правильность выбора количества кластеров для произвольного набора данных все еще остается открытым. Для алгоритма нечетких с-средних рекомендуется использовать индекс Хие-Бени:

х~ М • (\\хк — Ъ\\2)

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

Вторым параметром алгоритма кластеризации является экспоненциальный вес (т). Чем больше т, тем конечная матрица нечеткого разбиения ¥ становится более "размазанной", и при т ^ ю она примет вид ^ = [1/с], что является очень плохим решением, т. к. все объекты принадлежат ко всем кластерам с одной и той же степенью. Кроме того, экспоненциальный вес позволяет при формировании координат центров кластеров усилить влияние объектов с большими значениями степеней принадлежности и уменьшить влияние объектов с малыми значениями степеней принадлежности.» [7]

Описание работы системы

Работы системы заключается в следующем:

1. Заполнение базы данных отпечатками. Например, мы имеем в компании 10000 сотрудников и решаем сделать доступ в наше здание с помощью биометрической аутентификации. В данной ситуации, поиск определенного отпечатка пальца в базе данных занимает большое количество времени. Чтобы минимизировать время аутентификации, рекомендуется использовать кластеризованное хранение отпечатков в базе данных. Чтобы начать эксплуатировать данную систему, необходимо записать в базу все 10000 отпечатков пальцев.

2. Кластеризация отпечатков пальцев. Далее, мы должны пропустить все 10000 отпечатков через алгоритм кластеризации, из которого мы получаем кластеры. Нашу базу данных мы делим на такое количество таблиц, сколько

у нас кластеров и записываем в каждую таблицу отпечаток из кластера.

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

Использованные источники:

1. Сообщество криминалистов и экспертов [Электронный ресурс] Дата обращения: 19.04.2019 http://kriminalisty.ru/stati/istorija -kriminalistiki/dact-formula.html

2. Обработка сигналов и изображений / Image Processing Toolbox [Электронный ресурс] Дата обращения: 19.04.2019 http://matlab.exponenta.ru/imageprocess/book5/3.php#1

3. MathWorks Documentation [Электронный ресурс] Дата обращения: 19.04.2019 https://www.mathworks.com/help/images/ref/bwmorph.html

4. Fingerprint comparison guide [Электронный ресурс] Дата обращения: 19.04.2019

http://flash.lakeheadu.ca/~lubiotec/Fingerprints%20Comparison%20Guide.pdf

5. «Loginom» Кластеризация (Clustering) [Электронный ресурс] Дата обращения: 19.04.2019 https://wiki.loginom.ru/articles/clustering.html

6. Паклин Н. Алгоритмы кластеризации на службе Data Mining [Электронный ресурс] Дата обращения: 19.04.2019 https ://basegroup.ru/community/articles/datamining

7. Штовба С.Д. Введение в теорию нечетких множеств и нечеткую логику [Электронный ресурс] Дата обращения: 19.04.2019 http ://matlab. exponenta.ru/fuzzylogic/book 1/12.php

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