52
Harris Corners 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University

6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Harris Corners16-385 Computer Vision (Kris Kitani)

Carnegie Mellon University

Page 2: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

How do you find a corner?

Easily recognized by looking through a small window

Shifting the window should give large change in intensity

[Moravec 1980]

Page 3: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

“edge”:no change along the edge

direction

“corner”:significant change in all

directions

“flat” region:no change in all

directions

Easily recognized by looking through a small window

Shifting the window should give large change in intensity

[Moravec 1980]

Page 4: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Design a program to detect corners (hint: use image gradients)

Page 5: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Finding corners (a.k.a. PCA)

1.Compute image gradients over small region

2.Subtract mean from each image gradient

3.Compute the covariance matrix

4.Compute eigenvectors and eigenvalues

5.Use threshold on eigenvalues to detect corners

I

x

=@I

@x

Iy =@I

@y

2

4

Pp2P

Ix

Ix

Pp2P

Ix

Iy

Pp2P

Iy

Ix

Pp2P

Iy

Iy

3

5

uv

�= �

2

4

Pp2P

Ix

It

Pp2P

Iy

It

3

5

Page 6: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

1. Compute image gradients over a small region (not just a single pixel)

Page 7: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

1. Compute image gradients over a small region (not just a single pixel)

I

x

=@I

@x

Iy =@I

@y

array of x gradients

array of y gradients

Page 8: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

visualization of gradients

image

X derivative

Y derivative

Page 9: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

I

x

=@I

@x

I

x

=@I

@x

I

x

=@I

@x

Iy =@I

@yIy =

@I

@yIy =

@I

@y

What does the distribution tell you about the region?

Page 10: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

I

x

=@I

@x

I

x

=@I

@x

I

x

=@I

@x

Iy =@I

@yIy =

@I

@yIy =

@I

@y

distribution reveals edge orientation and magnitude

Page 11: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

I

x

=@I

@x

I

x

=@I

@x

I

x

=@I

@x

Iy =@I

@yIy =

@I

@yIy =

@I

@y

How do you quantify orientation and magnitude?

Page 12: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

2. Subtract the mean from each image gradient

Page 13: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

2. Subtract the mean from each image gradient

plot intensities

constant intensity gradient

intensities along the line

Page 14: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

2. Subtract the mean from each image gradient

plot intensities

constant intensity gradient

I

x

=@I

@x

Iy =@I

@y

intensities along the line

plot of image gradients

subtract mean

Page 15: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

2. Subtract the mean from each image gradient

plot intensities

constant intensity gradient

I

x

=@I

@x

Iy =@I

@y

intensities along the line

plot of image gradients

I

x

=@I

@x

Iy =@I

@y

data is centered (‘DC’ offset is removed)

subtract mean

Page 16: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

3. Compute the covariance matrix

Page 17: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

3. Compute the covariance matrix

Where does this covariance matrix come from?

2

4

Pp2P

Ix

Ix

Pp2P

Ix

Iy

Pp2P

Iy

Ix

Pp2P

Iy

Iy

3

5

uv

�= �

2

4

Pp2P

Ix

It

Pp2P

Iy

It

3

5

I

x

=@I

@x

Iy =@I

@y

array of x gradients array of y gradients

*.=sum( )2

4

Pp2P

Ix

Ix

Pp2P

Ix

Iy

Pp2P

Iy

Ix

Pp2P

Iy

Iy

3

5

uv

�= �

2

4

Pp2P

Ix

It

Pp2P

Iy

It

3

5

Page 18: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Error functionChange of intensity for the shift [u,v]:

IntensityShifted intensity

Window function

orWindow function w(x,y) =

Gaussian1 in window, 0 outside

Error function

Some mathematical background…

Page 19: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Error function approximationChange of intensity for the shift [u,v]:

Second-order Taylor expansion of E(u,v) about (0,0) (bilinear approximation for small shifts):

first derivative second derivative

Page 20: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Bilinear approximationFor small shifts [u,v] we have a ‘bilinear approximation’:

where M is a 2×2 matrix computed from image derivatives:

Change in appearance for a

shift [u,v]

M

‘second moment’ matrix ‘structure tensor’

Page 21: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

2

4

Pp2P

Ix

Ix

Pp2P

Ix

Iy

Pp2P

Iy

Ix

Pp2P

Iy

Iy

3

5

uv

�= �

2

4

Pp2P

Ix

It

Pp2P

Iy

It

3

5

By computing the gradient covariance matrix…

we are fitting a quadratic to the gradients over a small image region

Page 22: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Visualization of a quadraticThe surface E(u,v) is locally approximated by a quadratic form

Page 23: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Which error surface indicates a good image feature?

What kind of image patch do these surfaces represent?

Page 24: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

flat edge ‘line’

corner ‘dot’

Page 25: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

4. Compute eigenvalues and eigenvectors

Page 26: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

eig(M)

Page 27: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

4. Compute eigenvalues and eigenvectors

eigenvector

eigenvalue

Me = �e (M � �I)e = 0

Page 28: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

1. Compute the determinant of (returns a polynomial)

eigenvector

eigenvalue

M � �I

Me = �e (M � �I)e = 0

4. Compute eigenvalues and eigenvectors

Page 29: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

1. Compute the determinant of (returns a polynomial)

eigenvector

eigenvalue

2. Find the roots of polynomial (returns eigenvalues)

det(M � �I) = 0

M � �I

Me = �e (M � �I)e = 0

4. Compute eigenvalues and eigenvectors

Page 30: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

1. Compute the determinant of (returns a polynomial)

eigenvector

eigenvalue

2. Find the roots of polynomial (returns eigenvalues)

det(M � �I) = 0

M � �I

Me = �e (M � �I)e = 0

3. For each eigenvalue, solve (returns eigenvectors)

(M � �I)e = 0

4. Compute eigenvalues and eigenvectors

Page 31: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Visualization as an ellipseSince M is symmetric, we have

We can visualize M as an ellipse with axis lengths determined by the eigenvalues and orientation determined by R

direction of the slowest change

direction of the fastest change

(λmax)-1/2

(λmin)-1/2

Ellipse equation:

Page 32: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

interpreting eigenvalues

λ1

λ2

λ2 >> λ1

λ1 >> λ2�1 ⇠ 0

�2 ⇠ 0

What kind of image patch does each region represent?

Page 33: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

interpreting eigenvalues‘horizontal’ edge

‘vertical’ edge

flat

corner

λ1

λ2

λ2 >> λ1

λ1 >> λ2

λ1 ~ λ2

Page 34: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

interpreting eigenvalues‘horizontal’ edge

‘vertical’ edge

flat

corner

λ1

λ2

λ2 >> λ1

λ1 >> λ2

λ1 ~ λ2

Page 35: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

5. Use threshold on eigenvalues to detect corners

Page 36: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

flat

λ1

λ2

5. Use threshold on eigenvalues to detect corners

Think of a function to score ‘cornerness’

Page 37: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

flat

λ1

λ2

5. Use threshold on eigenvalues to detect corners

Think of a function to score ‘cornerness’

strong corner

Page 38: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

flat

corner

λ1

λ2

5. Use threshold on eigenvalues to detect corners^

R = min(�1,�2)

Use the smallest eigenvalue as the response function

Page 39: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

flat

corner

λ1

λ2

5. Use threshold on eigenvalues to detect corners^

R = �1�2 � (�1 + �2)2

Eigenvalues need to be bigger than one.

Can compute this more efficiently…

Page 40: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

flat

corner

λ1

λ2

R < 0 R > 0

R < 0R ⌧ 0

R = det(M)� �trace2(M)

5. Use threshold on eigenvalues to detect corners^

Page 41: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

R = det(M)� �trace2(M)

R =det(M)

trace(M) + �

Harris & Stephens (1988)

Kanade & Tomasi (1994)

Nobel (1998)

R = min(�1,�2)

Page 42: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

1. Compute x and y derivatives of image

2. Compute products of derivatives at every pixel

3. Compute the sums of the products of derivatives at each pixel

Harris DetectorC.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 

IGI xx ∗= σ IGI y

y ∗= σ

xxxIII ⋅=2 yyy III ⋅=2 yxxy III ⋅=

22 ' xxIGS ∗= σ 22 ' yy IGS ∗= σ xyxy IGS ∗= 'σ

Page 43: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Harris DetectorC.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 

4. Define the matrix at each pixel

5. Compute the response of the detector at each pixel

6. Threshold on value of R; compute non-max suppression.

!!"

#

$$%

&= ),(),(

),(),(),(

2

2

yxSyxSyxSyxS

yxMyxy

xyx

( )2tracedet MkMR −=

Page 44: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each
Page 45: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Corner response

Page 46: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each
Page 47: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Thresholded corner response

Page 48: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Non-maximal suppression

Page 49: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each
Page 50: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

Harris corner response is rotation invariant

Ellipse rotates but its shape (eigenvalues) remains the same

Corner response R is invariant to image rotation

Page 51: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

intensity changesPartial invariance to affine intensity changeü Only derivatives are used => invariance to intensity shift I → I + b

ü Intensity scale: I → a I

R

x (image coordinate)

threshold

R

x (image coordinate)

Page 52: 6.2 Harris Corner Detector16385/s17/Slides/6.2_Harris_Corner_Detector.pdf · C.Harris and M.Stephens. “A Combined Corner and Edge Detector.”1988. 4. Define the matrix at each

The Harris detector not invariant to changes in …