Features

152
Features Digital Visual Effects, Spring 2009 Yung-Yu Chuang 2009/3/19 with slides by Trevor Darrell Cordelia Schmid, David Lowe, Darya Frolova, Denis Simakov, Robert Collins and Jiwon Kim

description

Features. Digital Visual Effects, Spring 2009 Yung-Yu Chuang 2009/3/19. with slides by Trevor Darrell Cordelia Schmid, David Lowe, Darya Frolova, Denis Simakov, Robert Collins and Jiwon Kim. Announcements. - PowerPoint PPT Presentation

Transcript of Features

Page 1: Features

Features

Digital Visual Effects, Spring 2009Yung-Yu Chuang2009/3/19

with slides by Trevor Darrell Cordelia Schmid, David Lowe, Darya Frolova, Denis Simakov, Robert Collins and Jiwon Kim

Page 2: Features

Announcements

• Project #1 will be due next Wednesday, around a week from now. You have a total of 10 delay days without penalty, but you are advised to use them wisely.

• We reserve the rights for not including late homework for artifact voting.

• Project #2 will be assigned next Thursday.

Page 3: Features

Outline

• Features• Harris corner detector• SIFT• Applications

Page 4: Features

Features

Page 5: Features

Features

• Also known as interesting points, salient points or keypoints. Points that you can easily point out their correspondences in multiple images using only local information.

?

Page 6: Features

Desired properties for features

• Distinctive: a single feature can be correctly matched with high probability.

• Invariant: invariant to scale, rotation, affine, illumination and noise for robust matching across a substantial range of affine distortion, viewpoint change and so on. That is, it is repeatable.

Page 7: Features

Applications

• Object or scene recognition• Structure from motion• Stereo• Motion tracking• …

Page 8: Features

Components

• Feature detection locates where they are

• Feature description describes what they are

• Feature matching decides whether two are the same one

Page 9: Features

Harris corner detector

Page 10: Features

Moravec corner detector (1980)

• We should easily recognize the point by looking through a small window

• Shifting a window in any direction should give a large change in intensity

Page 11: Features

Moravec corner detector

flat

Page 12: Features

Moravec corner detector

flat

Page 13: Features

Moravec corner detector

flat edge

Page 14: Features

Moravec corner detector

flat edgecorner

isolated point

Page 15: Features

yx

yxIvyuxIyxwvuE,

2),(),(),(),(

Moravec corner detector

Change of intensity for the shift [u,v]:

window functio

n

Four shifts: (u,v) = (1,0), (1,1), (0,1), (-1, 1)Look for local maxima in min{E}

intensity

shifted intensit

y

Page 16: Features

Problems of Moravec detector

• Noisy response due to a binary window function• Only a set of shifts at every 45 degree is

considered• Only minimum of E is taken into account

Harris corner detector (1988) solves these problems.

Page 17: Features

Harris corner detector

Noisy response due to a binary window functionUse a Gaussian function

Page 18: Features

Harris corner detector

Only a set of shifts at every 45 degree is consideredConsider all small shifts by Taylor’s expansion

yxyx

yxy

yxx

yxIyxIyxwC

yxIyxwB

yxIyxwA

BvCuvAuvuE

,

,

2

,

2

22

),(),(),(

),(),(

),(),(

2),(

yx

yxIvyuxIyxwvuE,

2),(),(),(),(

yx

yx vuOvIuIyxw,

222 ),(),(

Page 19: Features

Harris corner detector

Equivalently, for small shifts [u,v] we have a bilinear approximation:

, where M is a 22 matrix computed from image derivatives:

v

uvuvuE ),( M

yx yyx

yxx

III

IIIyxw

,2

2

),(M

Page 20: Features

Harris corner detector (matrix form)

Muu

uuu

u

uu

uu

xuxu 00

T

TT

T

T

II

I

II

I

IIE

|)()(|)(

2

2

00

2

Page 21: Features

Harris corner detector

Only minimum of E is taken into accountA new corner measurement by investigating the shape of the error function

represents a quadratic function; Thus, we can analyze E’s shape by looking at the property of M

MuuT

Page 22: Features

Harris corner detector

High-level idea: what shape of the error function will we prefer for features?

02

46

810

12

0

5

10

0

20

40

60

80

100

02

46

810

12

0

5

10

0

20

40

60

80

100

02

46

810

12

0

5

10

0

20

40

60

80

100

flat edge corner

Page 23: Features

Quadratic forms

• Quadratic form (homogeneous polynomial of degree two) of n variables xi

• Examples

=

Page 24: Features

Symmetric matrices

• Quadratic forms can be represented by a real symmetric matrix A where

Page 25: Features

Eigenvalues of symmetric matrices

Brad Osgood

Page 26: Features

Eigenvectors of symmetric matrices

Page 27: Features

Eigenvectors of symmetric matrices

zz

yΛyΛ

Λyy

xQΛxQ

xQΛQx

Axx

T

T

T

TTT

TT

T

21

21

11q22 q

1 xxT

1zzT

Page 28: Features

Harris corner detector

Intensity change in shifting window: eigenvalue analysis

1, 2 – eigenvalues of M

direction of the slowest

change

direction of the fastest

change

(max)-1/2

(min)-1/2

Ellipse E(u,v) = const

v

uvuvuE ,),( M

Page 29: Features

Visualize quadratic functions

T

10

01

10

01

10

01

10

01A

Page 30: Features

Visualize quadratic functions

T

10

01

10

04

10

01

10

04A

Page 31: Features

Visualize quadratic functions

T

50.087.0

87.050.0

40

01

50.087.0

87.050.0

75.130.1

30.125.3A

Page 32: Features

Visualize quadratic functions

T

50.087.0

87.050.0

100

01

50.087.0

87.050.0

25.390.3

90.375.7A

Page 33: Features

Harris corner detector

1

2

Corner1 and 2 are large,

1 ~ 2;

E increases in all directions

1 and 2 are small;

E is almost constant in all directions

edge 1 >> 2

edge 2 >> 1

flat

Classification of image points using eigenvalues of M:

Page 34: Features

Harris corner detector

Measure of corner response:

(k – empirical constant, k = 0.04-0.06)

2

4)( 01102

11001100 aaaaaa

2tracedet MM kR

21

21

trace

det

M

M

Only for reference, you do not need them to compute R

Page 35: Features

Harris corner detector

Page 36: Features

Another view

Page 37: Features

Another view

Page 38: Features

Another view

Page 39: Features

Summary of Harris detector

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

IGI xx IGI y

y

xxxIII 2 yyy

III 2 yxxy III

22 ' xxIGS 22 ' yy

IGS xyxy IGS '

Page 40: Features

Summary of Harris detector

4. Define the matrix at each pixel

5. Compute the response of the detector at each pixel

6. Threshold on value of R; compute nonmax suppression.

),(),(

),(),(),(

2

2

yxSyxS

yxSyxSyxM

yxy

xyx

2tracedet MkMR

Page 41: Features

Harris corner detector (input)

Page 42: Features

Corner response R

Page 43: Features

Threshold on R

Page 44: Features

Local maximum of R

Page 45: Features

Harris corner detector

Page 46: Features

Harris detector: summary

• Average intensity change in direction [u,v] can be expressed as a bilinear form:

• Describe a point in terms of eigenvalues of M:measure of corner response

• A good (corner) point should have a large intensity change in all directions, i.e. R should be large positive

v

uvuvuE ,),( M

22121 kR

Page 47: Features

Now we know where features are

• But, how to match them?• What is the descriptor for a feature? The

simplest solution is the intensities of its spatial neighbors. This might not be robust to brightness change or small shift/rotation.

( )

1 2 3

4 5 6

7 8 9

1 2 3 4 5 6 7 8 9

Page 48: Features

Corner detection demo

http://www.cim.mcgill.ca/~dparks/CornerDetector/mainApplet.htm

Page 49: Features

Harris detector: some properties

• Partial 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 50: Features

Harris Detector: Some Properties

• Rotation invariance

Ellipse rotates but its shape (i.e. eigenvalues) remains the same

Corner response R is invariant to image rotation

Page 51: Features

Harris Detector is rotation invariantRepeatability rate:

# correspondences# possible correspondences

Page 52: Features

Harris Detector: Some Properties

• But: non-invariant to image scale!

All points will be classified as edges

Corner !

Page 53: Features

Harris detector: some properties

• Quality of Harris detector for different scale changes

Repeatability rate:# correspondences

# possible correspondences

Page 54: Features

Scale invariant detection

• Consider regions (e.g. circles) of different sizes around a point

• Regions of corresponding sizes will look the same in both images

Page 55: Features

Scale invariant detection

• The problem: how do we choose corresponding circles independently in each image?

• Aperture problem

Page 56: Features

SIFT (Scale Invariant Feature

Transform)

Page 57: Features

SIFT• SIFT is an carefully designed procedure

with empirically determined parameters for the invariant and distinctive features.

Page 58: Features

SIFT stages:

• Scale-space extrema detection• Keypoint localization• Orientation assignment• Keypoint descriptor

( )local descriptor

detector

descriptor

A 500x500 image gives about 2000 features

Page 59: Features

1. Detection of scale-space extrema• For scale invariance, search for stable

features across all possible scales using a continuous function of scale, scale space.

• SIFT uses DoG filter for scale space because it is efficient and as stable as scale-normalized Laplacian of Gaussian.

Page 60: Features

DoG filtering

Convolution with a variable-scale Gaussian

Difference-of-Gaussian (DoG) filter

Convolution with the DoG filter

Page 61: Features

Scale space doubles for the next

octave

K=2(1/

s)

Dividing into octave is for efficiency only.

Page 62: Features

Detection of scale-space extrema

Page 63: Features

Keypoint localization

X is selected if it is larger or smaller than all 26 neighbors

Page 64: Features

Decide scale sampling frequency

• It is impossible to sample the whole space, tradeoff efficiency with completeness.

• Decide the best sampling frequency by experimenting on 32 real image subject to synthetic transformations. (rotation, scaling, affine stretch, brightness and contrast change, adding noise…)

Page 65: Features

Decide scale sampling frequency

s=3 is the best, for larger s, too many unstable features

for detector, repeatability

for descriptor, distinctiveness

Page 66: Features

Decide scale sampling frequency

Page 67: Features

Pre-smoothing

=1.6, plus a double expansion

Page 68: Features

Scale invariance

Page 69: Features

2. Accurate keypoint localization

• Reject points with low contrast (flat) and poorly localized along an edge (edge)

• Fit a 3D quadratic function for sub-pixel maxima

1

65

0-1 +1

Page 70: Features

2. Accurate keypoint localization

• Reject points with low contrast and poorly localized along an edge

• Fit a 3D quadratic function for sub-pixel maxima

1

65

0-1 +1

2

2

)0('')0(')0()( x

fxffxf

3

1ˆ x

22 3262

626)( xxxxxf

062)(' xxf

3

16

3

13

3

126)ˆ(

2

xf

3

16

3

1

Page 71: Features

2. Accurate keypoint localization

• Taylor series of several variables

• Two variables

222

22

22

1)0,0(),( y

yy

fxy

yx

fx

xx

fy

y

fx

x

ffyxf

y

x

yy

f

yx

fyx

f

xx

f

yxy

x

y

f

x

ff

y

xf 22

22

2

1

0

0

xx

xxx

0x2

2

2

1

ffff T

T

Page 72: Features

Accurate keypoint localization

• Taylor expansion in a matrix form, x is a vector, f maps x to a scalar

nx

f

x

fx

f

1

1

2

2

2

2

1

2

2

2

22

2

12

21

2

21

2

21

2

nnn

n

n

x

f

xx

f

xx

f

xx

f

x

f

xx

fxx

f

xx

f

x

f

Hessian matrix(often symmetric)

gradient

Page 73: Features

2D illustration

Page 74: Features

2D example

-17 -1 -1

7

77

7

-9

-9

Page 75: Features

Derivation of matrix form

xgx T)(h x

h

Page 76: Features

Derivation of matrix form

xgx T)(h

n

n

x

x

gg 1

1

n

iii xg

1

gx

n

n

g

g

x

h

x

h

h1

1

Page 77: Features

Derivation of matrix form

Axxx T)(h

x

h

Page 78: Features

Derivation of matrix form

Axxx T)(h

nnnn

nT

n

x

x

aa

aa

xx

1

1

111

1

n

i

n

jjiij xxa

1 1

AxxAx

T

n

i

n

jjnjiin

n

i

n

jjjii

n

xaxa

xaxa

x

h

x

h

h

1 1

1 111

1

xAAT )(

Page 79: Features

Derivation of matrix form

xff

xfffh TTT

2

2

2

2

2

2

2

1

xxxxxx

Page 80: Features

Accurate keypoint localization

• x is a 3-vector• Change sample point if offset is larger

than 0.5• Throw out low contrast (<0.03)

Page 81: Features

Accurate keypoint localization

• Throw out low contrast 03.0|)ˆ(| xD

xx

xx

xx

xxxx

x

xxxxxx

x

xxxxxx

x

xx

xxx

x

ˆ2

1

)ˆ(2

2

2

2

ˆˆ2

1ˆ)ˆ(

1

2

2

1

2

2

2

2

2

2

1

2

2

2

21

2

2

2

2

T

TT

TT

TTT

TT

TT

DD

DDD

DDDDD

DDDDDDD

DDDDDDD

DDDD

Page 82: Features

Eliminating edge responses

r=10

Let

Keep the points with

Hessian matrix at keypoint location

Page 83: Features

Maxima in D

Page 84: Features

Remove low contrast and edges

Page 85: Features

Keypoint detector

233x89 832 extrema

729 after con-trast filtering

536 after cur-vature filtering

Page 86: Features

3. Orientation assignment

• By assigning a consistent orientation, the keypoint descriptor can be orientation invariant.

• For a keypoint, L is the Gaussian-smoothed image with the closest scale,

orientation histogram (36 bins)

(Lx, Ly)

m

θ

Page 87: Features

Orientation assignment

Page 88: Features

Orientation assignment

Page 89: Features

Orientation assignment

Page 90: Features

Orientation assignment

σ=1.5*scale of the keypoint

Page 91: Features

Orientation assignment

Page 92: Features

Orientation assignment

Page 93: Features

Orientation assignmentaccurate peak position is determined by fitting

Page 94: Features

Orientation assignment

0 2

36-bin orientation histogram over 360°,

weighted by m and 1.5*scale falloff

Peak is the orientationLocal peak within 80% creates

multiple orientationsAbout 15% has multiple

orientations and they contribute a lot to stability

Page 95: Features

SIFT descriptor

Page 96: Features

4. Local image descriptor• Thresholded image gradients are sampled over

16x16 array of locations in scale space• Create array of orientation histograms (w.r.t. key

orientation)• 8 orientations x 4x4 histogram array = 128

dimensions• Normalized, clip values larger than 0.2,

renormalize

σ=0.5*width

Page 97: Features

Why 4x4x8?

Page 98: Features

Sensitivity to affine change

Page 99: Features

Feature matching

• for a feature x, he found the closest feature x1 and the second closest feature x2. If the distance ratio of d(x, x1) and d(x, x1) is smaller than 0.8, then it is accepted as a match.

Page 100: Features

SIFT flow

Page 101: Features

Maxima in D

Page 102: Features

Remove low contrast

Page 103: Features

Remove edges

Page 104: Features

SIFT descriptor

Page 105: Features
Page 106: Features

Estimated rotation

• Computed affine transformation from rotated image to original image:

0.7060 -0.7052 128.4230 0.7057 0.7100 -128.9491 0 0 1.0000

• Actual transformation from rotated image to original image:

0.7071 -0.7071 128.6934 0.7071 0.7071 -128.6934 0 0 1.0000

Page 107: Features

SIFT extensions

Page 108: Features

PCA

Page 109: Features

PCA-SIFT

• Only change step 4• Pre-compute an eigen-space for local

gradient patches of size 41x41• 2x39x39=3042 elements• Only keep 20 components• A more compact descriptor

Page 110: Features

GLOH (Gradient location-orientation histogram)

17 location bins16 orientation binsAnalyze the 17x16=272-d eigen-space, keep 128 components

SIFT is still considered the best.

SIFT

Page 111: Features

Multi-Scale Oriented Patches• Simpler than SIFT. Designed for image

matching. [Brown, Szeliski, Winder, CVPR’2005]

• Feature detector– Multi-scale Harris corners– Orientation from blurred gradient– Geometrically invariant to rotation

• Feature descriptor– Bias/gain normalized sampling of local patch

(8x8)– Photometrically invariant to affine changes in

intensity

Page 112: Features

Multi-Scale Harris corner detector

• Image stitching is mostly concerned with matching images that have the same scale, so sub-octave pyramid might not be necessary.

2s

Page 113: Features

Multi-Scale Harris corner detector

smoother version of gradients

Corner detection function:

Pick local maxima of 3x3 and larger than 10

Page 114: Features

Keypoint detection function

Experiments show roughly the same performance.

Page 115: Features

Non-maximal suppression

• Restrict the maximal number of interest points, but also want them spatially well distributed

• Only retain maximums in a neighborhood of radius r.

• Sort them by strength, decreasing r from infinity until the number of keypoints (500) is satisfied.

Page 116: Features

Non-maximal suppression

Page 117: Features

Sub-pixel refinement

Page 118: Features

Orientation assignment

• Orientation = blurred gradient

Page 119: Features

Descriptor Vector• Rotation Invariant Frame

– Scale-space position (x, y, s) + orientation ()

Page 120: Features

MOPS descriptor vector• 8x8 oriented patch sampled at 5 x scale.

See TR for details. • Sampled from with

spacing=5

8 pixels40 pixels

Page 121: Features

MOPS descriptor vector• 8x8 oriented patch sampled at 5 x scale.

See TR for details. • Bias/gain normalisation: I’ = (I – )/• Wavelet transform

8 pixels40 pixels

Page 122: Features

Detections at multiple scales

Page 123: Features

Summary

• Multi-scale Harris corner detector• Sub-pixel refinement• Orientation assignment by gradients• Blurred intensity patch as descriptor

Page 124: Features

Feature matching• Exhaustive search

– for each feature in one image, look at all the other features in the other image(s)

• Hashing– compute a short descriptor from each feature

vector, or hash longer descriptors (randomly)

• Nearest neighbor techniques– k-trees and their variants (Best Bin First)

Page 125: Features

Wavelet-based hashing• Compute a short (3-vector) descriptor

from an 8x8 patch using a Haar “wavelet”

• Quantize each value into 10 (overlapping) bins (103 total entries)

• [Brown, Szeliski, Winder, CVPR’2005]

Page 126: Features

Nearest neighbor techniques• k-D tree

and

• Best BinFirst(BBF)

Indexing Without Invariants in 3D Object Recognition, Beis and Lowe, PAMI’99

Page 127: Features

Applications

Page 128: Features

Recognition

SIFT Features

Page 129: Features

3D object recognition

Page 130: Features

3D object recognition

Page 131: Features

Office of the past

Video of desk Images from PDF

Track & recognize

T T+1

Internal representation

Scene Graph

Desk Desk

Page 132: Features

…> 5000images

change in viewing angle

Image retrieval

Page 133: Features

22 correct matches

Image retrieval

Page 134: Features

…> 5000images

change in viewing angle

+ scale change

Image retrieval

Page 135: Features

Robot location

Page 136: Features

Robotics: Sony Aibo

SIFT is used for Recognizing

charging station

Communicating with visual cards

Teaching object recognition

soccer

Page 137: Features

Structure from Motion

• The SFM Problem– Reconstruct scene geometry and camera

motion from two or more images

Track2D Features Estimate

3D Optimize(Bundle Adjust)

Fit Surfaces

SFM Pipeline

Page 138: Features

Structure from Motion

Poor mesh Good mesh

Page 139: Features

Augmented reality

Page 140: Features

Automatic image stitching

Page 141: Features

Automatic image stitching

Page 142: Features

Automatic image stitching

Page 143: Features

Automatic image stitching

Page 144: Features

Automatic image stitching

Page 145: Features

Reference• Chris Harris, Mike Stephens, A Combined Corner and Edge

Detector, 4th Alvey Vision Conference, 1988, pp147-151. • David G. Lowe, Distinctive Image Features from Scale-

Invariant Keypoints, International Journal of Computer Vision, 60(2), 2004, pp91-110.

• Yan Ke, Rahul Sukthankar, PCA-SIFT: A More Distinctive Representation for Local Image Descriptors, CVPR 2004.

• Krystian Mikolajczyk, Cordelia Schmid, A performance evaluation of local descriptors, Submitted to PAMI, 2004.

• SIFT Keypoint Detector, David Lowe.• Matlab SIFT Tutorial, University of Toronto.

Page 146: Features

Project #2 Image stitching

• Assigned: 3/26• Checkpoint: 11:59pm 4/12• Due: 11:59am 4/22• Work in pairs

Page 147: Features

Reference software

• Autostitchhttp://www.cs.ubc.ca/~mbrown/autostitch/

autostitch.html

• Many others are available online.

Page 148: Features

Tips for taking pictures

• Common focal point• Rotate your camera to increase vertical

FOV• Tripod• Fixed exposure?

Page 149: Features

Bells & whistles

• Recognizing panorama• Bundle adjustment• Handle dynamic objects• Better blending techniques

Page 150: Features

Artifacts

• Take your own pictures and generate a stitched image, be creative.

• http://www.cs.washington.edu/education/courses/cse590ss/01wi/projects/project1/students/allen/index.html

Page 151: Features

Submission

• You have to turn in your complete source, the executable, a html report and an artifact.

• Report page contains: description of the project, what do you learn,

algorithm, implementation details, results, bells and whistles…

• Artifacts must be made using your own program.

Page 152: Features

Reference• Chris Harris, Mike Stephens, A Combined Corner and Edge

Detector, 4th Alvey Vision Conference, 1988, pp147-151. • David G. Lowe, Distinctive Image Features from Scale-

Invariant Keypoints, International Journal of Computer Vision, 60(2), 2004, pp91-110.

• Yan Ke, Rahul Sukthankar, PCA-SIFT: A More Distinctive Representation for Local Image Descriptors, CVPR 2004.

• Krystian Mikolajczyk, Cordelia Schmid, A performance evaluation of local descriptors, Submitted to PAMI, 2004.

• SIFT Keypoint Detector, David Lowe.• Matlab SIFT Tutorial, University of Toronto.