Rozpoznávání v obraze AdaBoost a detekce objektů IKR, 2013 Roman Juránek <ijuranek@fit.vutbr.cz> www.fit.vutbr.cz/~ijuranek/personal
Detekce objektů Úloha - v daném obraze nalézt objekty určitých tříd Detekce aut, značek, obličejů,... Ukážeme si detekci kaskádou klasifikátorů, ale existuje mnoho dalších metod!
Detekce pomocí klasifikátoru Skenování obrazu oknem Binární klasifikace každého okna pozadí/objekt AdaBoost Cascade Kaskáda lineárních klasifikátorů Jeden 'silný' klasifikátor se skládá z množiny slabých klasifikátorů Haarovy příznaky + prahování odezev
AdaBoost - algoritmus Vstup: vzorky a jejich labely Výstup: klasifikátor - lineární kombinace jednoduchých slabých klasifikátorů Trénovací vzorky x, y=1
AdaBoost - algoritmus Inicializace vah vzorků For Výpočet chyby Výběr nejlepšího slabého klasifikátoru Váha v silném klasifikátoru end Nové váhy
AdaBoost Obecný algoritmus pro trénování klasifikátorů Skládání slabých klasifikátorů Slabý klasifikátor může být 'cokoliv', ale obvykle je to jednoduchá funkce Perceptron, práh,... Real-time detekce obličejů Viola, P., Jones, M.: Robust Real-Time Face Detection, IJCV, 2004 Skenování obrazu oknem (24x24 pixelů) Slabé klasifikátory - jeden Haarův příznak + práh Kaskáda klasifikátorů
Haarovy příznaky
Haarovy příznaky Rozdíl součtů hodnot v obdelníkových oblastech obrazu Rychlý výpočet pomocí integrálního obrazu Ukázka výpočtu v Matlabu function J = integralimage(i) J = cumsum(cumsum(i,2),1); end Funkce: integralimage - výpočet int. obrazu integralkernel - priprava jádra integralfilter - konvoluce
Haarovy příznaky jako slabé klasifikátory Haarovy příznaky na všech pozicích, ve všech velikostech -> slabé klasifikátory Pro 24x24 px okno asi 200 000 možností! h: X -> {-1,1}
Detektor pozice, velikost a typ příznaku, p, θ
Kaskáda Obraz x H1(x) H2(x) H3(x) Další stage... Pozadí
Kaskáda Degenerovaný rozhodovací strom Stupně velmi efektivně 'zahazují' pozadí, ale 'propouští' (skoro všechny) objekty Trénování po stupních Je potřeba velké množství dat Trénování se provadí jen na vzorcích, které prošly předchozími stupni Každý další stupeň má těžší úlohu
Kaskáda Detektor obličeje Viola, IJCV, 2004 Test MIT+CMU dataset (130 obrázků) Det. rate 91% při 1 false positive na obrázek cca 15 fps (už v r. 2001!!!)
Modifikace Rychlost - využití hardware (SSE, GPU, OpenCL, FPGA) Přesnost - struktura klasifikátoru, příznaky, algoritmy Algoritmus - Real AdaBoost, GentleBoost, FloatBoost, Soft-cascade/WaldBoost Slabé klasifikátory - perceptron, svm, logistická regrese, decision trees,... Obrazové příznaky - HOG, LBP, projekce (PCA, LDA, ICA), pixely, gabor wavelets,...
Detekce prakticky Trénování klasifikátorů Haar/LBP Cascade v OpenCV Jednoduché trénovaní, dostačující přesnost Předtrénované detektory - face, eyes, upper body Matlab/Octave Detekce OpenCV Různé implementace z internetu
Další metody HOG + Linear SVM Decision trees Deformable templates Dominant Orientation Templates Neuronové sítě, konvoluční neurovové sítě Co se řeší Multi-view, Multi-class, 3D Articulated objects Příznaky - rychlá extrakce, nové typy,... Rychlá detekce - akcelerace, algoritmy...
Další metody - ukázky Detekce obličeje a jeho pózy Rozpoznání částí těla a odhad pózy na Kinectu Detekce chodců
Když chcete vědět víc 1. Viola, P., Jones, M. J.: Robust Real-Time Face Detection, IJCV, 2004 2. Sochman, J., Matas, J.: WaldBoost - Learning for Time Constrained Sequential Detection, CVPR, 2005 3. Li, S., Zhang, Z., Shum, H., Zhang, H.: FloatBoost learning for classification, NIPS, 2002 4. Dalal, N. & Triggs, B. Histograms of Oriented Gradients for Human Detection, CVPR, 2005 5. Papageorgiou, C. P., Oren, M., Poggio, T.: A General Framework for Object Detection, ICCV, 1998 6. P. Dollár, S. Belongie and P. Perona: The Fastest Pedestrian Detector in the West, BMVC, 2010 7. Felzenszwalb, P., Girshick, R., McAllester, D.: Cascade object detection with deformable part models, CVPR, 2010 8. Benenson, R., Mathias, M., Timofte, R., Van Gool L.: Pedestrian detection at 100 frames per second, CVPR, 2012 http://www.cvpapers.com/ - nové články z konferencí Konference - CVPR, ECCV, ICCV, BMVC,... Časopisy - PAMI, JRTIP, IJCV, Pattern Recognition Letters,... Výzkumne skupiny - MS Research Cambridge, ETH Zurich, EPFL, INRIA, CVUT CMP...