Rozpoznávání obličejů v digitálním světě. 9. února 2013 1 Úvod Vizuální rozpoznávání obličejů je pro člověka snadná úloha. Jedná se o schopnost, kterou si po narození osvojuje jako jednu z prvních a která je základem sociální interakce mezi lidmi. Pro počítač jde však o netriviální problém. Přitom jeho zvládnutí je důležité v mnoha odvětvích. Především současný velký rozmach v oblasti vizuálních médií přímo vybízí k automatickému zpracování. Facebook nebo Picasa obsahují statisíce fotografií s výskytem obličejů a právě jejich automatické rozpoznávání je základem mnoha rozšířených funkcí. První pokusy poloautomatického rozpoznávání obličejů pocházejí již z roku 1966. Klasifikace obličejů byla prováděna pomocí specifických bodů (kraje očí, kraje pusy, špička nosu atd.), které byli na fotografiích lokalizovány ručně. Porovnávané parametry potom tvořily normalizované geometrické vzdálenosti a poměry mezi těmito body. Moderní algoritmy rozpoznávání obličejů tento postup také částečně využívají. Bývají rozděleny na 2 fáze. V první fázi jde o to pokusit se lokalizovat hlavu jedince. K tomuto se často využívá lokalizace očí, pusy a nosu spolu s faktem, že tyto body bývají geometricky svázány. Takto zachycená oblast předpokládané ho výskytu obličeje se následně správně otočí a přeškáluje do nějaké standardní velikosti (v některých algoritmech k otáčení nedochází). Výsledek potom vstupuje do druhé fáze, ve které se určuje, jestli se skutečně jedná o lidský obličej a případě o jakou osobu konkrétně. Ve všech algoritmech používaných pro hledání obličejů hraje matematika význačnou úlohu. Detailní popis nejúspěšnějších současných algoritmů by byl nad rámec tohoto textu. Základní princip, který v nich bývá obsažen, však vysvětlíme poměrně snadno. 2 Matematický popis Fotografie je v digitální podobě reprezentována pomocí čtvercové sítě n m (n - šířka, m - výška) bodů nazývaných pixely. Každý pixel má nějakou barvu a jeho pozici je možné identifikovat pomocí souřadnic. Barva pixelu bývá obvykle vyjádřena ve formě trojice čísel (r, g, b), které představují zastoupení tří základních barev, červené (r), zelené (g) a modré (b). Každé z těchto čísel při tom znamená relativní velikost intenzity dané barvy v rozsahu 0 až 1, kde 0 znamená, že daná barva není vůbec přítomna a 1 znamená, že daná barva je přítomna v plné intenzitě. Čistou červenou tudíž reprezentuje trojice (1, 0, 0), čistou modrou (0, 0, 1), černá je (0, 0, 0) a bílá potom (1, 1, 1). Pro účely detekce obličejů je výhodné pracovat pouze s odstíny šedi. Každému pixelu je v takovém případě přiřazeno pouze jedno číslo od 0 do 1 vyjadřující relativní intenzitu I daného bodu. Bod s intenzitou 0 je tedy černý a bod s intenzitou 1 je bílý. Převod z RGB do odstínů šedi může být různý, ale nejčastěji se používá vztah I = 0,21 r + 0,72 g + 0,07 b, který dostatečně reflektuje vnímavost lidského oka k různým barvám. 1
Obrázek o velikosti n m v odstínech šedi si tedy můžeme představit jako tabulku čísel od 0 do 1, která má m řádků a n sloupců. Takovému útvaru říkáme v matematice matice a značíme je velkými písmeny. Rozměry uvádíme pomocí počtu řádků počtu sloupců. Příkladem je třeba následující matice A o rozměrech 2 3: ( ) 0 0,1 1 A =. 1 0 0 Pozici v matici určujeme pomocí dvou čísel, kde první z nich znamená číslo řádku a druhé číslo sloupce. Tedy prvek matice A na pozici 1, 3 je číslo 1 a prvek na pozici 1, 2 je číslo 0,1. Prvek matice A na pozici i, j obvykle značíme symbolem A i,j. Pro předchozí matici tudíž například máme A 1,1 = 0, A 1,2 = 0,1, A 2,1 = 1. Obrázek o rozměrech n m pro nás od nynějška bude představovat matici o rozměrech m n. Na obrázku 1 je uveden příklad takové reprezentace. 1 2 3 4 5 1 2 3 1 1/2 1/2 1/2 1 A = 1/2 0 1 0 1/2 1/2 1 0 1 1/2. 1 1/2 1/2 1/2 1 4 Obrázek 1: Reprezentace obrázku pomocí matice čísel od 0 do 1 o rozměrech 4 5. 3 Lokalizace totožného obličeje Abychom vysvětlili základní princip metody, uvažujme nejprve následující příklad. Představme-si, že máme fotku reprezentovanou maticí I, na které je obličej. Obdélníková část obsahující tento obličej představuje novou matici F. Příklad je uveden na obrázku 2. Chceme-li nyní na fotografii lokalizovat tento obličej, znamená to najít v matici I část F. Označme si m F počet řádků matice F, n F počet sloupců matice F a m I počet řádků I a n I počet sloupců I. Naším cílem je tedy najít obdélníkovou část matice I o rozměrech m F n F, která je stejná jako F. To znamená najít indexy i a j takové, že F 1,1 = I i+1,j+1, F 1,2 = I i+1,j+2 a obecně F k,l = I i+k,j+l pro všechna k od 1 do m F a pro všechna l od 1 do n F. Jinými slovy, chceme, aby prvek matice F na pozici 1, 1 byl prvkem matice I na pozici i + 1, j + 1 a podobně pro všechny ostatní prvky F. Například pro matice 1 1/2 1/2 1/2 1 I = 1/2 0 1 0 1/2 1/2 1 0 1 1/2 a F = 1 1/2 1/2 1/2 1 ( ) 1 0, 0 1 by zřejmě platilo i = 1 a j = 2, protože F 1,1 = 1 = I 2,3 = I 1+1,2+1 atd. K tomu abychom dokázali najít pozici matice F v matici I, můžeme použít následující postup: 1. Budeme procházet všechny dvojice indexů i, j, pro i od 0 do m I m F a j od 0 do n I n F. 2
Obrázek 2: Fotografie odpovídající matici 581 493 s výsekem představujícím obličej. 2. Pro každou dvojici vybereme z matice I výřez o velikosti m F n F, který označíme G(i, j). 3. Tento výřez G(i, j) porovnáme s maticí F. 4. Pokud budou stejné, jsme hotovi, pokud budou různé, pokračujeme s dalšími hodnotami i a j. Nejdůležitejším částí algoritmu je bod 3. Jedná se o porovnání dvou matic s cílem kvantifikovat odlišnosti. Věnujme se tedy tomuto bodu podrobněji. 3.1 Eukleidovská vzdálenost Pokusme se nyní navrhnout nějakou metodu, kterou bude možné porovnávat dvě matice F a G stejné velikosti. Nejjednodušší porovnání by bylo podívat se, zda mají obě matice shodné prvky. Tj. ověřit, zda rovnost F k,l = G k,l platí pro všechna k = 1,..., m F (matematický zápis tvrzení k od 1 do m F ) a l = 1,..., n F. Tento způsob však není výhodný s ohledem na pozdější rozšiřování algoritmu na úlohu lokace neznámého obličeje. V takovém případě totiž absoulutní shoda všech prvků nikdy nenastane. Matice F a G si budou pouze do jisté míry podobné. Pojd me tedy obecně kvantifikovat míru odlišnosti matic F a G. Jako výhodný ukazatel se často používá vzdálenost. Pojem vzdálenosti známe především z fyziky a analytické geometrie. Vzdálenost bodu A o souřadnicích A = (x A, y A ) od bodu B o souřadnicích B = (x B, y B ) se tam počítá jako délka spojnice těchto dvou bodů, která je dána vztahem d = (x A x B ) 2 (y A y B ) 2. Je to tedy odmocnina ze součtu kvadrátů rozdílu souřadnic obou bodů. Není nic jednoduššího, než představit si jednotlivé prvky matice jako takovéto souřadnice a vytvořit pro vzdálenost dvou matic F a G analogický vztah: m F n F d(f, G) = (F k,l G k,l ) 2, (1) k=1 l=1 3
kde symbol n F l=1 označuje součet, ve kerém za l postupně dáváme čísla od 1 do n F. Jednoduchým příkladem této symboliky budiž: 4 i=1 a i = a 1 + a 2 + a 3 + a 4. Vidíme, že d(f, G) je vždy kladné číslo nebo 0. Přitom 0 je pouze v případě, že jsou matice F a G totožné. Pokud se ale liší (byt jen na jediné pozici), dostaneme d(f, G) > 0. Tako definované vzdálenosti se říká Eukleidovská. Existují i další možné výpočty vzdálenosti, které mají podobné vlastnosti. Příkladem je např. maximová, Mahalanobisova apod. Pro naše potřeby je ovšem Eukleidovská vzdálenost dostačující. 3.2 Matice vzdáleností Nyní již umíme kvantifikovat vzdálenost dvou matic stejné velikosti. Body 1 až 3 v algoritmu hledajícím obličej F na fotografii I můžeme kompaktně vyjádřit pomocí jedné matice D o rozměrech (m I m F + 1) (n I n F + 1) shrnující výpočet vzdáleností pro všechny možné výřezy. Pro i mezi 0 a m I m F a j mezi 0 a n I n F položme D i+1,j+1 = d(f, G(i, j)). Rozepíšme-li tuto formuli pouze pomocí původních matic I a F dostáváme m F n F D i+1,j+1 = (F k,l I i+k,j+l ) 2. (2) k=1 l=1 Pozici obličeje na fotografii I pak určíme tak, že najdeme 0 v matici D. Nachází-li se 0 na pozici i, j, znamená to, že levý horní roh obličeje F určený prvkem F 1,1 je totožný s prvkem I i+1,j+1 umístěným v matici I na pozici i + 1, j + 1. Matice D na našem příkladu je zobrazena na obrázku 3. Obrázek 3: Vizualizace matice eukleidovských vzdáleností D. Čím více je barva modřejší a tmavší, tím je vzdálenost výřezu z matice I a obličeje F menší. Nulová vzdálenost nastává pro i = 159 a j = 133 (D 160,134 = 0). Tato čísla opravdu odpovídají volbě levého horního okraje při výřezu F z I. 4
4 Lokalizace odlišného obličeje Tento příklad představuje přímé zobecnění předchozího. Naším cílem bude lokalizovat obličej na fotografii I, ovšem jako vzorový referenční obličej nám nebude sloužit výřez z I nýbrž nějaký jiný obličej F. Příklad takové situace je znázorněn na obrázku 4. Obrázek 4: Fotografie I (594 805) a obličej F, který netvoří výřez z I. Nejprve zkusme použít předchozí algoritmus. Podle vztahu (2) vypočteme matici vzdáleností D. Protože se v matici I matice F přímo nevyskytuje, okamžitě víme, že 0 se v matici D vyskytovat nemůže. Otázka tedy zní jak lokalizovat obličej v I. Nejpřirozenější je zřejmě najít pozici, kde je vzdálenost F od výřezu v I minimální Na obrázku 5 je vyobrazena matice D. Nejmenší vzdálenost, která se vyskytuje v matici D je 6,29. Nastává ovšem pro hodnoty indexů i = 5 a j = 151. Přitom, jak je patrno z obrázku, obličej vyobrazené osoby se nachází vpravo nahoře od středu obrázku což odpovídá i 160 a j 360. S tímto problémem se můžeme vyrovnat několika způsoby. Abychom si je mohli uvědomit, pojd me se na problematiku vzdálenosti podívat podrobněji. Představme-si, že máme nějaký obličej F a potom úplně stejný obličej F 1, který byl ale vyfocen při trošku větším osvětlení. V takovém případě lze předpokládat, že přibližně platí F 1 = F + ɛ, kde ɛ je nějaké malé kladné číslo (změna intenzity). Pojd mě se podívat jaká v takovém případě bude vzdálenost matic d(f 1, F ). m F n F m F n F d(f, F 1 ) = d(f, F + ɛ) = (F k,l F k,l + ɛ) 2 = ɛ 2 = m F n F ɛ 2 = ɛ m F n F. k=1 l=1 k=1 l=1 V případě, že je matice F přibližně čtvercová (m F = n F ) dostaneme ɛm F. Pro hodnoty ɛ = 0,1 a m F = 100 tak dostáváme d(f, F + 0,1) = 10, což je desetina maximální možné odchylky 2 matic (matice 0 a matice 1), která je pro matice 100 100 rovna 100. Podobně jako na zvětšení intenzity o konstantu, je naše vzdálenost citlivá na změnu intenzity vynásobením. Je zřejmé, že je třeba modifikovat náš algoritmus, abychom se takovýchto odchylek vyvarovali. Ukážeme si zde 2 možnosti modifikace výpočtu vzdálenosti. 5
Obrázek 5: Vizualizace matice eukleidovských vzdáleností D. Vidíme, že zde není žádné zřetelné minimum. Skutečné minimum je vyznačeno červeným křížkem a odpovídající výsek, pro které nastává, je vyznačen na fotografii červeným rámečkem. 4.1 Eukleidovská vzdálenost středovaných matic První možností je nepočítat přímo vzdálenost d(f, G) ale nejprve matice F a G nějakým způsobem přiblížít (se zachováním morfologických odlišností). Velmi rozumné přibléžení představuje odečtení střední hodnoty. Střední hodnotu matice F pro naše účely definujeme jako průměrnou hodnotu všech čísel v matici se vyskytujících. Je to tedy jedno číslo, které budeme značit F a počítat vztahem 1 F = m F n F m F n F k=1 l=1 F k,l. (3) Jako novou vzdálenost d(f, G) matic F a G budeme nyní brát vzdálenost matic, od kterých jsme odečetli jejich střední hodnoty, tj. d(f, G) = d(f F, G Ḡ). Protože (F + ɛ) = F + ɛ dostáváme d(f, F + ɛ) = d(f, F + ɛ F ɛ) = d(f, F ) = 0! Tato nová vzdálenost po vystředování není citlivá vůči změně intenzity přičtením konstanty. Bez dalšího dokazování poznamenejme, že stále zůstává citlivá na změnu intenzity vynásobením. Aplikace této modifikace na náš příklad je znázorněna na obrázku 6. 4.2 Korelační koeficient Jinou možností jak určovat blízkost matic F a G stejných rozměrů m F n F je počítat jejich korelační koeficient r(f, G) definovaný vztahem r(f, G) = mf k=1 mf nf k=1 l=1 (F k,l F )(G k,l Ḡ) nf l=1 (F k,l F ) 2 mf k=1 nf l=1 (G k,l Ḡ)2. (4) Všimněme si, že ve jmenovateli se nacházejí Eukleidovské vzdálenosti matic F a G od svých průměrů F a Ḡ. Korelační koeficient je důležitá veličina v teorii pravděpodobnosti a statistice. Interpretace hlubšího 6
Obrázek 6: Vizualizace matice vystředovaných eukleidovských vzdáleností D. Ani v tomto případě není žádné zřetelné minimum. Skutečné minimum je vyznačeno červeným křížkem a odpovídající výsek, pro které nastává, je vyznačen na fotografii červeným rámečkem. významu je však nad rámec tohoto textu. Připomeňme pouze, že vždy platí 1 r(f, G) 1. Z definice r(f, G) dále plyne, že korelační koeficient není ovlivňován změnou intenzity vstupních matic po přičtení konstanty, ani po vynásobení kladným číslem. Pro korelační koeficient platí, že r(f, G) = 1 právě tehdy, když je F v lineárním vztahu ke G, tj. existuje kladné číslo a a číslo b tak, že F = ag + b (specielně také v případě, že F = G). Shoda mezi F a G je tedy tím větší, čím větší je korelační koeficient. V našem případě to znamená, že místo matice vzdáleností D zavedené vztahem (2) budeme používat matici korelací R určenou vztahem R(i + 1, j + 1) = r(f, G(i, j)) a budeme hledat její maximum. Levý horní roh výseku, ve kterém se nachází hledaný obličej, tedy bude odpovídat největší hodnotě v matici R. Výsledná matice R pro náš příklad je na obrázku 7. 4.3 Porovnání různých patternů Mohlo by se zdát, že nejlepší výsledky, dostáváme použitím korelačního koeficientu, zatímco pomocí Eukleidovské vzdálenosti (ani středované) nejsme schopni obličej lokalizovat. v tomto jednoduchém případu tomu tak skutečně je, ovšem v pokročilejších algoritmech hraje Eukleidovská vzdálenost opět významnou roli. Pro srovnání uved me tabulku hodnot, které dostaneme použitím tří výše uvedených metod při porovnání používaného obličeje s různými obrázky. d(f, G) 5,43 14.00 50.70 13.58 16.39 11.13 26.88 7.21 33.36 d(f, G) 5.31 8.09 7.86 12.87 15.21 7.87 7.67 6.36 7.63 r(f, G) 0.63-0.12-0.01-0.09 0.27 0.70 0.00 0.73 0.40 7
Obrázek 7: Vizualizace matice korelačních koeficientů R (vlevo). V tomto případě je zřetelné maximum s hodnotou 0,733. Toto maximum je v matici R vyznačeno černým křížkem a odpovídající výsek, pro které nastává, je vyznačen na fotografii vpravo červeným rámečkem. 5 Lokalizace průměrné tváře Často je naším cílem nalézt pouze obličej člověka a teprve potom se případně zabývat tím, o koho se jedná. Při takovém zadání není vhodné volit jako referenční obličej F nějaký konkrétní obličej, ale je vhodné zkonstruovat matici odpovídá průměrnému obličeji. A bychom toho docílili vezmeme několik stejně velkých obličejů zhruba stejně umístěných a půměrný obličej spočteme jako zprůměrování těchto obličejů bod po bodu. Pokud máme n obličejů reprezentovaných maticemi F (1), F (2),..., F (n), definujeme průměrný obličej jako F i,j = F i,j (1) + F i,j (2) + + F i,j (n). Z obličejů v předchozí tabulce tak dostaneme průměrný obličej uvedený na obrázku 8. Tento obličej je nyní výhodné využít k lokalizaci obličeje na fotografii. Obrázek 8: Průměrný obličej sestavený z obličejů v předchozí tabulce. Použijeme-li v našem příkladu k výpočtu Eukleidovské středované vzdálenosti průměrný obličej dostaneme daleko zajímavější výsledky, než v případě konkrétního obličeje (byt patřícího stejné osobě). To samé platí při výpočtu korelace. Nejprve porovnáme průměrný obličej se stejnými vzorky jako v minulé tabulce. 8
d( F, G) 11.33 9.65 44.05 15.24 10.91 4.68 20.28 10.83 26.55 d( F, G) 6.73 8.53 8.33 10.02 10.89 4.67 8.13 5.48 6.37 r( F, G) 0.61-0.11-0.04 0.16 0.68 0.88 0.04 0.85 0.59 Z této tabulky je zřetelně patrno, že v případě středované Eukleidovské vzdálenosti d( F, G) a korelačního koeficientu se obrázky neodpovídající obličeji relativně hodně vzdálili od obrázků, které obličejům odpovídají. Výjimku tvoří 5. obrázek, u kterého je možné obličej rozpoznat pouze za pomocí korelačního koeficientu. Co se týče aplikace na lokalizaci obličeje na fotografii z naši výše uvedených příkladů. Opět dává nejlepší výsledky použití korelačního koeficientu. Při použití průměrného obličeje je však v našem konkrétním příkladu možné lokalizovat obličej i s použitím středované Eukleidovské vzdálenosti. Na obrázcích 9 a 10 jsou uvedeny výsledky pro obě tyto metody. Obrázek 9: Vizualizace matice vystředovaných eukleidovských vzdáleností D pro příklad průměrného referenčního obličeje F V tomto v místě obličeje opravdu existuje minimum s hodnotou 5,1857, není však od ostatních malých hodnot nijak výrazně odděleno. Toto minimum je v matici D vyznačeno červeným křížkem a odpovídající výsek, pro které nastává, je vyznačen na fotografii vpravo červeným rámečkem. 6 Závěr Představili jsme si několik jednoduchých metod, které se dají použít k lokalizaci obličeje (o předem známé velikosti) na fotografiích. Nejintuitivnější metoda za pomoci určování Eukleidovské vzdálenosti matic byla úspěšná při zpětné lokalizaci obličeje na obrázku, ze kterého byl vyjmut. K lokalizaci jiného obličeje se již nehodila. Proto jsme nejprve zavedli zlepšení pomocí středované Eukleidovské vzdálenosti. To ještě stále neumožnilo lokalizovat jiný obličej. Pouze v případě, že jsme používali průměrný obličej, byla tato metoda úspěšná. Jak je však patrno, nejedná se ani v tomto případě o nejvhodnější metodu. Poslední a nejúspěšnější metoda využívala korelační koeficient mezi dvěma maticemi. Tento konstrukt již není zdaleka tak intuitivní 9
Obrázek 10: Vizualizace matice korelačních koeficientů R (vlevo) pro příklad průměrného referenčního obličeje F. V tomto případě je zřetelné maximum s hodnotou 0,8593. Toto maximum je v matici R vyznačeno černým křížkem a odpovídající výsek, pro které nastává, je vyznačen na fotografii vpravo červeným rámečkem. jako Eukleidovská vzdálenost, ale dává jednoznačně nejlepší výsledky. I bez použití průměrného obličeje bylo možné lokalizovat podobný obličej na fotografii. Při použití průměrného obličeje se tato metoda ještě vylepšuje. V praxi obvykle nebývají takto zjednodušené podmínky. Obličeje bývají různých velikostí, různě natočené a také focené z různých úhlů. Přesto je lze velmi úspěšně lokalizovat metodami, jejichž princip jsme zde ukázali. Jedná se pouze o další a další rozšíření. K pochopení těchto úspěšných metod je však nejprve třeba hlouběji porozumět vysokoškolské matematice. Reference [1] J. Kalina, Robustní analýza obrazu obličeje pro genetické aplikace, EJB, 2/2010. [2] M. Turk a A. Pentland, Eigenfaces for Recognition, Journal of Cognitive Neuroscience (1991), Vol. 3, Num. 1, 72-86. [3] T. Heseltine, N. Pears, J. Austin a Z. Chen, Face Recognition: A Comparision of Appearance-Based Approaches, Proc. VIIth Digital Image Computing: Techniques and Applications, (2003), Sydney. 10