Title: AdaBoost
1AdaBoost Its Applications
2Outline
- Overview
- The AdaBoost Algorithm
- How and why AdaBoost works?
- AdaBoost for Face Detection
3AdaBoost Its Applications
4Introduction
Boosting
AdaBoost
A learning algorithm
Adaptive
Building a strong classifier a lot of weaker ones
5AdaBoost Concept
. . .
strong classifier
weak classifiers
slightly better than random
6Weaker Classifiers
- Each weak classifier learns by considering one
simple feature - T most beneficial features for classification
should be selected - How to
- define features?
- select beneficial features?
- train weak classifiers?
- manage (weight) training samples?
- associate weight to each weak classifier?
. . .
strong classifier
weak classifiers
slightly better than random
7The Strong Classifiers
How good the strong one will be?
. . .
strong classifier
weak classifiers
slightly better than random
8AdaBoost Its Applications
9The AdaBoost Algorithm
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
10The AdaBoost Algorithm
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
Output final classifier
11Boosting illustration
Weak Classifier 1
12Boosting illustration
Weights Increased
13Boosting illustration
Weak Classifier 2
14Boosting illustration
Weights Increased
15Boosting illustration
Weak Classifier 3
16Boosting illustration
Final classifier is a combination of weak
classifiers
17AdaBoost Its Applications
- How and why AdaBoost works?
18The AdaBoost Algorithm
What goal the AdaBoost wants to reach?
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
Output final classifier
19The AdaBoost Algorithm
What goal the AdaBoost wants to reach?
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
Output final classifier
20Goal
Final classifier
Minimize exponential loss
21Goal
Final classifier
Minimize exponential loss
Maximize the margin yH(x)
22Goal
Minimize
Final classifier
Define
with
Then,
23Minimize
Final classifier
Define
with
Then,
0
Set
24Minimize
Final classifier
Define
with
Then,
0
25Minimize
Final classifier
with
Define
Then,
0
26Minimize
Final classifier
with
Define
Then,
0
27Minimize
Final classifier
with
Define
Then,
28Minimize
Final classifier
with
Define
Then,
29Minimize
Final classifier
with
Define
Then,
maximized when
30Minimize
Final classifier
with
Define
Then,
At time t
31Minimize
Final classifier
with
Define
Then,
At time t
At time 1
At time t1
32AdaBoost Its Applications
- AdaBoost for
- Face Detection
33The Task ofFace Detection
Many slides adapted from P. Viola
34Basic Idea
- Slide a window across image and evaluate a face
model at every location.
35Challenges
- Slide a window across image and evaluate a face
model at every location. - Sliding window detector must evaluate tens of
thousands of location/scale combinations. - Faces are rare 010 per image
- For computational efficiency, we should try to
spend as little time as possible on the non-face
windows - A megapixel image has 106 pixels and a
comparable number of candidate face locations - To avoid having a false positive in every image
image, our false positive rate has to be less
than 10?6
36The Viola/Jones Face Detector
- A seminal approach to real-time object detection
- Training is slow, but detection is very fast
- Key ideas
- Integral images for fast feature evaluation
- Boosting for feature selection
- Attentional cascade for fast rejection of
non-face windows
P. Viola and M. Jones. Rapid object detection
using a boosted cascade of simple features. CVPR
2001.
P. Viola and M. Jones. Robust real-time face
detection. IJCV 57(2), 2004.
37Image Features
Rectangle filters
38Image Features
Rectangle filters
39Size of Feature Space
- How many number of possible rectangle features
for a 24x24 detection region?
AB
C
D
Rectangle filters
40Feature Selection
- How many number of possible rectangle features
for a 24x24 detection region?
AB
C
D
What features are good for face detection?
41Feature Selection
- How many number of possible rectangle features
for a 24x24 detection region?
AB
C
- Can we create a good classifier using just a
small subset of all possible features? - How to select such a subset?
D
42Integral 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.
(x, y)
43Computing the Integral Image
- 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)
44Computing Sum within a Rectangle
D
B
C
A
Only 3 additions are required for any size of
rectangle!
45Scaling
- Integral image enables us to evaluate all
rectangle sizes in constant time. - Therefore, no image scaling is necessary.
- Scale the rectangular features instead!
2
1
3
4
5
6
46Boosting
- Boosting is a classification scheme that works by
combining weak learners into a more accurate
ensemble classifier - A weak learner need only do better than chance
- Training consists of multiple boosting rounds
- During each boosting round, we select a weak
learner that does well on examples that were hard
for the previous weak learners - Hardness is captured by weights attached to
training examples
Y. Freund and R. Schapire, A short introduction
to boosting, Journal of Japanese Society for
Artificial Intelligence, 14(5)771-780,
September, 1999.
47The AdaBoost Algorithm
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
48The AdaBoost Algorithm
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
Output final classifier
49Weak Learners for Face Detection
What base learner is proper for face detection?
Given
Initialization
For
- Find classifier which
minimizes error wrt Dt ,i.e.,
Output final classifier
50Weak Learners for Face Detection
51Boosting
- Training set contains face and nonface examples
- Initially, with equal weight
- For each round of boosting
- Evaluate each rectangle filter on each example
- Select best threshold for each filter
- Select best filter/threshold combination
- Reweight examples
- Computational complexity of learning O(MNK)
- M rounds, N examples, K features
52Features Selected by Boosting
First two features selected by boosting
This feature combination can yield 100 detection
rate and 50 false positive rate
53ROC Curve for 200-Feature Classifier
A 200-feature classifier can yield 95 detection
rate and a false positive rate of 1 in 14084.
Not good enough!
To be practical for real application, the false
positive rate must be closer to 1 in 1,000,000.
54Attentional 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
Classifier 2
Classifier 1
Classifier 3
55Attentional Cascade
- Chain classifiers that are progressively more
complex and have lower false positive rates
Classifier 2
Classifier 1
Classifier 3
56Detection Rate and False Positive Rate for
Chained Classifiers
- 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 )
Classifier 2
Classifier 1
Classifier 3
57Training 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
58Training the Cascade
59ROC Curves Cascaded Classifier to Monlithic
Classifier
60ROC Curves Cascaded Classifier to Monlithic
Classifier
- There is little difference between the two in
terms of accuracy. - There is a big difference in terms of speed.
- The cascaded classifier is nearly 10 times faster
since its first stage throws out most non-faces
so that they arenever evaluated by subsequent
stages.
61The 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
62Structure of the Detector Cascade
- Combining successively more complex classifiers
in cascade - 38 stages
- included a total of 6060 features
63Structure of the Detector Cascade
All Sub-Windows
1
2
3
4
5
6
7
8
38
T
T
T
T
T
T
T
T
T
Face
F
F
F
F
F
F
F
F
F
Reject Sub-Window
64Speed of the Final Detector
- On a 700 Mhz Pentium III processor, the face
detector can process a 384 ?288 pixel image in
about .067 seconds - 15 Hz
- 15 times faster than previous detector of
comparable accuracy (Rowley et al., 1998) - Average of 8 features evaluated per window on
test set
65Image Processing
- Training ? all example sub-windows were variance
normalized to minimize the effect of different
lighting conditions - Detection ? variance normalized as well
66Scanning the Detector
- Scaling is achieved by scaling the detector
itself, rather than scaling the image - Good detection results for scaling factor of 1.25
- The detector is scanned across location
- Subsequent locations are obtained by shifting the
window s? pixels, where s is the current scale - The result for ? 1.0 and ? 1.5 were reported
67Merging Multiple Detections
68ROC Curves for Face Detection
69Output of Face Detector on Test Images
70Other Detection Tasks
Facial Feature Localization
Profile Detection
Male vs. female
71Other Detection Tasks
Facial Feature Localization
Profile Detection
72Other Detection Tasks
Male vs. Female
73Conclusions
- How adaboost works?
- Why adaboost works?
- Adaboost for face detection
- Rectangle features
- Integral images for fast computation
- Boosting for feature selection
- Attentional cascade for fast rejection of
negative windows