|
Projekt realizowany w ramach laboratorium z przedmiotu rozpoznawanie obrazów prowadzonego przez dr inż. Krzysztofa Krawca
- Autorzy:
Szymon Knieć, Patryk Lijewski
są studentami czwartego roku informatyki (specjalność ISWD) na Politechnice Poznańskiej.
- Cel projektu:
- Ogólny cel:  Celem projektu jest stworzenie systemu klasyfikującego podany na wejsciu
obraz odcisku palca do jednej z podstawowych kategorii.
- Kryteria oceny:  Głównym kryterium będzie trafność klasyfikacji, przydzielenie odcisku
do właściwej klasy.
- Dane:  Dane stanowią dostepne bazy danych obrazów odcisków palców. W naszym projekcie wykorzystamy
obrazy o rozmiarach 300x300.
- Wprowadzenie:
           Odciski palców są charakterystyczną cechą
każdego człowieka identyfikującą go w sposób jednoznaczny tak
jak np. numer PESEL. Każdy człowiek ma unikalny wzór odcisków palców.
Pondto ten wzór nie zmiena sie przez całe życie. Dlatego właśnie odciski palców
są jedną z najbardziej wiarygodnych metod indentyfikacji ludzi. Pierwsze próby idenyfikacji
ludzi na podstawie odcisków palców miały miejsce już na przełomie XIX i XX wieku. Taka identyfikacja
może mieć zastosowanie przy weryfikacji dostępu (ang. access control) lub w trakcie
czynności śledczych np. policji (ang. crime investigation). W zależności od podejścia
wyróżnia się 5 lub 6 podstawowych klas odcisków palców:
- left loop,
- right loop,
- twin-loop,
- whorl,
- arch,
- tented arch.
Co prawda sklasyfikowanie danego odcisku do jednej z klas nie jest równoważne z
identyfikacją danej osoby, jednak może to w dużym stopinu ułatwić przeszukiwanie bazy danych
osób zawężonej wtedy do jednej żądanej klasy.
- Przykłady klas odcisków palców:
 ARCH |
 TENTED ARCH |
 LEFT LOOP |
 RIGHT LOOP |
 TWIN LOOP |
 WHORL |
- Próba osadzenia projektu w dziedzinie rozpoznawania obrazów:
          
Sądzimy, że rozsądne będzie podejście wykorzystujące metodę z klasy globalnych metod
rozpoznawiania obrazu. Proponujemy to gdyż wymagane będzie przeglądanie całego obrazu w poszukiwaniu
punktów charkterystycznych, a nie tylko jego fragmentu. Idąc dalej można stwierdzić, że nasze podejście będzie metodą
wnioskującą/rozpoznającą na podstawie cech obliczonych z obrazu (ang. feature-based method).
Sugeruje to również, że będzie ona działała w sposób pośredni. Analizowany obraz zostaje sprowadzony do
pewnej postaci przejściowej, na podstawie której będzie prowadzone wnioskowanie. Tak więc konieczne
będzie stworzenie modułu ekstrakcji cech stanowiących (niejawną) reprezentacje wewnętrzną naszego problemu.
Niewątpilwą zaletą tego podejścia jest modułowa konstrukcja całej aplikacji. Pewną wadą proponowanego
podejścia jest brak elementów uczenia.
- Zastosowane podejście:
          
Wiadomo, że w każdym odcisku można wykryć tzw. punkty core i delta. Wiele źródeł podaje,
że każda z podstawowych klas posiada określoną liczbę tych punktów. I tak np. klasa arch posiada ani jednej pary tych punktów, gdy
znajdujemy pare tych punktów to wiemy, że jest to klasa tented arch lub loop itd. Ostatecznie wątpliwości,
do której klasy przydzielić badany odcisk rozwiązuje wzajemne położenie znalezionych punktów.
Algorytm:
- Preprocesing:
          
Dla każdego piksela obliczamy średnią jasność v w sąsiedztwie 5x5.
Jeżeli wartość piksela jest mniejsza niż v to ustawiamy ją na 0. W przeciwnym wypadku wartość ta
pozostaje bez zmian. W ten sposób otrzymujemy przetworzony obraz P.
- Directional images:
          
W tym punkcie chcemy wyznaczyć kierunek każdego z pikseli z obrazu P.
Obliczamy kierunek dla każdego piksela P(i,j) poruszając się maską 5x5, ze środkiem z punkcie c=P(i,j),
po całym obrazie P. Sprawdzamy różnicę pomiędzy badanym pikselem P(i,j) a pikselami
P(im,jm) dla m=1,2,3,4 gdzie im={i+2, i+2, i, i-2} oraz
jm={j, j+2, j+2, j+2} tak jak to zaznaczono na masce poniżej:
3 |
   |
2 |
   |
1 |
  |
  |
  |
  |
  |
0 |
   |
c |
   |
0 |
  |
  |
  |
  |
  |
1 |
   |
2 |
   |
3 |
Wyznaczamy minm|P(i,j)-P(im,jm)| i m dla, którego różnica jest najmniejsza
przyjmujemy za kierunek naszego piksela. W ten sposób otrzymujemy obraz V reprezentujący kierunek każdego piksela P(i,j).
Kolejnym krokiem jest podzielenie obrazu V na bloki q x q (u nas 5x5) i obliczenie histogramu
dla każdego z bloków. Dominująca wartość odpowiada kierunkowi danego bloku. Tę wartość
konwerujemy na 0, 1, 2 lub 3, które odpowiadają kątom 0o, 45o, 90o, 135o
W ten sposób otrzymujemy obraz S
,będący zredukowanym obrazem V, o rozmiarach M/q x N/q. Dzięki temu zredukujemy złożoność dalszych obliczeń.
- Punkty core i delta:
          
Punty core i delta znajdujemy sprawdzając prawdziwość odpowiednich nierówności.
Jeżeli punkt spełnia poniższe nierówności to jest możliwym punktem delta.
S(i-1,j+1)<= S(i,j)<S(i+1,j+1) , S(i-1,j+1)<90o oraz S(i+1,j+1)>90o
Natomiast jeżeli punkt spełnia poniższą nierówności to jest możliwym punktem core.
45o=<(S(i,j) – S(i,j-1)) <=135o
Kolejnem krokiem jest weryfikacja punktów kandydatów na podstawie ich sąsiedztwa.
Dla punktów delta sąsiedztwo punktu musi spełniać następujące warunki:
S(i-1,j)<=90o , 90o <=S(i+1,j) , S(i,j+1)<45o
oraz 45o<=S(i, j-1)<=135o
Dla punktów core sąsiedztwo musi spełniać następujące nierówności:
(S(i-1, j-1) – S(i,j-1))<45o , 90o<(S(i+1, j-1) – S(i, j-1))
- Klasyfikacja: 
- Jeżeli odcisk nie zawiera punktów core i delta to jest to klasa ARCH.
- Jeżeli odcisk zawiera po jednym punkcie core i delta to jest to klasa TENTED ARCH, LEFT LOOP albo RIGTH LOOP.
- Jeżeli odcisk zawiera dwie pary punktów core i delta to jest to klasa WHORL lub TWIN LOOP.
- Klasy TENTED ARCH i LOOP odróżniamy poprzez sprawdzenie wzajemnego położenia znalezionych punktów core i delta.
Jeżeli względem siebie umiejscowione są one horyzontalnie to jest to TENTED ARCH, a w przeciwnym razie LOOP.
- LEFT LOOP odróżniamy od RIGHT LOOP poprzez badanie, po której stronie delty znajduje się core. Jeżeli core
leży po prawej stronie punktu delta to jest to klasa RIGHT LOOP, a gdy po lewej stronie to jest to LEFT LOOP.
- Klasy WHORL i TWIN LOOP odróżniamy badając wzajemne położenie punktów core orez delta. Jeżeli punkty core leżą
względem siebie w poziomie oraz punkty delta leżą względem siebie także w poziomie to jest to klasa WHORL, a w
przeciwnym razie klasa TWIN LOOP
- Napotkane trudności, problemy:
- Problemy:  Jak w większości projektów bazujących na danych obrazowych
będzie wymagane odszumienie obrazów wejściowych. W przypadku naszego projektu tego typu wady wynikają zapewne
z niedoskonałości procesu akwizycji odcisków palców.
- Środki zaradcze:  Zastosowany przez nas preprocessing w postaci "wygładzania" i
uśredniania obrazów powinnien dać zadowalające rezultaty.
- Środowisko realizacji projektu:
Projekt będzie realizowany w środowisku Microsoft Visual C++ z wykorzystaniem biblioteki CImage.
- Możliwości rozbudowy:
          
Nasz projekt można w przyszłości rozbudować o moduł współpracujący z bazą danych. Można także stworzyć moduł,
który na podstawie zidentyfikowanych punktów charakterystycznych oblicza funkcję podobieństwa badanego odcisku z
odciskami w bazie danych i idenftyfikuje właściciela badanego odcisku.
- Bibliografia:
- 1. Meltem Ballan, Brian L. Evans, F. Ayhan Sakarya; A Fingreprint Classification Technique Using Directional Images
- 2. Anil Jain, Shatath Pankanti; Fingerprint Classification and Matching
- 3. Lin Hong, Anil Jain; Integrating Faces and Fingerprints for Personal Identification
- 4. Krzysztof Krawiec; Wykłady z przedmiotu Rozpozanwanie obrazów
| |