IDENTYFIKACJA OSÓB NA PODSTAWIE ANALIZY … osob na... · cech specyficznych człowieka...
Transcript of IDENTYFIKACJA OSÓB NA PODSTAWIE ANALIZY … osob na... · cech specyficznych człowieka...
POLITECHNIKA POZNAŃSKA
WYDZIAŁ ELEKTRONIKI I TELEKOMUNIKACJI
KATEDRA TELEKOMUNIKACJI MULTIMEDIALNEJ
I MIKROELEKTRONIKI
INŻYNIERSKA PRACA DYPLOMOWA
IDENTYFIKACJA OSÓB NA PODSTAWIE
ANALIZY GEOMETRII DŁONI
Wojciech KAPSA
Promotor:
dr inż. Sławomir MAĆKOWIAK
Poznań 2010
SPIS TREŚCI 1. WSTĘP ................................................................................................................................... 3
2. SYSTEM BIOMETRYCZNY ............................................................................................... 5
2.1. Biometryki ....................................................................................................................... 5
2.2. Ogólna budowa systemu biometrycznego ....................................................................... 6
2.3. Systemy rozpoznawania osób na podstawie geometrii dłoni .......................................... 7
2.4. Procesy biometryczne.................................................................................................... 10
2.4.1. Rejestracja biometryczna ....................................................................................... 10
2.4.2. Identyfikacja biometryczna .................................................................................... 11
2.4.3. Weryfikacja biometryczna ..................................................................................... 12
2.5. Analiza zgodności biometrycznej dłoni ........................................................................ 13
3. PROJEKT SYSTEMU GEOMETRII DŁONI ..................................................................... 16
3.1. Cel i założenia przy budowie systemu .......................................................................... 16
3.2. Budowa stolika biometrycznego ................................................................................... 17
3.3. Zbieranie biometryk ...................................................................................................... 19
3.3.1. Przygotowania wstępne eksperymentu .................................................................. 19
3.3.2. Przebieg pobierania próbek biometrycznych ......................................................... 21
3.4. Program komputerowy .................................................................................................. 23
3.4.1. Opis wykorzystanych narzędzi ............................................................................... 23
3.4.2. Przetwarzanie wstępne ........................................................................................... 24
3.4.3. Ekstrakcja cech biometrycznych ............................................................................ 27
3.4.4. Baza danych ........................................................................................................... 36
3.4.5. Komparator biometryczny ...................................................................................... 39
3.4.6. Interfejs programu .................................................................................................. 41
3.5. Transformata Hough ..................................................................................................... 43
4. WYNIKI EKSPERYMENTÓW BIOMETRYCZNYCH .................................................... 47
4.1. Testy identyfikacji biometrycznej ................................................................................. 47
4.2. Testy weryfikacji biometrycznej ................................................................................... 49
4.3. Testy optymalizujące wartość progową ........................................................................ 59
5. PODSUMOWANIE I WNIOSKI ........................................................................................ 64
BIBLIOGRAFIA ...................................................................................................................... 66
1. Wstęp
3
1. WSTĘP
W dzisiejszym świecie coraz większe znaczenie ma potwierdzanie i odnajdywanie
tożsamości różnych osób. W tym celu używa się wszelakich kart identyfikacyjnych (np.
dowód osobisty, karta płatnicza), kodów PIN czy też haseł dostępu. Dokumenty można
bardzo łatwo zgubić, natomiast hasła mogą zostać szybko zapomniane. Bez nich, w pewnych
sytuacjach, nie będzie możliwe potwierdzenie danej tożsamości.
Mało powszechnym sposobem służącym do potwierdzania tożsamości jest biometria.
Pozwala ona ustalić tożsamość osoby na podstawie jej cech szczególnych. Cechy te są
niemożliwe do zgubienia, jak to może się zdarzyć w przypadku chociażby dokumentów. Nie
można też ich ukraść. Do cech biometrycznych należą np. odciski palców, kształt twarzy,
geometria dłoni, indywidualny sposób chodzenia, itp. Każdy człowiek ma niepowtarzalny
zestaw cech biometrycznych przez co biometria ma prawo bytu i dalszego rozwoju. Jest to
stosunkowo młoda dziedzina nauki. Początki biometrii sięgają ponad sto lat wstecz, gdy
zaczęto badać pierwsze odciski palców. Dopiero z czasem, różne sposoby rozpoznawania
cech specyficznych człowieka przekształciły się w biometrię.
Ciekawymi sposobami identyfikacji osób są systemy biometryczne opierające swoje
działanie na podstawie geometrii dłoni. Podczas działania identyfikują osobę na podstawie
cech charakterystycznych dłoni takich jak: długości palców, szerokości palców lub szerokość
dłoni. Bazują wyłącznie na kształcie dłoni. Obojętny jest kolor skóry czy charakterystyczne
bruzdy palców.
Niniejsza praca inżynierska dotyczy systemu rozpoznawania osób na podstawie
geometrii dłoni. Celem pracy jest przedstawienie ogólnej charakterystyki systemów
biometrycznych i omówienie ich właściwości, z położeniem nacisku na systemy
wykorzystujące geometrię dłoni. Kolejnym zadaniem jest napisanie oprogramowania
pozwalającego na znalezienie cech charakterystycznych dłoni. Program ma umożliwiać
wykonywanie procesu identyfikacji osobniczej z wykorzystaniem odnalezionych cech.
Ostatnim celem pracy jest przeprowadzenie eksperymentów dotyczących poprawności
identyfikacji przy wykorzystaniu geometrii dłoni.
Celem pracy nie jest zbudowanie kompletnego systemu działającego w oparciu
o geometrię dłoni. Praca nie zakłada budowy stolika geometrii dłoni, ani zbierania próbek
biometrycznych dłoni. Moduł programu, umożliwiający weryfikację biometryczną, wykracza
poza zakres pracy, podobnie jak graficzny interfejs użytkownika czy baza danych
zaimplementowana w programie. W komparatorze cech nie było wymagane
1. Wstęp
4
zaimplementowanie czterech różnych metryk odległościowych. Późniejsza analiza tych
metryk i sposobu działania systemu w zależności od każdej z nich przekracza zakres pracy.
W drugim rozdziale przedstawianej pracy inżynierskiej znajduje się omówienie
systemu biometrycznego i jego charakterystyka. Przedstawione zostały pojęcia związane
z biometrią i procesy biometryczne. Rozdział ten bardziej szczegółowo opisuje system
geometrii dłoni.
Trzeci rozdział opisuje budowę kompletnego systemu wykorzystującego geometrię
dłoni. Pokazano tutaj poszczególne kroki wykonane przy budowie systemu. Kluczową częścią
tego rozdziału jest omówienie kodu programu.
Kolejny, czwarty rozdział prezentuje wyniki wykonanych testów identyfikacji
biometrycznej oraz weryfikacji biometrycznej uzyskane z wykorzystaniem zbudowanego
systemu geometrii dłoni.
2. System biometryczny
5
2. SYSTEM BIOMETRYCZNY
2.1. Biometryki
Biometryki są to fizjologiczne i behawioralne cechy osób, dzięki którym możliwe jest
odróżnienie jednej osoby od drugiej. Biometria ma prawo bytu z tego względu, że nie ma
dwóch identycznych biometryk. Największa trudność podczas badań biometrycznych polega
na znalezieniu i odpowiedniej analizie różnic pomiędzy jedną biometryką a drugą. Różnice te
są często bardzo małe i niedostrzegalne. Jak już wspomniano, występują dwa różne typy cech
biometrycznych (biometryk): biometryki fizjologiczne i biometryki behawioralne [1].
Biometryki fizjologiczne wiążą się z indywidualnymi cechami fizycznymi człowieka
mierzonymi w danej chwili czasu. Biometrykami fizjologicznymi są np. odcisk palca,
geometria dłoni czy obraz siatkówki oka. Natomiast biometryki behawioralne związane są
z zachowaniem człowieka [11]. W tym przypadku wymagana informacja zbierana jest przez
pewien okres czasu. Biometrykami behawioralnymi są np. sposób chodzenia, ruch ust, głos.
Biometryki fizjologiczne nie wymagają zbierania informacji w czasie, w przeciwieństwie do
biometryk behawioralnych. Jest tak, dlatego gdyż już jedna próbka niesie wystarczającą ilość
potrzebnych informacji. Biometryki behawioralne potrzebują więcej próbek zbieranych, co
pewien odstęp czasu. W tym przypadku informacja jest zależna od czasu i zmienia się wraz
z nim, przez co zebranie i przeanalizowanie biometryki behawioralnej jest trudniejsze niż
biometryki fizjologicznej. Przykładowe biometryki przedstawione są w tabeli 2.1.
Tabela 2.1. Fizjologiczne i behawioralne cechy biometryczne. Biometryki zaznaczone pogrubioną czcionką są
biometrykami mniej popularnymi i są na wczesnym etapie badań.
Fizjologiczne Behawioralne
Obraz twarzy Podpis
Odciski palców Głos
Geometria dłoni
Obraz tęczówki
DNA Chód
Termogram Tempo pisania
Siatkówka oka Ruch ust
Połysk skóry
2. System biometryczny
6
2.2. Ogólna budowa systemu biometrycznego
System biometryczny w najprostszym ujęciu jest to zestaw urządzeń służących do
pomiarów biometrycznych i przetwarzania informacji biometrycznej wraz z zestawem
odpowiedniego oprogramowania. Rysunek 2.1 przedstawia uproszczony schemat systemu
biometrycznego [1, 11].
Rysunek 2.1. System biometryczny. Aby system umożliwiał weryfikację lub identyfikację biometryczną konieczna
jest uprzednia rejestracja (przerywana strzałka).
System biometryczny można podzielić na kilka podstawowych części:
Czytniki biometryczne pozwalają na pobieranie próbek biometrycznych za pomocą
czujników biometrycznych. Wygląd i cechy czytnika zależą od rejestrowanej cechy
biometrycznej. Inaczej będzie wyglądał czytnik siatkówki oka, a inaczej czytnik
geometrii dłoni. Typ czytnika wymusza odpowiedni sposób prezentacji próbki
biometrycznej.
Podsystem przetwarzania sygnałów za pomocą tego podsystemu wejściowe próbki
są modyfikowane i przetwarzane. Jego częścią składową jest ekstraktor cech, który
oblicza najważniejsze własności i cechy biometryczne. Dzięki przetworzeniu próbki
wejściowej, jej reprezentacja w bazie danych jest optymalna pod względem
zajmowanego miejsca jak i szybkości przeszukiwania bazy danych.
Baza danych jest miejscem, gdzie przechowywane są zarejestrowane próbki
biometryczne. Rekordy bazy danych oprócz biometryk zawierają dodatkowe
2. System biometryczny
7
informacje ułatwiające zarządzanie bazą i zarejestrowanymi podmiotami. Baza danych
może być zarówno centralna jak i rozproszona.
Centralna baza danych biometrycznych posiada informacje biometryczne
o wszystkich zarejestrowanych użytkownikach. Nowo pobrana próbka biometryczna
jest porównywana z szablonami znajdującymi się w bazie.
Rozproszona baza danych nie musi posiadać informacji o wszystkich
biometrykach. Informacje do takiej bazy dostarczane są np. na inteligentnych kartach
zawierających szablon biometryczny. Biometryka wejściowa jest, w tym przypadku,
porównywana z szablonem z karty inteligentnej.
Komparator biometryczny odpowiada za porównywanie zbiorów cech
biometrycznych. Dzięki niemu możliwe jest sprawdzenie zgodności dwóch biometryk
przez ocenienie stopnia ich podobieństwa. Komparator biometryczny zasadę swego
działania może opierać na punktacji. Zupełnie inną punktację otrzyma para podobnych
biometryk, a inną para niezgodnych biometryk. Od komparatora może zależeć decyzja
o dopuszczeniu użytkownika do systemu lub o jego odrzuceniu.
2.3. Systemy rozpoznawania osób na podstawie geometrii dłoni
Systemy rozpoznawania osób na podstawie geometrii dłoni bazują na budowie
i unikalnym kształcie ludzkiej dłoni [1, 4, 8, 13]. Podczas analizy brane są pod uwagę takie
cechy jak szerokości dłoni, wysokości dłoni, długości palców, szerokości palców, itp.
Informacje te są wystarczające dla rozpoznawania osób. Nie osiągalna jest jednak 100%
dokładność i skuteczność (podobnie jak we wszystkich innych systemach biometrycznych).
Systemy oparte na geometrii dłoni, podczas analizy, nie wykorzystują odcisków palców czy
koloru skóry. Nie zajmują się także wyodrębnianiem detali dłoni, jak chociażby różnych
bruzd na skórze.
Indywidualne cechy ludzkich dłoni są stosunkowo mało zróżnicowane. Przez co
systemy geometrii dłoni cechuje duży współczynnik niesłusznych odrzuceń (FR – False
Rejection) i niesłusznych akceptacji (FA – False Acceptance) [1 ,11]. System geometrii dłoni
jest metodą mniej dokładną od systemów badających ludzkie oko czy odciski palców. Aby
zwiększyć precyzję, a jednocześnie bezpieczeństwo systemu, można połączyć różne metody
biometryczne (np. geometria dłoni i odciski palców). Wadą systemów hybrydowych jest
jednak długi czas pobierania próbek i przetwarzania danych.
Głównym powodem przemawiającym za systemem geometrii ludzkiej dłoni jest jego
przyjazność dla użytkownika. Jego obsługa jest bardzo prosta i intuicyjna. Pobieranie
2. System biometryczny
8
i analiza biometryki zajmuje niewiele czasu. Dodatkowo, metoda pobierania próbki jest
metodą nieinwazyjną, w przeciwieństwie do pomiarów tęczówki czy siatkówki. Budowa
całego systemu nie jest też droga.
Już pod koniec lat 60 powstawały pierwsze urządzenia mające na celu analizę kształtu
ludzkiej dłoni. Wykorzystywały one wiele ciekawych pomysłów, opierając się głównie na
urządzeniach mechanicznych i elektromechanicznych [7]. Na rysunku 2.2 przedstawiono
jedne z pierwszych patentów [2, 3] wykorzystujących kształt dłoni. Lewy rysunek
przedstawia wynalazek wykorzystujący sprężyny, które rozciągają się w zależności od
szerokości i długości dłoni. Niedokładność urządzenia była spowodowana niewielką liczbą
mierzonych cech. Wiele osób może mieć podobną wysokość i szerokość dłoni. Kolejne
urządzenie (po prawej) stosuje elementy półprzewodnikowe i światłoczułe. Światło wpada
przez otwory w stoliku na którym układa się dłoń. Przez to mniej bądź więcej fotoelementów
jest naświetlonych. Budowa stolika pozwala na znalezienie długości czterech palców.
Rysunek 2.2. Pionierskie patenty badające geometrię ludzkiej dłoni. Urządzenie po lewej stronie (opatentowane
w roku 1971) wykorzystuje naprężenie sprężyn [2], urządzenie z prawej strony (opatentowane w roku 1972)
opiera się na elementach światłoczułych [3].
Bardzo ciekawymi prototypami są urządzenia wykorzystujące lustra odbijające
krawędź dłoni [4, 10]. Lustra są skierowane pod kątem około 45o w stosunku do stolika na
którym umieszczona jest biometryka. Dzięki temu, możliwe jest zarejestrowanie za pomocą
jednej kamery kilku płaszczyzn i uzyskanie obrazu trójwymiarowego. Przykłady takich
urządzeń są przedstawione na rysunku 2.3 i na rysunku 2.4.
Pierwszy z rysunków (rysunek 2.3) przedstawia urządzenie opatentowane w 1988
roku przez Davida P. Sidlauskasa [10]. Wykorzystuje ono trzy zwierciadła odbijające dłoń.
2. System biometryczny
9
Zwierciadło oznaczone numerem 38 pozwala na sfotografowanie bocznej krawędzi dłoni.
W lustrze odbija się jedynie pewna część dłoni od kości śródręcza do paliczków dalszych
palca wskazującego i środkowego. Odbicie nie uwzględnia kciuka, dlatego też w stoliku nie
zainstalowano kołka wymuszającego jego położenie. Cztery kołki zamontowano po to, aby
wymusić prawidłowe ułożenie dłoni.
Rysunek 2.3. Patent Sidlauskasa D.P. z 1988 roku [10]. Urządzenie wykorzystuje lustra w celu uzyskania
trójwymiarowego profilu dłoni.
Jedenaście lat później A.K. Jain i A. Ross zaprezentowali prototypowy system
weryfikujący geometrię ludzkiej dłoni (rysunek.2.4) [4]. Jak łatwo zauważyć jest on bardzo
podobny do patentu Sidlauskasa i również wykorzystuje trójwymiarowy profil dłoni.
Rysunek 2.4. Prototypowy system opisany przez Jain A.K. w 1999 roku. Jest unowocześnioną wersją patentu
z 1988 roku. Dodano piąty kołek wymuszający ułożenie dłoni, powiększono też lustro. Na zdjęciu z prawej strony
pokazano szesnaście osi wzdłuż których wykrywane są poszczególne długości [4].
W systemie tym wprowadzono wiele ulepszeń i modyfikacji w stosunku do pierwowzoru.
Dodano piąty kołek wymuszający ułożenie kciuka na stoliku. Dzięki takiemu posunięciu
2. System biometryczny
10
wyeliminowano błędy, w których nieprawidłowe położenie kciuka przysłaniało odbity obraz.
Dodatkowo, umożliwiło to powiększenie lustra i w konsekwencji odbijana jest większa
powierzchnia dłoni. Odbicie obejmuje początek kości nadgarstka aż do paliczków dalszych
palców wskazującego i środkowego.
W tym systemie wykrywane jest szesnaście odległości pokazanych na rysunku 2.4. Są
to np. F3 – szerokość palca wskazującego w drugim paliczku, F10 – długość palca
środkowego, F16 – grubość palców w trzecim paliczku. Zestaw takich cech tworzy wektor,
który jest zapisywany i przetwarzany w bazie danych.
2.4. Procesy biometryczne
Posługując się systemem biometrycznym wykorzystuje się szereg procesów,
umożliwiających jego działanie. Najważniejszymi procesami biometrycznymi są: rejestracja
biometryczna, identyfikacja biometryczna i weryfikacja biometryczna.
2.4.1. Rejestracja biometryczna
Rejestracja biometryczna jest procesem odpowiedzialnym za zapisywanie rekordów
wraz z biometrykami w bazie danych [1, 12]. Zostaną utworzone szablony z próbek
biometrycznych, przy czym jeden szablon może zawierać kilka próbek biometrycznych. Jest
to ważny proces z tego względu, że dobór biometryk wzorcowych ma wpływ na działanie
całego systemu biometrycznego. Źle dobrane próbki biometryczne rzutują na niską
skuteczność podczas procesów identyfikacji i weryfikacji biometrycznej. Rysunek 2.5
przedstawia proces rejestracji biometrycznej.
Rysunek 2.5. Rejestracja biometryczna. Wraz z biometryką podane są dodatkowe informacje. Dane te posłużą do
zbudowania szablonu biometrycznego i późniejszego wydania karty inteligentnej.
2. System biometryczny
11
Istnieją dwa podstawowe typy rejestracji biometrycznej:
Rejestracja pozytywna, podczas której tworzy się bazę danych uprawnionych
użytkowników. Utworzona baza danych może być wykorzystywana podczas
identyfikacji i weryfikacji pozytywnej.
Rejestracja negatywna, ma na celu zbudowanie bazy danych nieuprawnionych
użytkowników. Utworzona baza danych jest używana podczas identyfikacji
negatywnej.
Podczas tworzenia szablonów biometrycznych wraz z próbkami biometrycznymi są
zapisywane dodatkowe informacje, jak np. imię, nazwisko, kod PIN. Niektóre z tych
informacji mogą zostać przekazane użytkownikowi w postaci np. hasła dostępu albo karty
inteligentnej.
2.4.2. Identyfikacja biometryczna
Identyfikacja biometryczna polega na znalezieniu określonej tożsamości, wyłącznie na
podstawie przedstawionej biometryki [8, 11, 12]. Biometryka wejściowa jest porównywana
z biometrykami wzorcowymi, znajdującymi się w bazie danych, w celu odnalezienia
najbardziej podobnego wzorca. Podczas procesu identyfikacji przeszukiwane są wszystkie
wzorce znajdujące się w bazie danych. Jest to porównanie 1 do N, gdzie N to liczba wzorców
w bazie danych [1]. Proces identyfikacji przedstawia rysunek 2.6. Identyfikacja może być
procesem długotrwałym w zależności od wielkości bazy danych.
Rysunek 2.6 . Identyfikacja biometryczna. Poszukiwana biometryka porównywana jest ze
wszystkimi rekordami w bazie danych [1] .
2. System biometryczny
12
Biometryczny system identyfikacji może być wykorzystywany w dwóch odmiennych
trybach:
Identyfikacji pozytywnej, polegającej na ustaleniu czy poszukiwana osoba znajduje
się w bazie danych. Podczas tego scenariusza można popełnić błędy, takie jak
niesłuszna akceptacja (FA – False Accept) i niesłuszne odrzucenie (FR– False Reject)
[1, 11]. FA powoduje dostęp intruza do systemu, FR jest przyczyną odrzucenia
prawowitego użytkownika. Błędy te występują również w systemach weryfikacji.
Identyfikacji negatywnej (screening), polegającej na ustaleniu czy poszukiwana
osoba nie znajduje się w bazie danych. W tym przypadku błędy jakie można popełnić
to niesłuszna negacja (FN – False Negative) i niesłuszne potwierdzenie (FP – False
Positive). FN to nie znalezienie zgodności, FP to błędne wykrycie zgodności.
2.4.3. Weryfikacja biometryczna
Weryfikacja biometryczna różni się od identyfikacji biometrycznej tym, że oprócz
przedstawianej biometryki, okazuje się również dodatkową informacje (np. kod PIN) [8, 11].
Ta dodatkowa informacja pozwala na jednoznaczne wskazanie biometrycznego szablonu
przechowywanego w bazie danych. Dzięki temu nie jest konieczne przeszukiwanie całej bazy
danych jak to miało miejsce w procesie identyfikacji. Wskazany szablon biometryczny jest
następnie porównywany z przedstawioną, wejściową próbką biometryczną [1]. Weryfikacja
biometryczna została przedstawiona na rysunku 2.7. Proces weryfikacji biometrycznej to
porównanie 1 do 1, przez co jest to operacja szybka i wielkość bazy danych nie ma ujemnego
wpływu na czas wykonania.
Rysunek 2.7. Weryfikacja biometryczna. Weryfikacji podlega próbka wejściowa z jednym szablonem z bazy
danych. Dodatkowa informacja pozwala na porównanie 1:1 [1].
2. System biometryczny
13
Podczas weryfikacji biometrycznej mogą wystąpić błędy niesłusznej akceptacji FA
lub niesłusznego odrzucenia FR, tak jak to ma miejsce podczas pozytywnej identyfikacji
biometrycznej. Weryfikacja biometryczna jest bezpieczniejsza aniżeli identyfikacja
biometryczna z oczywistych względów. Podczas weryfikacji zawęża się liczba szablonów
przy których można popełnić błąd do jednego. Minusem procesu weryfikacji biometrycznej
jest konieczność posiadania szablonu biometrycznego na karcie inteligentnej i konieczność
jego okazywania przed pobraniem nowej próbki biometrycznej.
2.5. Analiza zgodności biometrycznej dłoni
W celu zweryfikowania zgodności dłoni, porównuje się wektory otrzymane z próbek
biometrycznych [11]. Pierwszy wektor jest obliczony na podstawie nowej biometryki, a drugi
pobierany jest z bazy danych. W bazie danych często, jako jeden szablon, zapisane jest kilka
biometryk. Na podstawie wektorów tych biometryk oblicza się średnią i w ten sposób
powstaje nowy szablon (wektor z uśrednionych wartości).
W systemach geometrii dłoni badano cztery różne metryki odległości [1, 4]:
Odległość bezwzględna:
|𝑞𝑗− 𝑟𝑗| < 𝜖𝑎
𝑑
𝑗=1
(2.1)
Odległość bezwzględna ważona:
|𝑞
𝑗− 𝑟𝑗|
𝜎𝑗
< 𝜖𝑤𝑎
𝑑
𝑗=1
(2.2)
Odległość euklidesowa:
(𝑞𝑗− 𝑟𝑗)
2
𝑑
𝑗=1
< 𝜖𝑒
(2.3)
Odległość euklidesowa ważona:
(𝑞
𝑗− 𝑟𝑗)
2
𝜎𝑗2
𝑑
𝑗=1
< 𝜖𝑤𝑒
(2.4)
2. System biometryczny
14
Pozostałe wzory:
Wariancja j-tej cechy:
𝜎2 =1
𝑛 (𝑥𝑖 − 𝑥)2
𝑛
𝑖=1
(2.5)
Średnia arytmetyczna j-tej cechy:
𝑥 =1
𝑛 𝑥𝑛
𝑛
𝑖=1
(2.6)
Oznaczenia:
Q = (q1,q2,…,qd) – wektor cech biometryk, których tożsamość jest weryfikowana.
R = (r1,r2,…,rd) – wektor cech biometryk w bazie danych
d – liczba cech w wektorach
n – liczba biometryk składających się na jeden szablon w bazie
danych
σ2 – jest wariancją j-tej cechy dla wszystkich zarejestrowanych
szablonów z bazy danych, obliczana jest za pomocą wzoru (2.5)
𝑥 – jest wartością średnią poszczególnych cech dla wszystkich
biometryk w jednym szablonie (wzór 2.6)
Weryfikacja osiągnie pozytywny wynik w momencie, gdy odległość pomiędzy R i Q będzie
mniejsza od wartości progowej. Wartość progowa dla poszczególnych metryk odległości
oznaczona jest symbolami: 𝜖𝑎 , 𝜖𝑤𝑎 , 𝜖𝑒 , 𝜖𝑤𝑒 (wzory od (2.1) do (2.4)). W przypadku systemu
geometrii dłoni [4] najlepsze wyniki uzyskano z wykorzystaniem ważonej metryki
euklidesowej [1].
Przedstawiona analiza zgodności opiera się na progu i wykorzystuje punktacje przy
porównywaniu dwóch dłoni. Im mniejszy wynik punktowy, tym dwie biometryki są bardziej
podobne do siebie. Osiągnięcie punktacji równej zeru oznaczałoby, że dwie dłonie są
identyczne (identyczne w miejscach mierzonych cech). Teoretycznie taka sytuacja jest bardzo
mało prawdopodobna. Może się jednak zdarzyć przy bardzo małej długości wektora
mierzonych cech. Dlatego też, systemy biometryczne oparte na punktacji mierzą stosunkowo
wiele cech (prototyp na rysunku 2.4 wykorzystuje szesnaście różnych cech). Osiągnięcie
wysokiej punktacji oznacza, że dwie dłonie różnią się od siebie. Im większy wynik
porównania, tym biometryki zawierają więcej różnic.
2. System biometryczny
15
Jak widać na rysunku 2.8 wektory cech biometryk oszustów posiadają większe
odchylenie, niż wektory cech biometryk zarejestrowanych użytkowników. Obie gęstości
prawdopodobieństwa nachodzą na siebie co jest przyczyną błędów biometrycznych [14].
Rysunek 2.8. Wykres zależności gęstości prawdopodobieństwa w funkcji odchylenia między wektorami cech
użytkownika zarejestrowanego i oszusta [14].
Rozkłady gęstości prawdopodobieństwa dla systemu biometrycznego odzwierciedla
krzywa Gaussa. Niewielki odsetek zarejestrowanych użytkowników będzie miał duże
wartości odchylenia cech lub bardzo niskie wartości odchylenia tychże cech. Wartość średnia
będzie mieściła się mniej więcej pośrodku, pomiędzy wartościami skrajnymi. Sytuacja jest
bardzo podobna jeśli chodzi o oszustów z tą różnicą, że cały wykres zostaje przesunięty
w kierunku większych wartości odchylenia cech.
W systemie biometrycznym opartym na punktacji wykorzystuje się wszystkie
powyższe właściwości, odpowiednio manipulując progiem (rysunek 2.8). Nisko ustawiony
próg powoduje, że system jest bezpieczniejszy (mniejsza liczba intruzów zdoła dostać się do
systemu). Wzrośnie jednak częstość niesłusznych odrzuceń FR czyli FRR (False Reject Rate).
System będzie tak rygorystyczny, że niewielkie różnice w wektorach cech spowodują
odrzucenie prawowitego użytkownika. Gdy próg ustawiony zostanie za wysoko, wzrośnie
częstość niesłusznych akceptacji FA czyli FAR (False Accept Rate). Zaletą wysoko
ustawionego progu jest to, że system biometryczny będzie szybszy [1].
Każdy system biometryczny oparty na progu należy początkowo poddać różnym
testom biometrycznym i określić pożądaną wartość progu. Podczas pracy systemu próg
można zmieniać w zależności od tego czy chcemy uzyskać większe bezpieczeństwo systemu,
czy większą szybkość działania.
3. Projekt systemu geometrii dłoni
16
3. PROJEKT SYSTEMU GEOMETRII DŁONI
Zadaniem niniejszej pracy inżynierskiej było napisanie programu, do określania cech
charakterystycznych dłoni i identyfikacji osobniczej. Praca została jednak rozwinięta w takim
stopniu, że powstał kompletny system biometryczny wykorzystujący geometrię dłoni. Oprócz
samego programu, zaprojektowane i zbudowane zostały odpowiednie urządzenia na potrzeby
przeprowadzanego eksperymentu biometrycznego. Zbudowany system składa się z kilku
części składowych:
Stolik biometryczny wymuszający odpowiednie ułożenie dłoni.
Stanowisko z odpowiednim czytnikiem i oświetleniem, umożliwiające pobranie
próbek biometrycznych.
Program komputerowy, dzięki któremu zebrane biometryki zostały odpowiednio
przetworzone i przeanalizowane. Program zawiera ekstraktor cech biometrycznych,
bazę danych oraz komparator biometryczny.
System, zaprezentowany w tym rozdziale, bazuje na systemach znanych z literatury
i częściowo opisanych w poprzednim rozdziale [4, 10, 13]. Ze względu na bardzo niewielką
ilość dostępnego piśmiennictwa dotyczącego geometrii dłoni, zbudowany system jest
systemem prototypowym i eksperymentalnym.
3.1. Cel i założenia przy budowie systemu
Nadrzędnym celem zaprojektowanego i zbudowanego systemu było osiągnięcie jak
najlepszych rezultatów w procesach biometrycznych: identyfikacji i weryfikacji
biometrycznej. Dlatego też, wszystkie etapy budowy systemu musiały być przeprowadzane
bardzo dokładnie, począwszy od budowy stolika biometrycznego, aż do napisania programu
przetwarzającego biometryki. Krytycznym punktem całego eksperymentu było zbieranie
próbek biometrycznych, które wymagało największej precyzji i uwagi. Było to o tyle trudne
z tego względu, że próbki były zbierane od wielu osób. Bardzo ważna była, w późniejszym
etapie pracy, odpowiednia kalibracja programu komputerowego ze stolikiem biometrycznym.
Bez tego program nie działałby poprawnie (napisany program wykorzystuje cechy
specyficzne stolika takie jak ułożenie kołków czy lusterka).
Podsumowując powyższy akapit, aby osiągnąć jak najlepsze wyniki eksperymentów
biometrycznych należy wykonać wszystkie kroki budowy systemu z dużą dokładnością.
Dodatkowo, w taki sposób, aby każdy element systemu współpracował z pozostałymi i aby
wszystkie tworzyły spójną całość.
3. Projekt systemu geometrii dłoni
17
3.2. Budowa stolika biometrycznego
Stolik biometryczny, wykorzystujący geometrię dłoni, powstał w celu zebrania próbek
biometrycznych dłoni. Był niezbędnym elementem systemu, przez swoją współpracę
z czytnikiem biometrycznym i programem ekstrakcji cech biometrycznych. Został on
wykonany własnoręcznie, „domowymi” sposobami (rysunek 3.1). Urządzenie składa się z:
Podstawy o jasnym kolorze, na której układa się dłoń w celu zebrania biometryki.
Sześciu metalowych kołków wymuszających prawidłowe ułożenie palców.
Lusterka skierowanego pod kątem około 45o do podstawy stolika.
Ścianki bocznej w jasnym kolorze, takim samym jak podstawa stolika.
Rysunek 3.1. Stolik biometryczny pozwalający zbierać próbki biometryczne geometrii dłoni. Urządzenie zostało
wykonane z wykorzystaniem bardzo prostych narzędzi i środków. Koszt całego stolika nie przekroczył 10 PLN.
Podstawa stolika, w miejscu ułożenia dłoni, ma 21 cm szerokości, 26 cm długości i 8,5
cm wysokości (wysokość ścianki bocznej). Gabaryty stolika zostały dobrane na podstawie
obserwacji wysokości i szerokości dłoni kilku osób. Ostatecznie, wszystkie wymiary
dopasowano do największej zaobserwowanej dłoni, dodając kilka centymetrów zapasu.
Ścianka boczna odbijająca się w lusterku jak i podstawa stolika mają kolor biały.
Umożliwiło to wykonanie binaryzacji, podczas przetwarzania wstępnego biometryk. Program
operuje na bitmapach, wykorzystując przestrzeń barw RGB (więcej na ten temat
w rozdziale 3.4.2). Barwa biała jest skrajną wartością tej przestrzeni, przez co łatwiej ustawić
próg binaryzacji tak, aby wynikowy obraz nie uwzględniał tła. Dłoń ma zupełnie inny kolor
niż tło i podczas binaryzacji mieści się w granicach progu.
W stoliku zainstalowano sześć metalowych kołków (wykonanych z przyciętych śrub)
w celu wymuszenia prawidłowego ułożenia dłoni i palców podczas pobierania próbki. Kołki
zostały przymocowane do stolika, przez wywiercenie otworów w podstawie i zespolenie
3. Projekt systemu geometrii dłoni
18
elementów klejem polimerowym. Ułożenie kołków przedstawia rysunek 3.2. Dwa kołki
zaznaczone okręgiem można zamienić jednym dużym kołkiem. Jednak ostatecznie, nie udało
się zdobyć odpowiedniego elementu.
Rysunek 3.2. Stolik biometryczny (widok z góry) z kołkami pomiędzy którymi układa się palce. Na zdjęciu
z prawej strony pokazano prawidłowe ułożenie dłoni i palców na stoliku.
Układ kołków został dobrany na podstawie obserwacji dłoni różnych osób. Na kartce
papieru odrysowano kontury dłoni o różnych gabarytach i uzyskany rysunek stał się podstawą
do rozstawienia kołków. Przykładowe nałożenie zdjęć dłoni czterech różnych osób
przedstawia rysunek 3.3.
Rysunek 3.3. Nałożenie czterech różnych dłoni. Każda z dłoni zaznaczona jest innym kolorem (czerwony, zielony,
niebieski i żółty). Trzy górne warstwy mają włączoną przezroczystość, aby pokazać pozostałe warstwy,
umieszczone poniżej.
Zadaniem lusterka widocznego na rysunkach 3.1, 3.2 i 3.3 jest odbicie bocznej
krawędzi dłoni wprost w obiektyw aparatu (czytnik biometryczny). Lustro skierowane jest
3. Projekt systemu geometrii dłoni
19
pod kątem nieco większym niż 45o do powierzchni stolika. Kąt nachylenia lustra jest większy
z tego względu, że aparat robiący zdjęcia był ustawiony nad kołkami, a nie nad lusterkiem.
Wielkość lusterka jest dopasowana do ścianki bocznej stolika w taki sposób, aby całe odbicie
w lustrze było na białym tle ścianki bocznej.
3.3. Zbieranie biometryk
Zebranie bazy próbek biometrycznych nie jest zadaniem łatwym. Ważne jest, aby
próbki były zebrane dokładnie, co umożliwi późniejsze skonstruowanie poprawnej bazy
danych w procesie rejestracji biometrycznej (rozdział 2.4.1).
Docelowo planowano zebranie 500 próbek biometrycznych dłoni, po 10 próbek od
każdej z 50 osób. W ostatecznym rozrachunku, zebrano 520 próbek dłoni, od 52 osób, po 10
próbek od każdej osoby.
3.3.1. Przygotowania wstępne eksperymentu
Przed przeprowadzeniem procedury zbierania biometryk należało przygotować
stanowisko pomiarowe. W tym celu przymocowano stół do podłogi i do ścian za pomocą
dwustronnej taśmy klejącej. Na stole umieszczono stolik biometryczny, przyklejając go taśmą
i dodatkowo mocując ściskami stolarskimi. Początkowa postać stanowiska pokazana jest na
zdjęciu 3.4, a kompletne stanowisko ilustruje zdjęcie 3.5.
Rysunek 3.4. Wstępne przygotowania stanowiska do zbierania biometryk. Na zdjęciu widać etap centrowania
lustrzanki cyfrowej nad miejscem zbierania próbek. Elementy konstrukcji nie są jeszcze przymocowane na stałe
taśmą klejącą ani ściskami stolarskimi.
Jako czytnika biometrycznego użyto lustrzanki cyfrowej EOS 40D firmy Canon.
Ogromną zaletą tej lustrzanki jest to, że można ją wyzwalać z komputera podłączonego przez
3. Projekt systemu geometrii dłoni
20
gniazdo USB (Universal Serial Bus). Dzięki temu, nie zmieniała się pozycja aparatu i zebrane
zdjęcia były fotografowane z tego samego miejsca. Ręczne wyzwalanie lustrzanki, poprzez
przycisk na obudowie, powodowałoby każdorazowe przesunięcie aparatu.
Lustrzanka, podłączona kablem USB do komputera, została zamocowana na statywie.
Statyw uprzednio przymocowano taśmą klejącą do stołu. Obiektyw skierowano w dół,
centralnie nad kołki stolika biometrycznego.
Bardzo ważnym aspektem podczas eksperymentu okazało się prawidłowe naświetlenie
stolika geometrii dłoni. Jak się okazało, był to jeden z najdłuższych etapów wstępnych
przygotowań (trwał prawie dwie godziny). Cienie powstawały przez zainstalowane kołki
i dłonie układane na stoliku. Prawidłowe naświetlenie stolika, miało na celu wyeliminowanie
padających cieni i zlikwidowanie błędów procesu binaryzacji. Cienie na obrazach próbek
tworzyły zakłamania poprzez powiększanie powierzchni dłoni (rysunek 3.6 i 3.7).
Naświetlając instalację wykorzystano sześć źródeł światła (rysunek 3.5). Dwa z nich odegrały
Rysunek 3.5. Kompletne stanowisko do pobierania biometryk kształtu dłoni. Wszystkie elementy są nieruchome
i przymocowane na stałe. Stolik oświetlony został sześcioma źródłami światła.
kluczową rolę, dzięki białej barwie światła jaką świeciły. Taka barwa, w połączeniu z białym
kolorem stolika, najlepiej usuwała powstające cienie. Źródła światła barwy żółtej dużo gorzej
naświetlały stolik biometryczny i słabiej usuwały zacienione obszary. Cała trudność podczas
ustawiania światła polegała na tym, że źródła światła były stosunkowo słabe i ich
niepoprawne ustawienie zamiast usuwać cienie dodawało nowe. Problemem było też, dobre
3. Projekt systemu geometrii dłoni
21
doświetlenie podstawy stolika przy jednoczesnym, dobrym naświetleniu ścianki bocznej.
Przykłady prawidłowo i nieprawidłowo naświetlonych próbek zdjęć dłoni ukazane są na
rysunkach numer 3.6 i 3.7.
Rysunek 3.6. Dłoń ułożona na stoliku biometrycznym i jej obraz po binaryzacji. Naświetlenie stolika jest
prawidłowe, gdyż uzyskany obraz binarny posiada czytelne i nierozmazane kontury ukazujące kształt dłoni.
Biometryka zebrana prawidłowo.
Rysunek 3.7. Dłoń ułożona na stoliku biometrycznym i jej obraz po binaryzacji. Tym razem naświetlenie stolika
jest nieprawidłowe gdyż powstało wiele niepożądanych cieni. Przez to, na obrazie binarnym nie da się
wyodrębnić kształtu dłoni. Jest to niepoprawnie zebrana biometryka.
3.3.2. Przebieg pobierania próbek biometrycznych
Pobranie całego zestawu 520 próbek zdjęć dłoni odbyło się jednego dnia, w takich
samych warunkach (opisywana faza eksperymentu trwała około siedmiu godzin). Zarówno
oświetlenie jak i konfiguracja ustawień aparatu i stolika biometrycznego nie uległy zmianie
podczas trwania eksperymentu. Po ustawieniu i przymocowaniu wszystkich elementów
stanowiska pomiarowego, podłączono lustrzankę cyfrową do komputera w celu pobrania
zdjęć próbnych. Próbne zdjęcia pokazały, że należy skorygować ostrość aparatu i subtelnie
poprawić oświetlenie całego fotografowanego otoczenia.
3. Projekt systemu geometrii dłoni
22
Gdy już wszystko było gotowe, zaczęto pobieranie zestawu dziesięciu próbek
biometrycznych od każdej osoby (rysunek 3.8). Każda z 52 osób została poproszona
o wykonanie następującej procedury pobierania próbki:
Zajęcie miejsca na stabilnym krześle przy stanowisku pomiarowym. Podczas odczytu
próbki nadgarstek był wyprostowany. Powodowało to, jednakowy nacisk podczas
układania dłoni na powierzchni stolika (niezależnie od wzrostu badanej osoby).
Ułożenie rozluźnionej dłoni na stolik biometryczny z umieszczeniem palców
pomiędzy kołkami. Palce powinny leżeć płasko na stoliku, dotykając w całości jego
powierzchni. Gdy palce są zgięte, nastąpi błędnie zebranie biometryki, przez
przekłamanie długości palców, jak i wysokości całej dłoni (odbicie w lustrze).
Dosunięcie poszczególnych palców do wszystkich kołków stolika. Podczas tej
czynności nie było wymagane użycie siły, które mogło (zależnie od nacisku)
nieznacznie zmieniać kształt dłoni.
Podniesienie ręki ze stolika i rozluźnienie mięśni dłoni przez poruszanie palcami
i nadgarstkiem. Miało to symulować niezależność ułożeń ręki na stoliku podczas
kolejnych pomiarów.
Cała powyższa procedura (z wyjątkiem powtórnego siadania na krześle) była powtarzana
dziesięć razy przez każdą z badanych osób. Podczas eksperymentu, zdarzyło się kilka
nieprawidłowo zebranych biometryk. Było to powodem do powtórnego pobrania próbek.
Rysunek 3.8. Pobieranie próbki biometrycznej. Należało uważać, aby nie poruszyć żadnego z elementów
stanowiska biometrycznego. Przesunięcie jakiejkolwiek części mogła doprowadzić do konieczności ponownej
korekty ustawień oświetlenia i aparatu fotograficznego.
Pomimo dołożenia wszelkiej uwagi podczas procedury pobierania próbek geometrii
dłoni, w zebranej bazie danych, znalazły się próbki nieprawidłowe. Błędy wynikają
z niepoprawnego ułożenia palców przy kołkach i na powierzchni stolika (zdjęcie 3.9).
3. Projekt systemu geometrii dłoni
23
Rysunek 3.9. Przykład błędnego ułożenia dłoni. Palce nie są dosunięte do kołków zainstalowanych w podstawie
stolika. Przedstawione na zdjęciu ułożenie dłoni celowo wyolbrzymia błąd. Błędne biometryki, zebranej bazy
danych zawierają dużo mniejsze pomyłki.
3.4. Program komputerowy
Napisany program służy do rozpoznawania cech szczególnych dłoni, poprzez
odnajdywanie zestawu dziewiętnastu długości specyfikujących daną dłoń. Zestaw ten tworzy
wektor zapisany i przetwarzany w bazie danych programu. Stworzona baza danych pozwala
na wykonywanie operacji weryfikacji i identyfikacji biometrycznej. Aplikacja złożona jest
z kilku części składowych:
Ekstraktor cech, współpracujący z opisanym we wcześniejszym rozdziale stolikiem
geometrii dłoni (rozdział 3.2). Zadaniem ekstraktora jest odnalezienie dziewiętnastu
długości charakteryzujących dłoń.
Baza danych próbek biometrycznych, przechowuje wyniki pracy ekstraktora cech
w postaci wektorów. Rekordy bazy danych zawierają wiele dodatkowych informacji
ułatwiających procedury zarządzania bazą.
Komparator biometryczny, który operuje na wzorach i właściwościach
przedstawionych w rozdziale 2.5 w celu porównania odpowiednich wektorów z bazy.
Wynik porównania biometryk jest podstawą do wydawania decyzji o zgodności
biometrycznej próbek.
Dla łatwości obsługi program posiada graficzny interfejs użytkownika, umożliwiający
uzyskanie podstawowych wyników identyfikacji i weryfikacji biometrycznej. Bardziej
zaawansowane wyniki w formie pliku, zapisywane są na dysku.
3.4.1. Opis wykorzystanych narzędzi
Program Geometrii dłoni został napisany w języku C# za pomocą środowiska
Microsoft Visual Studio 2008 Professional Edition. Program został pobrany ze strony
3. Projekt systemu geometrii dłoni
24
MSDNAA dla wydziału Elektroniki i Telekomunikacji i jest wersją studencką. Język C#
został wybrany ze względu na:
Wbudowaną możliwość operacji na bitmapach. W C# zostały zaimplementowane
odpowiednie klasy (np. System.Drawing.Imaging) i metody (np. SetPixel())
pozwalające na łatwe odczytywanie, modyfikowanie i zapisywanie obrazów
graficznych.
Proste zarządzanie pamięcią za pomocą Garbage Collectora. Ma to ogromne znaczenie
podczas budowania bazy danych zawierającej dużą liczbę plików graficznych.
Serializację danych dzięki której, możliwe jest łatwe zapisanie całej bazy danych i jej
powtórne otworzenie. Wszystkie rekordy bazy danych są wspólnie zapisywane do
pliku niezależnie od ich formatu.
Prostotę w budowaniu graficznego interfejsu użytkownika. C# zawiera gotowe
elementy umożliwiające wyświetlanie grafik, tworzenie przycisków czy pól
tekstowych.
Jeśli chodzi o wybór środowiska MS Visual Studio 2008 to zostało ono wybrane, przede
wszystkim ze względu na obsługę języka C#. Jest to też środowisko darmowe na licencji
studenckiej. Ogromną zaletą MS Visual Studio jest rozbudowany moduł umożliwiający
debugowanie programów w czasie ich działania.
Podczas pobierania próbek biometrycznych wykorzystano oprogramowanie dołączone
do zastosowanej lustrzanki firmy Canon. Umożliwiało ono zdalne wyzwalanie aparatu.
Po zebraniu bazy próbek biometrycznych, przetworzono wszystkie dzięki operacjom
wsadowym zaimplementowanym w programie IrfanView 4.25. Jest to darmowy program
z wyłączeniem zastosowań komercyjnych.
3.4.2. Przetwarzanie wstępne
Pierwszym krokiem jaki należało wykonać po zebraniu bazy 520 próbek
biometrycznych było ich przycięcie, obrócenie i skompresowanie. Obrazy uzyskane z aparatu
fotograficznego miały rozmiar 2816 na 1880 punktów obrazu. Poprawna analiza obrazów
dłoni nie wymaga tak dużej rozdzielczości, dlatego też obrazy zmniejszono do rozmiarów
1000 na 900 punktów obrazu. Dokonano tego przez docięcie obrazu i jego późniejsze
przeskalowanie. Wynikowy obraz dłoni, dla celów estetycznych, przekręcono o 180o (dłoń
jest wtedy skierowana palcami ku górze). Obraz przed przetworzeniem i obraz wynikowy
widoczne są na rysunku 3.10. Przed modyfikacją zdjęć jeden obraz zajmował około 1,30–1,40
MB po dodatkowej kompresji formatu JPEG pojedyncze obrazki zajmują około 130– 140 KB,
3. Projekt systemu geometrii dłoni
25
czyli 10 razy mniej. Do powyższych operacji użyto programu IrfanView w wersji 4.25.
Pozwalał on na zautomatyzowane przetworzenie wszystkich 520 zdjęć.
Rysunek 3.10. Obraz uzyskany z aparatu fotograficznego (po lewej) o rozdzielczości 2816 na 1880 punktów
obrazu i obraz po przetworzeniu do rozdzielczości 1000 na 900 punktów obrazu. Oba obrazy zapisane są
w formacie JPEG jednak drugi poddany jest większej kompresji.
Kolejnym krokiem, przed ekstrakcją cech biometrycznych, jest binaryzacja obrazu.
Obraz binarny (czarno – biały) jest wystarczający podczas odnajdywania cech geometrii
dłoni. W trakcie analizy biometryki interesujący jest wyłącznie jej kształt. Jak już wcześniej
wspomniano w rozdziale 2.3, podczas analizy geometrii dłoni nie wykorzystuje się ani barwy
skóry, ani bruzd czy innych cech szczególnych dłoni. Ważne są jedynie poszczególne
długości uzyskiwane podczas pomiarów (szczegółowo opisane w rozdziale 3.4.3). Po
binaryzacji, dłoń jest reprezentowana przez czarne punkty obrazu, a jej otoczenie przez białe
punkty. Przykład na rysunku 3.6 (prawa strona).
Rysunek 3.11. Sześcian kolorów RGB (Red - Green - Blue). Konkretna barwa powstaje przez mieszanie trzech
barw składowych: czerwonej (R), zielonej (G) i niebieskiej (B) w określonych proporcjach [16].
Program Geometrii Dłoni operuje na bitmapach w przestrzeni barw RGB (Red - Green
- Blue) pokazanej na rysunku 3.11. W programie, w przetwarzanych obrazach, stosowany jest
24 bitowy zapis koloru po 8 bitów na każdą z barw składowych. Dzięki temu, każda składowa
może przyjmować wartości od 0 do 255. Barwa biała powstaje poprzez zmieszanie kolorów
3. Projekt systemu geometrii dłoni
26
czerwonego, zielonego i niebieskiego z maksymalnymi wartościami równymi 255 (na
rysunku oznaczone przez 1). Barwa czarna jest uzyskiwana przez zmieszanie wszystkich
trzech barw składowych z wartościami równymi 0.
Reprezentacja barw RGB została wykorzystana w procesie binaryzacji obrazu.
Binaryzacja zredukowała reprezentację kolorów do dwóch: czarnego reprezentowanego przez
0 i białego reprezentowanego przez 1. Fragment kodu programu odpowiedzialnego za
binaryzację, przedstawia listing 3.1.
unsafe
{
//znajduje poczatek tablicy w pamieci
byte* ptr = (byte*)obraz_w_pamieci.Scan0;
byte prog = 145; //prog binaryzacji
for (int y = 0; y < obraz.Height; y++)
{
for (int x = 0; x < obraz.Width; x++)
{
//porownanie z progiem
if ((ptr[0] + ptr[1] + ptr[2]) / 3 > prog)
//kolor bialy
ptr[0] = ptr[1] = ptr[2] = 255;
else
//kolor czarny
ptr[0] = ptr[1] = ptr[2] = 0;
//przesunięcie wskaznika
ptr += 3;
}
}
}
Listing 3.1. Fragment kodu odpowiedzialny za binaryzację obrazu. W programie, próg o wartości 145 został
dobrany na podstawie obserwacji obrazów wynikowych przy różnych wartościach progu.
Kod z listingu 3.1 działa z wykorzystaniem wskaźników. Aby było to możliwe
w języku C#, należało wskazać miejsce wykorzystania wskaźników słowem kluczowym
unsafe. Wskaźnik ptr jest ustawiany na początek tablicy w pamięci, w której znajduje się
przetwarzany obraz, poleceniem Scan0. Następnie, przesuwany jest po wszystkich punktach
obrazu w dwóch pętlach for(). Informacja o pojedynczym kolorze składowym przestrzeni
barw RGB jest przechowywana na 8 bitach (rysunek 3.12). W jednym punkcie obrazu istnieją
trzy kolory składowe RGB. Dlatego też, wskaźnik ptr przesuwa się co 3 bajty, powodując
przejście do kolejnego punktu obrazu. Wskaźnik z odpowiednim indeksem ptr[0], ptr[1],
ptr[2] wskazuje na poszczególną składową RGB, odpowiednio: R, G, B. Dopełnienie
widoczne na rysunku 3.12 jest konieczne, gdy pojedynczy wiersz danych nie jest
3. Projekt systemu geometrii dłoni
27
wielokrotnością czterech bajtów [15]. W instrukcji warunkowej if() listingu 3.1 następuje
sprawdzenie czy wartość średnia trzech składowych RGB, jest większa od zadanego progu.
Jeśli tak, to wszystkie składowe RGB przyjmują wartość 255 co w rezultacie da kolor biały.
W przeciwnym wypadku składowe RGB uzyskują wartość 0, czego wynikiem będzie kolor
czarny. Przykładowe wartości obrazów po binaryzacji przy różnych wartościach progu
przedstawia rysunek 3.13.
Rysunek 3.12. Wektorowa reprezentacja próbek w obrazie 24 bitowym. Jedna próbka obrazu reprezentowana
jest przez trzy składowe RGB. Jedna składowa RGB zajmuje jeden bajt pamięci [15].
Rysunek 3.13. Ten sam obraz po procesie binaryzacji, przy różnych wartościach progu. Pierwszy obraz z lewej
został poddany binaryzacji przy progu równym 90, środkowy przy 145 a prawy przy 180. Z binarnych obrazów
po lewej i prawej stronie nie udało się uzyskać kształtu dłoni. Poprawny jest obraz środkowy zbinaryzowany przy
progu 90.
3.4.3. Ekstrakcja cech biometrycznych
Zasadniczą częścią stworzonego programu geometrii dłoni jest ekstrakcja cech
biometrycznych. Ekstraktor cech posługuje się obrazami binarnymi opisanymi w rozdziale
3.4.2. Kształt dłoni jest identyfikowany w programie dzięki czarnym punktom obrazu
binarnego. Celem działania ekstraktora cech jest znalezienie i obliczenie dziewiętnastu
3. Projekt systemu geometrii dłoni
28
długości wymienionych w tabeli 3.1 i przedstawionych na rysunku 3.14. Jednostką długości
podczas obliczeń jest punkt obrazu.
Tabela 3.1. Zbiór cech dłoni, odnajdywanych przez ekstraktor cech programu geometrii dłoni. Niektóre
z wymienionych poniżej cech, przy pewnych specyficznych biometrykach dłoni, odnajdywane są w innych
miejscach niż w opisie.
Numer cechy Badana cecha dłoni
1 Długość palca wskazującego
2 Długość palca środkowego
3 Długość palca serdecznego
4 Długość palca małego
5 Szerokość dłoni bliżej podstawy palców
6 Szerokość dłoni bliżej nadgarstka
7 Szerokość palca wskazującego w paliczku dalszym
8 Szerokość palca wskazującego w paliczku środkowym
9 Szerokość palca wskazującego w paliczku bliższym
10 Szerokość palca środkowego w paliczku dalszym
11 Szerokość palca środkowego w paliczku środkowym
12 Szerokość palca środkowego w paliczku bliższym
13 Szerokość palca serdecznego w paliczku dalszym
14 Szerokość palca serdecznego w paliczku środkowym
15 Szerokość palca małego w paliczku dalszym
16 Szerokość palca małego w paliczku środkowym
17 Szerokość kciuka pomiędzy paliczkami dalszym a środkowym
18 Grubość palców bliżej paliczka dalszego
19 Grubość palców bliżej paliczka środkowego
Rysunek 3.14. Biometryka dłoni po ekstrakcji 19 cech opisanych w tabeli 3.1 (lewa strona). Z prawej strony
ukazane jest zdjęcie rentgenowskie [5] dłoni, na której widać badane przez ekstraktor paliczki palców. Paliczki
to kości wchodzące w skład palców. Palce, za wyjątkiem kciuka, mają po trzy paliczki: bliższy, środkowy
i dalszy. Kciuk nie ma paliczka środkowego [6].
3. Projekt systemu geometrii dłoni
29
Ekstrakcja cech pojedynczej dłoni jest operacja szybką, czas jej wykonania jest
mniejszy od 300 ms. Przykładowe czasy dla różnych dłoni to: 263 ms, 177 ms, 182 ms
i 185 ms. Gdyby cała operacja została wykonywana za pomocą wskaźników, to czasy
działania byłyby niższe, ze względu na większą szybkość operacji wskaźnikowych. Jednak
w programie nie jest wymagana, aż tak duża szybkość. Ostatecznie wybrano prostsze
rozwiązania implementacyjne.
Dla poprawnego działania, stworzonego ekstraktora cech, wymagane jest podanie
pozycji kołków. Dzięki temu, w znaczącym stopniu, ograniczony zostaje obszar poszukiwań
konkretnych palców. Wiadomo po której stronie danego kołka, znajduje się szukana część
dłoni. Początek kodu ekstraktora cech przedstawia listing 3.2. Kołki stolika geometrii dłoni
zostały ponumerowane w sposób przedstawiony na rysunku 3.15. Wartości w nawiasach to
odpowiednio współrzędne x i y obrazka z biometryką.
public void Ekstrakcja_cech()
{
int sizeX = obraz.Width; //szerokosc obrazka
int sizeY = obraz.Height; //wysokosc obrazka
//pozycje kolkow sa stale i nalezy je ustalic przed
uruchomieniem algorytmu
//pozycje srodkow kolkow
Point kolek1 = new Point(528, 438);
Point kolek2 = new Point(468, 294);
Point kolek3 = new Point(544, 294);
Point kolek4 = new Point(690, 294);
Point kolek5 = new Point(802, 414);
Point kolek6 = new Point(342, 558);
Point START = new Point();
Point KONIEC = new Point();
(…)
}
Listing 3.2. Początek kodu ekstrakcji cech. Jest to ważny fragment ze względu na konieczność dokładnej
deklaracji pozycji środków kołków. Położenie kołków optymalizuje procedury poszukiwania palców.
Rysunek 3.15. Rozmieszczenie kołków na stoliku biometrycznym i przypisana im numeracja wykorzystywana
w programie. Rysunek jest wycinkiem całości. Dodatkową informacją są współrzędne kołków (x,y). Punkt (0,0)
znajduje się w lewym górnym rogu obrazka, a punkt (1000,900) w prawym dolnym rogu (koniec obrazka).
3. Projekt systemu geometrii dłoni
30
Głównym pomysłem wykorzystywanym w procesie poszukiwania długości
wymienionych w tabeli 3.1 i przedstawionych na rysunku 3.14, jest zastosowanie równania
funkcji liniowej (wzór 3.1). Użycie tej funkcji, podczas ekstrakcji cech, ograniczyło obszar
poszukiwań kształtu dłoni do punktów znajdujących się na prostej. Punkty znajdujące się
wokół prostej, nie są brane pod uwagę. Jest to powodem znacznego przyspieszenia
poszukiwań, gdyż nie trzeba analizować wszystkich punktów obrazu danej biometryki (jedno
zdjęcie z próbką biometryczną posiada 1000 na 900 punktów obrazu).
Równanie prostej w postaci kierunkowej:
𝑦 = 𝑎𝑥 + 𝑏 (3.1)
Równanie na długość odcinka:
𝐴𝐵 = 𝑥𝐵 − 𝑥𝐴 2 + 𝑦𝐵 − 𝑦𝐴
2 (3.2)
Współrzędne środka odcinka:
𝑥𝐴 + 𝑥𝐵
2,𝑦𝐴 + 𝑦𝐵
2
(3.3)
Oznaczenia:
𝐴 = 𝑥𝐴 , 𝑦𝐴 , 𝐵 = (𝑥𝐵 , 𝑦𝐵) – punkty końców odcinka
𝑎 – współczynnik kierunkowy równy tangensowi konta
nachylenia prostej od osi OX
b – wyraz wolny, rzędna punktu przecięcia się wykresu
funkcji z osią OY
W programie zaimplementowano funkcję szukaj(). Służy ona do poruszania się
wzdłuż prostej opisanej funkcją liniową (listing 3.3), wykorzystując wzór 3.1.
public Point szukaj(Point pkt, double a, double b, kierunek kierunek)
{
switch (kierunek)
{
case kierunek.PRAWO:
{
//odnajdzie czarny obszar, szuka w prawo
while (obraz_bin_odczyt.GetPixel(pkt.X, pkt.Y).G == 255)
{
pkt.X++; //na prawo
pkt.Y = (int)(a * pkt.X + b); //rownanie prostej
obraz_bin_zapis.SetPixel(pkt.X, pkt.Y, Color.Red);
}
}
break;
case kierunek.LEWO:
3. Projekt systemu geometrii dłoni
31
{
//odnajdzie czarny obszar, szuka w lewo
while (obraz_bin_odczyt.GetPixel(pkt.X, pkt.Y).G == 255)
{
pkt.X--; //na lewo
pkt.Y = (int)(a * pkt.X + b);
obraz_bin_zapis.SetPixel(pkt.X, pkt.Y, Color.Red);
}
}
break;
case kierunek.DOL_START:
{
//odnajdzie czarny obszar, szuka w dol
while (obraz_bin_odczyt.GetPixel(pkt.X, pkt.Y).G == 255)
{
pkt.Y++; //w dol = (int)(a * pkt_.X + b);
pkt.X = (int)((pkt.Y - b) / a);
obraz_bin_zapis.SetPixel(pkt.X, pkt.Y, Color.Red);
}
}
break;
}
return pkt;
}
Listing 3.3. Funkcja szukaj() programu geometrii dłoni. Korzysta ona z równania funkcji liniowej. Współpracuje
ze zmiennymi wyliczeniowymi typu enum (PRAWO, LEWO, DOL_START) dla łatwiejszej obsługi. Metoda
Set.Pixel() wyrysowuje czerwone kreski w miejscach poszukiwań.
Funkcja szukaj() ma na celu odnalezienie pierwszego czarnego punktu obrazu,
wskazującego brzeg dłoni. Sprawdzenie, czy punkt obrazu ma kolor biały (czy jedna ze
składowych RGB jest równa 255) dokonywane jest w instrukcji while. Wynikowe punkty
zwracane przez szukaj(), przypisywane są zmiennym START i KONIEC (listing 3.2),
reprezentującym punkty początku i końca poszukiwanego odcinka. Dzięki tym dwóm
zmiennym, obliczana jest długość odcinka z wykorzystaniem funkcji dl_odcinka()
pokazanej w listingu 3.4 (korzysta ona ze wzoru 3.2 na długość odcinka). Wejściem funkcji
szukaj() są: punkt od którego zacznie się poszukiwanie (zmienna pkt), współczynnik
kierunkowy a, wyraz wolny b oraz kierunek poszukiwań sterujący instrukcją switch().
Poszukiwanie w dół, w przeciwieństwie do poszukiwań w prawo i w lewo, najpierw zmienia
wartość współrzędnej Y, a później X. Ma to na celu uniknięcie błędu w przypadku prostej
pionowej.
public double dl_odcinka(Point a, Point b) //liczy dlugosc odcinka
{
double dl;
dl = Math.Sqrt(Math.Pow(a.X - b.X, 2) + Math.Pow(a.Y - b.Y, 2));
return dl;
}
Listing 3.4. Funkcja obliczająca długość odcinka po podaniu dwóch punktów leżących na jego końcach.
3. Projekt systemu geometrii dłoni
32
Aby funkcja szukaj() spełniła swoje zadanie i odnalazła krawędź dłoni, należy
odpowiednio wyznaczyć miejsce rozpoczęcia poszukiwań. Pomocne w tym zadaniu są kołki
o znanych współrzędnych. Przykładem zastosowania funkcji szukaj() będzie odnalezienie
szerokości dłoni bliżej podstawy palców (numer 5 w tabeli 3.1 i na rysunku 3.14):
Znana jest pozycja kołka numer 6 (listing 3.2 i rysunek 3.15). Wiadomo też, że na
prawo od tego kołka znajduje się poszukiwana szerokość dłoni. Funkcja szukaj(), zacznie
szukać w prawą stronę (od kołka numer 6), a wynik poszukiwań przypisze zmiennej START
(początek odcinka). Poszukiwanie drugiego końca szerokości dłoni, rozpocznie się od prawej
krawędzi zdjęcia (rysunek 3.16). Tym razem wynik działania funkcji szukaj(),
poruszającej się w lewą stronę, zostanie przypisany pod zmienna KONIEC. Ostatecznie
zmienne START i KONIEC pozwolą na obliczenie długości poszukiwanego odcinka
(listing 3.4).
Kolejny przykład ilustruje odnalezienie szerokości palca wskazującego w paliczku
środkowym (numerem 8 tabela 3.1 i rysunek 3.14). Palec wskazujący powinien znajdować się
na lewo od kołka 2. Współrzędne kołka są znane. Dodatkowo wiadomo, że prawidłowo
ułożony palec styka się z tym kołkiem. Pozwala to na ustawienie punktu START w miejscu
styku. Poszukiwanie punktu KONIEC zacznie się tuż za miejscem odbicia dłoni w lusterku
(wartość współrzędnej x wynosi 300). Funkcja szukaj() będzie poruszała się w prawą
stronę w kierunku palca wskazującego, aż do odnalezienia krawędzie dłoni.
Rysunek 3.16. Szczegółowy wydruk działania ekstraktora cech. Cienkie czerwone kreski spoza obszaru dłoni
pokazują, użyty zakres poszukiwań cech dłoni. Niebieskie kreski ukazują proste o różnych współczynnikach a,
poprowadzone do jednego punktu wspólnego.
W analogiczny sposób poszukiwane są długości o numerach: 5, 6, 8, 9, 11, 12, 14, 16,
17, 18, 19 (tabela 3.1). W pierwszej kolejności ustalany jest początek poszukiwań i jego
kierunek dla funkcji szukaj(). Pozwala to na przypisanie zmiennym START i KONIEC
3. Projekt systemu geometrii dłoni
33
odpowiednich punktów, określających końce odcinka. Mając końce odcinka można obliczyć
jego długość.
Podczas stosowania funkcji szukaj() wymagane jest, oprócz podania punktu
startowego i kierunku poszukiwań, podanie współczynnika kierunkowego prostej, wzdłuż
której odbędzie się poszukiwanie. Aby wyznaczyć optymalny współczynnik używana jest
funkcja optymal_a() z listingu 3.5. Pozwala ona na znalezienie takiego współczynnika
kierunkowego a, przy którym odcinek jest najkrótszy. Optymal_a() współpracuje
z funkcją szukaj().
public double optymal_a(…)
{
(…)
for (int i = 0; i < zakres; i++)
{
//odnajdzie czarny obszar
while(obraz_bin_odczyt.GetPixel(pkt_koniec.X, pkt_koniec.Y).G == 255)
{
if (kierunek == kierunek.LEWO)
pkt_koniec.X--; //w lewo
else
pkt_koniec.X++;
pkt_koniec.Y = (int)(a * pkt_koniec.X + b);
obraz_bin_zapis.SetPixel(pkt_koniec.X, pkt_koniec.Y, Color.Blue);
}
dl = dl_odcinka(pkt_start, pkt_koniec);
if (dl < min_dl) //zapamieta min dlugosc i wsp a
{
min_dl = dl;
wyn_a = a;
}
pkt_koniec = pkt_koniec_copy; //zmiana dla kolejnego odcinka
if (kierunek == kierunek.LEWO)
a += krok; //zmiana nachylenia prostej
else
a -= krok;
b = wspB(pkt_start, a); //atualizacja wyrazu wolnego
}
return wyn_a;
}
Listing 3.5. Fragment funkcji optymal_a() za pomocą której odnajdywane są osie palców i oś reprezentująca
szerokość dłoni. Zmienna krok, modyfikująca współczynnik a, odpowiada za zmianę nachylenia prostych. Jej
wartość została dobrana eksperymentalnie. Zakres mówi o liczbie badanych prostych.
Po znalezieniu początkowego punktu szukanego odcinka (jako przykład zielone kółko
na rysunku 3.16), mierzy się długości prostych, poprowadzonych z różnymi wartościami
współczynnika kierunkowego a (zielone kreski). Punkty końca (końce zielonych kresek na
rysunku 3.16) znajduje się za pomocą funkcji szukaj() z zadanym współczynnikiem
kierunkowym a (niebieskie kreski na rysunku 3.16 to różne przebiegi funkcji szukaj()).
3. Projekt systemu geometrii dłoni
34
Zakłada się, że znalezienie najkrótszego odcinka będzie równoznaczne ze znalezieniem osi
palców czy dłoni.
Kod z listingu 3.5 wykonywany jest w pętli for() z parametrem zakres. Parametr
ten, oznacza liczbę prostych jakie zostaną zbadane. W instrukcji while() poszukiwany jest
pierwszy czarny punkt obrazu w kierunku lewym bądź prawym (kierunek określa jeden
z argumentów wejściowych funkcji optymal_a()). Dalej, obliczana jest długość odcinka,
od znalezionego punktu, aż do punktu podanego jako argument wejściowy funkcji. Obliczona
długość zostanie porównana z poprzednią długością i jeśli nowa wielkość będzie mniejsza to
zostanie zapamiętana wraz ze współczynnikiem kierunkowym. Na końcu następują zmiany
współczynnika nachylenia, wyrazu wolnego i punktu startu poszukiwań w celu
przeprowadzenia kolejnego kroku iteracji pętli for(), dla nowego odcinka.
W przedstawiony sposób, z wykorzystaniem funkcji optymal_a(), poszukiwane są
współczynniki kierunkowe dla cech o numerach 5, 8, 11, 14, 16, 17 (rysunki 3.14 i 3.16).
Pozostałe szerokości palców i druga szerokość dłoni (numer 6), wykorzystują znalezione
współczynniki kierunkowe sąsiadów.
Osie przechodzące wzdłuż wszystkich czterech palców (numery 1, 2, 3 i 4 z tabeli 3.1)
wykorzystują proste prostopadłe do osi wyznaczających grubość palca. Dwie proste są
prostopadłe do siebie, gdy iloczyn ich współczynników kierunkowych jest równy -1. Czubki
palców szukane są od góry obrazka, aż do znalezienia pierwszego czarnego punktu obrazu za
pomocą funkcji szukaj(). Jak widać na rysunku 3.16, przedstawiona metoda
z powodzeniem odnajduje osie przecięcia palców i oś dłoni.
Dla odnalezienia długości numer 7, 10, 13, 15 wykorzystuje się funkcję
szukaj_zakres() (listing 3.6), która jest zmodyfikowaną odmianą funkcji szukaj().
Jako wejście, podaje się punkt środka odcinka pomiędzy znalezionym czubkiem palca,
a miejscem przecięcia osi długości palca z osią szerokości palca przy kołku (współrzędne
środka odcinka liczone są za pomocą wzoru 3.3). Punkt wejściowy oznaczony jest żółtymi
kropkami na rysunku 3.16. Współczynnik kierunkowy a jest taki sam jak dla odcinka
sąsiedniego, znalezionego przy kołku. Funkcja poszukuje i zapamiętuje ostatni czarny punkt
wzdłuż zadanej prostej liniowej. Poszukiwanie zaczyna się wewnątrz ciemnego pola obrazu
binarnego, oznaczającego dłoń, i kończy na białym polu tegoż obrazu. Ostatni czarny punkt
obrazu jest krawędzią dłoni. Funkcja szukaj_zakres(), dzięki przedstawionej metodzie
działania, jest odporna na błędy binaryzacji. Przyczyną takich błędów może być np. biały
paznokieć czy jasny fragment skóry. Po binaryzacji zamiast czarnego obszaru w tych
3. Projekt systemu geometrii dłoni
35
miejscach, zostanie utworzony biały obszar i będzie interpretowany jako tło, a nie jako dłoń.
Z powodu występowania przedstawionych błędów wszystkie inne długości korzystające
z funkcji szukaj(), nie uwzględniającej błędów binaryzacji, przechodzą z białego obszaru
(tło) szukając obszaru czarnego (dłoń). Poszukiwanie odbywa się w odwrotnie, niż ma to
miejsce w szukaj_zakres(). Widać to w listingach obu funkcji, gdzie w pętli while
(listing 3.3) i warunku if() (listing 3.6) sprawdzane są różne kolory 255 (biały) i 0 (czarny).
public Point szukaj_zakres(Point pkt, double a, double b, kierunek
kierunek, int zakres)
{
Point tmp = new Point();
for (int i = 0; i < zakres; i++)
{
if (kierunek == kierunek.PRAWO)
pkt.X++; //w prawo
else
pkt.X--;
pkt.Y = (int)(a * pkt.X + b);
obraz_bin_zapis.SetPixel(pkt.X, pkt.Y, Color.Red);
//odnajdzie ostatni czarny punkt obrazu
if (obraz_bin_odczyt.GetPixel(pkt.X, pkt.Y).G == 0)
{
tmp = pkt;
}
}
pkt = tmp; //wynik
return pkt;
}
Listing 3.6. Funkcja szukaj_zakres(), która jest zmodyfikowaną wersją funkcji szukaj(). Zakres poszukiwań jest
jednym z argumentów wejściowych a jego wartość wyznacza koniec działania funkcji.
Funkcja z listingu 3.6, wykorzystywana jest też z tego względu, że trudno określić
punkty początkowe dla funkcji szukaj(). Łatwo natomiast określić punkt poszukiwań dla
funkcji szukaj_zakres() (żółte kropki rysunek 3.16). Działanie i obszar poszukiwań tej
funkcji, są widoczne na rysunku 3.16 przy długościach 7, 10, 13, 15 z rysunku 3.14 (cienka
czerwona kreska).
Podczas wykorzystywania wszystkich funkcji opisywanych w tym podrozdziale
należało obliczać wyraz wolny b równania liniowego. Do tego celu służył kod przedstawiony
w listingu 3.7.
public double wspB(Point poczatek, double a)
{
double b;
b = poczatek.Y - (a * poczatek.X);
return b;
}
Listing 3.7. Przedstawiona funkcja służy do obliczania wyrazu wolnego b przez podanie, jako argumenty
wejściowe, punktu na prostej i współczynnika kierunkowego a.
3. Projekt systemu geometrii dłoni
36
3.4.4. Baza danych
Baza danych jest strukturą, wewnątrz której przechowywane są wszystkie
przetwarzane biometryki wraz z wynikami pracy ekstraktora cech, oraz informacjami
dodatkowymi. Uproszczony schemat używanej bazy danych znajduje się na rysunku 3.17.
Wewnątrz bazy danych, na pierwszym poziomie, znajdują się dwie listy z obiektami
reprezentującymi poszczególne osoby. Pierwsza reprezentuje osoby wzorcowe, których
dłonie są szablonami biometrycznymi. Druga, zawiera osoby, których biometryki będą
porównywane względem szablonów.
Rysunek 3.17. Uproszczony schemat przedstawiający bazę danych programu. W bazie zawarte są informacje
o konkretnych osobach i dłoniach poszczególnych osób. Każda z X dłoni jest opisana przez Y długości.
Każda osoba posiada listę obiektów typu dłoń, zawierającą próbki biometryczne dłoni.
Dłonie poszczególnych osób posiadają numery PIN zgodne z numerami PIN właściciela. Jest
to wykorzystywane podczas weryfikacji biometrycznej, oraz dla sprawdzenia poprawności
identyfikacji biometrycznej. Obiekt dłoń, jest pojedynczą biometryką. Reprezentowana jest za
pomocą bitmapy, kodu PIN, oraz wektora cech opisujących Y długości. Bitmapa jest
zdjęciem uzyskanym w sposób opisany w rozdziale 3.3 z wykorzystaniem stolika i czytnika
3. Projekt systemu geometrii dłoni
37
biometrycznego. Natomiast wektor cech, jest wynikiem pracy ekstraktora biometrycznego.
W stworzonym systemie geometrii dłoni liczba cech Y wynosi 19 i odpowiada ona tabeli 3.1
i rysunkowi 3.14.
Zaimplementowana baza danych posiada funkcję umożliwiającą wczytywanie,
odpowiednio sformatowanych zdjęć, z plików znajdujących się na dysku twardym. Pliki
poddane są obróbce (rozdział 3.4.2) i ekstrakcji cech (rozdział 3.4.3), aby ostatecznie można
było je zapisać jako rekordy bazy danych.
public baza_danych wczytaj_zdjecia() //wczyta zdjecia z plikow
{
(…)
//jeden katalog to jedna osoba
foreach (DirectoryInfo katalog in katalogi_nizej)
{
Moja_Osoba = Moja_Baza.dodaj_osobe (…); //dodanie nowej osoby
pliki = katalog.GetFiles("*jpg", SearchOption.TopDirectoryOnly);
foreach (FileInfo plik in pliki) //poszczegolne zdjecia
{
//dodaje tylko sciezke ze zdjeciem
using (dlon reka = Moja_Osoba.dodaj_dlon(plik.FullName))
{
reka.czytaj_ze_sciezki();
reka.Ekstrakcja_cech();
}
//automatyczne wywolanie dispose()
}
GC.Collect();
GC.WaitForPendingFinalizers();
}
(…)
}
Listing 3.8. Funkcja wczytaj_zdjecia() zawarta w bazie danych programu. Przedstawiona wersja jest wersją
skróconą i uproszczoną w stosunku do zawartej w kodzie źródłowym programu. Zamieszczone tutaj uproszczenie
ma na celu pokazanie idei działania.
Aby możliwe było poprawne wczytanie zdjęć z dysku twardego do bazy danych,
muszą być one odpowiednio rozlokowane w folderach (rysunek 3.18).
Rysunek 3.18. Przykładowa struktura katalogów pozwalająca na poprawne wczytanie zdjęć do bazy danych.
Z lewej strony rozwinięty folder wzorce. Z prawej strony rozwinięty folder badane.
3. Projekt systemu geometrii dłoni
38
W pierwszej kolejności należy utworzyć folder główny o dowolnej nazwie i umieścić w nim
dwa podkatalogi (przykład na rysunku 3.18). Jeden o nazwie wzorce, a drugi o dowolnej
nazwie. Wewnątrz tych dwóch podkatalogów trzeba stworzyć tyle folderów ile jest różnych
osób. Nazwy folderów muszą być liczbami. W programie, zostaną one wykorzystane jako
numery PIN osób i przynależnych jej dłoni. Zdjęcia jednej osoby należy porozdzielać
pomiędzy katalogi wzorce i badane (nazwa badane użyta z przykładu na rysunku 3.18),
uwzgędniając odpowiednie numery w podkatalogach.
Funkcja wczytaj_zdjecia() wykorzystuje opisaną powyżej strukturę
katalogową. W listingu 3.8 znajduje się fragment, odpowiedzialny za stworzenie jednej listy
osób bazy danych (lista badanych bądź lista wzorców z rysuneku 3.17). Kod przechodzi
kolejno przez wszystkie katalogi dzięki pierwszej pętli foreach(). Każdy katalog
(z numerem PIN) to nowa osoba, która jest kreowana funkcją dodaj_osobe(). Każdy plik
ze zdjęciem w katalogu to jedna biometryka przed chwilą utworzonej osoby. Wszystkie
zdjęcia przeglądane są w drugiej pętli foreach() i dodawane funkcją dodaj_dlon().
Do bazy danych nie jest zapisywane zdjęcie biometryki tylko ścieżka dostępu do tego
zdjęcia. Jest tak ze względu na duże zapotrzebowanie zdjęć na pamięć operacyjną. Jedno
zdjęcie zapisane w bazie danych potrzebowałoby ponad 4 MB pamięci (wynik podczas badań
i testowania programu). Jeden rekord z biometryką operuje na trzech kopiach zdjęcia:
oryginale, zdjęciu binarnym i zdjęciu po ekstrakcji cech. Jeśli wziąć pod uwagę liczbę
zebranych próbek biometrycznych (520 próbek) i operacje na trzech kopiach, wymagana ilość
pamięci operacyjnej przekroczyłaby 6 GB. Dlatego zdjęcia przechowywane są tylko
chwilowo na potrzeby ekstraktora cech i podczas wyświetlania. Ścieżka dostępu do pliku ze
zdjęciem pozwala na szybkie wczytanie obrazka biometryki. Dzięki użyciu słowa kluczowego
using (listing 3.8), pamięć zajęta przez operacje na bitmapach zostanie zwolniona.
W omawianym kodzie widać, że funkcja dodaj_dlon() korzysta tylko ze ścieżki do pliku.
Następnie na podstawie ścieżki dostępu zdjęcie jest, chwilowo wczytywane przez funkcję
czytaj_ze_sciezki() i analizowane w ekstraktorze cech. Zaraz za klamrą, zamykającą
obszar using, pamięć jest odznaczona jako gotowa do zwolnienia. Właściwe zwolnienie
pamięci, odbywa się dzięki Garbage Collectorowi (GC) tuż za pętlą foreach(). Garbage
Collector jest modułem zarządzającym pamięcią i zwalniającym niepotrzebną pamięć
w języku C#.
3. Projekt systemu geometrii dłoni
39
3.4.5. Komparator biometryczny
Komparator biometryczny służy do porównywania dwóch próbek biometrycznych. Wersja
zaimplementowana w programie opiera się na punktacji. Podczas porównywania dwóch
biometryk obliczana jest punktacja zgodności i na tej podstawie podejmowana jest decyzja.
W stworzonym komparatorze cech wykorzystano cztery różne metryki odległościowe,
służące do obliczania punktacji zgodności: bezwzględną, bezwzględną ważoną, euklidesową
oraz euklidesową ważoną. Do obliczenia wymienionych metryk wykorzystywane są wzory:
od 2.1 do 2.6. Kod zaimplementowany w programie obliczający ważoną metrykę euklidesową
przedstawiony jest w listingach 3.9, 3.10 i 3.11.
Pierwszym krokiem koniecznym dla uzyskania punktacji, jest obliczenie wektora ze
średnimi długościami cech (tabela 3.1). Obliczenie to wykonywane jest, dla szablonów
wzorcowych w bazie danych, zaraz po wczytaniu nowych zdjęć do bazy. Podczas tej operacji
wykorzystany jest kod z listingu 3.9. Dzieje się to za pomocą dwóch pętli for(), gdzie jedna
przechodzi po 19 cechach (odnalezionych przez ekstraktor cech), a druga po liczbie dłoni
danej osoby. Jako wynik, stworzony zostanie wektor, średnich długości cech dłoni jednej
osoby. Podczas późniejszego porównywania i wystawiania punktacji korzysta się
z obliczonych średnich. W ten sposób, jeden szablon biometryczny, jest w stanie
wykorzystywać wiele biometryk wzorcowych.
//zwroci srednie wartosci dlugosci dloni jednego rekordu (jedna osoba)
public double[] Srednia(osoba Osoba)
{
int ile_dl = 19;
double []srednia = new double [ile_dl];
int dzielnik = Osoba.l_dlonie.Count(); //ile dloni danej osoby
for (int i = 0; i < dzielnik; i++) //licznik po dloniach
{
for (int j = 0; j < ile_dl; j++) //licznik po dlugosciach
{
srednia[j] += (Osoba.l_dlonie[i].l_odcinki[j].dlugosc /
dzielnik); //wzor na srednia arytmetyczna
}
}
return srednia;
}
Listing 3.9. Funkcja obliczająca średnią arytmetyczną (wzór 2.6) wszystkich wektorów cech dłoni jednej osoby.
Wariancja wykorzystywana we wzorze 2.4 jest miarą ważności j-tej cechy. Większy
wynik wariancji wpłynie na mniejszą punktacje (szablon cech ma większy rozrzut próbek
biometrycznych). Z kolei mniejszy wynik wariancji spowoduje, że punktacja będzie wyższa
(szablon cech ma mniejszy rozrzut próbek biometrycznych), przez co system będzie bardziej
rygorystyczny. Odpowiednie dobranie próbek biometrycznych dla pojedynczego szablonu,
3. Projekt systemu geometrii dłoni
40
wpłynie na tolerancję systemu podczas interpretacji nowych biometryk z biometrykami
wzorcowymi. Wariancja, podobnie jak średnia, jest obliczana dla wszystkich szablonów
zarejestrowanych w bazie danych. Dla obliczenia wariancji wymagane jest wcześniejsze
obliczenie średnich. Sposób liczenia wariancji z listingu 3.10 jest analogiczny do sposobu
policzenia średniej (listing 3.9).
//liczy wariancje dlugosci dloni jednej osoby (osoba musi miec obliczone
srednie)
public double[] Wariancja(osoba Osoba)
{
int ile_dl = 19;
double[] wariancja = new double[ile_dl];
int dzielnik = Osoba.l_dlonie.Count(); //ile dloni danej osoby
for (int i = 0; i < dzielnik; i++) //licznik po dloniach
{
for (int j = 0; j < ile_dl; j++) //licznik po dlugosciach
{
wariancja[j] +=
(Math.Pow((Osoba.l_dlonie[i].l_odcinki[j].dlugosc -
Osoba.l_srednie[j]), 2)/dzielnik); //wzor na wariancje
}
}
return wariancja;
}
Listing 3.10. Funkcja obliczająca wektor wariancji (wzór 2.5) 19 cech biometrycznych, obliczany względem
wszystkich zarejestrowanych szablonów.
Ważona odległość euklidesowa pozwala na określenie miary podobieństwa dwóch
próbek biometrycznych. Im dwie porównywane próbki są bardziej podobne do siebie, tym
wynik ważonej odległości euklidesowej będzie niższy. Analogicznie, jeśli dwie biometryki
posiadają znaczące różnice to uzyskany wynik będzie wysoki (rozdział 2.5). Kod z listingu
3.11 do poprawnego działania wymaga obliczenia wariancji. Wykonywane jest to za pomocą
funkcji Wariancja(), i obliczana jest dla próbek osoby wzorcowej (argument funkcji
zBazy). Główna pętla przechodzi po wszystkich 19 długościach cech, porównując cechy
szablonu w bazie z cechami biometryki przedstawianej z zewnątrz.
//zwroci wartosc wazonej metryki euklidesowej
public double Euklides _waga(osoba zBazy, dlon zZewnatrz)
{
double wynik = 0; //punktacja
int ile_dl = 19; //ilosc dlugosci
double []wariancja = new double[ile_dl];
wariancja = Wariancja(zBazy); //obliczy wariancje zdjec z bazy
for (int i = 0; i < ile_dl; i++)
{
if (wariancja[i] != 0)
wynik += (Math.Pow(zZewnatrz.l_odcinki[i].dlugosc -
zBazy.l_srednie[i], 2) / wariancja[i]); //glowny wzor
3. Projekt systemu geometrii dłoni
41
}
wynik = Math.Sqrt(wynik);
return wynik;
}
Listing 3.11. Funkcja obliczająca ważoną odległość Euklidesową (wzór 2.4). Wykorzystuje obliczone wcześniej
średnią i wariancję. Wynikiem powyższej funkcji jest miara punktowa, określająca zgodność dwóch próbek
biometrycznych.
Kolejnym przykładem będzie kod wykorzystany do obliczenia bezwzględnej metryki
odległościowej w listingu 3.12. Algorytm przechodzi po wszystkich długościach cech dłoni,
wyliczając wartość bezwględną różnicy odległości biometryki z zewnątrz i wzorca.
W ostatecznym rezultacie wszystkie poszczególne wyniki są sumowane. Otrzymana liczba
jest wartością punktacji zgodności.
public double Bezwzgledna(osoba zBazy, dlon zZewnatrz) //zwroci wartosc
metryki bezwzglednej
{
double wynik = 0; //punktacja
int ile_dl = 19; //ilosc dlugosci
for (int i = 0; i < ile_dl; i++)
{
wynik += Math.Abs(zZewnatrz.l_odcinki[i].dlugosc -
zBazy.l_srednie[i]);
}
return wynik;
}
Listing 3.12. Funkcja obliczająca punktację zgodności na podstawie bezwzględnej metryki odległościowej.
Pozostałe dwie metryki odległościowe: euklidesowa i bezwzględna ważona, obliczane
są w analogicznie do sposobów przedstawionych w listingach od 3.9 do 3.12.
3.4.6. Interfejs programu
W programie geometrii dłoni, dla ułatwienia operacji na bazie danych i w celu
wizualizacji wyników, wprowadzono graficzny interfejs użytkownika. Przedstawiono go na
rysunku 3.19. Wszystkie operacje zaimplementowane w programie są dostępne poprzez ten
interfejs.
Okno programu zostało podzielone na kilka części, zaznaczonych numerami od 1 do 6
(białe kółka z numerami na rysunku 3.19). Opis poszczególnych części:
1) Baza biometryk z zewnątrz. Reprezentuje dłonie niezarejestrowane w bazie
danych jako szablon. Przedstawiane tutaj biometryki będą poddawane analizie.
Podczas wyświetlania biometryka zostaje pobrana przy pomocy ścieżki dostępu.
3. Projekt systemu geometrii dłoni
42
2) Baza biometryk wewnątrz. Reprezentuje szablony biometryczne poszczególnych
osób, stworzone z zarejestrowanych dłoni. Podczas porównywania zgodności
biometrycznej, brany jest pod uwagę cały szablon danej osoby, a nie pojedyncza
próbka biometryczna.
Rysunek 3.19. Graficzny interfejs użytkownika z przykładowymi ustawieniami bazy wzorców i bazy osób
badanych.
3) Okienko statusu na którym wyświetlane są wyniki przeprowadzanych analiz.
4) Opcje pozwalające na: wczytanie odpowiednio sformatowanych zdjęć (wczytaj
zdjęcia), zapis stworzonej bazy danych do pliku oraz otworzenie bazy z pliku.
Dodatkowo znajduje się tam pomoc dla programu geometrii dłoni.
5) Informacje na temat bazy wewnętrznej i ID aktualnie wyświetlanej biometryki.
Obok znajdują się przyciski pozwalające na przeglądanie bazy osób i zdjęć danej
osoby. Powyżej jest przycisk wyświetlający długości 19 cech aktualnej
biometryki. Analogiczne pola umieszczone są dla próbek w bazie osób z zewnątrz
(oznaczonej numerem 1).
6) Przyciski dzięki którym, możliwe są operacje identyfikacji i weryfikacji
biometrycznej. Dostępne są operacje ręczne działające na pojedynczych próbkach
wejściowych, oraz operacje automatyczne wykorzystujące wszystkie próbki
3. Projekt systemu geometrii dłoni
43
wejściowe. Podczas operacji ręcznych wyniki wyświetlone są w polu statusu. Po
wykonaniu operacji automatycznej, dodatkowy wynik zapisany jest w pliku na
dysku (w katalogu z programem geometrii dłoni).
7) Wybór, wykorzystywanej w programie, metryki odległościowej.
Zasady obsługi aplikacji przedstawione są w pliku pomocy programu. Jest on
dostępny z interfejsu użytkownika i pokrótce omawia działanie poszczególnych przycisków
oraz wykorzystywanych procedur biometrycznych.
3.5. Transformata Hough
Transformata Hough była wykorzystywana w początkowej fazie pisania programu.
Miała ona posłużyć do znalezienia osi palców podczas ekstrakcji cech. Ostatecznie jednak nie
udało się uzyskać zadowalających wyników i wprowadzono inne procedury wykrywania osi.
Niemałą zaletą transformaty Hough jest to, że podczas wykrywania osi palców nie potrzeba
informacji o pozycji kołków stolika. Natomiast sporą trudnością jest poprawna implementacja
algorytmu dla poprawnego wykrywania poszczególnych osi. Transformata Hough mogłaby
być wykorzystana jako ulepszenie algorytmu wykrywania cech biometrycznych, niezależnie
od sposobu ułożenia dłoni.
Transformacja Hough zamienia współrzędne kartezjańskie na współrzędne biegunowe
za pomocą wzoru 3.4, przez co punkty o współrzędnych x, y są reprezentowane przez
współrzędne: 𝑟 i 𝜃 [9].
Zależność współrzędnych kartezjańskich i współrzędnych biegunowych:
𝑟 = 𝑥 cos 𝜃 + 𝑦 sin(𝜃) (3.4)
Zakres promienia wodzącego:
− 𝑁12 + 𝑁2
2 ≤ 𝑟 ≤ 𝑁12 + 𝑁2
2 (3.5)
Zakres kąta 𝜃:
−𝜋
2≤ 𝜃 <
𝜋
2 (3.6)
Oznaczenia:
𝑁1 , 𝑁2 – wymiary obrazka
𝑟 , 𝜃 – współrzędne polarne
3. Projekt systemu geometrii dłoni
44
Transformata Hough wykorzystuje obrazy dwubitowe po procesie binaryzacji.
W algorytmie transformacji Hough, zaimplementowana jest tablica P, początkowo
wypełniona zerami. Indeksy tej tablicy odpowiadają współrzędnym biegunowym (𝑟 , 𝜃). Dla
każdego czarnego punktu obrazu (lub białego, w zależności od implementacji), we
współrzędnych kartezjańskich, obliczane są współrzędne polarne za pomocą wzoru 3.4.
Następnie, w obliczonych miejscach w tablicy P, wartości licznika zwiększane są o 1
(odbywa się to wzdłuż całej szerokości tablicy, odpowiadającej kątowi θ). Wstawione punkty
odzwierciedlają część sinusoidy. Po przeanalizowaniu wszystkich punktów wejściowego
obrazu binarnego w tablicy P powstanie zbiór sinusoid nałożonych na siebie (rysunek 3.20
z prawej) i zapisanych za pomocą cyfr [9]. Większe wartości tablicy P oznaczają miejsca
przecięcia sinusoid (jaśniejsze punkty na rysunku 3.20 z prawej).
Rysunek 3.20. Przykładowy rysunek we współrzędnych kartezjańskich (z lewej) i jego transformata we
współrzędnych biegunowych. Transformata jest zbiorem sinusoid. Jaśniejsze miejsca w obrazie są
zagęszczeniem sinusoid [17].
Rysunek 3.21. Przykładowy rysunek we współrzędnych kartezjańskich i jego transformata we współrzędnych
biegunowych. Na obrazie transformaty zaznaczono miejsca przecięć sinusoid. Odwrotna transformata Hough
zaznaczonych punktów, pozwoli na uzyskanie żółtych prostych z po lewej (współrzędne kartezjańskie) [17].
W celu znalezienia krawędzi obrazka wejściowego, wartości tablicy P poddaje się
progowaniu. Dzięki takiej operacji pozostaną wyłącznie punkty zagęszczeń sinusoid (miejsca
oznaczone zielonymi kwadratami z rysunku 3.21). W kolejnym kroku zmodyfikowane
3. Projekt systemu geometrii dłoni
45
wartości tablicy P poddawane są odwrotnej transformacie Hough. W rezultacie powstaną linie
odzwierciedlające krawędzie obrazka (żółte linie na rysunku 3.21).
Przykładowe linie proste uzyskane podczas testowania transformaty Hough znajdują
się na rysunkach 3.22 i 3.23. Podczas testów modyfikowano wartość progową oraz rozmiary
(n, m) tablicy P, odpowiadające współrzędnym biegunowym (𝑟 , 𝜃). Obrazem wejściowym,
służącym do testów, był binarny obraz dłoni. Na obrazku nie ma kołków.
Rysunek 3.22. Przykładowe zastosowania transformaty Hough. Obraz wejściowy to czarna dłoń. Czerwone
kreski to wynik odwrotnej transformaty Hough. Rozmiary n i m tablicy P wynoszą 100. Wartości progu
począwszy od rysunku z lewej wynoszą: 12000, 11000 i 10000.
Jak pokazuje rysunek 3.22, zwiększenie wartości progowej usunie więcej punktów
z tablicy P i w rezultacie odwrotna transformata Hough wyrysuje mniejszą liczbę prostych.
Wymiary tablicy P mają również wpływ na liczbę prostych wydrukowanych przez odwrotną
transformatę Hough. Przykład na rysunku 3.23.
Rysunek 3.23. Przykładowe zastosowania transformaty Hough. Obraz wejściowy to czarna dłoń. Czerwone
kreski to wynik odwrotnej transformaty Hough. Rozmiary n wynosi 10, m wynosi 100. Wartość progu to 10000.
Dużą trudnością jest odpowiedni dobór parametrów transformaty Hough pozwalający
na wyodrębnienie interesujących krawędzi i osi dłoni. Sporą wadą transformaty Hough jest
3. Projekt systemu geometrii dłoni
46
też duża złożoność obliczeniowa. Podczas przetwarzania, badany i modyfikowany jest każdy
wejściowy punkt obrazu o odpowiednim kolorze. Jest to rozwiązanie nie optymalne, jeśli
weźmie się po uwagę szybkość działania algorytmu.
Implementacje algorytmów transformaty Hough jak i odwrotnej transformaty Hough
załączone są jako dodatki na płycie.
4. Wyniki eksperymentów biometrycznych
47
4. WYNIKI EKSPERYMENTÓW BIOMETRYCZNYCH
Analizowany system biometryczny geometrii dłoni może zostać wykorzystany do
identyfikacji i weryfikacji biometrycznej. Skuteczność i poprawność działania tych dwóch
procedur została sprawdzona w niniejszym rozdziale. Dodatkowo przeprowadzono test
pozwalający znaleźć optymalne wartości progów.
Podczas testów wykorzystano biometryki dłoni zebrane od 52 osób, po 10 próbek od
każdej. Całą bazę 520 biometryk rozdzielono na biometryki budujące szablony biometryczne
(rozdział 2.4.1), i na biometryki analizowane, przychodzące z zewnątrz (nie zawarte
w szablonach). Sposób podziału opisano w rozdziale 3.4.4. Wszystkie testy identyfikacji
i weryfikacji wykonano dla stałej liczby 312 próbek wejściowych (52 osoby po 6 biometryk).
Modyfikowano wyłącznie liczbę biometryk przypadających na pojedynczy szablon
biometryczny poszczególnych osób. W eksperymencie używano szablonów składających się
z 2, 3 i 4 próbek biometrycznych (jeden szablon odzwierciedla jedną osobę).
Doświadczenia zostały przeprowadzone dla czterech różnych metryk odległościowych,
przedstawionych w rozdziale 2.5. Wszystkie zostały zaimplementowane w komparatorze cech
biometrycznych opisanym w rozdziale 3.4.5.
4.1. Testy identyfikacji biometrycznej
Pierwszym testem jaki został przeprowadzony był test identyfikacji biometrycznej.
Każdą próbkę wejściową porównano ze wszystkimi wzorcami bazy danych w celu
znalezienia najlepszego odpowiednika (schemat 4.1) o najmniejszym wyniku punktowym (im
mniejszy wynik punktowy tym większe podobieństwo dwóch próbek). Podczas procedury
identyfikacji decyzja, o wyborze pasującego szablonu, podejmowana jest wyłącznie na
podstawie przedstawionej biometryki. Aby możliwe było zweryfikowanie czy pojedyncza
identyfikacja biometryczna przebiegła prawidłowo, porównuje się numer ID dłoni z zewnątrz
z numerem ID szablonu w bazie danych. W przypadku zgodności zwiększa się licznik
poprawna identyfikacja, a w przypadku błędu zwiększa się licznik niepoprawna identyfikacja
(schemat 4.1). Test kończy się po przejrzeniu wszystkich biometryk wejściowych z zewnątrz.
W tabeli 4.1 i na wykresie 4.1 przedstawiono wyniki poprawności identyfikacji
biometrycznej w zależności od liczby biometryk przypadających na jeden wzorzec
biometryczny przy różnych metrykach odległości. Analiza tabeli i wykresu pokazuje, że wraz
ze wzrostem liczby próbek we wzorcu rośnie liczba poprawnych identyfikacji dla wszystkich
czterech metryk odległości. Pojedyncza poprawnie zidentyfikowana biometryka wejściowa
zwiększa wynik o 0,32% (wynik uzyskany po obliczeniu: 1 / 312 * 100%).
4. Wyniki eksperymentów biometrycznych
48
Schemat 4.1. Schemat blokowy procesu identyfikacji automatycznej. Sprawdzenie ID dopasowanych dłoni
pozwala na zliczenie liczby poprawnych i niepoprawnych identyfikacji.
Tabela 4.1. Wyniki testów poprawności identyfikacji biometrycznej. Pierwsza cyfra wskazuje liczbę
prawidłowych identyfikacji, druga całkowitą liczbę analizowanych biometryk. W nawiasie przedstawiono wynik
procentowy. Metryki przedstawiono w rozdziałach 2.5 i 3.4.5.
Metryka odległości
Liczba biometryk
we wzorcu
Euklidesowa Euklidesowa
ważona
Bezwzględna Bezwzględna
ważona
2 277 / 312
(88,78)%
180 / 312
(57,69)%
286 / 312
(91,67)%
219 / 312
(70,19)%
3 287 / 312
(91,99)%
242 / 312
(77,56)%
292 / 312
(93,59)%
269 / 312
(86,22)%
4 288 / 312
(92,31)%
298 / 312
(95,51)%
296 / 312
(94,87)%
304 / 312
(97,44)%
4. Wyniki eksperymentów biometrycznych
49
Zastosowanie metryki euklidesowej oraz metryki bezwzględnej, przy dwóch
biometrykach w szablonie, pozwoliło na uzyskanie wysokiego wyniku poprawnej
identyfikacji (odpowiednio 88,78% i 91,67). Był on, w tym przypadku, dużo wyższy niż dla
metryk: euklidesowej ważonej i bezwzględnej ważonej (odpowiednio 57,69% i 70,19%).
Zastosowanie ważonej metryki euklidesowej przy niewielkiej liczbie próbek w szablonie dało
najsłabszy rezultat poprawnej identyfikacji (57,69%).
Wykres 4.1. Procentowy rezultat poprawnej identyfikacji biometrycznej dla czterech różnych metryk odległości.
Na wykresie widać
Dopiero po stworzeniu szablonów składających się z czterech próbek biometrycznych
wyniki poprawnej identyfikacji z wykorzystaniem ważonej metryki euklidesowej i ważonej
metryki bezwzględnej znacząco wzrosły (odpowiednio 95,51% i 97,44%). Wynik 97,44% jest
najwyższym rezultatem poprawnej identyfikacji przy zakładanych warunkach testu.
Wyniki poprawnej identyfikacji, wraz ze wzrostem próbek biometrycznych we
wzorcu, pozostawały na podobnym poziomie dla metryki euklidesowej oraz metryki
bezwzględnej (wykres 4.1). Natomiast, dla metryk: ważonej euklidesowej i ważonej
bezwzględnej wyniki gwałtownie wzrastały wraz ze wzrostem liczby biometryk
w pojedynczym wzorcu.
4.2. Testy weryfikacji biometrycznej
Podczas testu weryfikacji biometrycznej (rozdział 2.4.3) wszystkie biometryki
wejściowe zostały poddane procesowi weryfikacji z każdym z 52 szablonów biometrycznych
(schemat 4.2). Liczba biometryk wejściowych wynosi 312 (po 6 próbek od 52 osób). W bazie
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
2 3 4
Po
pra
wn
a id
en
tyfi
kacj
ia [
%]
Liczba biometryk na jeden wzorzec biometryczny
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
4. Wyniki eksperymentów biometrycznych
50
znajdują się 52 szablony. Na jeden szablon składają się 2, 3 bądź 4 próbki biometryczne.
Próbki w szablonach są rozłożone równomiernie, w takiej samej liczbie. Łączna liczba
porównań w teście dla jednej wartości progowej to 52 ∗ 312 = 16224.
Schemat 4.2. Schemat blokowy procesu weryfikacji automatycznej. Wszystkie wejściowe biometryki są
porównywane z każdym ze wzorców w bazie danych. Procedura powtarza się dla różnych wartości progu.
W procesie weryfikacji możliwe są cztery różne decyzje biometryczne, przy czym dwie z nich mówią o błędach
procesu weryfikacji (czerwony kolor).
4. Wyniki eksperymentów biometrycznych
51
Po przeprowadzeniu wszystkich porównań wartość progu zwiększana jest o 1. Wartość
progowa jest to graniczna liczba, poniżej której wejściowa biometryka o danej punktacji
zgodności (uzyskanej z porównania ze wzorcem) zostanie wpuszczona do systemu. Jeśli
wynik porównania biometryki ze wzorcem będzie wyższy od wartości progowej, to próbka
nie zostanie dopuszczona do systemu. Porównanie wykonywane jest w ekstraktorze cech,
korzystającym z czterech metryk odległości (rozdział 2.5). Gdy biometryka posiada mniejsze
odchylenie wartości cech od wzorca (szablon w bazie), to uzyskany wynik metryki odległości
będzie niższy. Analogicznie większe odchylenie wartości cech skutkuje większym wynikiem.
Możliwe są cztery różne rezultaty weryfikacji biometrycznej: poprawna akceptacja,
poprawne odrzucenie, niepoprawna akceptacja i niepoprawne odrzucenie (schemat 4.2).
Zależą one od wyniku uzyskanego z komparatora biometrycznego, wartości progu, a także od
zgodności numerów ID próbki wejściowej i szablonu.
Wyniki działania weryfikacji biometrycznej zaprojektowanego systemu zostały
przedstawione na wykresach od 4.2 do 4.13. Narysowano cztery typy wykresów:
liczba poprawnych akceptacji w zależności od progu (wykresy 4.2, 4.3 i 4.4),
liczba poprawnych odrzuceń w zależności od progu (wykresy 4.5, 4.6 i 4.7),
liczba niepoprawnych akceptacji w zależności od progu (wykresy 4.8, 4.9 i 4.10),
liczba niepoprawnych odrzuceń w zależności od progu (wykresy 4.11, 4.12 i 4.13).
Dodatkowo, wykresy zmieniają się zależnie od użytej metryki odległościowej, jak
i w zależności od liczby próbek w szablonie biometrycznym.
Z wykresów od 4.2 do 4.4 widać, że wraz ze wzrostem wartości progowej wzrasta
liczba poprawnych akceptacji. Dzieje się to z różną szybkością zależnie od użytej metryki.
Liczba poprawnych akceptacji stabilizuje się na poziomie 312 (przy odpowiednio dużym
progu). Wartość 312 jest maksymalnym, możliwym do uzyskania w eksperymencie,
wynikiem popranych akceptacji (schemat 4.2).
Wraz ze wzrostem liczby biometryk w szablonie wykresy poprawnych akceptacji
przesuwają się w kierunku mniejszych wartości progu. W rezultacie, system poprawnie
akceptuje więcej biometryk przy niższych wartościach progu. Najszybciej zmienia się to przy
użyciu ważonej metryki euklidesowej oraz dla ważonej metryki bezwzględnej. Pozostałe dwie
metryki mają mniejszy wpływ na uzyskane wykresy. Początkowo, dla dwóch próbek w bazie,
metryka euklidesowa daje największą liczbę poprawnych akceptacji. Przy czterech próbkach
w szablonie, lepszą okazuje się ważona metryka euklidesowa.
4. Wyniki eksperymentów biometrycznych
52
Wykresy liczby poprawnych akceptacji w zależności od progu:
Wykres 4.2. Liczba poprawnych akceptacji w zależności od progu dla 2 biometryk w szablonie.
Wykres 4.3. Liczba poprawnych akceptacji w zależności od progu dla 3 biometryk w szablonie.
Wykres 4.4. Liczba poprawnych akceptacji w zależności od progu dla 4 biometryk w szablonie.
0
50
100
150
200
250
300
350
0 50 100 150 200
Licz
ba
po
pra
wn
ych
akc
ep
tacj
i
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
50
100
150
200
250
300
350
0 50 100 150 200
Licz
ba
po
pra
wn
ych
akc
ep
tacj
i
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
50
100
150
200
250
300
350
0 50 100 150 200
Licz
ba
po
pra
wn
ych
akc
ep
tacj
i
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
4. Wyniki eksperymentów biometrycznych
53
Wykresy FRR od 4.5 do 4.7 pokazują jak zmienia się liczba niesłusznych odrzuceń
wraz ze wzrostem progu dla różnych metryk odległości i przy różnej liczbie próbek
biometrycznych w pojedynczym szablonie. Błąd FR występuje w przypadku gdy ID
biometryki wejściowej i wzorca są zgodne, jednak wartość progowa jest na tyle niska, że nie
dopuszcza użytkownika do systemu.
Początkowo przy niskich wartościach progu występuje duża liczba niesłusznych
odrzuceń. Dla wartości progu równej 0 i wartości bliskich 0, współczynnik FRR jest
największy i wynosi 312 (jest to liczba maksymalna, uzyskana podobnie jak w przypadku
poprawnych akceptacji). FRR ma bezpośredni wpływ na szybkość systemu. Przy wysokim
FRR wymagana będzie dokładniejsza procedura pobierania biometryk i bardziej szczegółowa
ekstrakcja cech. Użytkownik systemu będzie wielokrotnie odrzucany. Podczas okazywania
biometryki zaistnieje konieczność kilkukrotnego powtarzania pomiarów aż do uzyskania
dostępu. System będzie bardzo rygorystyczny. Przy małym FRR użytkownicy będą w stanie
dostać się do systemu, nawet przy mnie dokładnym okazaniu biometryk.
Przy dwóch próbkach w szablonie biometrycznym metryka euklidesowa już przy
progu, nieznacznie wyższym od 50, pozwoliła na uzyskanie zerowego współczynnika FRR.
Najgorszy rezultat osiągnięto po zastosowaniu metryki bezwzględnej ważonej. Przy czterech
próbkach w jednym szablonie biometrycznym najlepiej spisywała się ważona metryka
euklidesowa, gdzie zerowy FRR wystąpił już poniżej wartości 50.
Wyniki FRR, uzyskane przy pomocy ważonej metryki bezwzględnej i ważonej
metryki euklidesowej poprawiły się, w znaczącym stopniu, przy zwiększeniu liczby próbek
w szablonie. W obu przypadkach FRR równe 0 uzyskano już przy wartościach progu bliskich
50, a nie jak to miało miejsce poprzednio (przy dwóch próbkach na szablon) przy wartościach
progu powyżej 200. Zysk ten jest dużo większy niż przy wykorzystaniu metryki euklidesowej
i bezwzględnej.
Wykresy FRR są powiązane z wykresami poprawnych akceptacji. Gdy rośnie liczba
poprawnych akceptacji to maleje liczba niesłusznych odrzuceń i odwrotnie.
4. Wyniki eksperymentów biometrycznych
54
Wykresy niesłusznych odrzuceń w zależności od progu:
Wykres 4.5. FRR w zależności od progu dla 2 biometryk w szablonie.
Wykres 4.6. FRR w zależności od progu dla 3 biometryk w szablonie.
Wykres 4.7. FRR w zależności od progu dla 4 biometryk w szablonie.
0
50
100
150
200
250
300
350
0 50 100 150 200
FRR
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
50
100
150
200
250
300
350
0 50 100 150 200
FRR
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
50
100
150
200
250
300
350
0 50 100 150 200
FRR
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
4. Wyniki eksperymentów biometrycznych
55
Wykresy od 4.8 do 4.10 przedstawiają liczbę poprawnych odrzuceń. Maksymalna
liczba poprawnych odrzuceń jaka może zostać osiągnięta to 51 ∗ 312 = 15912. Wynika ona
z porównania wszystkich 312 biometryk wejściowych ze wszystkimi szablonami w bazie
(schemat 4.2). Przy czym 312 biometryk będzie miało zgodne ID z numerem ID szablonu.
Biometryka jest poprawnie odrzucona gdy jej ID nie jest zgodne z ID szablonu w bazie, oraz
punktacja zgodności po porównaniu biometryki i szablonu jest powyżej wartości progu.
Jak widać na wykresach, przy niskim progu system jest bezpieczniejszy i poprawnie
odrzuca wszystkich 15912 intruzów. Wraz ze wzrostem progu maleje liczba poprawnych
odrzuceń. Przy dwóch biometrykach w szablonie liczba poprawnych odrzuceń najszybciej
maleje do zera dla metryki euklidesowej. Jest to najgorszy przypadek, gdyż już przy progu
niewiele powyżej 200 liczba poprawnych odrzuceń spadła do 0. Najlepszy wynik uzyskano
z wykorzystaniem ważonej metryki bezwzględnej (przy wartości 200 odrzucono poprawnie
prawie 14000 intruzów).
Przy czterech próbkach biometrycznych w jednym szablonie najgorszą okazuje się
ważona metryka euklidesowa a najlepszą metryka bezwzględna (wykres 4.10).
Wykresy o numerach 4.11, 4.12 i 4.13 przedstawiają FAR w zależności od progu.
Wyniki te są zależne od współczynnika poprawnych odrzuceń. Im mniejsza jest liczba
poprawnych odrzuceń, wraz ze wzrostem progu, tym większy staje się współczynnik FAR.
System staje się mniej bezpieczny, ponieważ łatwiej intruzom podszyć się pod inną osobę
zarejestrowaną w bazie systemowej przez uzyskanie wymaganej punktacji zgodności.
Natomiast, nisko ustawiony próg sprawia, że system jest bezpieczniejszy. Trudniej intruzom
przedostać się do systemu, gdyż wymagana jest niższa punktacja zgodności (większe
podobieństwo dwóch biometryk).
Na wykresie 4.11 najgorszą metryką, przy której FAR rośnie najszybciej, okazała się
metryka euklidesowa. Najbezpieczniejsza jest ważona metryka bezwzględna, przy której FAR
jest najniższe
Wraz ze wzrostem próbek biometrycznych w szablonie uzyskano gorsze wyniki FAR
dla ważonej metryki euklidesowej oraz dla ważonej metryki bezwzględnej. Wykorzystanie
metryki euklidesowej jak i metryki bezwzględnej nieznacznie zmieniło kształty uzyskanych
wykresów.
4. Wyniki eksperymentów biometrycznych
56
Wykresy liczby poprawnych odrzuceń w zależności od progu:
Wykres 4.8. Poprawne odrzucenia w zależności od progu dla 2 biometryk w szablonie.
Wykres 4.9. Poprawne odrzucenia w zależności od progu dla 3 biometryk w szablonie.
Wykres 4.10 Poprawne odrzucenia w zależności od progu dla 4 biometryk w szablonie.
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0 50 100 150 200
Licz
ba
po
pra
wn
ych
od
rzu
ceń
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0 50 100 150 200
Licz
ba
po
pra
wn
ych
od
rzu
ceń
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0 50 100 150 200
Licz
ba
po
pra
wn
ych
od
rzu
ceń
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
4. Wyniki eksperymentów biometrycznych
57
Wykresy niesłusznych akceptacji w zależności od progu:
Wykres 4.11. FAR w zależności od progu dla 2 biometryk w szablonie.
Wykres 4.12. FAR w zależności od progu dla 3 biometryk w szablonie.
Wykres 4.13. FAR w zależności od progu dla 4 biometryk w szablonie.
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0 50 100 150 200
FAR
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0 50 100 150 200
FAR
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0 50 100 150 200
FAR
Wartośd progu
euklidesowa
euklidesowa ważona
bezwzględna
bezwzględna ważona
4. Wyniki eksperymentów biometrycznych
58
Odpowiednie wykresy poprawnych akceptacji i FRR są do siebie symetryczne.
Podobnie jest z odpowiednimi wykresami poprawnych odrzuceń i FAR. Wynika to
z porównania wszystkich próbek wejściowych ze wszystkimi szablonami w bazie danych. Co
było założeniem testu i przedstawione jest na schemacie 4.2. Podczas działania systemu
w normalnych (nie doświadczalnych) warunkach pracy przedstawione wykresy stracą swoją
symetrię. Będzie tak dlatego, że nie jest znana liczba osób jakie będą próbowały dostać się do
systemu. Nie wiadomo też nic o liczbie potencjalnych intruzów. Zależnie od warunków pracy,
zbierane biometryki mogą się znacząco różnić od siebie lub być bardzo podobne. W takim
systemie próg decyzyjny będzie ustawiony na pewnym poziomie w zależności czy ważne jest
bezpieczeństwo czy szybkość systemu. To ustawienie zadecyduje o typie podejmowanych
decyzji.
Wykres 4.14. FAR i FRR w zależności od progu dla 4 biometryk w szablonie (kolor niebieski) i dla 2 biometryk
w szablonie (kolor czerwony) w przypadku użycia ważonej metryki euklidesowej. Powiększenie.
Analiza zbiorcza wszystkich wykresów od 4.2 do 4.13 pozwala na wyciągnięcie kilku
wniosków:
Nie możliwe jest jednoczesne osiągnięcie dużej szybkości systemu przy dużym
poziomie bezpieczeństwa. Zwiększenie liczby poprawnych akceptacji i poprawa
współczynnika FRR (zwiększenie szybkości) wiąże się ze zwiększeniem
współczynnika FAR (zmniejszenie bezpieczeństwa) wraz ze zmaleniem liczby
poprawnych odrzuceń.
Użycie metryki bezwzględnej i metryki euklidesowej w niewielkim stopniu poprawia
działanie systemu przy zwiększaniu liczby próbek biometrycznych w jednym wzorcu
biometrycznym.
0
100
200
300
400
500
600
700
800
0 50 100 150
FAR
lin
ie p
rze
ryw
ane
. FR
R li
nie
cią
głe
.
Wartośd progu
FRR (4próbki)
FAR (4 próbki)
FRR (2 próbki)
FAR (2 próbki)
4. Wyniki eksperymentów biometrycznych
59
Metryki, euklidesowa ważona oraz bezwzględna ważona, znacząco zmieniły uzyskane
wyniki wraz ze wzrostem liczby próbek biometrycznych w jednym wzorcu
biometrycznym. Przy zwiększeniu liczby próbek w szablonie z 2 do 4, zerowe
wartości FRR i FAR przesunęły się w stronę niższych wartości progu. Przesunięcie
FRR w lewo jest pożądanym skutkiem ze względu na zwiększenie szybkości systemu.
Przemieszczenie wykresu FAR w lewo jest niepożądane ze względów
bezpieczeństwa. Jednak, takie jednoczesne przesunięcie obu krzywych poprawiło
wyniki. Obszar wspólny błędów FAR i FRR zmniejszył się. Przedstawiono to na
wykresie 4.14.
Zależnie od liczby biometryk w szablonie różne metryki odległości dawały
różnorodne rezultaty. Przez co, nie ma jednej uniwersalnej metryki odległościowej.
Podczas projektowania systemu należy uwzględnić działanie danej metryki
w zależności od progu.
4.3. Testy optymalizujące wartość progową
Podczas optymalizacji wartości progowej wyznaczono częstość trafień zgodnych
i częstość trafień niezgodnych w zależności od punktacji. W przykładzie zastosowano ważoną
metrykę bezwzględną. Przez punktację należy rozumieć wynik porównania (uzyskany
w komparatorze cech) próbki biometrycznej wejściowej z szablonem w bazie danych. Jednak
punktacja z wykresów nie odzwierciedla idealnie rzeczywistej punktacji zgodności. Jest tak
dlatego, że narysowane wykresy są w rzeczywistości histogramami z przedziałami co 10
punktów. Wykres trafień zgodnych odzwierciedla częstość uzyskiwania określonej punktacji
dla tożsamości „oryginalnej”. Analogicznie wykres trafień niezgodnych mówi o częstości
uzyskiwania danej punktacji przez „intruza” (rozdział 2.5, rysunek 2.8).
Opisywany test został przeprowadzony przez porównanie wszystkich 312 próbek
wejściowych ze wszystkimi 52 wzorcami bazy danych. Podczas każdorazowego porównania
wypisywano wynik punktowy uzyskany z komparatora cech. Aby rozdzielić biometryki
„intruzów” od biometryk „oryginalnych” porównywano ID i próbki posegregowano na dwie
grupy. W ostatnim kroku narysowano histogramy dla obu grup.
Dzięki uzyskanym wykresom możliwe jest wyznaczenie optymalnej wartości progu
przy której system będzie szybki bądź bezpieczny. Wykresy 4.15 i 4.16 przedstawiają
częstości trafień zgodnych i niezgodnych dla ważonej metryki bezwzględnej w przypadku
zastosowania dwóch próbek biometrycznych w jednym szablonie. Wykresy 4.17 i 4.18
używają tej samej metryki lecz przy czterech próbkach w szablonie.
4. Wyniki eksperymentów biometrycznych
60
Wykres 4.15. Częstość trafień zgodnych i niezgodnych w zależności od punktacji przy zastosowaniu ważonej
metryki bezwzględnej. Na szablon biometryczny przypadają 2 próbki.
Wykres 4.16. Częstość trafień zgodnych i niezgodnych w zależności od punktacji przy zastosowaniu ważonej
metryki bezwzględnej. Na szablon biometryczny przypadają 2 próbki. Powiększenie wykresu 4.15.
Wykres 4.17. Częstość trafień zgodnych i niezgodnych w zależności od punktacji przy zastosowaniu ważonej
metryki bezwzględnej. Na szablon biometryczny przypadają 4 próbki.
0
50
100
150
200
250
300
350
400
0 200 400 600 800 1000
Czę
sto
śd t
rafi
eń
Punktacja
trafienia zgodne trafienia niezgodne
0
10
20
30
40
50
0 50 100 150 200
Czę
sto
śd t
rafi
eń
Punktacja
trafienia zgodne trafienia niezgodne
0100200300400500600700800900
0 200 400 600 800 1000
Czę
sto
śd t
rafi
eń
Punktacja
trafienia zgodne trafienia niezgodne
4. Wyniki eksperymentów biometrycznych
61
Wykres 4.18. Częstość trafień zgodnych i niezgodnych w zależności od punktacji przy zastosowaniu ważonej
metryki bezwzględnej. Na szablon biometryczny przypadają 4 próbki. Powiększenie wykresu 4.17.
Na wykresach widać, że trafienia zgodne mają swoje maksima blisko zera i nie
pokrywają się z maksimami trafień niezgodnych, które są znacznie oddalone od zera.
Uzyskiwane punktacje trafień zgodnych są też niższe od punktacji trafień niezgodnych (tabele
4.2 i 4.3). To właśnie dzięki tym relacjom możliwe jest działanie zaproponowanego systemu
geometrii dłoni (wykorzystującego punktację).
Błędy biometryczne powstają w miejscach w których charakterystyka trafień
zgodnych i charakterystyka trafień niezgodnych nachodzą na siebie. W zależności od
ustawionego progu powstają błędy FR lub FA (rozdział 2.5). Ważne jest aby obie
charakterystyki były jak najbardziej oddalone od siebie (maksima obu funkcji także powinny
być od siebie oddalone).
Wykresy 4.16 i 4.18 pokazują, że zależnie od stopnia nałożenia charakterystyk trafień
zgodnych i trafień niezgodnych system będzie wymagał ustawienia progu decyzyjnego
w różnych miejscach. Zależne jest to od tego czy kluczowe jest bezpieczeństwo czy szybkość
działania. Przykładowe ustawienie progu dla ważonej metryki bezwzględnej w punkcie
o wartości 26 (wykres 4.18) będzie skutkowało dużym bezpieczeństwem systemu przez
spadek FAR do zera (wykres 4.13). Powstaną jednak dość liczne błędy FR (wykres 4.7),
przez co zarejestrowanemu użytkownikowi trudniej będzie się dostać do systemu. Podczas
eksperymentu dla progu o wartości 26, FR wyniosło 125. Ustawienie progu o wartości 50
zminimalizuje błędy FR (13 błędów), wpływając automatycznie na wzrost błędów FA (113
błędów).
Podczas ustawiania progowej wartości decyzji należy wziąć pod uwagę to, że spadek
FRR wiąże się ze wzrostem FAR. Wartość punktacji przy której oba błędy występują z taką
0
50
100
150
200
0 20 40 60 80 100 120 140
Czę
sto
śd t
rafi
eń
Punktacja
trafienia zgodne trafienia niezgodne
4. Wyniki eksperymentów biometrycznych
62
samą częstotliwością wyznacza punkt EER (Equal Error Rate). Jest to miejsce przecięcia się
charakterystyki trafień zgodnych z charakterystyką trafień niezgodnych. Przykładowo, dla
ważonej metryki bezwzględnej EER wynosi około 40, dla metryki bezwzględnej 74, dla
metryki euklidesowej 23 a dla ważonej metryki euklidesowej około 13 (dane uzyskane
podczas eksperymentu).
Metryka euklidesowa podobnie jak metryka bezwzględna (co pokazano w rozdziałach
4.1 i 4.2) w bardzo niewielkim stopniu zwiększa poprawność działania systemu przy wzroście
liczby próbek w szablonie biometrycznym. Podobnie, wykresy trafień zgodnych
i trafień niezgodnych dla tych metryk niewiele się zmieniają przy wzroście próbek. Dopiero
zastosowanie ważonych metryk znacząco zmieniło uzyskane kształty wykresów. Jako
przykład wyrysowano trafienia poprawne dla ważonej metryki bezwzględnej przy zmianie
liczby próbek w szablonie (wykres 4.19).
Tabela 4.2. Charakterystyka trafień zgodnych uzyskana z wykorzystaniem ważonej metryki bezwzględnej przy
zmianie liczby próbek w szablonie biometrycznym. Wykresy numer 4.17 i 4.18 są dla 4 próbek we wzorcu,
natomiast wykresy 4.15 i 4.16 dla 2 próbek.
Liczba próbek
we wzorcu Punktacje zgodności
min.
punktacja
max.
punktacja
zakres punktacji
(max - min)
2 17,23 1280,35 1263,13
3 12,99 367,99 355,00
4 11,06 170,21 159,15
Tabela 4.3. Charakterystyka punktacji niezgodności uzyskana z wykorzystaniem ważonej metryki bezwzględnej
przy zmianie liczby próbek w szablonie biometrycznym. Wykresy numer 4.17 i 4.18 są dla 4 próbek we wzorcu,
natomiast wykresy 4.15 i 4.16 dla 2 próbek.
Liczba próbek
we wzorcu Punktacje niezgodności
min.
punktacja
max.
punktacja
zakres punktacji
(max - min)
2 51,68 9160,27 9108,59
3 35,38 9673,26 9637,88
4 29,65 1179,72 1150,07
4. Wyniki eksperymentów biometrycznych
63
Wykres 4.19. Trafienia zgodne i trafienia niezgodne w zależności od punktacji dla 4 biometryk w szablonie
(kolor czerwony) i dla 2 biometryk w szablonie (kolor niebieski) w przypadku użycia ważonej metryki
bezwzględnej. Powiększenie i nałożenie wykresów 4.15 i 4.17.
Na wykresie 4.19 widać, że wraz ze wzrostem liczby biometryk przypadających na
wzorzec biometryczny wykresy trafień zgodnych i wykresy trafień niezgodnych znacząco
oddalają się od siebie. Nadal oba rozkłady prawdopodobieństwa pokrywają się w pewnym
stopniu, jednak obszar wspólny obu wykresów jest dużo mniejszy. Co więcej, uzyskane
wykresy stały się węższe (tabele 4.2 i 4.3). Spada zarówno liczba błędów FA jak i FR. Jest to
pożądany efekt optymalizujący działanie systemu.
0
20
40
60
80
100
120
140
0 20 40 60 80 100 120 140
Czę
sto
śd t
rafi
eń
Punktacja
trafienia zgodne (2 próbki w szablonie) trafienia niezgodne (2 próbki w szablonie)
trafienia zgodne (4 próbki w szablonie) trafienia niezgodne (4 próbki w szablonie)
5. Podsumowanie
64
5. PODSUMOWANIE I WNIOSKI
Przedstawiona praca pokazuje, że możliwe jest własnoręczne zaprojektowanie
i zbudowanie kompletnego systemu działającego w oparciu o geometrię dłoni. Stworzony
system nie wymagał dużych nakładów finansowych ani specjalistycznych urządzeń
wykorzystanych podczas budowy. Wymagana jest jednak pewna specjalistyczna wiedza na
temat zagadnień biometrycznych, bez której uzyskiwane wyniki byłyby gorsze i trudniejsze
do przeanalizowania.
Zadaniem postawionym w pracy było napisanie oprogramowania identyfikującego
cechy szczególne dłoni. Program rozszerzono o możliwość weryfikacji biometryczne
i dodano trzy kolejne metryki odległościowe, jakimi może posługiwać się komparator cech.
Stworzono graficzny interfejs użytkownika ułatwiający obsługę programu. W programie
zaimplementowano prostą bazę danych umożliwiającą operacje na biometrykach.
W początkowej fazie pisania oprogramowania korzystano z transformaty Hough.
Napotkano spore trudności z jej skutecznym wykorzystaniem do celów ekstrakcji cech. Może
ona jednak posłużyć podczas dalszych prac rozwojowych systemu bazującego na geometrii
dłoni.
Praca nie zakładała budowy całego systemu geometrii dłoni. Jednak w późniejszym
etapie działań zbudowano stolik biometryczny pozwalający zbierać biometryki dłoni. Dzięki
takiemu posunięciu stało się możliwe własnoręczne zebranie bazy danych próbek zdjęć dłoni.
Zbudowano bazę składającą się z 520 zdjęć, po 10 zdjęć od każdej z 52 osób. Na podstawie
zebranej bazy biometryk przeprowadzono eksperymenty biometryczne. Podczas budowy bazy
powstało wiele trudności, jak chociażby problem z odpowiednim naświetleniem podczas
pobierania próbek (rozdział 3.3).
Wyniki uzyskane podczas procesu identyfikacji biometrycznej, opisane szczegółowo
w rozdziale 4.1, przerosły oczekiwania. Udało się uzyskać poprawną identyfikację
biometryczną, dla 312 biometryk wejściowych, na poziomie powyżej 90%. Najwyższym
otrzymanym wynikiem było 97,44%. Co więcej, podczas tego procesu zauważono różnice
w wynikach przy wykorzystaniu różnych czterech metryk odległościowych. Zależnie od
liczby próbek w jednym szablonie biometrycznym, różne metryki wykazywały różne wyniki
poprawnych porównań.
W testach weryfikacji biometrycznej z rozdziału 4.2 pokazano wpływ błędów FA i FR
na poprawność działania systemu. Udowodniono, że nie możliwe jest jednoczesne
zapewnienie dużego bezpieczeństwa przy zadowalającym poziomie szybkości działania
5. Podsumowanie
65
systemu. Wskazano, w jaki sposób uzyskane wyniki weryfikacji biometrycznej zmieniają się,
wraz ze wzrostem liczby próbek w szablonie, dla różnych metryk odległości. Udało się, przy
zastosowaniu ważonych metryk odległości (euklidesowej i bezwzględnej), zmniejszyć
wspólny obszar krzywych FAR i FRR. Poprawiło to jednocześnie szybkość systemu i jego
bezpieczeństwo.
Podczas testu porównano wszystkie biometryki ze wszystkimi szablonami w bazie
danych biometrycznych, przez co uzyskane wykresy poprawnych akceptacji i FRR są
symetryczne (podobnie jak wykresy poprawnych odrzuceń i FAR). Nie odzwierciedla to
pracy systemu w normalnych warunkach przy nieznanej liczbie różnych użytkowników.
Podczas testu wyszukiwania optymalnej wartości progowej narysowano histogramy
częstości trafień (wyników porównania z komparatora cech) w zależności od punktacji.
Rezultaty podzielono na trafienia zgodne i trafienia niezgodne. Pokazano, że wykresy trafień
zgodnych i wykresy trafień niezgodnych nachodzą na siebie powodując błędy. Ważne jest
poprawne ustawienie wartości progowej w celu zwiększenia bezpieczeństwa lub szybkości.
Stopień nałożenia uzyskanych wykresów rzutuje na wyniki identyfikacji biometrycznej
i weryfikacji biometrycznej.
Zbudowany własnoręcznie stolik biometryczny, wykorzystywany podczas
eksperymentów, przekazuje na własność Politechnice Poznańskiej.
6. Bibliografia
66
BIBLIOGRAFIA
[1] Bolle R.M., Connell J.H., Pankanti S., Ratha N.K., Senior A.W., Biometria,
Wydawnictwo Naukowo-Techniczne, Warszawa 2008
[2] Ernst R.H., Hand ID system, US Patent No. 3,576,537. 1971
[3] Jacoby I.H., Giordano A.J., Fioretti W.H., Personal Identfication Apparatus, US
Patent No. 3,648,240. 1972
[4] Jain A.K., Ross A., Pankanti S., A prototype hand geometry-based verification system,
2nd Internationel Conference on Audio- and Video-based Biometric Person
Authentication (AVBPA), Washington 1999
[5] Kӧpf-Maier P., Atlas anatomii człowieka, Wydawnictwo Lekarskie PZWL, Warszawa
2002
[6] Marecki B., Anatomia funkcjonalna w zakresie studiów wychowania fizycznego i
fizjoterapii, AWF, Poznań 2004
[7] Miller R.P., Finger dimension comparison identification system, US Patent No.
3,576,538
[8] Nanavati S., Thieme M., Nanavati R., Biometrics Identity Verification in a Networked
World: A Wiley Tech Brief, John Wiley & Sons, Inc., USA 2002
[9] Pitas I., Digital image processing algorithms and applications, John Wiley & Sons,
Inc., NY, USA 2000
[10] Sidlauskas D.P., 3D hand profile identyfication apparatus. US Patent No. 4,736,203.
1988
[11] Waymam J., Jain A., Davide M., Maio D., Biometric Systems, Springer, UK 2005
[12] Wechsler H., Reliable Fae Recognition Methods, Springer, USA 2007
[13] Zunkel R.L., Hand geometry based verification, Recognition Systems Inc., Campbell,
USA
[14] http://www.biometricfuture.com/index.php
[15] http://www.bobpowell.net/lockingbits.htm
[16] http://www.multimedia.edu.pl/mmLab/MultimediaPL/mm_1_4.htm
[17] http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html