4. Obraz twarzy jako identyfikator biometryczny J. Jakubowski 1
4.1. Powstawanie obrazu cyfrowego Głos sygnał akustyczny jednowymiarowy analogowy, w którym zmienną niezależną jest czas a zależną wartość ciśnienia akustycznego (w praktyce wartość napięcia na wyjściu mikrofonu) Obraz sygnał dwuwymiarowy, reprezentujący informację o obiekcie rzeczywistym (ze świata analogowego); jego zmienne niezależne mają sens położenia punktu na płaszczyźnie a zmienną zależną jest natężenie promieniowania (widzialne lub IR) odpowiadające temu punktowi (np. w skali szarości dla obrazów czarno-białych). W rzeczywistych sygnałach występuje nieskończenie wiele wartości zmiennych niezależnych oraz nieskończenie wiele różnych wartości zmiennych zależnych konieczność próbkowania i kwantyzacji. Uzyskiwanie jednowymiarowych sygnałów cyfrowych: J. Jakubowski 2
Uzyskiwanie obrazów cyfrowych aparaty cyfrowe, kamery, skanery, aparaty rengtenowskie itp., które proces dyskretyzacji i kwantyzacji realizują dzięki światłoczułym matrycom CCD lub CMOS. J. Jakubowski 3
Kwantyzacja w przestrzeni - pikselizacja x a t 1, t 2 próbkowanie x m, n - próbki obrazu pobrane z częstotliwościami : m = 0 M 1 n = 0 N 1 T 12 T 22 f 1 = 1 T 1 f 2 = 1 T 2 x a t 1, t 2 x m, n = x a m T 1 + t 1, n T 2 + t 2 dt 1 dt 2 T 1 2 T 2 2 x m, n T 2 T 1 próbka obrazu to nie punkt, ale element obrazu o wymiarach T 1 xt 2 zwany pikselem: picture element J. Jakubowski 4
A co z wartościami próbek, czyli pikseli? wartości z matrycy wartości z przetwornika ADC W praktyce pamiętania i analizy obrazów monochromatycznych jasność piksela kodowana jest najczęściej za pomocą: liczb całkowitych 8-bitowych uint8 (stopnie jasności od 0 do 255) przy zapisie do plików graficznych liczb całkowitych 16-bitowych uint16 (stopnie jasności od 0 do 65635) przy zapisie do plików graficznych liczb zmiennoprzecinkowych double (praktycznie ciągła skala od 0 do 1, liczby 64-bitowe) w środowiskach przetwarzania danych np. Matlab, Python J. Jakubowski 5
kwantyzacja w przestrzeni (pikselizacja) obraz rzeczywisty Podsumowanie: obraz rzeczywisty obraz cyfrowy kwantyzacja w stanach (kwantyzacja wartości) obraz cyfrowy J. Jakubowski 6
A co z kolorami? Standardowo każdy piksel może być opisywany za pomocą wektora: 1-elementowego 1-bitowego (obraz binarny) 1-elementowego wielobitowego (obraz monochromatyczny) 3-elementowego wielobitowego (obraz kolorowy) J. Jakubowski 7
http://www.cyberphysics.co.uk Model koloru RGB inne kolory na drodze dodawania liczbę wynikowych kolorów określa liczba bitów użytych do ich zakodowania w pikselu 16 bitów (R-G-B = 5-6-5) to 65536 kolorów 24 bity (R-G-B = 8-8-8) to ok. 16,7 mln. kolorów Uwaga: istnieją inne modele tworzenia kolorów np. CMYK, HSV, HSL, NTSC, Gamut, R Y macierz M x N x 3 G M C B J. Jakubowski 8
274 wiersze Obrazy indeksowane palety kolorów dla obrazu RGB należy zapamiętać 274 x 250 x 3 = 205 500 wartości pikseli (ale niektóre piksele mają te same kolory!) dla obrazu indeksowanego należy zapamiętać macierz danych 274 x 250 tablica (paleta) kolorów oraz tablicę kolorów, która w tym przypadku zawiera 2002 wierszy, czyli łączna liczba pamiętanych wartości to: 274 x 250 + 2 002 x 3 74 506 250 kolumn tablica danych J. Jakubowski 9
Rejestracja obrazu kolorowego http://white.stanford.edu/teach/index.php/quachfu http://www.fotoporadnik.pl http://www.trustedreviews.com/opinions/digital-photography-tutorial-raw-usage J. Jakubowski 10
Operacje na obrazach w Matlabie cz. 1 wczytanie z pliku: I=imread( nazwa.jpg ), [X,map]=imread( nazwa.tif ) zapis obrazu do pliku: imwrite(i,nazwa,format), np. imwrite(i, nazwa.jpg, jpg ) wyświetlenie obrazów na ekranie obrazy indeksowane: imshow(x,map) obrazy monochromatyczne: imshow(i), imshow(i,g), G-liczba poziomów jasności obrazy RGB i binarne: imshow(i) konwersja klas zmiennych: TYP format OBRAZU we A uint8 we na B double A double na na B we uint8 indeksowany (konwersja tylko dla tablicy indeksów) B=double(A)+1 konwersja struktur danych obrazowych: monochromatyczne RGB: rgb2gray indeksowane RGB: ind2rgb, rgb2ind monochromatyczne binarne: im2bw RGB binarne: im2bw indeksowane monochromatyczne: ind2gray, gray2ind B=uint8(round(A-1)) monochromatyczny lub RGB B=double(A)/255 B=uint8(round(A*255)) binarny B=double(A) B=logical(uint8(round(A-1))) J. Jakubowski 11
4.2. Rozpoznawanie tożsamości na podstawie obrazu twarzy [..] Akwizycja obrazu [12,1 4,22 1,15 5,63] [13,7 3,43 2,45 6,47] Mirek Janek [23,9 7,67 0,39 1,89] Jacek Przetwarzanie wstępne [15,2 5,77 1,17 4,35] [..] Darek Obraz przetworzony Referencyjna baza danych Detektor twarzy Ekstraktor cech Klasyfikator /np. metoda k-nn, metody neuronowe/ Wynik Jacek [23,6 7,89 0,34 1,92] J. Jakubowski 12
4.3. Ocena obrazu twarzy jako materiału biometrycznego Co przemawia za wykorzystaniem obrazów twarzy? jako środek uwierzytelniania pod nazwą MIENIE (coś, co posiadam) są w powszechnym użyciu dzięki wykorzystaniu dowodów, paszportów, praw jazdy itp., http://www.clubcard.com.pl https://obywatel.gov.pl jako środek uwierzytelniania pod nazwą BIOMETRYKA jest cechą fizjologiczną, która charakteryzuje się potencjalnym brakiem wymagań co do kontaktu lub nawet świadomego udziału osoby poddawanej pobraniu próbki nadaje się do badań przesiewowych (teoretycznie w czasie rzeczywistym), http://www.gettyimages.in istnieją duże bazy danych obrazowych podmiotów zainteresowanych bezpieczeństwem (policja, straż graniczna), dla których jedyną metodą analizy jest analiza, porównywanie obrazów twarzy. J. Jakubowski https://www.fbi.gov 13
Główne problemy wykorzystania obrazu twarzy w systemach rozpoznawania Zmienne oświetlenie Różne ustawienie twarzy względem kamery J. Jakubowski 14
Główne problemy wykorzystania obrazu twarzy w systemach rozpoznawania Mimika twarzy Przesłonięcie części twarzy J. Jakubowski 15
http://imgkid.com http://www.pro-therm.com Charakterystyka obrazów rejestrowanych w podczerwieni Zakresy promieniowania elektromagnetycznego Rejestracja obrazu w podczerwieni bliska podczerwień: średnia podczerwień: daleka podczerwień: 0,78mm 3mm 3mm 5mm 8mm 14mm Prawo Plancka dł. fali promieniowania obiektu o temperaturze ludzkiego ciała J. Jakubowski 16
C:\Users\SAT00329.SAT Temperature Range:34.6 -- 20.8 Unit: Â C 22.21;22.07;22.07;21.96;21.96;21.89;21.89;21.89;21.89;22;22;22.21;22.21;2 1.96;21.96;21.81;21.81;22.21;22.21;21.89;21.89;22.1;22.1;22.43;22.43;22.2 1;22.21;22.21;22.21;21.74;21.74;22.21;22.21;22.18;22.18;22.03;22.03;22.07 ;22.07;22.29;22.29;21.85;21.85;22.07;22.07;21.89;21.89;22.1;22.1;21.85;21.85;21.89;21.89;21.89;21.89;22.21;22.21;22.25;22.25;22.32;22.32;21.96;21. 96;21.63;21.63;22;22;22.32;22.32;22;22;22.03;22.03;21.81;21.81;21.92;21.9 2;22;22;22.07;22.07;21.92;21.92;22.25;22.25;22;22;22.1;22.1;21.78;21.78;2 1.78;21.78;21.56;21.56;22.07;22.07;22.07;22.07;21.81;21.81;21.85;21.85;21.85;21.85;22.1;22.1;21.89;21.89;22.14;22.14;22.25;22.25;21.74;21.74;22.32 ;22.32;22.1;22.1;21.78;21.78;22.07;22.07;21.96;21.96;21.92;21.92;22;22;22.4;22.4;22.54;22.54;22.07;22.07;22.21;22.21;22.47;22.47;22.47;22.47;22.87 ;22.87;22.69;22.69;23.34;23.34;23.67;23.67;23.27;23.27;23.59;23.59;23.7;2 3.7;23.59;23.59;23.05;23.05;23.05;23.05;22.65;22.65;22.54;22.54;22.21;22. 21;22.4;22.4;22.32;22.32;22.32;22.32;21.92;21.92;21.74;21.74;21.96;21.96; 22.25;22.25;22.18; J. Jakubowski 17
wpływ zmiany natężenia oświetlenia żarowego (oświetlenie frontalne) wpływ rodzaju oświetlenia (kolejno: żarowe, jarzeniowe, LEDowe) J. Jakubowski 18
wpływ kąta padania światła w zakresie 90 (oświetlenie żarowe) 4.4. Metody wstępnego przetwarzania obrazów geometryczne gdy zmienia się położenie piksela skalowanie (powiększanie - zoom cyfrowy) obrót arytmetyczne gdy zmienia się tylko wartość piksela bezkontekstowe kontekstowe J. Jakubowski 19
4.4.1. Przekształcenia geometryczne - skalowanie obraz odniesienia 256 x 256 (obraz wyjściowy) nowy przypadek 64 x 64 (obraz wejściowy) konieczność powiększenia obrazu Parametry skalowania: skala S (stosunek wymiarów obrazu wyjściowego do wejściowego) metoda (sposób wypełnienia pikseli obrazu wyjściowego) NN, (bi)linear, (bi)cubic, spline.. 0 1 2 3 0 1 0 0 np. powiększenie x2 1 1 2 3 J. Jakubowski 20
Metoda najbliższego sąsiedztwa (NN Nearest Neighbours) wyznaczanie współrzędnych najbliższego odpowiednika (sąsiada) xnew xorgr ; xorg floor( xorgr ) S ynew yorgr ; yorg floor( yorgr ) S skopiowanie wartości piksela z obrazu wejściowego o współrzędnych (x org, y org ) do piksela obrazu wyjściowego o współrzędnych (x new, y new ) w wyjściowym wystąpią tylko kolory (odcienie) z obrazu wejściowego 0 1 0 1 2 3 0 1 2 0 1 2 metoda NN 1 1 3 4 2 3 4 3 J. Jakubowski 21
Test metody najbliższego sąsiedztwa przy powiększeniu obrazu J. Jakubowski 22
Metoda interpolacji liniowej (bilinear) każdy piksel obrazu wyjściowego przyjmuje wartość obliczoną na podstawie 2 lub 4 sąsiednich pikseli obrazu wejściowego pierwszy krok to wyznaczenie dla obrazu wyjściowego współrzędnych najbliższych odpowiedników z obrazu wejściowego (jak w metodzie NN) przeprowadzenie interpolacji w kierunku: poziomym a następnie: pionowym 0 1 2 3 0 1 2 0 1 0 1 2 metoda interpolacji liniowej 1 1 3 4 2 3 4 3 J. Jakubowski 23
Test metody liniowej (bilinear) przy powiększaniu obrazu J. Jakubowski 24
Pomniejszanie obrazu interpolacja typu bilinear z oceną wpływu filtracji antyaliasingowej J. Jakubowski 25
Przekształcenia geometryczne - obrót y org x newr A x Acos y Bsin org org y newr B x Asin y Bcos org org x org zaokrąglenie współrzędnych interpolacja y new np. metoda NN x new J. Jakubowski 26
Operacje na obrazach w Matlabie cz. 2 (przekszt. geometryczne) skalowanie obrazu: Inew=imresize(I,skala,metoda_interpolacji, antialiasing,param) metoda_interpolacji: nearest, bilinear, bicubic param: true, false obrót obrazu Inew=imrotate(I,alfa, metoda_interpolacji) metoda_interpolacji: nearest, bilinear, bicubic alfa: kąt obrotu w stopniach, obrót przeciwnie do ruchu wskazówej zegara J. Jakubowski 27
4.4.2. Przekształcenia arytmetyczne bezkontekstowe Cechy charakterystyczne Przekształcenie obrazu wejściowego I na wyjściowy J: I J (lub kilku obrazów wejściowych na jeden wyjściowy np. J = I1 + I2) Operacje jedynie na pojedynczych pikselach obrazu: I(x,y) J(x,y) Otoczenie piksela nie ma wpływu na wynik obliczeń Piksele o tej samej intensywności są traktowane w ten sam sposób Cele: Poprawa jakości w zakresie jasności i kontrastu Modyfikacja histogramu obrazu Operacje na kilku obrazach (dodawanie, odejmowanie) J. Jakubowski 28
Histogram Jest to wykres obrazujący, ile w obrazie występuje pikseli o zadanej intensywności, tzn. na osi X odłożone są wszystkie możliwe intensywności liczona wzdłuż osi Y wysokość słupka określa liczbę pikseli J. Jakubowski 29
Zmiana wartości piksela tablica tonalna LUT (Look Up Table) Operacje bezkontekstowe definiuje tablica tonalna LUT, która określa wartość piksela w obrazie wyjściowym: Cel tabeli LUT: J ( x, y) LUT I( x, y) obliczenia bezkontekstowe obrazu 500x500 metodą piksel po pikselu np. logarytmowanie to 250tys. powtórzeń obliczeń (dla każdego piksela) lepiej przygotować dodatkową tablicę (tablicę LUT), o liczbie wierszy równej liczbie możliwych intensywności na wejściu (na przykład 256), która będzie zawierać gotowe wyniki przeliczenia poszczególnych pikseli i pobierać je do matrycy przetwarzanego obrazu Popularne liniowe operacje bezkontekstowe: J ( x, y) B C I( x, y) przykładowa tabela LUT piksel F(piksel) 0 9 1 45 2 204 3 120 4 250 253 12 254 35 zmiana jasności zmiana kontrastu 255 254 J. Jakubowski 30
Przykładowe operacje arytmetyczne bezkontekstowe - operacja identycznościowa J. Jakubowski 31
Przykładowe operacje arytmetyczne bezkontekstowe - negatyw J. Jakubowski 32
Przykładowe operacje arytmetyczne bezkontekstowe - progowanie J. Jakubowski 33
Przykładowe operacje arytmetyczne bezkontekstowe - zwiększenie jasności (np. o 55) J. Jakubowski 34
Przykładowe operacje arytmetyczne bezkontekstowe - zmniejszenie jasności (np. o 55) J. Jakubowski 35
Przykładowe operacje arytmetyczne bezkontekstowe - zwiększenie kontrastu J. Jakubowski 36
Przykładowe operacje arytmetyczne bezkontekstowe - zmniejszenie kontrastu J. Jakubowski 37
Operacje na obrazach w Matlabie cz. 3 (przekszt. bezkontekstowe) wyznaczanie histogramu: imhist(i) liniowe operacje bezkontekstowe Inew=imadjust(I,In,Out) In: wektor 2 parametrów opisujących oś X krzywej tonalnej (z przedziału od 0 do 1) Out: wektor 2 parametrów opisujących oś Y krzywej tonalnej (z przedziału od 0 do 1) (1,1) Uwaga: celem operowania na intensywnościach w zakresie od 0 do 255 (zamiast od 0 do 1) można użyć zapisów: Out(2) In=[55 200]/255; Out=[55 200]/255; Out(1) (0,0) In(1) In(2) J. Jakubowski 38
Chwila przerwy - postrzeganie kolorów przez człowieka Edward H. Adelson.: http://web.mit.edu/persci/people/adelson/checkershadow_illusion.html J. Jakubowski 39
4.4.3. Przekształcenia arytmetyczne kontekstowe Cechy charakterystyczne Przekształcenie obrazu wejściowego I na wyjściowy J: I J Otoczenie piksela ma wpływ na wynik obliczeń Piksel obrazu wyjściowego zależy od piksela w obrazie wejściowym i jego otoczenia, czyli kontekstu: gdzie: i = -m,..., +m oraz j = -n,..., +n kontekst (otoczenie): f : liniowa lub nieliniowa I W [(2m+1) x (2n+1)] W szczególności kontekstem może być cały obraz Cele: I( x, y) J ( x, y) f I( x i, y j) Poprawa jakości w zakresie wyostrzania i usuwania szumu Wzmacnianie cech (np. krawędzi) J. Jakubowski 40
Filtracja liniowa Piksel obrazu wyjściowego jest liniową kombinacją pikseli jego otoczenia rozpatrywanego w obrazie wejściowym (odpowiednik filtracji FIR w cyfrowym przetwarzaniu sygnałów) Liniową kombinację dla wszystkich pikseli (filtrację) realizuje operacja splotu z pewną macierzą w, której elementy determinują efekt wynikowy: J ( x, y) w( x, y) I( x, y) m n im jn w( i, j) I( x i, y j) J ( x, y) w( 1, 1) I( x 1, y 1) w(0, 1) I( x, y 1) w(1, 1) I( x 1, y 1) w maska splotu Przykład. Obliczenia dla maski w o wymiarach m x n = 3 x 3 w( 1,0) I( x 1, y) w(0,0) I( x, y) w(1,0) I( x 1, y) w(-1,-1) w(-1,0) w(-1,1) w(0,-1) w(0,0) w(0,1) w(1,-1) w(1,0) w(1,1) w( 1,1) I( x 1, y 1) w(0,1) I( x, y 1) w(1,1) I( x 1, y 1) J. Jakubowski 41
Przykłady filtracji filtracja dolnoprzepustowa, maska równomierna oryginał J. Jakubowski 42
Przykłady filtracji filtracja dolnoprzepustowa, filtr wagowy Gaussa oryginał maska jednolita sigma = 0.9 sigma = 0.6 J. Jakubowski 43
Przykłady filtracji filtracja górnoprzepustowa (filtry Laplace a) oryginał J. Jakubowski 44
Przykłady filtracji wyostrzanie krawędzi oryginał + = maski Laplace a + = J. Jakubowski 45
Filtry statystyczne Filtr minimalny (maksymalny) piksel w obrazie wyjściowym jest zastępowany pikselem o najmniejszej (największej) wartości spośród pikseli obrazu wejściowego obejmowanych maską Filtr medianowy piksel w obrazie wyjściowym jest zastępowany pikselem równym medianie wartości spośród pikseli obrazu wejściowego obejmowanych maską obraz zaszumiony po filtracji Gaussa 5 x 5 medianowy 2 x 2 medianowy 3 x 3 medianowy 10 x 10 J. Jakubowski 46
Operacje na obrazach w Matlabie cz. 4 (przekszt. kontekstowe) tworzenie masek typowych filtrów liniowych: w=fspecial(typ_filtru,parametry) typ_filtru: average, gaussian, laplacian i inne parametry: zależne od typu filtru, generalnie wymiary maski, parametry funkcji filtracja liniowa Inew=filter2(maska,I) maska: macierz zwracana przez fspecial lub dedykowana przez użytkownika uwaga: po operacji filtracji wynik jest typu double i aby go wyświetlić za pomocą imshow należy najpierw dokonać konwersji na uint8: Inew=uint8(Inew); imshow(inew) filtracja medianowa Inew=medfilt2(I,[m n]) [m n]: wymiary maski dla której określana jest mediana J. Jakubowski 47
4.5. Detekcja twarzy w obrazie Zadanie detekcji twarzy Należy określić, czy w zadanym obrazie znajduje się jakaś twarz lub twarze i jeśli tak, to należy zwrócić ich położenie i rozmiary. Historycznie wiele podejść: VI( x) M. Yang i inni, Detecting faces in images: a survey, IEEE Trans. on Pattern Analysis and Machine Intelligence, 2002 o wykorzystanie cech strukturalnych, które są niezależne od zmienności obrazu, wykorzystanie np. koloru skóry (feature invariant approaches) o wykorzystanie reguł wyrażających znane związki pomiędzy cechami twarzy (knowledge based methods) o metody korelacji obrazu z predefiniowanymi elementami bazy obrazów twarzy (template matching) o metody wykorzystujące modele twarzy, które uwzględniają reprezentatywną zmienność wyrazów twarzy (apperances based methods) dla obrazu m x n: HI( x) y1 m n x1 I( x, I( x, y) y) J. Jakubowski 48
Paul Viola, Michael Jones, Rapid Object Detection using a Boosted Cascade of Simple Features, Conference on Computer Vision and Pattern Recognition, 2001 Paul Viola, Michael Jones, Robust Real-Time Face Detection, International Journal of Computer Vision 57(2), ss. 137 154, 2004 Algorytm Violi-Jonesa, algorytm kaskad Haara 1. Ogólna idea o skanowanie obrazu za pomocą okien prostokątnych (wycinanie fragmentów do analizy) o bazowy wymiar okna 24 x 24 piksele o okna przy kolejnym skanowaniu są 1.25 razy większe od okien z poprzedniego skanowania w każdym oknie obliczane są cechy charakterystyczne i jest podejmowana decyzja: twarz nie twarz J. Jakubowski 49
2. Cechy charakterystyczne twarzy w algorytmie Violi Jonesa Podejście knowledge based mathods, wiemy np. że: o twarze ludzi są generalnie do siebie podobne o obszar oczu jest ciemniejszy niż górne części policzków i czoło o podstawa nosa jest jaśniejsza niż oczy o powyższe elementy zajmują ustalone położenie na obrazie twarzy różnych osób Analiza wybranego przekroju obrazu wzdłuż linii oczodołów i podstawy nosa: kowariancja wzajemna duża złożoność obliczeniowa: mnożenie dwu przebiegów i dodawanie J. Jakubowski 50
Uproszczenie obliczeń kowariancja z funkcją Haara (przybliżenie funkcji ciągłej) kowariancja wzajemna w praktyce sygnał jest obrazem, stąd: cechy tzw. prostokątne wartość cechy: piksele w obszarze białym piksele w obszarze czarnym czy jest to dobra cecha twarzy? J. Jakubowski 51
Zmniejszenie poziomu błędnych detekcji zastosowanie dodatkowych cech 3 typy cech: dwu-, trzy- i cztero-prostokątne każda cecha ma swoje specyficzne tylko dla niej położenie w oknie skanującym każda cecha prostokątna może mieć dowolny wymiar przykładowe cechy: uwaga: w podstawowym oknie skanującym 24 x 24 można wygenerować ok. 160 000 różnych cech prostokątnych (różne typy, wielkości i położenie)! J. Jakubowski 52
3. Selekcja cech problem: zbyt duża liczba potencjalnych cech każda cecha jest potencjalnym klasyfikatorem binarnym klasyfikatorem tzw. słabym analizując dużą liczbę obrazów twarzy wyciętych ręcznie (4916) i stosując podejście AdaBoost Viola i Jones ograniczyli liczbę cech do 200 traktując każdą z nich jako klasyfikator słaby; wypadkowy klasyfikator to suma ważona klasyfikatorów słabych: obraz wagi F ( 200 I ) 1 f1( I ) 2 f2( I )... 200 f ( I ) klasyfikator wypadkowy klasyfikatory słabe wyniki: wskaźnik TP=95% przy FP równym 1 na 14084 czas detekcji w obrazie 342x288 równy 0,7s (2001r) dobry, ale niezbyt szybki Paul Viola, Michael Jones, Robust Real-Time Face Detection, International Journal of Computer Vision 57(2), ss. 137 154, 2004 J. Jakubowski 53
4. Przyspieszenie obliczeń kaskada klasyfikatorów szacuje się, że zaledwie 0.01% okien skanujących zawiera twarze dla każdego z okien wykonuje się te same obliczenia pochłaniające ten sam czas (200 cech) propozycja: należy bardziej skupić się na tych oknach, które potencjalnie zawierają twarz okazuje się, że klasyfikator oparty na zaledwie 2 cechach (słabych) zapewnia TP= prawie 100% i FP prawie 50% oznacza to, że można go użyć jako pierwszej warstwy kaskady (wstępnego sita ) do odrzucenia najbardziej oczywistych nie-twarzy i nie tracić czasu na niepotrzebne obliczenia druga warstwa, oparta na 10 cechach odrzuca te przypadki nie-twarzy, które bardziej przypominają twarz niż te odrzucone przez pierwszą warstwę trzecia warstwa, 25 cech itd.... klasyfikator monolityczny klasyfikator kaskadowy J. Jakubowski 54
5. Finałowa postać detektora Violi Jonesa łącznie 38 warstw z całkowitą liczbą cech 6060 warstwa nr 1: 2 cechy TP=99.9%, FP=50% warstwa nr 2: 10 cech TP=99.9%, FP=20% warstwa nr 3 i 4: 25 cech warstwa nr 5, 6 i 7: 50 cech itd. czas obliczeń kaskady dla obrazu 342x288 równy 0,067s (2001r) Adam Harvey: http://makematics.com/research/viola-jones/ J. Jakubowski 55
Operacje na obrazach w Matlabie cz. 5 (detekcja twarzy) % utworzenie obiektu do detekcji twarzy DetektorTwarzy = vision.cascadeobjectdetector; % utworzenie obiektu do obramowania Obramowanie = vision.shapeinserter('bordercolor','custom', 'CustomBorderColor',[255 255 0]); % wczytanie obrazu I = imread('ise3.bmp'); % wyzwolenie detekcji twarzy - zwracane są współrzędne i wymiary % okien skanujących bbox = step(detektortwarzy, I); % narysowanie kwadratów wokół wykrytych twarzy I_faces = step(obramowanie, I, int32(bbox)); figure, imshow(i_faces), title('wykryte twarze'); J. Jakubowski 56
R. Brunelli, T. Poggio, Face Recognition through Geometrical Features, https://www.researchgate.net/publication/2716938 4.6. Metody generacji cech Standardowe metody generacji cech dystynktywnych obrazu twarzy metody geometryczne (analityczne) o grubość brwi i ich położenie w pionie (np. względem oczu) o szerokość i położenie nosa (np. względem oczu) o wymiary ust i ich położenie (np. względem oczu) o długości promieni opisujących podbródek o inne (np. stopień asymetrii twarzy) metody holistyczne (całościowe) o obraz jako macierz pikseli obraz 24 x 24 metody opisu cech lokalnych o gradientowy opis wykrytych punktów charakterystycznych i porównywanie ich z bazą danych J. Jakubowski 57
J. Jakubowski 58 Generacja cech na przykładzie met. holistycznej eigenfaces Pochodzenie metody analiza wielowymiarowych wyników eksperymentu. Jeżeli mamy zbiór p-wymiarowych wektorów x (i) w liczbie N, to każdy z nich może być przedstawiony w postaci sumy p innych wektorów t k (wektory własne), które są wyznaczone w oparciu o ten zbiór i wzięte z amplitudami, które są wynikiem przekształcenia PCA. ) ( ) ( 2 ) ( 1 (3) (3) 2 (3) 1 (2) (2) 2 (2) 1 (1) (1) 2 (1) 1............ N p N N p p p x x x x x x x x x x x x... ) ( ) ( 2 ) ( 1 (3) (3) 2 (3) 1 (2) (2) 2 (2) 1 (1) (1) 2 (1) 1............ p p p p p p p t t t t t t t t t t t t... ) ( ) ( 2 ) ( 1 ) ( (3) (3) 2 (3) 1 ) ( 3 (2) (2) 2 (2) 1 ) ( 2 (1) (1) 2 (1) 1 ) ( 1 1 ) ( ) (............ p p p p i p p i p i p i k p k i k i t t t y t t t y t t t y t t t y y... t x amplitudy wektorów bazowych CECHY
BAZA DANYCH OBRAZOWYCH Zastosowanie Dany jest pewien zbiór obrazów o (i) twarzy osób, których kolejne fotografie mają być rozpoznawane 1 2 3 4 5 J. Jakubowski 59
Przepis postępowania przetworzyć obrazy o (i) zapewniając utworzenie wektorów, które będą traktowane jak wielowymiarowe wyniki eksperymentu x (i) obraz wektor 2 13 7 16 6 8 12 15 14 5 3 6 8 7 12 6 11 12 0 1 wyznaczyć obraz średni dla obrazów twarzy z bazy danych O 1 N N i 1 o ( i) wyznaczyć wektory własne w oparciu o procedurę PCA (potrzebna macierz kowariancji i wektor średni obliczony na podstawie obrazu średniego) przetworzyć wektory własne do postaci macierzy twarzy własnych w sposób odwrotny do przedstawionego powyżej J. Jakubowski 60
ZBIÓR FUNKCJI BAZOWYCH Zbiór twarzy własnych J. Jakubowski 61
Możliwość rekonstrukcja twarze własne stanowią zbiór bazowy, na której rozpięta jest przestrzeń oryginalnych danych, gdyż umożliwia perfekcyjną rekonstrukcję każdego z jej elementów: o ( i ) k i y ( ) k t k O wystarczy tylko kilka twarzy własnych (np. n=5) do odtworzenia rozpoznawalnych cech osobniczych generacja potencjalnych cech dystynktywnych J. Jakubowski 62
Idea systemu rozpoznawania na podstawie eigenfaces na przykładzie analizy konkretnych przypadków rozpoznawanie osoby znanej (osoby nr 5) na podstawie nowego, zarejestrowanego obrazu twarzy (obrazu testowego), którego nie ma w bazie danych obraz wejściowy rekonstrukcja przy n=4 płaszczyzna dwu cech PCA J. Jakubowski 63
rozpoznawanie osoby nieznanej na podstawie zarejestrowanego obrazu twarzy (obrazu testowego), którego nie ma w bazie danych obraz wejściowy rekonstrukcja przy wszystkich twarzach własnych płaszczyzna dwu cech PCA J. Jakubowski 64
rozpoznawanie osoby znanej na podstawie zarejestrowanego obrazu twarzy (obrazu testowego), który zawiera przesłonięcie obraz wejściowy rekonstrukcja przy wszystkich twarzach własnych płaszczyzna dwu cech PCA J. Jakubowski 65
rozpoznawanie osoby znanej na podstawie zarejestrowanego obrazu twarzy (obrazu testowego) zawierającego twarz obróconą obraz wejściowy rekonstrukcja przy wszystkich twarzach własnych płaszczyzna dwu cech PCA J. Jakubowski 66
rozpoznawanie osoby znanej na podstawie zarejestrowanego obrazu twarzy (obrazu testowego) zawierającego twarz zmniejszoną obraz wejściowy rekonstrukcja przy wszystkich twarzach własnych płaszczyzna dwu cech PCA J. Jakubowski 67
Podsumowanie rozpoznawania przypadków na podstawie eigenfaces przypadek 1 przypadek 2 przypadek 3 przypadek 4 przypadek 5 klasa 1 klasa 2 klasa 3 klasa 4 klasa 5 5.02 3.59 4.38 2.70 3.35 4.34 5.99 5.16 5.68 4.97 3.02 2.75 2.55 0.58 1.45 7.33 2.82 7.43 5.73 4.62 0.29 4.64 0.63 2.18 2.68 Odległości euklidesowe rozpatrywanych przypadków do poszczególnych klas w przestrzeni 2D. Kolor czerwony to niepoprawne rozpoznanie. J. Jakubowski 68
5. Systemy multibiometryczne jako clue biometrii J. Jakubowski 69
5.1. Pojęcie systemu multibiometrycznego Kategorie pojęcia multibiometria L.p. kategoria przykład 1 wiele biometryk co najmniej dwie biometryki, np. obraz twarzy i sygnał głosu 2 wiele umiejscowień lewa i prawa tęczówka 3 wiele odczytów trzy kolejne obrazy twarzy 4 wiele rejestratorów obraz twarzy w świetle widzialnym i podczerwieni 5 wiele klasyfikatorów (komparatorów) użycie metody k-nn i metody minimalno-odległościowej 6 wiele symboli integracja biometryki z mieniem i/lub wiedzą Metody składania informacji Integracja ścisła informacje z materiału(ów) biometrycznego łączone są w jeden wektor cech, na podstawie którego podejmowana jest jedna decyzja Integracja luźna łączeniu podlegają decyzje niezależnych klasyfikatorów J. Jakubowski 70
5.2. Integracja ścisła na przykładzie algorytmu k-nn Dane zbiór uczący złożony z wektorów liczb (multibiometryczne obserwacje, np. cechy liczbowe głosu, obrazu), opisujących obiekty (osoby) C 1, C 2,... C n X x ( 1) x (2)... zbiór wartości docelowych (etykiet przynależności do klas osób) y y ( 1) y (2)... nowa obserwacja nowy przypadek (osoba), opisany wektorem liczb (new) x x ( n ) y ( n ) Cel wyznaczyć etykietę przynależności dla nowego przypadku, czyli (new) y J. Jakubowski 71
Algorytm doboru najbliższych sąsiadów x (new) porównać ze wszystkimi obserwacjami za pomocą pewnej miary odległości: x ( new) x x ( x (1) (2) n) : : : d d d... ( new) ( new) ( new) wyznaczyć zbiór K-obserwacji ze zbioru, które są położone najbliżej nowego przypadku np. dla K=4: x x x x X, x, x, x (1) (2) ( n) (7) (13) (23) (41) 4 x x x x oraz zbiór odpowiadających im K wartości docelowych y (7) (13) (23) (41) (1) (2) (3) y y y y y y y ( 44) 4 4 4 4 y J. Jakubowski 72
Reguła decyzyjna x ( new) C ( new) ( new) ( new) ( new) x max P C x, P C x,... P C x P C w w 1 2 n prawdopodobieństwa warunkowe obliczanie prawdopodobieństw interpretacja częstościowa: K liczba wszystkich wybranych najbliższych sąsiadów k i liczba sąsiadów należących do klasy C i P C i ( x new) ki K równoważna reguła decyzyjna (bo K jest stałe): x ( new) C w k w max k1, k2,... k n J. Jakubowski 73
Dyskusja doboru liczby sąsiadów K x 2 klasa C 1 klasa C 2 przypadek x (new) x 1 dla 1-NN: klasa C 1 J. Jakubowski 74
Dyskusja doboru liczby sąsiadów K x 2 klasa C 1 klasa C 2 przypadek x (new) x 1 dla 2-NN: klasa C 1 lub C 2 J. Jakubowski 75
Dyskusja doboru liczby sąsiadów K x 2 klasa C 1 klasa C 2 przypadek x (new) x 1 dla 5-NN: klasa C 2 J. Jakubowski 76
Dyskusja doboru liczby sąsiadów K 1) zbyt mała wartość K metoda czuła na szumy 2) zbyt duża wartość K obliczenia prawdopodobieństw zaburzone liczebnością klas klasa C 1 klasa C 2 x 2 N 1 = 100 przypadek x (new) dla 100-NN: ( new) k2 10 x 0. 1 K P C 2 100 ( new) k1 90 x 0. 9 K P C 1 100 N 2 = 10 x 1 J. Jakubowski 77
5.3. Integracja luźna (na poziomie decyzji) Boolowskie zasady łączenia W protokole identyfikacji W protokole weryfikacji J. Jakubowski 78