Autor: Emilian Siemsia
Data 2009-02-07
Raport z projektu: Metody i algorytmy sztucznej inteligencji
Autor: Emilian Siemsia
Data 2009-02-07
This report describes a project done to fulfill the requirements for the course: Methods and algorithms of artificial intelligence.
Rozpoznawanie tęczówki oka jest procesem rozpoznawania człowieka poprzez analizę jej losowych warstw.
Zautomatyzowana metoda rozpoznawania tęczówki jest względnie młoda, patent na nią został przyznany w roku 1994.
Tęczówka jest mięśniem ocznym, który reguluje wielkość źrenicy, kontrolując tym ilością światła wpadającego do oka.
Tęczówka jest pokolorowana losową ilość pigmentu w swoim mięśniu.
Chociaż pokolorowanie tęczówki oka jest uwarunkowane genetycznie, poszczególne warstwy już nie i są losowe.
Deweloperzy odkryli unikalne i nie powtarzające się warstwy na ludzkiej tęczówce,
która stała się podstawą w skutecznym rozpoznawaniu osób.
Swoje badania przeprowadzałem na bazie danych UBIRIS, dzięki której miałem dostęp do bardzo wielu zdjęć tęczówki oka.
Zanim możemy przystąpić do badania ludzkiej tęczówki oka, musimy dokładnie odseparować ją od "reszty" ludzkiego oka. Lokalizacja tęczówki jest najważniejszym krokiem w rozpoznawaniu oka, ponieważ zrobiona nieprawidłowo i zakłócona np. przez rzęsy, odbicie światła, źrenice, dostarczy nam fałszywych informacji.
Najbardziej skuteczną metodą rozpoznawania tęczówki oka jest komercyjny algorytm IrisCode, który jak dotąd stał się wyznacznikiem w rozpoznawaniu tęczówki.
Nie można więc przejść obojętnie opisując to zagadnienie, nie patrząć jak robią to profesjonaliści. W swojej pracy mam zamiar także pokazać w choć minimalnym stopniu, różne podejście do metod identyfikacji człowieka za pomocą unikalnych cech tęczówki. Istnieje także algorytm niekomercyjny o otwartym źródle opracowywany przez Milos Lasek i Peter Kovesi (The School of Computer Science and Software Engineering, The University Of Western Australia) , na którym chcę bazować mój projekt, z oczywistych finansowych względów.
Rozpoznawanie tęczówki na zdjęciu wymaga wysokiej jakości kamery. Dzisiejsze komercyjne kamery na szczęscie spełniają takie wymagania.
Podczas rozpoznawania tęczówki w pierwszej facie stosuje się filtr 2D Gabor Wavelet oraz tworzy się mapę segmentów, które zawierają informację o częstotliwości występowania danych informacji i ich miejsca na ekranie. Informacje te następnie służą do zmapowania tęczówki na kod binarny.
IrisCode zawiera wzory, które są posegregowane w odpowiednie wektory. Nie są one jednak zakłócane przez kontrast, szumy, czy inne zakłócenia.
Jeden wektor (faza) jest opisywana przez 256 bajtowy ciąg w układzie współrządnych biegunowych. IrisCode ma spacjelany patent na wykrywanie zakłóceń, takich jak wspomiane wcześniej rzęsy i niechciane dane - nie można zdobyć bardziej szczegółowch informacji na ten temat.
Żeby przygotować się do rozpoznawania obrazu, IrisCode - jak inne algorytmy tego rodzaju - porównuje dwa zdjęcia. Następnie jest zapamiętywana ilość różnic pomiędzy dwoma zdjęciami. Jeżeli ilość różnic jest najmiejsza, IrisCode stwierdza, że trafiło na tę samą osobę.
A jak jest w przypadku algorytmów wykorzystywanych przez innych? Bardzo podobnie. Biometryka bowiem polega na rozpoznawaniu unikalnych cech, w naszym przypadku są to cyfrowe zdjęcia tęczówki oka, które przy użyciu różnych funkcji matematycznych tworzą biotetryczny wzór. Po stworzeniu tego wzorca, musi być on porównany ze wszsytkimi już gotowymi wzorcami w bazie danych. W dalszej pracy pokażę dokładniej na czym to polega.
Rysunek przedstawia proces rozpoznawania tęczówki oka. Pierwszym krokiem jest pobranie zdjęcia z urządzenia cyfrowego. Możliwe jest np. skorzystać z gotowych baz danych takich jak UBIRIS, gdzie możemy dostać dostęp do bardzo dużej ilość ludzkich zdjęć. Zdjęcie musi być jak najlepszych jakości. Kolejnym krokiem jest zlokalizowanie tęczówki oka - polega to na wykryciu granic tęczówki oraz źrenicy. Jest to bardzo ważny krok w przetwarzaniu obrazu. W kolejnym kroku następuje normalizacja - znormalizowanie oświetlenia wymiarów. Następnie znormalizowany obszar jest przekształcony do postaci prostokątnej i ostatecznie po ekstracji cech najbardziej uwidocznionych. Tęczówka może zostać zakodowana i możemy realizować problem decyzyjny o autentykacji danej osoby.
Rozpoznawanie tęczówki ma byt, ponieważ posiada ono unikalne cechy, które w sposób jednoznaczny określają człowieka.
Logiczne jest więc, że w tej technice biometrycznej, w pierwszym kroku należy odseparować region tęczówki oka, od reszty zdjęcia.
Ten obszar jest aproksymowany od okręgu, czyli granicami są: granica tęczówki oraz siatkówki. W pierszym kroku musimy wykryć te krawędzie.
W 1993 roku John Daugman zaproponował jedną z najbardziej znaczących propozycji w rozpoznawaniu tych regionów, które stały się podstawą w funkcjonowaniu większości z dzisiejszych systemów. Daugman posłużył się całkowo-różnicowym operatorem, żeby odizolować granice.
Od tamtej pory, zostały zaproponowane różne pomysły z małymi zmianami.
Propozycja Wildes'a jest podzielona na dwa kroki - konwertuje zdjęcie na binarną mapę używając detektoru granic, opartego na gradiencie.
Następnie używa transformacje Hough'a żeby wykryć granice. Najlepsze z praktyki, okazuje się połączenie Dougmana oraz Wildesa.
Detekcja cech jest pierwszą czynnością w segmentacji zdjęcia. Jest ona oparta na wykrywaniu granic tęczówki oraz źrenicy. Wielu naukowców zgłaszało ten problem oraz zostały zaproponowane różne operatory, które zostały sklasyfikowane do: Klasyczny (Classical), Narożnikowy (Corner), Interesujący punkt (Interesting Point) oraz Neural-Fuzzy, których definicję tutaj pominę.
Ponownie w literaturze mamy różne propozycje wykrywania granic. Daugman używa operator różniczkowo-całkowy na oryginalnym zdjęciu - nie używa wykrywania cech przed szukaniem krawędzi - żeby odizolować tęczówkę, z kolei Wildes używa transformacji Hough'a na binarnej mapie krawędzi.
Innymi propozycjami rzadziej stosowanymi są takie metody jak Active Contour Models oraz Simple Circilar Summation.
Różnicowo-całkowy operator przedstawia się następująco i służy do prostego wykrywania granic na zdjęciu:
Z kolei tranformacja Hough'a bazuje na mapie krawędzi. Niestety nie zawsze działa ona idealnie, czasami nie potrafi wykryć niektórych okręgów, oraz jest niezwykle mało wydajną metodą. Kołowa transformata jest jak widzimy używana do wykrywania kołowych krawędzi, np. żeby znaleźć granice tęczówki.
Poprzednio zobaczyliśmy metody do odseparowania właściwej części oka od reszty zdjęcia. Teraz, żeby mieć możliwość porównania różnych tęczówek, powinniśmy przetransformować region tęczówki w taki sposób, żeby mieć określone wymiary i usunięte niechciane szumy. Po tej operacji, dwie fotografie tej samej tęczówki oka pod różnymi kątami czy oświetleniu, będa mieć te same charakterystyczne cechy. Tak czy inaczej ważne jest zadbanie, żeby normalizujące koła nie miały ustalonych promieni na sztywno - widać na zdjęciu, że środek tęczówki i źrenicy nie są koncentryczne.
Model ten odwzorowuje każdy punkt, który znajduje się w obszarze tęczówki, na współrzędne biegunowe . Wtedy znormalizowany region jest pakowany do regionu prostokątnego. Jest to więc odwzorowanie z kartezjańskiego układu współrzędnych, do niekoncentrycznej biegunowej reprezentacji.
Konstruowanie kodu tęczówki jest naszym ostatecznym procesem. Zanim będziemy mogli zlokalizować tęczówkę, musimy wyciągnąć najbardziej znaczące cechy do odpowiednich wzorów, żeby porównania kolejnych tęczówek były możliwe. Wzór tęczówki daje nam dwa typy informacji. Amplitudę oraz fazę. Jak zostało pokazane przez Oppenheim oraz Lim, tylko informację z fazy służą nam do generowania kodu. Wavelet (algorytm falkowy) może zostać użyty do dekompozycji informacji z regionów tęczówki w komponenty, które pojawią się w różnych rozdzielczościach, pozwalając nam wtedy na zaznacznie tych samych pozycji w różnych rozdzielczościach.
Kodowanie cech jest poprzez falki Gabor (Gabor Filter)
Wykorzystujemy tylko modulację fazy, a nie aplitudy. Kąt użyty w fazie jest poddawany kwantyzacji, żeby zbudować kod tęczówki. Kwantyzację przedstawia poniższy rysunek. Poddany kwantyzacji sygnał, jest opisany za pomocą wymienionych tutaj całek, w pseudo biegunowym systemie.
Zaraz po tym jak mamy zkwantyzowany sygnał, który jest zapisany w ustalonej przez nas postaci, musimy wiedzieć jak go porównać do innego.
Propozycja Hamming dystansu jest wzorcem do dopasowań zaproponowanym przez Daugmana. Kiedy porównujemy dwa wzorce bitowe, Hamming dystans reprezentuje ilość bitów, które są inne w obu wzorcach. Innymi słowy, Hamming dystans jest liczbą bitów, które nie są identyczne, kiedy porównujemy uporządkowane pozycje. Używając tego sposobu dopasowań, możemy jednoznacznie stwierdzić, czy dany szereg naszych bitów pasuje do innego.
We wzorze na Hamming Dystans, X oraz Y, są dwoma bitami we wzorcach. Więc generalnie, jeżeli bit we wrocu X jest inny niż we wzorcu Y, wtedy operacja XOR da nam rezultat 1. Następnie wynik jest dzielony przez N elementów, czyli ilość bitów opisujących naszą tęczówke. Idealnie jest kiedy Hamming Dystanns jest równy 0. Używając środowiska Matlab, można w prosty sposób śledzić HB.
Przedstawiam graficznie, jak wyglądają wykresy HD porównywanych zdjęć - H1 z H2 , H2 z H3, , H3 z H1. Widać ze na zdjęciach gdzie tęczówki oka faktycznie nie pochodziły od tej samej osoby, HD jest o wiele większe niż HD w porównaniach tej samej tęczówki.
Widzimy zaten, ze HD na tym samym oku jest w granicach maksymalnie 0.25 - 0.30. Kiedy mamy różne tęczówki oka, wynik ten jest nawet dwukrotnie większy, np. 0.45-0.50
Jest więc widoczne, żę HD pokazuje praktycznie z pełnym prawdopodobieństwem, że mamy doczynienia z tą samą osobą.
Identyfikacja tęczówki oka jest dzedziną bardzo młodą. Udało się jednak dotrzec do źródel niekomercyjnych, dzięki którym można przeprowadzić badania i prześledzić działanie choćby Hamming Distance. Badania pokazały w jaki sposób należy obchodzić się z próbkami zdjęć.
Widać, że bardzo ważne jest aby zdjęcia były w doskonałej jakości, ponieważ każde zniekształecenie obrazu, może doprowadzić do uznania przez algorytm porównywania kodu tęczówki, za obraz do odrzucenia.
Algorytm zaproponowany w programie użytym bardzo dobrze radził sobie z wykrywaniem tych samych "osób". HB był między kolejnymi zdjęciami wielkościami między
0.05 a 0.15
, więc widać, że rozpoznanie danej osoby jest możliwe, praktycznie w dużym prawdopodobieństwem powodzenia.
Nierozpoznanie osób jest bowiem na poziomie od 3 do 5% co daje praktycznie pewność, że osoba będzie rozpoznana.
Podsumowujac, filtr Gabor oraz Hamming Distance zaproponowany oryginalnie prze Daugmana i wykorzystany w tym niekomercyjnym programie, działa i daje bardzo dobre rezultaty.
This document was generated using the LaTeX2HTML translator Version 2008 (1.71)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.