Viola-Jones

Transcription

Viola-Jones
Viola-Jones
Bilder aus: “Robust Real-time Object Detection”, Paul Viola, Michael Jones, IJCV01
Bisher...
●
Integral-Bild
●
●
SURF
AdaBoost
Detektor
●
Haar-Detektoren
●
4 Arten (← Anwendungspez.)
●
Integralbild
●
Skalierungsinvarianz
●
Skaliere Detektor
→ SURF
Merkmale f(x)
●
Trainingsmenge
●
Normalisiert
●
24x24 Pixel
●
Zentriert
Detektor
●
Detektoren
●
24x24 Pixel Fenster
●
Alle Variationen
–
–
–
Positionen
Größen
...
→ 160k Mögliche
AdaBoost
●
Schwache Klassifizierer → Starker
F(x) = α1f1(x)+α2f2(x)+...
●
Iteratives Verfahren
●
letzte Vorlesung
Problem
●
N-Klassifikatoren
F(x) = α1f1(x)+α2f2(x)+...
●
X*Y Positionen
●
K-Skalierungen
N * K * X * Y: Echtzeit?
Problem
●
N-Klassifikatoren
F(x) = α1f1(x)+α2f2(x)+...
●
X*Y Positionen
●
K-Skalierungen
© David Gray/Reuters/Corbis
Anwendungspezifisch
Problem
●
N-Klassifikatoren
F(x) = α1f1(x)+α2f2(x)+...
●
X*Y Positionen
●
K-Skalierungen
© David Gray/Reuters/Corbis
Anwendungspezifisch
Problem
●
N-Klassifikatoren
F(x) = α1f1(x)+α2f2(x)+...
●
X*Y Positionen
●
K-Skalierungen
0.01% Treffer
Kaskade
●
Negative raus
●
Priorität: Positive behalten!
VJ-Kaskade
●
Bekannt
f1(x) > 0 Positiv
f1(x) < 0 Negativ
VJ-Kaskade
●
Senke Schwellwert (κ < 0)
f1(x) > κ Positiv
f1(x) < κ Negativ
False Positive Rate ~ True Positive Rate (Recall)
VJ-Heuristik
●
●
Wähle
●
f: Maximale False-Positive-Rate pro Ebene
●
r: Minimaler Recall pro Ebene
●
Ftarget: Gesamt False-Positive-Zielrate
Starte mit
●
Trainingsset P, N
●
F0=1.0, R0=1.0
VJ-Heuristik
While Fi > Ftarget
i=i+1, Fi = Fi-1
Trainiere Ebene i mit AdaBoost
–
Erweitere Quorum um 1, solange Fi > f * Fi-1
–
Bestimme neu: Fi
–
Schwellwert reduzieren, damit: r * Ri-1 < Ri
Wenn Fi < Ftarget
Setze N: Menge der falschen Positive
Kaskade
99.9%
50%
99.9%
50%
99.9%
50%
99.9%^3
50%^3
= 99.7%
= 12.5%
Ergebnis
●
Erkennungrate
●
Tendentiell schlechter
●
Schneller
●
Konfigurierbar
Arten an Fehlern
●
False Negatives (Fn) ← → True Negative (Tn)
●
●
False Positives (Fp)
●
●
Positiv → Negativ klassifiziert
← → True Positive (Tp)
Negativ → Positiv klassifiziert
False Negative Rate: Fn / (Tp + Fn)
Original
• User selects values for f, the maximum acceptable false positive rate per layer and r, the
minimum acceptable recall per layer.
• User selects target overall false positive rate Ftarget.
• P = set of positive examples
• N = set of negative examples
• F0 = 1.0; R0 = 1.0; i = 0
While Fi > Ftarget
i++
ni = 0; Fi = Fi-1
while Fi > f x Fi-1
o ni ++
o Use P and N to train a classifier with ni features using AdaBoost
o Evaluate current cascaded classifier on validation set to determine Fi and Ri
o Decrease threshold for the ith classifier until the current cascaded classifier has
a detection rate of at least r x Ri-1 (this also affects Fi)
N=∅
If Fi > Ftarget then evaluate the current cascaded detector on the set of non-face images
and put any false detections into the set N.