Identification methods - face recognition - bachelor thesis

57
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

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.

10

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]

18

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

23

Rysunek 8 Schemat programu w trybie normalnym

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:

42

LBPH (PRZYJĘTO PRÓG 60)

EIGENFACE (PRZYJĘTO PRÓG 3000)

FISHERFACE (PRZYJĘTO PRÓG 3500)

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:

45

LBPH (PRZYJĘTO PRÓG 60)

EIGENFACE (PRZYJĘTO PRÓG 3000)

FISHERFACE (PRZYJĘTO PRÓG 3000)

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

54

DODATEK B: KOD PROGRAMU

GŁÓWNA METODA APLIKACJI

55

TWORZENIE OBIEKTÓW EIGENFACERECOGNIZER, FISHERFACERECOGNIZER, LBPHFACERECOGNIZER,

CUSTOMEIGENFACERECOGNIZER

ROZPOZNAWANIE TWARZY Z OBRAZKA TYPU IMAGE<GRAY, BYTE>

56

POBIERANIE DANYCH Z BAZY ORAZ UCZENIE ALGORYTMÓW DO ROZPOZNAWANIA TWARZY

57

METODA ALGORYTMU CUSTOM EIGENFACE ROZPOZNAJĄCA TWARZ ORAZ ZWRACAJĄCA

REZULTAT W POSTACI ETYKIETY I DYSTANSU

METODA UCZĄCA ALGORYTM CUSTOM EIGENFACE ZA POMOCĄ ZDJĘD Z BAZY DANYCH