+ All Categories
Home > Documents > Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a...

Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a...

Date post: 08-Aug-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
88
Image Features: Scale Invariant Interest Point Detection Sanja Fidler CSC420: Intro to Image Understanding 1 / 30
Transcript
Page 1: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Image Features:

Scale Invariant Interest Point Detection

Sanja Fidler CSC420: Intro to Image Understanding 1 / 30

Page 2: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Figure: We want to be able to match these two objects / images

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 3: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Figure: But these shouldn’t be matched!

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 4: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find interest points on each image

Figure: Find some interest points in an image

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 5: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find interest points on each image

Figure: And independently in other images (independently: my algorithm onlysees one image at a time – why is this a good idea?)

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 6: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find interest points on each image

Figure: How can we match points??

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 7: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find interest points on each imageForm a vector description of each point. How?

Figure: We could match if we took a patch around each point, and describe itwith a feature vector (we know how to compare vectors)

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 8: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find scale invariant interest points on each imageForm a vector description of each point. How?

Figure: What if my interest point detector tells me the size (scale) of the patch?We are hoping that this “canonical” size somehow reflects size of the object.

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 9: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find scale invariant interest points on each imageForm a vector description of each point. How?

Figure: And then we can form our feature vectors with respect to this size (how?)

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 10: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find scale invariant interest points on each imageForm a vector description of each point. How?Matching

Figure: Then life is easy: we find the best matches and compute a transformation(scale, rotation, etc) of the object – in the next lecture

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 11: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find scale invariant interest points on each imageForm a vector description of each point. How?Matching

Figure: And we are hoping that our feature vectors and our matching algorithmwill be able to say that this image does not contain our object!

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 12: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Our Goal: Matching Objects / Images

Our goal is to be able to match an object in di↵erent images where theobject appears in di↵erent scale, rotation, viewpoints, etc. How?

Find scale invariant interest points on each image Let’s do this first!Form a vector description of each point. How?Matching

Sanja Fidler CSC420: Intro to Image Understanding 2 / 30

Page 13: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Scale Invariant Interest Points

How can we independently select interest points in each image, such that thedetections are repeatable across di↵erent scales?

[Source: K. Grauman, slide credit: R. Urtasun]

Sanja Fidler CSC420: Intro to Image Understanding 3 / 30

Page 14: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Scale Invariant Interest Points

How can we independently select interest points in each image, such that thedetections are repeatable across di↵erent scales?

[Source: K. Grauman, slide credit: R. Urtasun]

Sanja Fidler CSC420: Intro to Image Understanding 3 / 30

Page 15: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Scale Invariant Interest Points

How can we independently select interest points in each image, such that thedetections are repeatable across di↵erent scales?

Extract features at a variety of scales, e.g., by using multiple resolutions in apyramid, and then matching features at the same level.

When does this work?

[Source: K. Grauman, slide credit: R. Urtasun]

Sanja Fidler CSC420: Intro to Image Understanding 3 / 30

Page 16: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Scale Invariant Interest Points

How can we independently select interest points in each image, such that thedetections are repeatable across di↵erent scales?

More e�cient to extract features that are stable in both location and scale.

[Source: K. Grauman, slide credit: R. Urtasun]

Sanja Fidler CSC420: Intro to Image Understanding 3 / 30

Page 17: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Scale Invariant Interest Points

How can we independently select interest points in each image, such that thedetections are repeatable across di↵erent scales?

Find scale that gives local maxima of a function f in both position and scale.

[Source: K. Grauman, slide credit: R. Urtasun]

Sanja Fidler CSC420: Intro to Image Understanding 3 / 30

Page 18: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 19: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 20: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 21: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 22: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 23: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 24: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 25: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 26: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 27: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 28: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 29: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Automatic Scale Selection

Function responses for increasing scale (scale signature).

[Source: T. Tuyttellaars, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 4 / 30

Page 30: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

What Can the Signature Function Be?

Lindeberg (1998): extrema in the Laplacian of Gaussian (LoG).

Lowe (2004) proposed computing a set of sub-octave Di↵erence of Gaussianfilters looking for 3D (space+scale) maxima in the resulting structure.

[Source: R. Szeliski, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 5 / 30

Page 31: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

What Can the Signature Function Be?

Lindeberg (1998): extrema in the Laplacian of Gaussian (LoG).

Lowe (2004) proposed computing a set of sub-octave Di↵erence of Gaussianfilters looking for 3D (space+scale) maxima in the resulting structure.

[Source: R. Szeliski, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 6 / 30

Page 32: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

Laplacian of Gaussian: We mentioned it for edge detection

r2g(x , y ,�) =

@2g(x , y ,�)

@x2+

@2g(x , y ,�)

@y2, where g is a Gaussian

It is a circularly symmetric operator (finds di↵erence in all directions)

It can be used for 2D blob detection! How?

[Source: K. Grauman, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 7 / 30

Page 33: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

Laplacian of Gaussian: We mentioned it for edge detection

r2g(x , y ,�) = � 1

⇡�4

⇣1� x

2 + y

2

2�2

⌘exp�

x

2+y

2

2�2

It is a circularly symmetric operator (finds di↵erence in all directions)

It can be used for 2D blob detection! How?

[Source: K. Grauman, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 7 / 30

Page 34: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

It can be used for 2D blob detection! How?

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 8 / 30

Page 35: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

It can be used for 2D blob detection! How?

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 8 / 30

Page 36: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

It can be used for 2D blob detection! How?

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 8 / 30

Page 37: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

It can be used for 2D blob detection! How?

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 8 / 30

Page 38: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

It can be used for 2D blob detection! How?

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 8 / 30

Page 39: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection in 2D: Scale Selection

Laplacian of Gaussian = blob detector

[Source: B. Leibe, slide credit: R. Urtasun]

Sanja Fidler CSC420: Intro to Image Understanding 9 / 30

Page 40: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Characteristic Scale

We define the characteristic scale as the scale that produces peak(minimum or maximum) of the Laplacian response

[Source: S. Lazebnik]Sanja Fidler CSC420: Intro to Image Understanding 10 / 30

Page 41: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 11 / 30

Page 42: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 11 / 30

Page 43: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 11 / 30

Page 44: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 11 / 30

Page 45: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 11 / 30

Page 46: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 11 / 30

Page 47: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Scale Invariant Interest Points

Sanja Fidler CSC420: Intro to Image Understanding 12 / 30

Page 48: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Example

[Source: S. Lazebnik]

Sanja Fidler CSC420: Intro to Image Understanding 13 / 30

Page 49: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

That’s nice. But can we do faster?

Remember again the Laplacian of Gaussian:

r2g(x , y ,�) =

@2g(x , y ,�)

@x2+@2

g(x , y ,�)

@y2, where g is a Gaussian

Larger scale (�), larger the filters (more work for convolution)

Can we do it faster?

Sanja Fidler CSC420: Intro to Image Understanding 14 / 30

Page 50: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Blob Detection – Laplacian of Gaussian

That’s nice. But can we do faster?

Remember again the Laplacian of Gaussian:

r2g(x , y ,�) =

@2g(x , y ,�)

@x2+@2

g(x , y ,�)

@y2, where g is a Gaussian

Larger scale (�), larger the filters (more work for convolution)

Can we do it faster?

Sanja Fidler CSC420: Intro to Image Understanding 14 / 30

Page 51: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Approximate the Laplacian of Gaussian

[Source: K. Grauman]

Sanja Fidler CSC420: Intro to Image Understanding 15 / 30

Page 52: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Lowe’s DoG

Lowe (2004) proposed computing a set of sub-octave Di↵erence of Gaussianfilters looking for 3D (space+scale) maxima in the resulting structure

[Source: R. Szeliski, slide credit: R. Urtasun]Sanja Fidler CSC420: Intro to Image Understanding 16 / 30

Page 53: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Lowe’s DoG

First compute a Gaussian image pyramid

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 17 / 30

Page 54: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Lowe’s DoG

First compute a Gaussian image pyramid

Compute Di↵erence of Gaussians

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 17 / 30

Page 55: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Lowe’s DoG

First compute a Gaussian image pyramid

Compute Di↵erence of Gaussians

At every scale

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 17 / 30

Page 56: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Lowe’s DoG

First compute a Gaussian image pyramid

Compute Di↵erence of Gaussians

At every scale

Find local maxima in scale

A bit of pruning of bad maxima and we’re done!

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 17 / 30

Page 57: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Lowe’s DoG

First compute a Gaussian image pyramid

Compute Di↵erence of Gaussians

At every scale

Find local maxima in scale

A bit of pruning of bad maxima and we’re done!

[Source: F. Flores-Mangas]Sanja Fidler CSC420: Intro to Image Understanding 17 / 30

Page 58: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Let’s first try out some synthetic images

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 59: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Detected interest points (kind of make sense)

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 60: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Other roundy objects

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 61: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Detected interest points

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 62: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Real images

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 63: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Detected interest points

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 64: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Examples

Figure: Detected interest points

Sanja Fidler CSC420: Intro to Image Understanding 18 / 30

Page 65: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Other Interest Point Detectors (Many Good Options!)

Lindeberg: Laplacian of Gaussian

Lowe: DoG (typically called the SIFT interest point detector)

Mikolajczyk & Schmid: Hessian/Harris-Laplacian/A�ne

Tuyttelaars & Van Gool: EBR and IBR

Matas: MSER

Kadir & Brady: Salient Regions

Sanja Fidler CSC420: Intro to Image Understanding 19 / 30

Page 66: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Summary – Stu↵ You Should Know

To match the same scene or object under di↵erent viewpoint, it’s useful tofirst detect interest points (keypoints)

We looked at these interest point detectors:

Harris corner detector: translation and rotation but not scale invariantScale invariant interest points: Laplacian of Gaussians and Lowe’s DoG

Harris’ approach computes I 2x

, I 2y

and I

x

I

y

, and blurs each one with aGaussian. Denote with: A = g ⇤ I 2

x

, B = g ⇤ (Ix

I

y

) and C = g ⇤ I 2y

. Then

M

xy

=

✓A(x , y) B(x , y)B(x , y) C (x , y)

◆characterizes the shape of E

WSSD

for a window

around (x , y). Compute “cornerness” score for each (x , y) asR(x , y) = det(M

xy

)� ↵ trace(Mxy

)2. Find R(x , y) > threshold and donon-maxima suppression to find corners.

Lowe’s approach creates a Gaussian pyramid with s blurring levels peroctave, computes di↵erence between consecutive levels, and finds localextrema in space and scale

Sanja Fidler CSC420: Intro to Image Understanding 20 / 30

Page 67: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Matching Results Based on SIFT Interest Points

Works pretty well in variety of settings

Figure: Lowe’s interest point detector finds scale-invariant points that can bereliably matched across di↵erent images. (We will talk about how to domatching soon)

Sanja Fidler CSC420: Intro to Image Understanding 21 / 30

Page 68: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Matching Results Based on SIFT Interest Points

Works pretty well in variety of settings

Figure: Lowe’s interest point detector finds scale-invariant points that can bereliably matched across di↵erent images. (We will talk about how to domatching soon)Sanja Fidler CSC420: Intro to Image Understanding 21 / 30

Page 69: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Matching Results Based on SIFT Interest Points

Works pretty well in variety of settings

Figure: Lowe’s interest point detector finds scale-invariant points that can bereliably matched across di↵erent images. (We will talk about how to domatching soon)

Sanja Fidler CSC420: Intro to Image Understanding 21 / 30

Page 70: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Matching Results Based on SIFT Interest Points

What about in di↵erent lighting/weather conditions?

Sanja Fidler CSC420: Intro to Image Understanding 21 / 30

Page 71: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Matching Results Based on SIFT Interest Points[Pic from: Y. Verdie, K. M. Yi, P. Fua and V. Lepetit. TILDE: A Temporally Invariant Learned DEtector. CVPR’15]

Fails in very di↵erent lighting conditions

Figure: Green point(s) are repeatable interest points, red are non-repeatableSanja Fidler CSC420: Intro to Image Understanding 21 / 30

Page 72: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Machine Learning to Find Better Keypoints?[Pic from: Y. Verdie, K. M. Yi, P. Fua and V. Lepetit. TILDE: A Temporally Invariant Learned DEtector. CVPR’15]

Can we use Machine Learning to detect interest points more reliably?

SIFT Learned Interest Point Detector?

Sanja Fidler CSC420: Intro to Image Understanding 22 / 30

Page 73: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Learning an Interest Point Detector:

Y. Verdie, K. M. Yi, P. Fua and V. Lepetit

Large TILDE: A Temporally Invariant Learned DEtector

CVPR 2015Paper: http://infoscience.epfl.ch/record/206786/files/top.pdf

Project page & Code: http://cvlab.epfl.ch/research/tilde

Sanja Fidler CSC420: Intro to Image Understanding 23 / 30

Page 74: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Training Data

What can we use?

Sanja Fidler CSC420: Intro to Image Understanding 24 / 30

Page 75: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Training Data

What can we use? Data from webcams!

Sanja Fidler CSC420: Intro to Image Understanding 24 / 30

Page 76: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Training Data

Now that we have training images, how shall we train the detector?

Sanja Fidler CSC420: Intro to Image Understanding 24 / 30

Page 77: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Training the Detector

Detect e.g. SIFT Interest Points in images across time

Keep only those that are repeatable across time.

These are our (super reliable) positive training examples. What aboutnegative examples?

Sanja Fidler CSC420: Intro to Image Understanding 25 / 30

Page 78: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Training the Detector

Detect e.g. SIFT Interest Points in images across time

Keep only those that are repeatable across time.

These are our (super reliable) positive training examples. What aboutnegative examples? All other points with some distance wrt positive points

Sanja Fidler CSC420: Intro to Image Understanding 25 / 30

Page 79: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Training the Detector

Detect e.g. SIFT Interest Points in images across time

Keep only those that are repeatable across time.

These are our (super reliable) positive training examples. What aboutnegative examples? All other points with some distance wrt positive points

Take a patch around each point, extract some features on it.

Train a classifier or a regressor

Sanja Fidler CSC420: Intro to Image Understanding 25 / 30

Page 80: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Trained Filters

Remember from the lecture where we trained a classifier to detect edges:

If we train a linear classifier on a patch, it can be seen as a filter

Sanja Fidler CSC420: Intro to Image Understanding 26 / 30

Page 81: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Trained Filters

Remember from the lecture where we trained a classifier to detect edges:

If we train a linear classifier on a patch, it can be seen as a filter

Tiny lesson learned: Sometime our intermediate results (filters in this case) don’tlook interpretable at all, but they still do the job

Sanja Fidler CSC420: Intro to Image Understanding 26 / 30

Page 82: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Using the Learned Interest Point Detector

Now that we trained our detector, how can we use it on new images?

Sanja Fidler CSC420: Intro to Image Understanding 27 / 30

Page 83: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Using the Learned Interest Point Detector

Apply our filter on each image patch (convolution, if it’s a linear classifier)

Sanja Fidler CSC420: Intro to Image Understanding 27 / 30

Page 84: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Using the Learned Interest Point Detector

Apply our filter on each image patch (convolution, if it’s a linear classifier)

This has response everywhere. How can we find the actual interest points?

Sanja Fidler CSC420: Intro to Image Understanding 27 / 30

Page 85: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Using the Learned Interest Point Detector

Apply our filter on each image patch (convolution, if it’s a linear classifier)

This has response everywhere. How can we find the actual interest points?

Non-maxima suppression (keep only points that are local maxima)

Sanja Fidler CSC420: Intro to Image Understanding 27 / 30

Page 86: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Qualitative Results (nice looking pictures)

Visually check how well we can now match with new interest points

SIFT, SURF are hand-designed interest point detectors

FAST is trained to detect corners fast: First employs a slow method todetect corners, then trains decision trees to detect them really fast[E. Rosten and T. Drummond. Machine Learning for HighSpeed Corner Detection. ECCV 2006Paper: http://www.edwardrosten.com/work/rosten_2006_machine.pdf]

Sanja Fidler CSC420: Intro to Image Understanding 28 / 30

Page 87: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Quantitative Results (performance numbers)

Every method is much more convincing if it shows quantitative performance.

If there are baselines for the problem, rule is: the more baselines the better.

The more datasets, the better

Sanja Fidler CSC420: Intro to Image Understanding 29 / 30

Page 88: Image Features: Scale Invariant Interest Point …fidler/slides/2019/CSC420/lecture7.pdfwith a feature vector (we know how to compare vectors) Sanja Fidler CSC420: Intro to Image Understanding

Local Descriptors – Next Time

Detection: Identify the interest points.

Description: Extract a feature descriptor around each interest point.

Matching: Determine correspondence between descriptors in two views.

[Source: K. Grauman]Sanja Fidler CSC420: Intro to Image Understanding 30 / 30


Recommended