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
i0 j0

( x, y ) 
  I (i , j )
i0 j0
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