Viola Jones - Informatik 12
Transcription
Viola Jones - Informatik 12
Seminar: Multi-Core Architectures and Programming Viola-Jones Gesichtsdetektor Manuel Walter, Helmuth Kesser Hardware-Software-Co-Design Universität Erlangen-Nürnberg Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 1 Übersicht Einleitung Viola-Jones Gesichtsdetektor Aufbau Blockmerkmale Integralbild AdaBoost - Auswahl relevanter Merkmale Kaskadendetektor Ergebnisse Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 2 Einleitung Gesichtsdetektion Gesicht erkennen Hintergrund verwerfen Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser Klassifikationsfehler 3 Einleitung Anforderung an Detektor: Klassifikationsfehler möglichst gering Idealerweise Null erkennt jedes Gesicht und verwirft zuverlässig Hintergrund Beide Bedingungen optimieren, denn Erkennung aller Gesichter, aber ansonsten viele Fehler oder Erkennung kaum eines Gesichts sind in der Praxis nicht einsetzbar! zusätzlich: Kurze Laufzeiten während Detektionsphase Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 4 Einleitung Eigenschaften des Viola-Jones Detektors: blockbasiert - Graustufenbild - Filter berechnet aus dem Suchfenster Merkmalswerte, die an jeder Position beliebig skaliert werden können Bild mit unterschiedlicher Intensitätsstärke der Grauwerte Beispiel eines Graustufenbilds: Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 5 Aufbau des Detektors Suchfenster wird über komplettes Bild geschoben Bildausschnitt wird Klassifikator übergeben, der einen Merkmalswert ausrechnet Gesicht oder Hintergrund Jede Kombination eines Klassifikators gibt eine Stimme ab, die gewichtet in einen Mehrheitsentscheid einfließt Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 6 Aufbau des Detektors Graustufenbild berechnen Gesicht erkannt Integralbild berechnen Gesichtsmerkmale erkannt Blockmerkmale anwenden Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 7 Blockmerkmale Blockmerkmale/Klassifikatoren Fünf Basisblockmerkmale: Berechnen Helligkeitsdifferenzen einzelner Regionen Merkmalswert wird berechnet, indem Summe der Pixel in den dunklen Regionen von der Summe der hellen Regionen subtrahiert wird Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 8 Blockmerkmale Lage der Blockmerkmale Ein Blockmerkmal kann im Suchfenster an mehreren Positionen (a) in unterschiedlichen Skalierungen (b) platziert werden: Großflächige Merkmale niederfrequente Anteile (Helligkeitsunterschied) Schmale Merkmale hochfrequente Anteile (Linien und Kanten) Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 9 Integralbild Problem: Auswertung eines Blockmerkmals Helligkeitswerte in einzelnen Regionen aufsummieren Große Filter hohe Berechnungszeiten Viola-Jones verwendet 6060 solcher Merkmale Summe nicht in Laufzeit berechenbar Integralbild (integral image): Dient der schnellen Berechnung von Pixelsummen innerhalb rechteckiger Ausschnitte In jedem Punkt (x,y) steht die Summe I der Pixel innerhalb des Rechtecks mit Punkten (0,0), (x,0), (0,y), (x,y) (0,0) x i x j y i x j y I ( x, y ) I (i , j ) P(x,y) = I i0 j0 ( x, y ) I (i , j ) i0 j0 P(x,y) y Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 10 Integralbild Berechnung eines Punktes: Durch rekursives Umschreiben der Berechnungsvorschrift lässt sich das Integralbild in nur einem Durchgang effizient berechnen S ( x , y ) S ( x , y 1) i ( x , y ) I ( x , y ) I ( x 1, y ) S ( x , y ) Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser mit S(x,y) i(x,y) I(x,y) - kumulierte Spaltensumme - Ausgangsbild (a) - Eintrag in Integralbild (b) 11 Integralbild Beispiel zur Berechnung Wert an I(3, 3) 25 I(2, 2) + O(0..2, 0..2) 13 + 2+2+1+4+3 Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 12 Integralbild Allgemeine Berechnung: Durch diese Darstellung kann die Pixelsumme S innerhalb eines beliebigen Rechtecks an Position (x,y) mit der Breite w und Höhe h durch die entsprechende Pixelsumme aus dem Integralbild A, B, C, und D in konstanter Zeit berechnen lassen S Vier Zugriffe auf das Integralbild: S=D–B–C+A bei Viola-Jones: Rechtecke unmittelbar nebeneinander einige Zugriffe einsparen! z.B.: Zwei-Blockmerkmal sechs statt acht Zugriffe Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 13 Relevante Merkmale Basis-Blockmerkmale können auf unterschiedliche Weise im Suchfenster positioniert werden: Anzahl der Merkmale: Viola-Jones Suchfenster 24x24 Pixel Merkmal Anzahl , 43 200 , 27 600 20 736 Summe Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 162 336 14 Relevante Merkmale - AdaBoost Boosting Idee: Ensemble-Lernen Anstatt endgültige Entscheidung aufgrund einer Hypothese zu bilden, trifft man seine Entscheidung durch einen Mehrheitsentscheid Schwacher Klassifikator verwendet nur ein Merkmal Gewichtung und Kombination mehrer schwacher Klassifikatoren zu Mehrheitsentscheid Hier: finden möglichst weniger Klassifikatoren die gemeinsam zur zuverlässigen Gesichtsdetektion führen Gewichtung anhand von Trainingsbeispielen So lange schwache Klassifikatoren hinzufügen bis gewünschter kleiner Fehler erreicht wird Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser 15 Relevante Merkmale - AdaBoost Richtig klassifizierte Trainigsmerkmale geringer gewichten, Falsch klassifizierte stärker gewichten Konzentration des Lernalgorithmus auf die schwer zu klassifizierenden Fälle Zunächst Training der einzelnen schwachen Klassifikatoren in Abhängigkeit der Gewichte Wahl des Klassifikators mit dem geringsten Erkennungsfehler Anpassung der Gewichte Starker Klassifikator ergibt sich aus Kombination der besten schwachen Klassifikatoren 16 Relevante Merkmale - AdaBoost 17 Relevante Merkmale - AdaBoost - Erste Charakteristik zielt darauf ab, dass Augenpartie dunkler als Bereich um Jochbeine ist - Zweite Charakteristik vergleicht Helligkeit der Augen mit der über dem Nasenbein Erkennungsrate von 95% bei Klassifikator aus 200 Charakteristiken Fehlerhafte Erkennung in einem vom 14084 Fällen 0.7 Sekunden für ein Bild mit 384x288 Pixel Aber: Erstellen des Klassifikators erhöht die Rechenzeit 18 Relevante Merkmale - Kaskadendetektor Kaskadieren der einzelnen Klassifikatoren nach deren Effizienz Einfache Klassifikatoren werden zuerst angewendet Bei negativem Ergebnis eines Klassifikators wird die Kette sofort unterbrochen Schwierige kommen nur zum Einsatz um geringe Fehlerraten zu bewirken 19 Relevante Merkmale - Kaskadendetektor Guter Einstiegsklassifikator besteht z.B. aus zwei Charakteristiken und erkennt 100% Gesichter bei falscher Erkennungsrate von 40% Training der Kaskade abhängig von zwei Größen, der Detektionsrate und der Falsch-Positiv-Rate Ziel ist möglichst große Detektionsrate bei möglichst kleiner Falsch-Positiv-Rate und geringem Rechenaufwand Dazu erst Klassifikatoren trainieren, dann Kaskaden trainieren 20 Relevante Merkmale - Kaskadendetektor 21 Ergebnisse Detektor mit 32 Kaskaden Trainiert mit Sammlung aus 4916 Gesichtern und 9500 ohne Gesicht 4297 Charakteristiken insgesamt im Detektor Erster Klassifikator mit zwei Charakteristiken und 60% Falsch-Erkennung Zweiter mit fünf Charakteristiken und 80% Drei Klassifikatoren mit je 20 Charakteristiken Zwei mit je 50 Charakteristiken Fünf mit je 100 und 20 mit je 200 Charakteristiken Verarbeitung eines 384x288 Pixel Bildes in ca 0.067s Etwa 15x schneller als Rowley-Baluja-Kanade Etwa 600x schneller als Schneiderman-Kanade 22 Ergebnisse Schwachstelle ist Training der Klassifikatoren und des Kaskadendetektors Vernachlässigbar da einmaliger Aufwand 23 Fragen? 24