Object detection with
deformable part-based models
Many slides based on P. Felzenszwalb
Challenge: Generic object detection
Histograms of oriented gradients (HOG)
Partition image into blocks and compute histogram of
gradient orientations in each block
N. Dalal and B. Triggs, Histograms of Oriented Gradients for Human Detection,
CVPR 2005
Image credit: N. Snavely
Pedestrian detection with HOG
Train a pedestrian template using a linear
support vector machine
posi%ve
training
examples
nega%ve
training
examples
N. Dalal and B. Triggs, Histograms of Oriented Gradients for Human Detection,
CVPR 2005
Pedestrian detection with HOG
Train a pedestrian template using a linear support vector
machine
At test time, convolve feature map with template
Find local maxima of response
For multi-scale detection, repeat over multiple levels of a
HOG pyramid
HOG feature map Template Detector response map
N. Dalal and B. Triggs, Histograms of Oriented Gradients for Human Detection,
CVPR 2005
Example detections
[Dalal
and
Triggs,
CVPR
2005]
Are we done?
Single rigid template usually not enough to
represent a category
Many objects (e.g. humans) are articulated, or
have parts that can vary in configuration
Many object categories look very different from
different viewpoints, or from instance to instance
Slide by N. Snavely
Discriminative part-based models
Root Part Deformation
filter filters weights
P. Felzenszwalb, R. Girshick, D. McAllester, D. Ramanan,
Object Detection with Discriminatively Trained Part Based Models, PAMI 32(9), 2010
Discriminative part-based models
Multiple components
P. Felzenszwalb, R. Girshick, D. McAllester, D. Ramanan,
Object Detection with Discriminatively Trained Part Based Models, PAMI 32(9), 2010
Discriminative part-based models
P. Felzenszwalb, R. Girshick, D. McAllester, D. Ramanan,
Object Detection with Discriminatively Trained Part Based Models, PAMI 32(9), 2010
Object hypothesis
Multiscale model: the resolution of part
filters is twice the resolution of the root
Scoring an object hypothesis
The score of a hypothesis is the sum of filter scores
minus the sum of deformation costs
Subwindow
n features n Displacements
score(p 0 ,..., p n ) = Fi H (p i ) Di (dxi , dyi ,dxi2 , dyi2 )
i =0 i =1
Filters Deformation weights
Scoring an object hypothesis
The score of a hypothesis is the sum of filter scores
minus the sum of deformation costs
Subwindow
n features n Displacements
score(p 0 ,..., p n ) = Fi H (p i ) Di (dxi , dyi ,dxi2 , dyi2 )
i =0 i =1
Filters Deformation weights
score(z ) = w H (z )
Concatenation of filter Concatenation of
and deformation subwindow features
weights and displacements
Detection
Define the score of each root filter location as the
score given the best part placements:
score(p 0 ) = max score(p 0 ,..., p n )
p1 ,...,p n
Detection
Define the score of each root filter location as the
score given the best part placements:
score(p 0 ) = max score(p 0 ,..., p n )
p1 ,...,p n
Efficient computation: generalized distance transforms
For each default part location, find the score of the
best displacement
(
Ri ( x, y ) = max Fi H ( x + dx, y + dy ) Di (dx, dy, dx 2 , dy 2 )
dx , dy
)
Head filter Deformation
cost
Detection
Define the score of each root filter location as the
score given the best part placements:
score(p 0 ) = max score(p 0 ,..., p n )
p1 ,...,p n
Efficient computation: generalized distance transforms
For each default part location, find the score of the
best displacement
(
Ri ( x, y ) = max Fi H( x + dx, y + dy ) Di (dx, dy , dx 2 , dy 2 )
dx , dy
)
Head
Distance
filter transform
responses
Head filter
Detection
Detection result
Training
Training data consists of images with labeled
bounding boxes
Need to learn the filters and deformation parameters
Training
Our classifier has the form
f (x) = max z w H (x, z )
w are model parameters, z are latent hypotheses
Latent SVM training:
Initialize w and iterate:
Fix w and find the best z for each training example (detection)
Fix z and solve for w (standard SVM training)
Issue: too many negative examples
Do data mining to find hard negatives
Car model
Component 1
Component 2
Car detections
Person model
Person detections
Cat model
Cat detections
Bottle model
More detections
PASCAL VOC Challenge (2005-2012)
http://host.robots.ox.ac.uk/pascal/VOC/
Challenge classes:
Person: person
Animal: bird, cat, cow, dog, horse, sheep
Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train
Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor
Dataset size (by 2012):
11.5K training/validation images, 27K bounding boxes, 7K
segmentations
Quantitative results (PASCAL 2008)
7 systems competed in the 2008 challenge
Out of 20 classes, first place in 7 classes and
second place in 8 classes
Bicycles Person Bird
DPM DPM
DPM
Object detection progress
PASCAL VOC
80%
70%
mean0Average0Precision0 (mAP)
60% Before deep convnets
50%
40%
Using deep convnets
30%
20%
10%
0%
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
year
Detection with deep networks
Object detection system overview. Our system (1) takes an input image, (2) extracts
around 2000 bottom-up region proposals, (3) computes features for each proposal using
a large convolutional neural network (CNN), and then (4) classifies each region using
class-specific linear SVMs. R-CNN achieves a mean average precision (mAP) of
53.7% on PASCAL VOC 2010. For comparison, Uijlings et al. (2013) report 35.1% mAP
using the same region proposals, but with a spatial pyramid and bag-of-visual-words
approach. The popular deformable part models perform at 33.4%.
R. Girshick, J. Donahue, T. Darrell, and J. Malik,
Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation,
CVPR 2014.