Příklady použití metod strojového učení v rozpoznávání tváří Vojtěch Franc Centrum strojového vnímání, Katedra kybernetiky, FEL ČVUT v Praze Eyedea Recognition s.r.o MLMU 29.4.2015
Stavební bloky systému pro rozpoznávání tváří 2/16 detekce numerická reprezentace x 1 x 2. x n registrace predikce muž/žena věk identita emoce
Detektor tváří 3/16 FACE Těžký rozhodovací problém se převede na mnoho jednodušších H : Obrázek {tvář, netvář} NONFACE
Klasifkátor tvář/netvář pro detekci tváří Požadavky na klasifikátor: extrémně přesný a extrémně rychlý. 4/16 Např. nalezení tváře velikosti 24 24 pixelů v obrázeku 640x480 vyžaduje provést (640 24 + 1) (480 24 + 1) = 281, 969 binárních klasifikací. Rychlost: Při 10 FPS musí jedna klasifikace trvat nanejvýš 0.34µs Přesnost: FP 0% (chybné detekce), TP 100% (detekované tváře)
Klasifkátor tvář/netvář pro detekci tváří Požadavky na klasifikátor: extrémně přesný a extrémně rychlý. 4/16 Např. nalezení tváře velikosti 24 24 pixelů v obrázeku 640x480 vyžaduje provést (640 24 + 1) (480 24 + 1) = 281, 969 binárních klasifikací. Rychlost: Při 10 FPS musí jedna klasifikace trvat nanejvýš 0.34µs Přesnost: FP 0% (chybné detekce), TP 100% (detekované tváře) Řešení: sekvenční rozhodovací pravidlo složené z jednoduchých rychlých klasifikátorů S t (x) = +1 (tvář) f t (x) θt A 1 (netvář) f t (x) θt B # (nevím) θt B < f t (x) < θt A f t (x) = 1 1 1 1 t α i h i (x) i=1 # # # S 1 (x) S 2 (x) S 3 (x) S n (x) +1 +1 +1 +1
AdaBoost: sestroj silný klasifikátor ze slabých Silný (přesný) klasifikátor 5/16 H(x; α) = { +1 pro f(x; α) 0 1 pro f(x; α) < 0 kde f(x; α) = α 1h 1 (x) + α 2 h 2 (x) +... + α m h m (x) je složen ze slabých, ale rychlých klasifikátorů ( ) h i (x) = sign x(u, v) x(u, v)+θ (u,v) A + i (x) (u,v) A i (x)... -1... +1 Problém učení: min α l i=1 [H(x i ; α) y i ] za podmínky, že počet nenulových elementů ve vektoru všech vah α = (α 1,..., α m ) je právě n (x i, y i = +1) (x i, y i = 1)
Příklady nalezených slabých klasifikátorů pomocí AdaBoostu Po prvních 25 iteracích. 6/16
Historie A. Wald. Sequential analysis. Dover, New York, 1947. 7/16 Nástroj pro kontrolu kvality průmyslové výroby za 2. světové války.
Historie A. Wald. Sequential analysis. Dover, New York, 1947. 7/16 Nástroj pro kontrolu kvality průmyslové výroby za 2. světové války. Y. Freund, R. E.Schapire: A decision-theoretic generalization of on-line learning and an application to boosting. Journal of Computer and System Sciences. 1997. AdaBoost algoritmus: sestroj silný klasifikátor ze slabých.
Historie A. Wald. Sequential analysis. Dover, New York, 1947. 7/16 Nástroj pro kontrolu kvality průmyslové výroby za 2. světové války. Y. Freund, R. E.Schapire: A decision-theoretic generalization of on-line learning and an application to boosting. Journal of Computer and System Sciences. 1997. AdaBoost algoritmus: sestroj silný klasifikátor ze slabých. P. Viola, M. Jones: Rapid object detection using a boosted cascade of simple features. Computer Vision and Pattern Recognition, 2001. Průlom v detekci objektů v reálném čase. článek má 10,955 citací (google scholar).
Historie A. Wald. Sequential analysis. Dover, New York, 1947. 7/16 Nástroj pro kontrolu kvality průmyslové výroby za 2. světové války. Y. Freund, R. E.Schapire: A decision-theoretic generalization of on-line learning and an application to boosting. Journal of Computer and System Sciences. 1997. AdaBoost algoritmus: sestroj silný klasifikátor ze slabých. P. Viola, M. Jones: Rapid object detection using a boosted cascade of simple features. Computer Vision and Pattern Recognition, 2001. Průlom v detekci objektů v reálném čase. článek má 10,955 citací (google scholar). J. Sochman, J. Matas: Waldboost-learning for time constrained sequential detection. Computer Vision and Pattern Recognition, 2005. Optimání nastavení parametrů sekvenčního klasifkátoru. Komerční multi-view detektor Eyedea Recognition s.r.o (www.eyedea.cz).
Registrace tváře - detekce významných bodů 8/16 s 5 s 1 s 2 s 6 canthus-rr canthus-rl canthus-lr canthus-ll Landmark detector s 0 s 7 face center nose s 3 mouth-corner-r s 4 mouth-corner-l Strukturní klasifikátor (deformable part model) odhaduje pozici významných bodů z obrázku: (ˆx 1,..., ˆx L ) = Argmax skóre(i, x 1,..., x L ) (x 1,...,x L ) N 2 L kde skóre je dekomponované na součet jednoduchých funkcí skóre(i, x 1,..., x L ) = f i (I, x i ) + f ij (x i, x j ) i V ij E } {{ } } {{ } shoda s přípustnost obrázkem tvaru Problém: Jak při zafixované struktuře (V, E) zvolit funkce (f i, i V ) a (f ij, ij E) tak, aby detektor fungoval dobře?
Učení detektoru významných bodů Problém učení: Nalezni f = {(f i, i V ), (f ij, ij E)} tak, aby strukturní klasifikátor 9/16 (ˆx 1,..., ˆx L ) = [ Argmax f i (I, x i )+ ] f ij (x i, x j ) (x 1,...,x L ) N 2 L i V ij E odhadoval co nejpřesněji, ve smyslu průměrné odchylky, err = ε 0 + + ε L 1 L 1 l face měřené na manuálně označené trénovací sadě příkladů: E(f) = err 1 (f) + err 2 (f) + err 3 (f) + err 4 (f) + err 5 (f) + + err m (f) Structured output SVM: Úlohu učení min f E(f) převede na problém minimalizace konvexní funkce, kterou lze efektivně řešit i pro velká data.
Open Source Landmarking Library 10/16 Language: C++, binding to Matlab Automatizovaný návrh: popiš strukturu v XML, sesbírej příklady a spusť učení Multi-platform: PC, ipad, Geod, ARM Real-time: 3ms per face on ordinary PC Download: http://cmp.felk.cvut.cz/~uricamic/clandmark/ M.Uricar, V. Franc and V. Hlavac: Detector of Facial Landmarks Learned by the Structured Output SVM. VISAPP 2012. [PDF]
3D landmark detector 11/16 Detekce: nalezni polohu a orientaci 3D modelu tváře, tak aby jeho projekce nejlépe odpovídala vstupnímu 2D obrázku: L X (t, α, β, γ ) = Argmax skóre(i, t, α, β, γ) := fi I, K[R(α, β, γ) t]x i (t,α,β,γ) <6 i=1 Problém učení: nalezni lokální detektory (f1,..., fl) a 3D model tváře (X1,..., XL), tak aby detektor odhadoval přesně. J.Cech, V.Franc, J.Matas. A 3D Approach to Facial Landmarks: Detection, Refinement, and Tracking. ICPR. 2014. [PDF].
Numerická reprezentace tváře Era I: obrázek je reprezentován jako vektor v lineárním prostoru - PCA, LDA,... 12/16 x x = µ + z 1 a 1 + z 2 a 2 + z 3 a 3 + z 4 a 4 + z 5 a 5 + z 6 a 6 + z 7 a 7 + z 8 a 8 Obrázek převzat z [pdf] Era II: Deskriptory navržené specificky pro popis tváře např. attribute descriptor [Kumar et al. 2009] Obrázek převzat z Kumar at al. Attribute and Simile Classifiers for Face Verification. ICCV 09 Era III: Reprezentace učená z dat např. pomocí hlubokých neuronových sítí Obrázek převzat z Taigman et al: DeepFace: Closing the Gap to Human-Level Performance in Face Verification. CVPR 2014.
Verifikace tváří na databázi Labeled Faces in the Wild [Huang et al. 2014] Verifikace: pro daný pár obrázků rozhodni, zdali zobrazují stejnou identitu nebo ne. 13/16 true positive rate [%] 1 0.8 0.6 0.4 0.2 human 99.2% deepface 97.3% attribute 93.3% PCA 60% pozitivní příklad = stejná identita negativní příklad = různé identity 0 0 0.2 0.4 0.6 0.8 1 false positive rate [%] (human) N. Kumar et. al. Attribute and Simile Classifiers for Face Verification. ICCV 2009. (deepface) Y. Taigman et al.deepface: Closing the Gap to Human-Level Performance in Face Verification. CVPR 2014. (attribute) T. Berg et al. Tom-vs-Pete Classifiers and Identity-Preserving Alignment for Face Verification. BMVC 2012.
Aplikace 14/16 Video stream Detekce a sledování Registrace Zpracování signálu Odhad tepové frekvence Detekce mluvčího z videa P. Cerny. Heart beat rate estimation from video. Bachelor thesis. Advisor V.Franc. CTU FEL, 2014.
Aplikace 15/16 Odhad věku a pohlaví (www.eyedea.cz) (Structured Output SVM; ordinální klasifikace) Robotic toalet dispatcher Odhad identity (Multi-class SVM)
Konec 16/16
NONFACE FACE
1 1 1 1 # # # S 1 (x) S 2 (x) S 3 (x) S n (x) +1 +1 +1 +1
... -1... +1
1 true positive rate [%] 0.8 0.6 0.4 0.2 human 99.2% deepface 97.3% attribute 93.3% PCA 60% 0 0 0.2 0.4 0.6 0.8 1 false positive rate [%]