Modified Orthogonal Neighborhood Preserving Projection for Face Recognition
Identification methods - face recognition - bachelor thesis
Transcript of Identification methods - face recognition - bachelor thesis
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I INŻYNIERII BIOMEDYCZNEJ
KATEDRA AUTOMATYKI I INŻYNIERII BIOMEDYCZNEJ
Praca dyplomowa inżynierska
Niestandardowe metody autoryzacji użytkowników w systemach informatycznych
Custom user authentication methods in information systems
Autor: Konrad Gębka
Kierunek studiów: Automatyka i Robotyka
Opiekun pracy: dr inż. Marek Długosz
Kraków, 2014
Oświadczam, świadomy odpowiedzialności karnej za poświadczenie nieprawdy, że niniejszą pracę
dyplomową wykonałem osobiście i samodzielnie i że nie korzystałem ze źródeł innych niż wymienione
w pracy.
…………………………………………..
Składam serdeczne podziękowania dla
promotora pracy, dr Marka Długosza za
opiekę naukową, życzliwośd i poświęcony
czas.
SPIS TREŚCI
Wstęp ...................................................................................................................................... 9
1 Systemy identyfikacji użytkowników ..............................................................................11
1.1 Uwarunkowania systemów identyfikacji.....................................................................11
1.2 Podstawy różnorodnych systemów identyfikacji ........................................................12
1.3 Historia rozpoznawania twarzy ..................................................................................13
1.4 Komercyjne systemy rozpoznawania twarzy...............................................................14
1.4.1 FaceFirst .............................................................................................................14
1.4.2 ZKTeco ...............................................................................................................15
1.4.3 Cognitec .............................................................................................................15
2 Podstawy środowiska oprogramowania oraz aplikacji ....................................................19
2.1 Sposób realizacji systemu. ..........................................................................................19
2.2 Biblioteka OpenCV oraz Emgu CV. ..............................................................................20
2.3 Opis działania programu rozpoznawania twarzy. ........................................................20
2.3.1 Instalacja ............................................................................................................21
2.3.2 Tryb normalny ....................................................................................................22
2.3.3 Tryb administracyjny ..........................................................................................24
3 Problem wykrycia twarzy oraz przetwarzanie danych .....................................................27
3.1 Kaskadowe klasyfikatory Haara ..................................................................................27
3.2 Utrudnienia w detekcji twarzy ....................................................................................28
3.2.1 Kamera...............................................................................................................28
3.2.2 Tło ......................................................................................................................29
3.2.3 Oświetlenie ........................................................................................................30
3.2.4 Położenie i wygląd twarzy ..................................................................................30
3.3 Obróbka twarzy do dalszej analizy oraz generowanie bazy danych .............................32
4 Metody rozpoznawania twarzy ......................................................................................33
4.1 Metoda twarzy własnych (EigenFace) .........................................................................33
4.2 Metoda Fishera (Fisherface) .......................................................................................38
4.3 Metoda LBPH (Local Binary Pattern Histogram) ..........................................................39
5 Eksperymenty oraz rezultaty ..........................................................................................41
5.1 Eksperymenty przy świetle sztucznym ........................................................................41
5.1.1 Rezultaty otrzymane dla bazy danych zawierających 9 różnych twarzy (po 10 zdjęd
dla każdej z nich) .......................................................................................................................41
5.1.2 Rezultaty otrzymane dla bazy danych zawierających 8 różnych twarzy (po 10 zdjęd
dla każdej z nich) .......................................................................................................................43
5.2 Eksperymenty przy świetle dziennym ......................................................................... 44
5.2.1 Rezultaty otrzymane dla bazy danych zawierających 8 różnych twarzy (po 30 zdjęd
dla każdej z nich) ....................................................................................................................... 44
5.3 Eksperymenty dla algorytmu Eigenface niekorzystającego z gotowej biblioteki Emgu
CV .................................................................................................................................. 46
5.3.1 Rezultaty otrzymane dla bazy danych zawierających 6 różnych twarzy (po 5 zdjęd
dla każdej z nich) ....................................................................................................................... 46
6 Podsumowanie .............................................................................................................. 47
Bibliografia ............................................................................................................................. 49
Dodatek A: Struktura katalogu z zainstalowaną aplikacją ........................................................ 51
Dodatek B: Kod programu ....................................................................................................... 54
SPIS RYSUNKÓW
Rysunek 1 Klucz iButton i sensor odczytu [5] ...........................................................................12
Rysunek 2 Budowa systemu RFID [7] .......................................................................................13
Rysunek 3 Wygląd interfejsu aplikacji mobilnych *10] ..............................................................14
Rysunek 4 Diagram połączenia modułu terminala *12] ............................................................15
Rysunek 5 Przegląd aplikacji Cognitec *14] ..............................................................................17
Rysunek 6 Podstawowy system rozpoznawania twarzy ...........................................................20
Rysunek 7 Tryb normalny ........................................................................................................22
Rysunek 8 Schemat programu w trybie normalnym .................................................................23
Rysunek 9 Tryb administracyjny ..............................................................................................25
Rysunek 10 Tryb dodawania nowych użytkowników................................................................26
Rysunek 11 Obraz twarzy z kamery termowizyjnej [16] ...........................................................28
Rysunek 12 Błędnie rozpoznane zdjęcie twarzy w tle ...............................................................29
Rysunek 13 Próbki obrazu twarzy zrobione w różnych warunkach oświetleniowych ................30
Rysunek 14 Nie wykryto twarzy z okularami ............................................................................31
Rysunek 15 Nie wykryto twarzy obróconej o określony kąt......................................................31
Rysunek 16 Przykład twarzy własnych z laboratorium AT&T w Cambridge ...............................34
Rysunek 17 Zestaw S składający się z 16 zdjęd .........................................................................35
Rysunek 18 Obraz średni dla zestawu S ...................................................................................35
Rysunek 19 Eigenfaces dla zdjęd twarzy z zestawu S ................................................................37
Rysunek 20 Przykłady zdjęd (baza danych z Yale) zrobionych w różnych warunkach
oświetleniowych, z brakiem lub obecnością okularów, z różną mimiką twarzy. .................................38
Rysunek 21 Z lewej strony zdjęcie osoby noszącej okulary. Z prawej strony Fisherface
rozpoznający obecnośd okularów. .....................................................................................................39
Rysunek 22 Operator LBP proguje każdy piksel obrazu wobec jego sąsiadów i interpretuje
wynik jako liczbę binarną ..................................................................................................................39
Rysunek 23 Opis twarzy z wykorzystaniem LBP [21] ................................................................40
9
WSTĘP
Głównym celem pracy jest stworzenie systemu do identyfikacji użytkowników opartego na
metodzie rozpoznawania twarzy. Dodatkowo w pracy zawarte są informacje na temat innych
niestandardowych metod, które są wykorzystywane do identyfikacji na co dzieo. System
rozpoznawania twarzy przystosowany jest do komputera osobistego jak i dotykowego komputera
przemysłowego. Jego głównym zadaniem jest detekcja twarzy z obrazu przechwyconego z kamery
oraz identyfikacja użytkownika. Może zostad wykorzystany w zakładach pracy do zarządzania
pracownikami bądź jako kontrola dostępu do pomieszczeo.
W rozdziale pierwszym zawarte są podstawy teoretyczne odnośnie różnorodnych systemów
identyfikacji takich jak: karty magnetyczne, karty chipowe, wykorzystanie klucza iButton albo RFID.
Znajdują się tam także informacje na temat tego jak zmieniały się różne metody autoryzacji oraz
krótka historia rozpoznawania twarzy. Dodatkowo w rozdziale drugim umieszczone są opisy
istniejących, komercyjnych systemów identyfikacji.
Rozdział drugi przedstawia schemat działania całego systemu, od instalacji aż po szczegółowe
informacje odnośnie komponentów programu uwierzytelniania oraz trybów pracy. Ponadto rozdział
zawiera opis bibliotek wykorzystanych do realizacji aplikacji takich jak OpenCV oraz Emgu CV.
W rozdziale trzecim opisane są główne problemy związane z detekcją twarzy oraz to jaki mają
wpływ na skutecznośd rozpoznawania użytkownika. Dodatkowo znajduje się tam krótka historia
sposobów detekcji obiektów oraz informacje na temat metody opartej na kaskadowych
klasyfikatorach Haar'a. Na koocu rozdziału umieszczony jest opis procesu, jaki musi przejśd zdjęcie,
zanim zostanie wykorzystane jako element bazy danych potrzebny do uwierzytelniania osób.
W rozdziale czwartym znajdują się informacje na temat trzech głównych algorytmów
rozpoznawania twarzy: Eigenface, FisherFace oraz LBPH. Dodatkowo przedstawione są zalety i wady
każdej z wyżej wymienionych metod.
Rozdział piąty przedstawia rezultaty eksperymentów i przeprowadzonych testów.
Porównywane są wyniki detekcji oraz rozpoznania twarzy w różnych warunkach oświetleniowych
oraz dla różnych parametrów wejściowych.
Podsumowanie zawiera informacje o tym, która z metod rozpoznawania jest najlepsza dla
stworzonego systemu identyfikacji. Przedstawia także problemy napotkane podczas realizacji pracy
oraz możliwe propozycje dalszego rozwoju aplikacji.
11
1 SYSTEMY IDENTYFIKACJI UŻYTKOWNIKÓW
1.1 UWARUNKOWANIA SYSTEMÓW IDENTYFIKACJI
Systemy identyfikacji ludzi znacząco poszerzyły swój obszar badao, aby spełnid oczekiwania
wzrostu bezpieczeostwa oraz organizacji. Chodzi tu przede wszystkim o kontrolę przejśd w
budynkach, kontrolę dostępu w komputerach używanych przez rozległą grupę użytkowników, w tym
w branżach przemysłowych.
Najbardziej powszechnymi metodami weryfikacji osób są obecnie stosowane systemy haseł
PIN (Personal Identification Number) oraz systemy tokenowe. Powyższe metody identyfikacji nie są
odporne na uchybienia, fałszerstwo oraz kradzież. Dlatego coraz więcej czasu i pieniędzy poświęca się
na rozwój systemów identyfikacji biometrycznej, które bazują na cechach fizjologicznych takich jak:
odciski palców, rozpoznawanie tęczówki i siatkówki oka, głosu oraz twarzy. Systemy biometryczne
dzielą się na dwie grupy: fizyczne oraz behawioralne. Fizyczne są wykorzystywane do weryfikacji oraz
identyfikacji, a behawioralne znajdują zastosowanie wyłącznie w weryfikacji.
Rozpoznawanie twarzy doskonale pasuje do nowej generacji inteligentnych środowisk. Przede
wszystkim jest metodą pasywną oraz nie wymagającą akcji ze strony użytkownika. Niska inwazyjnośd
podczas weryfikacji może zostad osiągnięta przez pobranie zdjęcia z kamery na stadionie, przejściach
na stacji kolejowej, lotnisku, hipermarkecie oraz w innych miejscach. Oprócz tego jest dyskretna
(rozpoznawanie może zachodzid z pewnej odległości), energooszczędna oraz stosunkowo tania, gdyż
nie wymaga wyspecjalizowanego sprzętu. Metoda ta ma wysokie przyzwolenie społeczne, gdyż coraz
mniej osób zwraca uwagę na kamery montowane w coraz większej liczbie obiektów publicznych. [1]
Zastosowanie znajduje w identyfikacji stałych klientów w sklepie, obliczaniu różnego rodzaju
statystyk, rejestrowaniu godzin wejścia i wyjścia pracowników, zabezpieczaniu dużych imprez
masowych. Wykorzystywana jest także w sieci monitoringu miejskiego do identyfikowania w tłumie:
ludzi poszukiwanych, zaginionych oraz przestępców.
12
1.2 PODSTAWY RÓŻNORODNYCH SYSTEMÓW IDENTYFIKACJI
Karty magnetyczne znajdują zastosowanie jako karty płatnicze, identyfikacyjne w sklepach,
bibliotekach, czy szpitalach oraz służą do kontroli dostępu w różnych budynkach, nie tylko
przemysłowych. Są stosowane od roku 1972. Wraz z czasem zmieniał się materiał z jakich
wykonywane są paski magnetyczne. Spowodowane było to zjawiskiem rozmagnesowywania
spowodowanego wysokim polem elektromagnetycznym, w którym mogła znaleźd się karta i
koniecznością produkcji duplikatów. W kartach magnetycznych nośnikiem danych jest pasek
magnetyczny. Czytnik reaguje na zmiany pola magnetycznego wytwarzanego przez przemieszczającą
się kartę, a dokładniej głowica magnetyczna odczytuje porcje danych na 3 równoległych ścieżkach,
znajdujących się wzdłuż paska . W konstrukcji paska magnetycznego tkwi słabośd, która sprawia, że
użycie tych kart zostaje zastąpione przez karty chipowe. [2]
Karty elektroniczne (chipowe) są uniwersalnym nośnikiem informacji z umieszczonym na nich
bądź wewnątrz, układem scalonym. Po umieszczeniu karty w czytniku mikroprocesor sprawdza
autentycznośd terminala, a następnie, jeśli nie napotka żadnych błędów, wysyła dane użytkownika.
Mikroprocesor zawiera kilka tysięcy razy więcej danych niż zwykły pasek magnetyczny oraz zapewnia
większe bezpieczeostwo. [3]
iButton jest rodzajem obudowy zastosowanym w układach scalonych z magistralą 1-Wire.
Wykonany zazwyczaj ze stali nierdzewnej, posiada hermetyczną obudowę, w której górna i dolna
pokrywa odizolowane są elektrycznie przez pierścieo polipropylenowy. Identyfikacja polega na
odczycie przez interfejs 1-Wire, unikatowego i niezmiennego kodu, utworzonego przez przepalanie
laserem odpowiednich złącz. Aby iButton mógł działad, musi dojśd do przyłożenia obudowy do
czytnika i przepływu energii elektrycznej do układu. [4]
Rysunek 1 Klucz iButton i sensor odczytu [5]
13
RFID (ang. Radio-frequency identification) do przesyłania informacji wykorzystuje fale radiowe.
Układ czytnika składa się z nadajnika, odbiornika, dekodera oraz anteny nadawczo-odbiorczej.
System za pomocną anteny wysyła falę elektromagnetyczną, która aktywuje znacznik, a następnie
odbiera falę, filtruje i dekoduje odpowiedzi znaczników. Znaczniki uzyskując odpowiednią ilośd
energii zmagazynowaną w kondensatorze, wysyłają odpowiedź zawierającą kod. [6]
Rysunek 2 Budowa systemu RFID [7]
1.3 HISTORIA ROZPOZNAWANIA TWARZY
Pierwsze próby pracy z twarzą ludzką odnotowano w analizie Darwina. Autor starał się
przyporządkowad odpowiednie stany emocjonalne do wyrazów twarzy. Kolejne dzieło dotyczące
badania profilów twarzy zostało wydane przez Galtona. Najbardziej znaczący przykład systemu
rozpoznawania twarzy zaprezentował Kohonen. Przedstawił on prostą sied neuronową, która może
wykonywad rozpoznawanie twarzy dla uszeregowanych oraz znormalizowanych obrazów.
Wprowadził także jako pierwszy przybliżenie wektorów własnych obrazu twarzy, przez macierz
autokorelacji. Prawdziwym problemem było odpowiednie dostosowanie algorytmów do pracy na
dużych bazach danych [1].
Przez ostatnie kilkanaście lat skupiono się głównie na automatyzacji takich procesów jak:
detekcji twarzy na danym obrazie bądź video oraz ekstrakcji specyficznych cech oczu, ust oraz
charakterystycznych punktów twarzy. Postępy odnotowano także w rozwoju klasyfikatorów
polepszających skutecznośd rozpoznawania oraz detekcji. Do pracy z dużymi bazami danych
skuteczne okazały się, oparte na wyglądzie, holistyczne metody takie jak eigenface *Kirby and Sivorich
1990] oraz Fisher-faces *Belhumeur 1997; Etamad and Chellappa 1997; Zhao 1998+. Podejście
bazujące na cechach *Wiskott 1997+ okazuje się mniej wrażliwe na punkt widzenia, oświetlenie oraz
niedokładne w lokalizacji twarzy. [8]
14
1.4 KOMERCYJNE SYSTEMY ROZPOZNAWANIA TWARZY
1.4.1 FaceFirst
FaceFirst to platforma rozpoznawania twarzy, która oferuje szeroką gamę usług
dostosowanych do potrzeb rynku. Produkt może zostad wykorzystany zarówno przez klientów
indywidualnych jak i w porządku publicznym, na lotniskach, transporcie, a także w bezpieczeostwie
handlowym i gier. Jak twierdzi producent, FaceFirst pozwala na identyfikację poszukiwanych osób na
lotniskach, stacjach kolejowych oraz szybkie zawiadomienie służb bezpieczeostwa o ich położeniu.
Służy także do kontroli dostępu do miejsc, w których wymagana jest autoryzacja osoby. Po
zidentyfikowaniu niepożądanej osoby, która umieszczona jest w bazie danych FaceFirst, możliwe jest
także powiadomienie odpowiedniego personelu stosownym e-mail'em lub SMS'em zawierającym
zdjęcie, a także informacje biograficzne [9].
Producent twierdzi, że system rozpoznawania twarzy jest lepszy od innych systemów
biometrycznych takich jak: odciski palców, skanowanie siatkówki oka. Przede wszystkim publiczna
baza danych ma około 1.3 biliona zdjęd osób oraz tylko kilka set milionów próbek odcisków palców.
Oprócz tego około 5% ludności na świecie nie ma czytelnych odcisków palców, podczas gdy każda
twarz może zostad jednoznacznie rozpoznana.
FaceFirst jest opatentowanym oprogramowaniem zbudowanym na algorytmie stworzonym
przez Cognitec, który zwyciężył w kategorii rozpoznawania twarzy. Ma on minimalne wymagania
odnośnie sprzętu ze strony klienta. Wszystkie informacje mogą byd przechowywane w centralnie
zlokalizowanych bazach danych klienta albo na serwerach cloud producenta. Aplikacja może zostad
także użyta w wersji mobilnej, na telefonach z systemem Android, Blackberry, a także iPhonie.
Rysunek 3 Wygląd interfejsu aplikacji mobilnych [10]
15
1.4.2 ZKTeco
ZKTeco to międzynarodowe przedsiębiorstwo zajmujące się produkcją oraz rozwojem
technologii kontroli dostępu. Jest jednym z pionierów w dziedzinie multibiometrii i technologii RFID.
Dostarcza na rynek produkty takie jak: terminale T&A/AC, kontrolery dostępu, zamki biometryczne -
RFID, Kamery IP, kołowrotki przy wejściach [11].
Parametry przykładowego produktu:
MULTIBIO 700 FACE & RFID & FP
• maksymalna ilośd twarzy: 3 000 (1:1) - weryfikacja, 400 (1:N) - identyfikacja
• maksymalna ilośd odcisków palców: 5 000 (1:1) - weryfikacja, 2 000 (1:N) - identyfikacja
• maksymalna ilośd kart ID: 10 000
• Communication Port: Ethernet, RS232/48
Rysunek 4 Diagram połączenia modułu terminala [12]
1.4.3 Cognitec
Congnitec oferuje produkty oparte na technologii FaceVACS, która jest światowym liderem
wśród oprogramowania do rozpoznawania twarzy. Podstawowymi cechami systemów jest łatwośd w
użyciu, skalowalnośd oraz konfigurowalnośd. Istnieje kilka podstawowych wersji [13]:
FACEVACS-VIDEOSCAN
Aplikacja do detekcji twarzy w strumieniach wideo w trybie czasu rzeczywistego. Najważniejsze
cechy:
• śledzenie wielu twarzy jednocześnie
16
• porównanie twarzy ze zdjęciami w galeriach bazy danych w czasie rzeczywistym
• umożliwia wyświetlanie i eksport statystyk o przepływie osób, demografii odwiedzających i
zachowaniach klientów
• wysyłanie sygnałów i statystyk do urządzeo mobilnych
• zapewnia wysoką skalowalnośd pod względem ilości strumieni video, liczby widocznych
twarzy
FACEVACS-DBSCAN
Aplikacja służy do natychmiastowego porównania obrazów twarzy pochodzących z różnych
źródeł do dużych baz danych zdjęd. Wspiera identyfikację biometryczną, porównania oraz weryfikację
osób. Najważniejsze cechy:
• zawiera zestaw narzędzi do poprawy jakości obrazu i oględzin porównao
• konfiguracje klastra do przetwarzania baz danych zawierających miliony osób
• elastyczne i wygodne zarządzanie listami porównao (obsługa sortowania, rozmieszczania,
przeglądania i filtrowania)
• łatwy do integracji z innymi systemami
FACEVACS-PORTRAITACQUISITION
Aplikacja usprawnia produkcję wysokiej jakości zdjęd do dokumentów tożsamości, które są
odpowiednie do rozpoznawania twarzy. Najważniejsze cechy:
• niezawodny, zautomatyzowany proces akwizycji
• sprawdza frontalne położenie twarzy, otwarcie oczu, obecnośd okularów, jednolitego
oświetlenia, rozmiar, nachylenie i położenie głowy, wymiary obrazu, zjawisko czerwonych oczu,
ekspozycje, skale szarości, kolor skóry, ostrośd
• łatwy interfejs graficzny
• elastyczne kadrowanie obrazu
• konfigurowalny rozmiar, typ, format obrazu i inne parametry
• elastyczna integracja pracy klientów za pośrednictwem usług internetowych
FACEVACS-SDK
System pozwala klientom tworzyd nowe aplikacje rozpoznawania twarzy. Najważniejsze cechy:
17
• wiodące wśród algorytmów metody rozpoznawania twarzy (określenie jakości, weryfikacji,
identyfikacji próbki)
• szybka lokalizacja twarzy na obrazach i strumieniach wideo
• dokładne określenie charakterystyki zdjęcia (określenie ekspozycji, wykrywanie okularów,
zamkniętych oczu, wykrywanie jednolitych warunków oświetleniowych, sprawdzenie nienaturalnego
koloru, określenie płci, determinacja obrazu i geometrii twarzy)
Rysunek 5 Przegląd aplikacji Cognitec [14]
19
2 PODSTAWY ŚRODOWISKA OPROGRAMOWANIA ORAZ APLIKACJI
2.1 SPOSÓB REALIZACJI SYSTEMU.
System będzie miał za zadanie identyfikowad użytkowników na podstawie zdjęd twarzy
uchwyconej z kamery. Docelowym urządzeniem, na którym będzie stosowany jest komputer
przemysłowy z ekranem dotykowym. Testy systemu zostały przeprowadzone na osobistym laptopie
Asus:
• procesor: AMD Turion II Dual-Core 2.30 GHz
• pamięd RAM: 4,00 GB
• system operacyjny: 64-bitowy Windows 7 Professional
• kamera: 2 MPx
oraz przemysłowym komputerze z ekranem dotykowym:
• procesor: Intel Atom D525 1.8GHz dual core
• pamięd RAM: 1,00 GB
• system operacyjny: 32-bitowy Windows XP Professional
• kamera: 1.3 MPx
Metodą służącą do detekcji twarzy jest metoda oparta na kaskadowych klasyfikatorach Haara,
gdyż jest stosunkowo łatwa w użyciu oraz doskonale nadaje się do rozpoznawania obiektów na
obrazie. W fazie ekstrakcji cech, czyli rozpoznawania twarzy zostały użyte 3 metody: eigenface,
fisherface oraz LBPH (Local Binary Pattern Histogram). Testy systemu uwzględniają różne warunki
oświetleniowe, różne rozmiary obrazu z kamery oraz różnice wynikające z rozmiaru bazy danych
zdjęd. System ma pracowad w czasie rzeczywistym, dlatego wyniki w znaczny sposób będą zależały od
mocy obliczeniowej komputera, kamery, algorytmów rozpoznawania twarzy oraz rozmiarów bazy
danych zdjęd.
20
Rysunek 6 Podstawowy system rozpoznawania twarzy
2.2 BIBLIOTEKA OPENCV ORAZ EMGU CV.
OpenCV (ang. Open Source Computer Vision Library) jest ogólnodostępną biblioteką, służącą
głównie do przetwarzania obrazów w systemie czasu rzeczywistego. Jej interfejsy napisane w C++, C,
Python i Javie, wspierane są na wielu platformach np. Windows, Linux, Mac OS, iOS, Android. Projekt
został zainicjowany przez Intel Research i wydany w roku 1999. Pierwsza wersja alfa została
zaprezentowana na IEEE Conference on Computer Vision and Pattern Recognition w roku 2000.
Główne obszary pracy OpenCV to: zestawy narzędzi 2D oraz 3D, system rozpoznawania twarzy,
gestu, obiektów, interakcja człowieka z komputerem, roboty mobilne, widzenie stereoskopowe. Do
pracy w innych językach programowania (C#, Ch, Ruby) opracowano „wrappery”, czyli biblioteki
opakowujące takie jak np. EmguCV. W pracy użyta została biblioteka w wersji 2.4.9.
2.3 OPIS DZIAŁANIA PROGRAMU ROZPOZNAWANIA TWARZY.
Program pracuje w dwóch głównych trybach:
• normalnym
• administracyjnym
21
2.3.1 Instalacja
Program należy zainstalowad z pliku Identification Service.exe. Do poprawnego działania
aplikacji wymagane są następujące biblioteki systemowe:
• Microsoft Visual C++ 2008 Redistributable Package (vcredist_x86.exe)
• Microsoft .Net Framework 4 (dotNetFx40_Full_x86_x64.exe)
Jeśli wyżej wymienione biblioteki nie zostaną wykryte w systemie, zostaną automatycznie
zainstalowane przez instalator. Katalog z zainstalowaną aplikacją powinien posiadad strukturę, która
znajduje się w Dodatek A: Struktura katalogu z zainstalowaną aplikacją.
Opis katalogów i plików:
Cascades - zawiera klasyfikator do detekcji twarzy zwróconych frontalnie do kamery
x64 - biblioteki pakietu opencv umożliwiające uruchomienie programu w wersji 64 bitowej
x86 - biblioteki pakietu opencv umożliwiające uruchomienie programu w wersji 32 bitowej
FacesDatabase - zawiera próbki zdjęd twarzy dodanych w aplikacji
Tests - próbki twarzy z szerokim opisem parametrów utworzone podczas rozpoznawania w
trybie administracyjnym
Emgu.CV.dll - główna biblioteka programu EmguCV Imaging Processing
Emgu.CV.UI.dll - biblioteka programu EmguCV Presentation
Emgu.Util.dll - biblioteka programu EmguCV .Net Utilities
Identification Service.exe - główny program wykonywalny aplikacji
Identification Service.exe.config - konfiguracja aplikacji zawierająca jej ustawienia
22
2.3.2 Tryb normalny
Po uruchomieniu aplikacji ze skrótu umieszczonego na Pulpicie (Face Recognition - skrót) lub
pliku wykonywalnego znajdującego się w katalogu z zainstalowaną aplikacją (Identification
Service.exe), włącza się tryb normalny w trybie pełnoekranowym (Rysunek 7).
Rysunek 7 Tryb normalny
Jest to docelowa procedura aplikacji służąca do identyfikacji użytkowników. Rysunek 8
przedstawia schemat działania. Po wciśnięciu przycisku Start Face Recognition, włącza się domyślna
kamera urządzenia. Na środku obrazu z kamery widoczny jest niebieski prostokąt, który stanowi pole
dozwolone do rozpoznawania twarzy. Realizacja tego elementu ma na celu rozpoznawanie oraz
dodawanie twarzy z ściśle określonego położenia. Próbki twarzy wejściowych oraz próbki twarzy z
bazy danych są wykonywane z takiej samej odległości oraz z takim samym kątem oświetlenia (przy
założeniu niezmienności położenia i natężenia źródła światła). Jeśli na obrazie wejściowym znajdzie
się twarz, zostanie ona obrysowana zielonym prostokątem w odpowiednim rozmiarze, w celu
redukcji wpływu tła na próbkę. W czasie działania aplikacji przycisk Recognise jest nieaktywny do
momentu, aż prostokąt reprezentujący twarz znajdzie się w polu dozwolonym (tzn. w niebieskim
prostokącie). Jeśli zostaną spełnione wyżej wymienione warunki możliwe będzie dokonanie
rozpoznawania twarzy. Podczas rozpoznawania próbka wejściowa porównywana jest do zdjęd z
wcześniej utworzonej bazy danych w trybie administracyjnym. O wyniku negatywny użytkownik
dowiaduje się ze stosownego komunikatu Unrecognised! W wyniku pozytywnego rozpoznania
pokazuje się komunikat Recognised oraz imię i nazwisko podane podczas dodawania konkretnego
użytkownika. Oprócz tego zostanie wykonana akcja, która zależna jest od potrzeb (np.
przekierowanie na stronę z kontem danego pracownika).
24
2.3.3 Tryb administracyjny
Tryb administracyjny posiada znacznie więcej funkcji niż tryb normalny (Rysunek 9). Aby
uruchomid aplikację w tym trybie należy włączyd aplikację znajdującą się w docelowym katalogu
instalacyjnym z parametrem admin (np. uruchomid z linii komend aplikację ''Identification
Service.exe'' admin). W czasie działania aplikacji włączona jest domyślna kamera oraz widoczne są
dwa panele operatorskie i pasek menu. W pasku menu dostępne są następujące opcje: File, Add New
Person, Recogniser Type, Full Screen, Camera Image Size, Face Image Size, Restart Min Max, Allow
Beside Rectangle, Switch Cam.
25
Panel operatorski znajdujący się w prawym górnym rogu, wyświetla 4 ostatnio rozpoznawane
próbki twarzy wraz z etykietą. Panel znajdujący się pod nim umożliwia zmianę podstawowych
parametrów metod rozpoznawania twarzy.
Rysunek 9 Tryb administracyjny
26
TRYB DODAWANIA NOWYCH UŻYTKOWNIKÓW
Po przejściu w tryb dodawania nowych użytkowników do bazy danych widoczne są dwa panele
robocze oraz widok z domyślnej kamery (Rysunek 10). Panel górny wyświetla ostatnio uchwyconą
próbkę twarzy wraz z możliwością podania imienia i nazwiska użytkownika. Panel dolny zawiera opcje
uchwycenia wybranej ilości próbek twarzy oraz wyczyszczenia aktualnej bazy danych.
Rysunek 10 Tryb dodawania nowych użytkowników
27
3 PROBLEM WYKRYCIA TWARZY ORAZ PRZETWARZANIE DANYCH
3.1 KASKADOWE KLASYFIKATORY HAARA
Przed procesem rozpoznawania twarzy, należy dokonad jej detekcji na obrazie wejściowym. W
bibliotece OpenCV służy do tego Haar Feature-based Cascade Classifier, czyli klasyfikator cech Haaro
podobnych. Można zbudowad klasyfikatory służące do detekcji różnorodnego typu obiektów.
Paul Viola stworzył pierwszą metodę wykrywania obiektów na obrazie, którą udoskonalił
później Rainer Lienhart. Klasyfikator do detekcji obiektu, musi zostad odpowiednio przygotowany. Do
uczenia klasyfikatorów wykorzystuje się funkcje, które potrzebują kilkaset próbek obrazów
pozytywnych oraz negatywnych. Próbki pozytywne zawierają obiekty, które chcemy rozpoznad,
natomiast próbki negatywne zawierają tło utrudniające lub uniemożliwiające wykrycie obiektu (np.
twarzy). Ważnym elementem jest to, aby próbki były tych samych rozmiarów. Klasyfikator zwraca „1”
jeśli dany obraz jest podobny do próbek pozytywnych, natomiast w przeciwnym razie „0”.
Kaskada oznacza, że klasyfikator składa się z kilku prostszych klasyfikatorów (poziomów), które
są porównywane sekwencyjnie do obrazu poddanego detekcji, do momentu aż kandydat zostanie
odrzucony albo wszystkie poziomy przejdą z wynikiem pozytywnym. Odpowiednio wytrenowany
klasyfikator zostaje wygenerowany do pliku xml. [15]
W pracy został użyty gotowy klasyfikator haarcascade_frontalface.xml, wykrywający twarze
zwrócone frontalnie do kamery (profile twarzy zostają odrzucone). Metoda DetectHaarCascades
wykrywa twarz, która następnie zostaje obrysowana czerwonym prostokątem na obrazie
wejściowym.
28
3.2 UTRUDNIENIA W DETEKCJI TWARZY
Na analizę obrazu pod kątem detekcji istniejących twarzy ma wpływ szereg czynników. Są to
między innymi: kamera, tło obrazu, warunki oświetleniowe, a także wygląd twarzy.
3.2.1 Kamera
Dobór odpowiedniej kamery ma ogromny wpływ na jakośd obrazu. Kamery o niskiej
rozdzielczości sprawiają, że twarz zostaje zniekształcona i ciężko z niej wyodrębnid jakiekolwiek
specyficzne cechy niezbędne do detekcji. Szumy oraz szybkośd przetwarzania obrazu w kamerach
internetowych, często uniemożliwiają prawidłowe wskazanie twarzy. Aby uniknąd tych problemów w
wielu systemach komercyjnych stosuje się kamery wyspecjalizowane do konkretnych warunków. Na
przykład na obrazie mogą zostad zarejestrowane twarze ludzkie oraz obiekty przypominające twarz –
zarówno kształtem, charakterystycznymi cechami oraz kolorem. Są tą między innymi: twarze na
rysunku, zdjęciach z gazety, kartach, na bilbordach, koszulkach oraz twarze manekinów i posągów.
Rozwiązaniem tego problemu może byd zastosowanie kamery termowizyjnej, która umożliwia
wykluczenie analizowania twarzy „martwych”. Rozkład temperatury twarzy uwarunkowany jest
strukturą kostną, ułożeniem naczyo krwionośnych i gęstością mięśni, co sprawia że jest indywidualny
dla każdego człowieka. Niezmiennośd w czasie tych czynników sprawia, że wszystkie zmiany w
wyglądzie związane z upływem czasu, nie będą miały wpływu na rezultat rozpoznania osoby, gdyż
rejestrowana jest informacja anatomiczna. W tradycyjnych rozwiązaniach rejestrowany jest sygnał
luminancji, czyli światło odbite. Wraz z skutecznością wzrasta cena kamer termowizyjnych, które są
znacznie droższe od kamer tradycyjnych.
Rysunek 11 Obraz twarzy z kamery termowizyjnej [16]
29
3.2.2 Tło
Detekcja twarzy na obrazie polega najczęściej na otoczeniu jej prostokątną ramką, tak aby tło
miało jak najmniejszy udział w obrazie wynikowym. Ma to na celu wykluczenie z obrazu zbędnych
szumów, losowych zakłóceo, które mogą mied istotne znaczenie w późniejszej analizie
rozpoznawania twarzy. Metody bazujące na klasyfikatorach cech Haaro podobnych, używają
konkretnych wzorców podczas detekcji twarzy, dlatego zakłócenia te mogą spowodowad fałszywą
detekcję na obrazie wejściowym. W tle obrazu mogą znajdowad się też twarze „martwe” manekinów
lub inne zdjęcia umożliwiające niepoprawną detekcję twarzy. Rozwiązaniem tego problemu może byd
zastosowanie algorytmu detekcji ruchu klatek, dzięki czemu analizowane są tylko te, które nie są
statyczne. Poklatkowe porównanie przesuwających się lub pojawiających prostokątów w połączeniu z
wynikiem klasyfikatora Haar'a może dad pożądany rezultat.
Rysunek 12 Błędnie rozpoznane zdjęcie twarzy w tle
30
3.2.3 Oświetlenie
Algorytm detekcji twarzy jest bardzo wrażliwy na czynniki warunków oświetleniowych. Rodzaj
oświetlenia (żarówki, świetlówki, diody LED, światło dzienne) ma ogromny wpływ na detekcję twarzy,
a także na sam proces rozpoznawania konkretnych próbek twarzy. Mogą pojawid się różnice w
wyglądzie danej twarzy, której zdjęcia zostały zrobione w różnych warunkach. Kamera rejestruje
światło odbite od twarzy, dlatego w zależności od natężenia, kąta, a także odległości twarzy od źródła
światła, próbki obrazu twarzy są inne. Jest to główne utrudnienie dla systemów bazujących na
rozpoznawaniu koloru skóry. Dlatego bardzo ważne jest, aby projektowad systemy przystosowane do
konkretnych warunków zewnętrznych.
Rysunek 13 Próbki obrazu twarzy zrobione w różnych warunkach oświetleniowych
3.2.4 Położenie i wygląd twarzy
Oprócz czynników zewnętrznych na detekcję ma wpływ sama twarz. Metody oparte na
wzorcach, jaką jest metoda cech Haar'a, są wrażliwe na punkcie obrotów, kąta nachylenia, starzenia
się osoby rozpoznawanej, mimiki oraz różnego rodzaju dodatków takich jak: okulary, zarost, nakrycia
zasłaniające owal głowy itp. W wyniku tego algorytm może nie zidentyfikowad specyficznych cech
twarzy. Zwykłe zamknięcie oczu lub uśmiech może uniemożliwid detekcję bądź rozpoznanie danej
twarzy. W komercyjnych systemach stosuje się proces wstępnej normalizacji obrazu, który między
innymi poddaje obraz procedurze rotacji oraz skalowania względem oczu i ust, a także usuwa zbędne
elementy w obrazie (tj. okulary, makijaż, wąsy, broda).
31
Rysunek 14 Nie wykryto twarzy z okularami
Kaskadowy klasyfikator Haara użyty w pracy nie wykrywa także twarzy obróconych o
określony kąt (co najmniej 15 stopni).
Rysunek 15 Nie wykryto twarzy obróconej o określony kąt
32
3.3 OBRÓBKA TWARZY DO DALSZEJ ANALIZY ORAZ GENEROWANIE BAZY DANYCH
Ważnym zadaniem w rozpoznawaniu twarzy jest to, aby próbki nadawały się do dalszej analizy.
W tym celu pozyskana twarz musi przejśd kilka etapów konwersji, zanim będzie ją można
porównywad. Jeśli dojdzie do detekcji na obrazie wejściowym, zdjęcie twarzy zostaje poddane
redukcji wpływu tła. Po zmniejszeniu, pozyskana próbka jest konwertowana do skali szarości oraz
przeskalowana do rozmiarów podanych w opcji Face Image Size, w parametrze Width oraz Height.
Bardzo ważny jest ten etap, gdyż do poprawnego działania, algorytmy Eigenface oraz Fisherface,
potrzebują takich samych rozmiarów próbek w bazie danych oraz zdjęd twarzy, które należy
rozpoznad. W przeciwieostwie do nich, metoda LBPH doskonale radzi sobie z różnymi rozmiarami
plików w bazie danych. Na koniec, zdjęcie poddane jest operacji pozyskania histogramu. Tak
otrzymany obraz jest kompatybilny i może zostad użyty jako próbka w bazie danych bądź jako zdjęcie
pozyskane do rozpoznania.
Algorytmy dla podanych parametrów domyślnych najlepiej pracują, gdy w bazie danych
znajduje się przynajmniej po 10 obrazów każdego użytkownika. Podczas dodawania nowej twarzy jest
ona zapisywana do katalogu \FacesDatabase\.. w formacie .jpg z nazwą face_imie_nazwisko oraz
losową liczbą, w celu nie nadpisywania zdjęd. Oprócz zapisania konkretnego pliku zdjęcia, następuje
także wpis do pliku IdentificationDatabase.xml, który ma następującą strukturę:
<Database_of_Faces>
<Person>
<Name>Imie_Nazwisko</Name>
<File>face_Imie_Nazwisko_923364444.jpg</File>
</Person>
...
</Database_of_Faces>
33
4 METODY ROZPOZNAWANIA TWARZY
4.1 METODA TWARZY WŁASNYCH (EIGENFACE)
WSTĘP TEORETYCZNY
Wektory własne macierzy to niezerowe wektory, których kierunek nie ulega zmianie po
przekształceniu endomorfizmem.
Wartośd własna dla każdego wektora własnego, określa czynnik podobieostwa pomiędzy tymi
wektorami. Pomnożona przez wektor może zmienid jego wartośd albo zwrot, lecz nie zmienia jego
kierunku.
Kowariancja jest liczbą określającą zależnośd liniową między zmiennymi losowymi.
Macierz kowariancji to macierz, której elementem na miejscu i, j jest kowariancja pomiędzy i-
tą oraz j-tą zmienną z wektora losowego.
Analiza głównych składowych jest matematyczną procedurą, która wykorzystywana jest
głównie jako narzędzie w analizie danych oraz do dokonywania modeli predykcyjnych. Do analizy
wielu zmiennych wykorzystuje wektory własne. Składa się ona z kilku etapów:
1. Odejmowanie wartości średniej z danych od każdej zmiennej.
2. Obliczanie i tworzenie macierzy kowariancji.
3. Obliczanie wektorów i wartości własnych z macierzy kowariancji.
4. Wybór wektorów własnych odpowiadających największym wartościom własnym.
5. Pomnożenie transponowanych wektorów własnych przez dostosowane zmienne danych.
TWARZE WŁASNE
Eigenface jest koncepcją służącą do rozpoznawania twarzy, bazującą na analizie tzw. głównych
składowych (PCA, ang. Principal Component Analysis). Jej głównym zadaniem jest wychwytywanie
zmian w bazie obrazów twarzy oraz wykorzystanie tych informacji do porównania i kodowania zdjęd
w kontekście holistycznym. Podejście to jest uznawane za pierwszą, działającą technologię do
rozpoznawania twarzy oraz wykorzystywane jest jako podstawa do wielu komercyjnych produktów.
34
Rysunek 16 Przykład twarzy własnych z laboratorium AT&T w Cambridge
Nazwa eigenfaces oznacza wektory własne, wykorzystywane do rozpoznawania twarzy. Idea
wykorzystania składowych głównych do reprezentowania twarzy została opracowana przez L.
Sirovich oraz M. Kirby (1987). Wykorzystali ją M. Turk oraz A. Pentland (1991) w swoich badaniach.
Twarz opisana jest przez zestaw charakterystycznych widoków, w których traktowana jest jako
obiekt dwuwymiarowy. Wykorzystywana jest informacja o jasności poszczególnych pikseli na obrazie
twarzy lub jej części. Twarz traktowana jako macierz, jest zbiorem wektorów własnych macierzy
kowariancji kolekcji obrazów twarzy. Uchwycone są w ten sposób informacje o najbardziej
charakterystycznych różnicach w cechach twarzy (nos, oczy, usta) występujących pośród obrazów
wejściowych twarzy. Ważnym elementem podczas rozpoznawania twarzy jest efektywne
przechowywanie w bazie danych.
Dzięki przechowywaniu niewielkiej liczby parametrów twarzy, złożonośd obliczeo oraz
przestrzeo jest zmniejszona, co wpływa na szybkośd i skutecznośd działania algorytmu. Operacje
mogą byd dokonywane na wielu twarzach w krótkim czasie, ale sposób rozpoznawania twarzy z
wykorzystaniem eigenface ma jedna istotną wadę. Do poprawnego procesu rozpoznania potrzebuje
twarzy ustawionych frontalnie w podobnym oświetleniu. [17]
ALGORYTM EIGENFACE
Przygotowanie obrazów eigenface
1.Przygotowanie zestawu S złożonego z M zdjęd twarzy. Każde zdjęcie jest transformowane do
wektora o długości N.
𝑆 = {𝛼1, 𝛼2,𝛼3, … , 𝛼𝑀}
35
Rysunek 17 Zestaw S składający się z 16 zdjęd
2. Przygotowanie obrazu średniego ze zdjęd zestawu S.
𝜓 =1
𝑀 𝛼𝑛
𝑀
𝑛=1
Rysunek 18 Obraz średni dla zestawu S
36
3. Znalezienie dystansu (różnicy) Φ między obrazem wejściowym i obrazem średnim.
Φi = αi −𝜓
4. Poszukiwanie zestawu składającego się z M ortonormalnych wektorów 𝑢𝑛 , które najlepiej
opisują rozkład danych. Wektor 𝑢𝑘 jest wybierany następująco:
𝜆𝑘 =1
𝑀 (𝑢𝑘Φn )2
𝑀
𝑛=1
jest maksymalne dla
𝑢𝑙𝑇𝑢𝑘 = 𝛿𝑙𝑘 =
1 𝑑𝑙𝑎 𝑙 = 𝑘0 𝑑𝑙𝑎 𝑙 ≠ 𝑘
,gdzie
𝑢𝑘 - wektor własny macierzy kowariancji C
𝜆𝑘 - wartośd własna macierzy kowariancji C
5. Obliczenie macierzy kowariancji C.
𝐶 =1
𝑀 ΦnΦn
T
𝑀
𝑛=1
= 𝐴𝐴𝑇
𝐴 = {Φ1, Φ2, Φ3, … , Φn }
6. 𝐴𝑇
𝐿𝑚𝑛 = ΦmT Φn
7. Znalezienie wektorów własnych 𝑣𝑙 , 𝑢𝑙
𝑢𝑙 = 𝑣𝑙𝑘Φk l = 1, … M
𝑀
𝑘=1
37
Rysunek 19 Eigenfaces dla zdjęd twarzy z zestawu S
PROCEDURA ROZPOZNANIA TWARZY
1. Transformowanie obrazu twarzy wejściowej do postaci eigenface. Porównanie obrazu
wejściowego z obrazem uśrednionym oraz pomnożenie ich różnicy przez każdy wektor własny
macierzy L. Każda wartośd reprezentuje wagę i zapisana jest w wektorze 𝛺
𝜔𝑘 = 𝑢𝑘𝑇(𝛼 − 𝜓)
𝛺𝑇 = [ω1, ω2,ω3, … , ωn ]
2. Poszukiwanie klasy twarzy najlepiej opisującej obraz twarzy wejściowej za pomocą
minimalizacji dystansu Euklidesowego.
휀𝑘 = 𝛺 − 𝛺𝑘 2
3. Wejściowa twarz należy do pewnej klasy twarzy jeśli jej dystans 휀𝑘 ma wartośd poniżej
określonego progu. Twarz wejściowa zostanie rozpoznana jako jedna z twarzy z zestawu S, dla której
dystans Euklidesowy będzie najmniejszy. [18]
38
4.2 METODA FISHERA (FISHERFACE)
W analizie dyskryminacyjnej (DA) nacisk kładziony jest na kategoryzację i klasyfikację danych,
zamiast na sposób ich reprezentacji. Najbardziej znaną metodą DA jest liniowa analiza
dyskryminacyjna z liniowym dyskryminatorem Fishera, która używana jest w uczeniu maszynowym
do znalezienia liniowych kombinacji cech, które będą rozróżniad, w najbardziej efektywny sposób,
dwie lub więcej klas obiektów. Liniowy dyskryminator Fishera jest klasyczną techniką rozpoznawania
twarzy rozwiniętą przez R. Fishera w 1936 roku. Jest szeroko używaną metodą w celu ekstrakcji cech
oraz redukcji wymiarowości.
Jedyną wadą metody Fisherface jest to, że do poprawnego rozpoznania twarzy potrzebuje kilka
próbek danych treningowych. W tym celu opracowano metodę, która uzyskuje kilka zdjęd twarzy z
tylko jednej próbki. Technika ta opiera się na:
• Poprawnej transformacji geometrycznej takiej jak: rotacji, translacji, skalowaniu obrazu
• Wariacji w skali szarości takiej jak: symulacji kierunkowego oświetlenia, utworzenia
sztucznego szumu
Rysunek 20 Przykłady zdjęd (baza danych z Yale) zrobionych w różnych warunkach oświetleniowych, z brakiem lub obecnością okularów, z różną mimiką twarzy.
Metoda ta jest mniej wrażliwa na oświetlenie oraz mimikę twarzy, dzięki czemu ma mniejszy
wskaźnik błędu rozpoznawania, a także wymaga mniej czasu obliczeniowego od pozostałych metod.
Doskonale radzi sobie także z obecnością okularów na twarzy, co stanowi dużą zaletę podczas dużej
różnorodności zdjęd treningowych w bazach danych twarzy. [19]
39
Rysunek 21 Z lewej strony zdjęcie osoby noszącej okulary. Z prawej strony Fisherface rozpoznający obecnośd okularów.
4.3 METODA LBPH (LOCAL BINARY PATTERN HISTOGRAM)
Local Binary Pattern jest bardzo wydajnym operatorem tekstury, który identyfikuje każdy
piksel obrazu za pomocą progowania wartości pikseli jego sąsiadów. Dzięki temu każdemu pikselowi
przyporządkowana jest liczba binarna (8 bitowa). Głównym czynnikiem, który sprawia, że metoda
LBPH jest bardzo często stosowana w aplikacjach jest to, że jest odporna na monotoniczne zmiany w
skali szarości obrazu wywołane różnicami oświetlenia. Kolejną istotną cechą jest prostota obliczeo,
dzięki której analiza obrazów może byd realizowana w bardzo szybkim czasie.
Rysunek 22 Operator LBP proguje każdy piksel obrazu wobec jego sąsiadów i interpretuje wynik jako liczbę binarną
40
Podstawowym pomysłem na rozwój operatora LBP było to, że każda dwuwymiarowa
powierzchnia tekstury może byd opisana za pomocą dwóch parametrów: lokalnie przestrzennych
wzorców, kontrast skali szarości. Oryginalnie operator opisywał każdy piksel za pomocą progowania
3x3 najbliższych sąsiadów dla każdego punktu centralnego i brał pod uwagę wynik jako liczbę
binarną. Operator następnie został rozwinięty tak, aby mógł brad pod uwagę różne liczby i
kombinacje sąsiadów.
Kolejnym rozwinięciem dla oryginału było wprowadzenie tzw. jednolitych wzorców, które
zmniejszały długośd wektorów własnych. LBP był nazywany jednolitym, jeśli wzorzec binarny posiadał
co najwyżej dwa przejścia bitowe z 0 na 1 i vice versa. Na przykład wzorzec 00000000 (0 przejśd)
01110000 (2 przejścia) są wzorcami jednolitymi, dlatego każdy z nich ma osobną etykietę, natomiast
11001001 (4 przejścia) 01010010 (6 przejśd), nie są wzorcami jednolitymi i każdy z nich ma jedną
wspólną etykietę. Dla przykładu, dla sąsiedztwa 8 pikseli w kombinacji prostokątnej istnieje 256
wzorców, z czego 58 jest jednolitych, co daje 59 różnych etykiet.
W celu klasyfikacji twarzy, LBP są kolekcjonowane w histogramy. Aby porównad dwie twarze
należy porównad ich histogramy. Najprostsza metoda rozpoznawania twarzy, zaproponowana przez
Ahonen'a (2006) jest następująca:
1. Podzielid zdjęcie twarzy na lokalne regiony
2. Dla każdego regionu wydobyd niezależny deskryptor LBP
3. Połączyd wszystkie lokalne deskryptory w jeden globalny, który będzie reprezentowad opis
danej twarzy [20]
Rysunek 23 Opis twarzy z wykorzystaniem LBP [21]
41
5 EKSPERYMENTY ORAZ REZULTATY
Eksperymenty uwzględniają różne parametry wejściowe aplikacji, różne wielkości referencyjnej
bazy twarzy oraz różne warunki oświetleniowe. Głównym wyznacznikiem identyfikacji osoby jest
dystans zwrócony przez konkretny algorytm dla danej twarzy. Dla metody Eigenface oraz Fisherface
jest to najmniejsza odległośd euklidesowa między wektorami wynikowymi danej twarzy oraz
wektorami twarzy znajdującymi się w bazie danych. Dla LBPH używany jest klasyfikator k-najbliższych
sąsiadów z porównaniem histogramu danej twarzy z histogramami twarzy w bazie danych metodą
chi kwadrat. Rezultaty zawierają odległości zwracane dla każdej z twarzy znajdującej się w bazie
danych (numery twarzy znajdują się w pierwszym wierszu każdej tabeli). Dodatkowo dla algorytmu
Custom Eigenface został przeprowadzony test dla twarzy nieznajdującej się w bazie danych. Dla
każdej twarzy zostało przeprowadzone kilka prób (numery kolejnych prób znajdują się w pierwszej
kolumnie każdej tabeli). Próg rozpoznawania został doświadczalnie dobrany dla każdej metody
identyfikacji. Jego wartośd wyznaczona na podstawie najmniejszego dystansu zwróconego przez
algorytm dla twarzy nieznajdującej się w bazie danych zdjęd. Jeśli w którejś próbie został zwrócony
dystans większy niż próg rozpoznawania, co świadczy o negatywnym wyniku rozpoznawania, został
on przedstawiony w tabeli kolorem czerwonym. Ostatni wiersz każdej tabeli zawiera zakres
dystansów zwracanych dla danej twarzy we wszystkich próbach testu. Dzięki zakresowi można
zobaczyd jakie wartości dla danej twarzy zwracają przetestowane algorytmy. Im zakres dystansów
będzie węższy, tym stabilniejszych wyników autentykacji użytkowników można się spodziewad dla
danej metody rozpoznawania twarzy.
5.1 EKSPERYMENTY PRZY ŚWIETLE SZTUCZNYM
5.1.1 Rezultaty otrzymane dla bazy danych zawierających 9 różnych twarzy (po 10 zdjęd dla
każdej z nich)
Parametry programu:
43
5.1.2 Rezultaty otrzymane dla bazy danych zawierających 8 różnych twarzy (po 10 zdjęd dla
każdej z nich)
Parametry programu:
LBPH (PRZYJĘTO PRÓG 60)
EIGENFACE (PRZYJĘTO PRÓG 3000)
44
FISHERFACE (PRZYJĘTO PRÓG 3500)
5.2 EKSPERYMENTY PRZY ŚWIETLE DZIENNYM
5.2.1 Rezultaty otrzymane dla bazy danych zawierających 8 różnych twarzy (po 30 zdjęd dla
każdej z nich)
Parametry programu:
46
5.3 EKSPERYMENTY DLA ALGORYTMU EIGENFACE NIEKORZYSTAJĄCEGO Z GOTOWEJ BIBLIOTEKI
EMGU CV
5.3.1 Rezultaty otrzymane dla bazy danych zawierających 6 różnych twarzy (po 5 zdjęd dla każdej
z nich)
Metoda rozpoznawania twarzy Custom Eigenface została napisana zgodnie z algorytmem
podanym w podrozdziale 4.1. Do obliczeo matematycznych wykorzystano gotową bibliotekę
Math.Net Numerics, która znacznie ułatwia pracę z macierzami. Jednak z powodu niskiej wydajności
podczas mnożenia macierzy o dużych wymiarach (czas obliczeo), bazy danych nie są tak duże jak dla
metod korzystających z biblioteki Emgu CV.
Parametry programu:
CUSTOMEIGEN (PRZYJĘTO PRÓG 12000)
Twarz numer 7 to twarz nieznajdująca się w bazie danych.
47
6 PODSUMOWANIE
Główne założenie pracy, czyli stworzenie systemu do identyfikacji użytkowników zostało
zrealizowane. System może zostad wykorzystany w zakładach przemysłowych jako kontrola dostępu
do pomieszczeo, kontrola czasu wejśd/wyjśd pracowników lub zwykłego zarządzania zasobami ludzki.
Dzięki komponentowi Emgu CV, a dokładniej bibliotece OpenCV, w prosty sposób udało się
zrealizowad detekcję twarzy z wykorzystaniem kaskadowych klasyfikatorów Haar'a oraz
rozpoznawanie twarzy z wykorzystaniem trzech dostępnych algorytmów.
Testy wykazały, że system który jest głównym tematem pracy, cechuje się dużą skutecznością
rozpoznawania oraz szybkim czasem działania. Okazało się także, że wielkośd zdjęd twarzy oraz wybór
rozdzielczości obrazu ma duży wpływ na szybkośd działania algorytmów, aplikacji, a także na główną
skutecznośd rozpoznawania. Najbardziej optymalną rozdzielczością obrazu okazała się rozdzielczośd
320x240 pikseli. Poniżej podanej rozdzielczości dochodziło do problemów detekcji twarzy lub dystans
pomiędzy aktualną twarzą a rozpoznaną z bazy danych jest znacznie większy. Powyżej podanej
rozdzielczości program działał znacznie wolniej, co wynikało z większej ilości obliczeo, które muszą
wykonad algorytmy detekcji twarzy i ewentualnie metody rozpoznawania. O ile rozdzielczośd kamery
ma zapewnid identyfikację zdarzenia (szczegółowośd) to szybkośd odświeżania ma znaczący wpływ na
szanse zarejestrowania takiego zdarzenia. Dla większych rozdzielczości skutecznośd rozpoznawania
nie wzrosła, im większe rozdzielczości tym dystans między rozpoznanymi twarzami był większy. Ale
dzięki temu, że wzrósł też dystans między twarzą, której nie ma w bazie danych a najlepszym jej
dopasowaniem, można było zwiększyd próg rozpoznawania, co nie pogarszało skuteczności
rozpoznawania. Najbardziej optymalną, dla działania programu, wielkością obrazów twarzy w bazie
danych okazała się wielkośd 100x100 pikseli dla rozdzielczości obrazu wejściowego 320x240 pikseli.
Dla większych rozdzielczości obrazu należało dobrad odpowiednio większe parametry wielkości
obrazów twarzy, w celu zminimalizowania dystansu zwracanego przez algorytmy rozpoznawania.
Eksperymenty wykazały, że najlepszą metodą do prawidłowego funkcjonowania systemu autoryzacji
użytkowników opisanego w pracy jest metoda LBPH (Local Binary Pattern Histogram). Przede
wszystkim jest najbardziej odporna na zmiany oświetlenia z czterech testowanych metod, co jak się
okazało, ma fundamentalne znaczenie w działaniu systemu. Jest także uniwersalna, gdyż nie
potrzebuje identycznych rozmiarów zdjęd w bazie danych z obrazami. Wyniki testów pokazują, że
LBPH ma największą skutecznośd w rozpoznawaniu twarzy, a także przy doborze odpowiedniego
progu rozpoznawalności, twarze nie znajdujące się w bazie danych nie zostaną pomyślnie
rozpoznane. Z eksperymentów wynika, że zakres zwracanych minimalnych i maksymalnych wartości
dystansu dla metod Eigenface oraz Fisherface był znacznie większy niż dla metody LBPH. Podobne
rezultaty otrzymano dla różnych wielkości bazy zdjęd twarzy, różnych parametrów aplikacji oraz przy
różnych warunkach oświetleniowych. Świadczy to o stabilności metody używająca liniowego
dyskryminatora Fishera. Podczas testów udało się jednak zanotowad istotną wadę algorytmu LBPH,
gdyż jest czuły na odległośd twarzy od kamery. Najlepsze rezultaty otrzymano, gdy twarze pobrano
do analizy z takiej samej odległości co twarze wcześniej pozyskane do bazy danych.
Metoda wykorzystująca algorytm Eigenface, która nie korzysta z gotowej biblioteki Emgu CV,
wykazuje bardzo dobre rezultaty dla twarzy znajdujących się w bazie danych. Ma jednak kilka
istotnych wad. Przede wszystkim z powodu na niską wydajnośd obliczeniową pakietu Math.Net
Numerics mnożenie macierzy o dużych wymiarach spowalnia działanie całego systemu. Dla systemu
działającego w czasie rzeczywistym jest to duże utrudnienie. Pomimo wysokiej skuteczności
rozpoznawania twarzy, metoda nie radzi sobie z twarzami nie znajdującymi się w bazie danych.
48
Przypisuje twarz najbardziej odpowiadającej twarzy wejściowej z dystansem, często mniejszym niż
próg rozpoznawania. Sprawia to, że osoba nieuprawniona może uzyskad dostęp do konta
użytkownika istniejącego w bazie danych.
Program można udoskonalid o algorytm detekcji skóry na obrazie wejściowym. Ma on za zadanie
odrzucid potencjalnie zaakceptowane obszary obrazu, których barwa nie spełnia określonych
wymogów. Dzięki temu można odrzucid twarze, które nie mają koloru skóry ludzkiej. Dodatkowo na
skutecznośd może wpłynąd dodanie algorytmu, który wykrywa mrugnięcia osoby poddawanej
identyfikacji, co będzie dowodem na to, że przed kamerą stoi prawdziwa osoba, a nie tylko jej
zdjęcie. Wykorzystanie kamery termowizyjnej zwalnia z implementowania wyżej wymienionych
algorytmów, ale wiąże się to z poważnym kosztem. Pomimo wszelkich zabezpieczeo istnieją
różnorodne metody, które pozwalają oszukad system rozpoznawania. W związku z tym, coraz więcej
środków i czasu poświęca się na rozwój metod biometrycznych badających cechy fizyczne i
behawioralne.
Za oryginalne osiągnięcia dyplomanta uważa się:
• porównanie komercyjnych systemów rozpoznawania twarzy
• zaimplementowanie algorytmu Eigenface z wykorzystaniem biblioteki Math.Net
Numerics
• zaimplementowanie metod służących do dodawania oraz usuwania użytkowników z bazy
danych zdjęd programu
• wykorzystanie gotowych metod detekcji oraz rozpoznawania twarzy z biblioteki Emgu CV
• testowanie oraz porównanie dostępnych algorytmów rozpoznawania twarzy
• stworzenie systemu do identyfikacji użytkowników
• zaimplementowanie programu instalacyjnego systemu rozpoznawania twarzy
49
BIBLIOGRAFIA
[1] A. Pentland and T. Choudhury, "Personalizing Smart Environments: Face Recognition for
Human Interaction," pp. 1-4, 1999.
[2] K. Lawiruk. (2004) Witryna sieci Web kartyonline.pl. [Online].
http://www.kartyonline.pl/ciek.php?id=21
[3] Karta elektroniczna. (2013) Witryna sieci Web wikipedia.org. [Online].
http://pl.wikipedia.org/wiki/Karta_elektroniczna
[4] iButton. (2013) Witryna sieci Web wikipedia.org. [Online].
http://pl.wikipedia.org/wiki/IButton
[5] Ivo Baran. (2007) Witryna sieci Web wikimedia.org. [Online].
http://upload.wikimedia.org/wikipedia/commons/a/a1/Dallas_key_and_sensor.jpg
[6] RFID. (2013) Witryna sieci Web wikipedia.org. [Online]. http://pl.wikipedia.org/wiki/RFID
[7] RFID - between spying and utility. (2005) Witryna sieci Web Softpedia.com. [Online].
http://i1-news.softpedia-static.com/images/news2/RFID-between-spying-and-utility-3.jpg
[8] W. Zhao, R. Chellappa, P. J. Philips, and A. Rosenfeld, "Face Recognition: A Literature
Survey," pp. 401 - 403, 2003.
[9] FaceFirst Recognition Technology. (2013) Witryna sieci Web firmy FaceFirst Systems.
[Online]. http://www.facefirst.com
[10] FaceFirst Mobile. (2013) Witryna sieci Web firmy FaceFirst Systems. [Online].
http://www.facefirst.com/how-it-works/mobile
[11] ZKTEcoEu. (2013) Witryna sieci Web firmy ZKTechnology. [Online].
http://www.zktechnology.eu
[12] MultiBio 700 Face & RFID & FP. (2013) Witryna sieci Web firmy ZKTechnology. [Online].
http://www.zktechnology.eu/index.php/categories-11/t-a-ac-terminals/kalypso-series/face-rfid-
fp-91
[13] Cognitec. (2013) Witryna sieci Web firmy Cognitec Systems. [Online].
http://www.cognitec-systems.de/
[14] Cognitec Products. (2013) Witryna sieci Web firmy Cognitec Systems. [Online].
http://www.cognitec-systems.de/files/layout/img/headers/products.jpg
[15] OpenCv Dev Team. (2013) Witryna sieci Web opencv.org. [Online].
http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html
50
[16] FLIR Infrared Cameras. (2013) Witryna sieci Web firmy FLIR Systems. [Online].
http://www.flir.com/uploadedImages/Thermography_USA/Industries/ATS/Images/1344x784-
Cooled-InSb-14um-Pitch-SC8300-face.jpg
[17] Magdalena Małyszka and Tomasz Dąbrowski. (2012, styczeo) Witryna sieci Web
cognicaptcha.wordpress.com. [Online].
http://cognicaptcha.wordpress.com/2012/01/08/eigenface/
[18] S. Serrano. (2004) Witryna sieci Web Santiago Serrano. [Online].
http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm
[19] P. N. Belhumeur, J. P. Hespanha, and D. J. Kriegman, "Eigenfaces vs. Fisherfaces:
Recognition Using Class Specific Linear," vol. 19, no. 7, 1997.
[20] Local Binary Patterns. (2013) Witryna sieci Web scholarpedia.org. [Online].
http://www.scholarpedia.org/article/Local_Binary_Patterns
[21] Matti Pietikäinen. (2009) Witryna sieci Web scholarpedia.org. *Online+.
http://www.scholarpedia.org/article/File:LBP-face.jpg
51
DODATEK A: STRUKTURA KATALOGU Z ZAINSTALOWANĄ APLIKACJĄ
| Emgu.CV.dll
| Emgu.CV.UI.dll
| Emgu.Util.dll
| Identification Service.exe
| Identification Service.exe.config
|
+---Cascades
| haarcascade_frontalface_default.xml
|
+---FacesDatabase
+---Tests
+---x64
| cublas64_50_35.dll
| cudart64_50_35.dll
| cufft64_50_35.dll
| cvextern.dll
| cvextern_test.exe
| npp64_50_35.dll
| opencv_calib3d249.dll
| opencv_contrib249.dll
| opencv_core249.dll
| opencv_features2d249.dll
| opencv_ffmpeg249_64.dll
| opencv_flann249.dll
52
| opencv_gpu249.dll
| opencv_highgui249.dll
| opencv_imgproc249.dll
| opencv_legacy249.dll
| opencv_ml249.dll
| opencv_nonfree249.dll
| opencv_objdetect249.dll
| opencv_photo249.dll
| opencv_stitching249.dll
| opencv_video249.dll
| opencv_videostab249.dll
|
+---x86
| cublas32_50_35.dll
| cudart32_50_35.dll
| cufft32_50_35.dll
| cvextern.dll
| Emgu.CV.dll
| Emgu.CV.UI.dll
| Emgu.Util.dll
| npp32_50_35.dll
| opencv_calib3d249.dll
| opencv_contrib249.dll
| opencv_core249.dll
| opencv_features2d249.dll
| opencv_ffmpeg249.dll
| opencv_flann249.dll
| opencv_gpu249.dll
| opencv_highgui249.dll
53
| opencv_imgproc249.dll
| opencv_legacy249.dll
| opencv_ml249.dll
| opencv_nonfree249.dll
| opencv_objdetect249.dll
| opencv_photo249.dll
| opencv_stitching249.dll
| opencv_video249.dll
| opencv_videostab249.dl
55
TWORZENIE OBIEKTÓW EIGENFACERECOGNIZER, FISHERFACERECOGNIZER, LBPHFACERECOGNIZER,
CUSTOMEIGENFACERECOGNIZER
ROZPOZNAWANIE TWARZY Z OBRAZKA TYPU IMAGE<GRAY, BYTE>