lecture 09 03/01/2012 shai avidan הבהרה: החומר המחייב הוא החומר הנלמד...

31
Lecture 09 03/01/2012 Shai Avidan עעעעע: עעעעע עעעעעע עעע עעעעע עעעעע עעעעע עעע עע עעעעעע / .עע עעעעע עעעעע

Upload: melvin-park

Post on 17-Jan-2016

227 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Lecture 09

03/01/2012Shai Avidan

מופיע: / לא המופיע זה ולא בכיתה הנלמד החומר הוא המחייב החומר הבהרה .במצגת

Page 2: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Today

• Viola Jones Face Detection:

• Integral Images.

• Gentle AdaBoost.

• Attentional Cascade.

Many slides adapted from P. Viola

Page 3: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Integral Images

Page 4: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Fast computation with integral images• The integral image

computes a value at each pixel (x,y) that is the sum of the pixel values above and to the left of (x,y), inclusive

• This can quickly be computed in one pass through the image

(x,y)

Page 5: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Computing the integral image

Page 6: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Computing the integral image

• Cumulative row sum: s(x, y) = s(x–1, y) + i(x, y) • Integral image: ii(x, y) = ii(x, y−1) + s(x, y)

ii(x, y-1)

s(x-1, y)

i(x, y)

MATLAB: ii = cumsum(cumsum(double(i)), 2);

Page 7: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Computing sum within a rectangle

• Let A,B,C,D be the values of the integral image at the corners of a rectangle

• Then the sum of original image values within the rectangle can be computed as: sum = A – B – C + D

• Only 3 additions are required for any size of rectangle!

D B

C A

Page 8: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Feature selection• For a 24x24 detection region, the number of possible rectangle features is

~160,000!

Page 9: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Feature selection

• For a 24x24 detection region, the number of possible rectangle features is ~160,000!

• At test time, it is impractical to evaluate the entire feature set

• Can we create a good classifier using just a small subset of all possible features?

• How to select such a subset?

Page 10: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Gentle AdaBoost

Page 11: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

gentleBoosting.m

function classifier = gentleBoost(x, y, Nrounds)

for m = 1:Nrounds

fm = selectBestWeakClassifier(x, y, w); w = w .* exp(- y .* fm); % store parameters of fm in classifier …end

Solve weighted least-squares

Re-weight training samples

Initialize weights w = 1

Page 12: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

• Defines a classifier using an additive model:

• We need to define a family of weak classifiers

Boosting

Strong classifier

Weak classifier

WeightFeaturesvector

from a family of weak classifiers

Page 13: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Boosting

• Different cost functions and minimization algorithms result is various flavors of Boosting

• In this demo, I will use gentleBoosting: it is simple to implement and numerically stable.

Page 14: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Boosting Boosting fits the additive model

by minimizing the exponential loss

Training samples

The exponential loss is a differentiable upper bound to the misclassification error.

Page 15: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Exponential loss

-1.5 -1 -0.5 0 0.5 1 1.5 20

0.5

1

1.5

2

2.5

3

3.5

4 Squared error

Exponential loss

yF(x) = margin

Misclassification errorLoss

Squared error

Exponential loss

Page 16: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Boosting Sequential procedure. At each step we add

For more details: Friedman, Hastie, Tibshirani. “Additive Logistic Regression: a Statistical View of Boosting” (1998)

to minimize the residual loss

inputDesired outputParametersweak classifier

Page 17: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

gentleBoosting

For more details: Friedman, Hastie, Tibshirani. “Additive Logistic Regression: a Statistical View of Boosting” (1998)

We chose that minimizes the cost:

At each iterations we just need to solve a weighted least squares problem

Weights at this iteration

• At each iteration:

Instead of doing exact optimization, gentle Boosting minimizes a Taylor approximation of the error:

Page 18: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Weak classifiers

• The input is a set of weighted training samples (x,y,w)

• Regression stumps: simple but commonly used in object detection.

Four parameters:

b=Ew(y [x> q])

a=Ew(y [x< q])x

fm(x)

q

fitRegressionStump.m

Page 19: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Boosting for face detection• First two features selected by boosting:

This feature combination can yield 100% detection rate and 50% false positive rate

Page 20: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Attentional Cascade

Page 21: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Boosting for face detection• A 200-feature classifier can yield 95% detection rate

and a false positive rate of 1 in 14084

Not good enough!

Receiver operating characteristic (ROC) curve

Page 22: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Attentional cascade• We start with simple classifiers which reject many

of the negative sub-windows while detecting almost all positive sub-windows

• Positive response from the first classifier triggers the evaluation of a second (more complex) classifier, and so on

• A negative outcome at any point leads to the immediate rejection of the sub-window

FACEIMAGESUB-WINDOW

Classifier 1T

Classifier 3T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Page 23: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Attentional cascade• Chain classifiers that are

progressively more complex and have lower false positive rates:

vs false neg determined by

%False Pos

%D

etec

tion

0 50

0

10

0

FACEIMAGESUB-WINDOW

Classifier 1T

Classifier 3T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Receiver operating characteristic

Page 24: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Attentional cascade• The detection rate and the false positive rate of the

cascade are found by multiplying the respective rates of the individual stages

• A detection rate of 0.9 and a false positive rate on the order of 10-6 can be achieved by a 10-stage cascade if each stage has a detection rate of 0.99 (0.9910 ≈ 0.9) and a false positive rate of about 0.30 (0.310 ≈ 6×10-6)

FACEIMAGESUB-WINDOW

Classifier 1T

Classifier 3T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Page 25: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Training the cascade• Set target detection and false positive rates for each stage• Keep adding features to the current stage until its target

rates have been met – Need to lower AdaBoost threshold to maximize detection (as

opposed to minimizing total classification error)– Test on a validation set

• If the overall false positive rate is not low enough, then add another stage

• Use false positives from current stage as the negative training examples for the next stage

Page 26: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

The implemented system• Training Data– 5000 faces

• All frontal, rescaled to 24x24 pixels

– 300 million non-faces• 9500 non-face images

– Faces are normalized• Scale, translation

• Many variations– Across individuals– Illumination– Pose

Page 27: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

System performance

• Training time: “weeks” on 466 MHz Sun workstation• 38 layers, total of 6061 features• Average of 10 features evaluated per window on

test set• “On a 700 Mhz Pentium III processor, the face

detector can process a 384 by 288 pixel image in about .067 seconds” – 15 Hz– 15 times faster than previous detector of comparable

accuracy (Rowley et al., 1998)

Page 28: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Output of Face Detector on Test Images

Page 29: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Other detection tasks

Facial Feature Localization

Male vs. female

Profile Detection

Page 30: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Profile Detection

Page 31: Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת

Summary: Viola/Jones detector

• Rectangle features• Integral images for fast computation• Boosting for feature selection• Attentional cascade for fast rejection of negative

windows