Corner and Interest Point Detection

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 37

Corner and Interest

point detection
• Many applications require relating two or more images in order to extract
information from them.
• For example, if two successive frames in a video sequence taken from a moving
camera can be related, it is possible to extract information regarding the depth of
objects in the environment and the speed of the camera.
• The brute force method of comparing every pixel in the two images is
computationally prohibitive for the majority of applications.
• Intuitively, one can image relating two images by matching only locations in the
image that are in some way interesting.
• Such points are referred to as interest points and are located using an interest
point detector.
• Finding a relationship between images is then performed using only these points.
This drastically reduces the required computation time.
Applications of Corner Detectors
The use of interest points (and thus corner detectors) to find
corresponding points across multiple images is a key step in many
image processing and computer vision applications. Some of the most
notable examples are:
•stereo matching
•image registration (of particular importance in medical imaging)
•stitching of panoramic photographs
•object detection/recognition
•motion tracking
•robot navigation
• Local invariant features
– Detection of interest points
• (Harris corner detection)
• Scale invariant blob detection: LoG
– Description of local patches
• SIFT pipeline for invariant local features
Local invariant features
1) Detection: Identify the interest
points

2) Description: Extract vector feature


descriptor surrounding each interest
point. x1  [ x1(1) ,  , xd(1) ]

3) Matching: Determine
correspondence between descriptors in
two views
x 2  [ x1( 2 ) , , xd( 2 ) ]
1. Identify a Specific Instance
• General objects
– Challenges: rotation, scale, occlusion,
localization
– Approaches
• Geometric configurations of keypoints
– Works well for planar, textured objects
1. Identify a Specific Instance
• Faces
– Typical scenario: few examples per face,
identify or verify test example
– What’s hard: changes in expression, lighting,
age, occlusion, viewpoint
– Basic approaches (all nearest neighbor)
1. Project into a new subspace (or kernel space) (e.g.,
“Eigenfaces”=PCA)
2. Measure face features
3. Make 3d face model, compare shape+appearance (e.g., AAM)
2. Detect Instance of a Category
• Much harder than specific instance
recognition

• Challenges
– Everything in instance recognition
– Intraclass variation
– Representation becomes crucial
• Template or sliding window
• Works well when
– Object fits well into rectangular window
– Interior features are discriminative

Schneiderman Kanade 2000


• Parts-based
3. Assign a label to a pixel or
region
• Stuff
– Materials, object regions, textures, etc.
– Approaches
• Label patches + CRF
• Segmentation + Label Regions
General Process of Object
Recognition
Specify Object Model

Generate Hypotheses

Score Hypotheses

Resolution
General Process of Object
Recognition
Example: Template Matching

Intensity Template, at x-y


Specify Object Model
Scanning window

Generate Hypotheses

Normalized X-Corr
Score Hypotheses

Resolution Threshold + Non-


max suppression
General Process of Object Recognition
Example: Keypoint-based
Instance Recognition

A1 B3
Specify Object Model A3
A2

Affine-variant B2
B1
point locations
Generate Hypotheses
Affine
Parameters

Score Hypotheses
# Inliers

Resolution Choose hypothesis with max


score above threshold
Overview of Keypoint Matching
1. Find a set of
distinctive key-
points
A1 B3
2. Define a region
around each
A2 A3 keypoint
B2
3. Extract and
B1
normalize the
region content
fA fB
4. Compute a local
descriptor from the
normalized region
d ( f A, fB )  T
5. Match local
descriptors
Main challenges
• Change in position and scale
• Change in viewpoint
• Occlusion
• Articulation
Goals for Keypoints

Detect points that are repeatable and distinctive


Hessian Detector
• Hessian determinant
Ixx

 I xx I xy 
Hessian ( I )  
 I xy I yy 
Iyy
Ixy

Intuition: Search for strong


derivatives in two
orthogonal directions
Hessian Detector
• Hessian determinant
Ixx

 I xx I xy 
Hessian ( I )  
 I xy I yy 
Iyy
Ixy

det( Hessian( I ))  I xx I yy  I xy2


In Matlab:
I xx .  I yy  ( I xy )^ 2
K. Grauman, B. Leibe
Hessian Detector – Responses

Effect: Responses mainly


on corners and strongly
textured areas.
Harris Detector
• Second moment matrix
(autocorrelation matrix)
 I x2 ( D ) I x I y ( D )
 ( I ,  D )  g ( I )   
I I
 x y D( ) I 2
y ( )
D  

Intuition: Search for local


neighborhoods where the
image content has two
main directions
(eigenvectors).
K. Grauman, B. Leibe
Harris Detector [Harris88]

• Second moment
Ix Iy
matrix 1. Image
derivatives
(autocorrelation 2. Square of Ix 2 Iy 2 I x Iy
matrix) derivatives

3. Gaussian g(Ix2) g(Iy2) g(IxIy)


filter g(I)

4. Cornerness function – both eigenvalues are strong


g(IxIy)
har  det[  ( I , D)]   [trace( ( I , D))] 
g ( I x2 ) g ( I y2 )  [ g ( I x I y )]2   [ g ( I x2 )  g ( I y2 )]2

5. Non-maxima suppression har


27
Harris Detector – Responses

Effect: A very precise


corner detector.
What Is A Useful Signature Function?
• Laplacian-of-Gaussian = “blob” detector
Laplacian-of-Gaussian (LoG)
• Local maxima in scale
 
space of Laplacian-of-
Gaussian


Lxx ( )  Lyy ( ) 



 List of
(x, y, s)

Difference-of-Gaussian (DoG)
• Difference of Gaussians as approximation of the
Laplacian-of-Gaussian

- =
DoG – Efficient Computation
• Computation in Gaussian scale pyramid

Sampling with
step =2

1 
Original image  2 4

Maximally Stable Extremal Regions
• Based on Watershed segmentation algorithm
• Select regions that stay stable over a large
parameter range

K. Grauman, B. Leibe
Example Results: MSER

35 K. Grauman, B. Leibe
Local Descriptors
• The ideal descriptor should be
– Robust
– Distinctive
– Compact
– Efficient

• Most available descriptors focus on


edge/gradient information
– Capture texture information
– Color rarely used
K. Grauman, B. Leibe
Local Descriptors: SIFT
Descriptor

Histogram of oriented
gradients
• Captures important texture
information
• Robust to small translations /
affine deformations
K. Grauman, B. Leibe
Local Descriptors: Shape Context

Count the number of points


inside each bin, e.g.:

Count = 4

...
Count = 10

Log-polar binning: more


precision for nearby points,
more flexibility for farther
points.

K. Grauman, B. Leibe
Local Descriptors: Geometric Blur

Compute
edges at four
orientations
Extract a patch
in each channel

~ Apply spatially varying


blur and sub-sample
Example descriptor
(Idealized signal)

Berg & Malik, CVPR 2001


K. Grauman, B. Leibe
Choosing a detector
• What do you want it for?
– Precise localization in x-y: Harris
– Good localization in scale: Difference of Gaussian
– Flexible region shape: MSER

• Best choice often application dependent


– Harris-/Hessian-Laplace/DoG work well for many natural
categories
– MSER works well for buildings and printed things

• Why choose?
– Get more points with more detectors
 The probability of zero values on the first-order diffe
rence map of textured regions
– another measurement of streaking artifacts

original median filtered first-order difference map


G. Cao, et al. , “Forensic detection of median filtering in digital images”, ICME 2010

41
Median filter based detection

original median filtered first-order difference map

42

You might also like