Metody i algorytmy sztucznej inteligencji


Rozpoznawanie ludzkiej tęczówki oka

Autor: Emilian Siemsia

Data 2009-02-07

Raport z projektu: Metody i algorytmy sztucznej inteligencji

Streszczenie:

Raport pokazuje w jaki sposób jest przeprowadzana analiza tęczówki oka, jakie stosujemy algorytmy, skąd wiemy, że dana tęczówka jest podobna do innej. Raport jest oparty o program autorstwa Milos Lasek i Peter Kovesi (The School of Computer Science and Software Engineering, The University Of Western Australia), którzy udostępniają swój program do celów dydaktycznych za darmo.

Recognition of Human's Iris Patterns

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.

Abstract:

This raport shows methods of human's iris recognition. Raport is based on Milos Lasek i Peter Kovesi (The School of Computer Science and Software Engineering, The University Of Western Australia) algorithm, which is public for scientist purpouse.


Wstęp:

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.

Image iris

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.


Wymagania

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: Białe linie pokazują nam granice tęczówki
Image iris2

Algorytm rozpoznania tęczówki

Rysunek: Proces rozpoznawania tęczówki oka
Image process

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.

Lokalizacja tęczówki, oraz segmentacja

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

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ę.

Wykrywanie granic

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:

Rysunek 3: Integro-Differential
Image d

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.

Rysunek 4: Hough
Image h

Rysunek: Przykład transformaty hougha - jak to widzi maszyna
Image hogh

Normalizacja

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.

Rysunek 6: Hough
Image center

Daugman's Rubber Sheet Model

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.

Rysunek 7: Daugman's Rubber Sheet Model
Image sheet_model

Kodowanie i ekstrakcja cech

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)

Image gabor1

Image gabor3

Image 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.

Image gabo2

Algorytm dopasowania

Zaraz po tym jak mamy zkwantyzowany sygnał, który jest zapisany w ustalonej przez nas postaci, musimy wiedzieć jak go porównać do innego.

Hamming Dystants

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.

Rysunek: Hamming Dystans - jak to się liczy
Image hd

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.

Przesuwanie bitowe

Bardzo ważną cechą Hamming Dystans jest operacja przesuwania bitowego. Jest ona używama, żeby zniwelować zmieniający się kąt aparatu w stosunku do ludzkiego oka, podczas kolejnych próbek zdjęć (kolejna autentykacja człowieka - osoba może patrzeć pod lekko innym kątem). Polega to głównie na przesuwaniu obrazów o 2 bity w prawo lub w lewo i porównywaniu wyniku (zwiększenie HD lub zmiejszenie). Operacja jest powtarzana, aż algorytm który służy do porównywania fotografii stwierdzi, że kąty są wyrównane.

Badania

Badania zostały przeprowadzone w środowisku Matlab kożystając z bazy danych UBIRIS. Jest to baza danych zawierająca zdjęcia tych samych tęczówek, po kilka próbek tego samego oka, dzięki czemu można przeprowadzać badania dotyczące HB, ekstrakcji cech, na tych samych osobach oraz porównywać wyniki badań algorytmu, kiedy mamy do czynienia z tęczówkami różych osób. Program z którego korzystałem jest autorstwa Libor Masek, Peter Kovesi Biometric Identification System Based on Iris Patterns, którzy udostępniają swój kod źrodłowy programu do celów naukowych.

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.

Rysunek: Hamming Dystans - jedna próbka w przybliżeniu tego samego oka
Image to_samo_oko

Rysunek: Hamming Dystans - jedna próbka w przybliżeniu losowych tęczówek
Image nieto_samo_oko

Rysunek: Hamming Dystans - te same tęczówki
Image te_same_hd

Rysunek: Hamming Dystans - różne tęczówki
Image rozne_hd

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ą.

Podsumowanie

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.

Spis Literatury

1
Libor Masek Recognition of Human Iris Pattern for Biometric Identification, The University of Western Australia, 2003 L. Masek, P.Kovesi - Source code
2
http://www.cl.cam.ac.uk/~jgd1000/ Webpage for JOHN DAUGMAN
3
Baza danych UBIRIS UBIRIS

LATEX

About this document ...

Metody i algorytmy sztucznej inteligencji
Rozpoznawanie ludzkiej tęczówki oka
Recognition of Human's Iris Patterns

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.

Emilian Siemsia Student Automatyki I Robotyki 2009-07-02