24
1 Friedrich-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

Seminar: Multi-Core Architectures and Programming Viola ... · 1 Friedrich-Alexander-Universität Erlangen-Nürnberg Manuel Walter, Helmuth Kesser Seminar: Multi-Core Architectures

  • 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

17

Relevante Merkmale - AdaBoost

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

21

Relevante Merkmale - Kaskadendetektor

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

24

Fragen?