Upload
vannhi
View
219
Download
0
Embed Size (px)
Citation preview
1Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Seminar: Multi-Core Architectures and Programming
Viola-Jones Gesichtsdetektor
Manuel Walter, Helmuth Kesser
Hardware-Software-Co-Design
Universität Erlangen-Nürnberg
2Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Übersicht
Einleitung
Viola-Jones Gesichtsdetektor
Aufbau
Blockmerkmale
Integralbild
AdaBoost - Auswahl relevanter Merkmale
Kaskadendetektor
Ergebnisse
3
Einleitung
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Gesichtsdetektion
Gesicht erkennen
Hintergrund verwerfenKlassifikationsfehler
4
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
5
Einleitung
Eigenschaften des Viola-Jones Detektors:
blockbasiert - Filter berechnet aus dem Suchfenster Merkmalswerte, die an jeder Position beliebig skaliert werden können
Graustufenbild - Bild mit unterschiedlicher Intensitätsstärke der Grauwerte
Beispiel eines Graustufenbilds:
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
6
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
7
Aufbau des Detektors
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Graustufenbild berechnen
Integralbild berechnen
Blockmerkmaleanwenden
Gesichtsmerkmale erkannt
Gesicht erkannt
8
Blockmerkmale
Blockmerkmale/Klassifikatoren
Fünf Basisblockmerkmale:
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Berechnen Helligkeitsdifferenzen einzelner Regionen
Merkmalswert wird berechnet, indem Summe der Pixel in den dunklen Regionen von der Summe der hellen Regionen subtrahiert wird
9
Blockmerkmale
Lage der Blockmerkmale
Ein Blockmerkmal kann im Suchfenster an mehreren Positionen (a) in unterschiedlichen Skalierungen (b) platziert werden:
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Großflächige Merkmale niederfrequente Anteile (Helligkeitsunterschied)
Schmale Merkmale hochfrequente Anteile (Linien und Kanten)
10
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 der Pixel innerhalb des Rechtecks mit Punkten (0,0), (x,0), (0,y), (x,y)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
I
xi
i
yj
j
jiIyxI
0 0
),(),( P(x,y) =
x
y
(0,0)
xi
i
yj
j
jiIyxI
0 0
),(),(
P(x,y)
11
Integralbild
Berechnung eines Punktes:
Durch rekursives Umschreiben der Berechnungsvorschrift lässt sich das Integralbild in nur einem Durchgang effizient berechnen
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
),(),1(),(
),()1,(),(
yxSyxIyxI
yxiyxSyxS
mitS(x,y) - kumulierte Spaltensummei(x,y) - Ausgangsbild (a)I(x,y) - Eintrag in Integralbild (b)
12
Integralbild
Beispiel zur Berechnung
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Wert an I(3, 3) I(2, 2) + O(0..2, 0..2)
25 13 + 2+2+1+4+3
13
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
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
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
S
14
Relevante Merkmale Basis-Blockmerkmale können auf unterschiedliche Weise im
Suchfenster positioniert werden:
Friedrich-Alexander-Universität Erlangen-Nürnberg
Manuel Walter, Helmuth Kesser
Anzahl der Merkmale: Viola-Jones Suchfenster 24x24 Pixel
Merkmal Anzahl
, 43 200
, 27 600
20 736
Summe 162 336
15
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
16
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 einzelnenschwachen Klassifikatoren in Abhängigkeit der Gewichte
Wahl des Klassifikators mit demgeringsten Erkennungsfehler
Anpassung der Gewichte
Starker Klassifikator ergibt sich aus Kombination der besten schwachen Klassifikatoren
18
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
19
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
20
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
22
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
23
Ergebnisse
Schwachstelle ist Training der Klassifikatoren und des Kaskadendetektors
Vernachlässigbar da einmaliger Aufwand