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.