CSE 185 Introduction To Computer Vision: Local Invariant Features
CSE 185 Introduction To Computer Vision: Local Invariant Features
• Reading: Chapter 4
Correspondence across views
• Correspondence: matching points, patches,
edges, or regions across images
≈
Example: estimating fundamental
matrix that corresponds two views
Example: structure from motion
Applications
• Feature points are used for:
– Image alignment
– 3D reconstruction
– Motion tracking
– Robot navigation
– Indexing and database retrieval
– Object recognition
Interest points
• Note: “interest points” = “keypoints”, also
sometimes called “features”
• Many applications
– tracking: which points are good to track?
– recognition: find patches likely to tell us
something about object category
– 3D reconstruction: find correspondences
across different views
Interest points original
deformed
Keypoint matching 1. Find a set of
distinctive key-
points
A1 B3 2. Define a region
around each
keypoint
A2 A3 3. Extract and
B2 normalize the
B1 region content
4. Compute a local
fA fB descriptor from the
normalized region
5. Match local
descriptors
d ( f A, fB ) T
Goals for keypoints
A2 A3
B2
B1
Detection of interest points
Description of patches
Features Descriptors
Choosing interest points
Where would you tell your friend to meet you?
Choosing interest points
Where would you tell your friend to meet you?
Feature extraction: Corners
Why extract features?
• Motivation: panorama stitching
– We have two images – how do we combine them?
Local features: main components
1) Detection: Identify the interest
points
3) Matching: Determine
correspondence between x 2 [ x1( 2) , , xd( 2) ]
descriptors in two views
17
Characteristics of good features
• Repeatability
– The same feature can be found in several images despite geometric and photometric
transformations
• Saliency
– Each feature is distinctive
• Compactness and efficiency
– Fewer features than image pixels
• Locality
– A feature occupies a relatively small area of the image; robust to clutter and occlusion
Interest operator repeatability
• We want to detect (at least some of) the
same points in both images
?
• Must provide some invariance to geometric
and photometric differences between the two
views.
Local features: main components
1) Detection: Identify the interest points
E (u , v) w( x, y ) I ( x u , y v ) I ( x, y )
2
x, y
I(x, y)
E(u, v)
E(3,2)
w(x, y)
Corner detection: Mathematics
Change in appearance of window w(x,y)
for the shift [u,v]:
E (u , v) w( x, y ) I ( x u , y v ) I ( x, y )
2
x, y
I(x, y)
E(u, v)
E(0,0)
w(x, y)
Corner detection: Mathematics
Change in appearance of window w(x,y)
for the shift [u,v]:
E (u , v) w( x, y ) I ( x u , y v ) I ( x, y )
2
x, y
E (u , v) w( x, y ) I ( x u , y v ) I ( x, y )
2
x, y
directions, then none of the nearby Four shifts: (u,v) = (1,0), (1,1), (0,1), (-1, 1)
patches will look similar. Look for local maxima in min{E}
Problem of Moravec detector
• Only a set of shifts at every 45 degree is
considered
• Noisy response due to a binary window
function
• Only minimum of E is taken into account
Harris corner detector (1988) solves these
problems.
C. Harris and M. Stephens. "A Combined Corner and Edge Detector.“
Proceedings of the 4th Alvey Vision Conference: pages 147--151.
Corner detection: Mathematics
Change in appearance of window w(x,y)
for the shift [u,v]:
E (u , v) w( x, y ) I ( x u , y v ) I ( x, y )
2
x, y
E (u , v) w( x, y ) I ( x u , y v ) I ( x, y )
2
x, y
x, y
=å u I + 2uvI I + v I
2 2
x x y
2 2
y
é 2 ù
Ix I x I y úé u ù
=å ë u v û
é ùê ê ú
êI I ú
Iy ë v û
2
ë x y û
Corner detection: Mathematics
The quadratic approximation simplifies to
u
E (u, v) [u v] M
v
where M is a second moment matrix computed from image
derivatives:
I x2 Ix I y
M w( x, y ) 2
x, y I x I y I y
M
Corners as distinctive Interest
Points
I x I x IxI y
M w( x, y )
I x I y IyIy
2 x 2 matrix of image derivatives (averaged in
neighborhood of a point).
I I I I
Notation: Ix Iy IxI y
x y x y
Interpreting the second moment
matrix
The surface E(u,v) is locally approximated by a
quadratic form. Let’s try to understand its shape.
u
E (u, v) [u v] M
v
I x2 IxI y
M w( x, y ) 2
x, y I x I y I y
Interpreting the second moment
matrix
First, consider the axis-aligned case
(gradients are either horizontal or vertical)
I x2 IxI y
1 1
0
M w( x, y ) 2
M R R
x, y I x I y I y 0 2
Diagonalization of M
Here, λ1 and λ2 are eigenvalues of M
If either λ is close to 0, then this is not a corner, so
look for locations where both are large.
Interpreting the second moment
matrix u
Consider a horizontal “slice” of E(u, v): [u v] M const
v
This is the equation of an ellipse.
Interpreting the second moment
matrix u
Consider a horizontal “slice” of E(u, v): [u v] M const
v
This is the equation of an ellipse.
1 0
1
Diagonalization of M: M R R
0 2
The axis lengths of the ellipse are determined by the
eigenvalues and the orientation is determined by R
direction of the
fastest change
direction of the
slowest
change
(max)-1/2
(min)-1/2
Visualization of second moment
matrices
Visualization of second moment
matrices
Interpreting the eigenvalues
Classification of image points using eigenvalues
of M:
“Edge”
2 >> 1 “Corner”
1 and 2 are large,
1 ~ 2;
2
E increases in all
directions
1
Corner response function
R det( M ) trace( M ) 2 12 (1 2 ) 2
α: constant (0.04 to 0.06)
“Edge”
R<0 “Corner”
R>0
|R| small
“Flat” “Edge”
region R<0
Harris corner detector
I x2 ( D ) I x I y ( D ) 1. Image Ix Iy
( I , D ) g ( I ) derivatives
I I
x y D( ) I 2
y ( )
D (optionally, blur first)
Ix 2 Iy2 IxIy
2. Square of
derivatives
det M 12
trace M 1 2
3. Gaussian g(Ix2) g(Iy2) g(IxIy)
filter g(I)
5. Non-maxima suppression 49
har
Harris Detector: Steps
Harris Detector: Steps
Compute corner response R
Harris Detector: Steps
Find points with large corner response: R>threshold
Harris Detector: Steps
Take only the points of local maxima of R
Harris Detector: Steps
Invariance and covariance
• We want corner locations to be invariant to photometric transformations and covariant to
geometric transformations
– Invariance: image is transformed and corner locations do not change
– Covariance: if we have two transformed versions of the same image, features
should be detected in corresponding locations
Affine intensity change
IaI+b
R R
threshold
Corner