119
More on Features Digital Visual Effects, Spring 2007 Yung-Yu Chuang 2007/3/27 with slides by Trevor Darrell Cordelia Schmid, David Lowe, Darya Frolova, Denis Simakov, Robert Collins, Brad Osgood, W W L Chen, and Jiwon Kim

More on Features

  • Upload
    valora

  • View
    43

  • Download
    1

Embed Size (px)

DESCRIPTION

More on Features. Digital Visual Effects, Spring 2007 Yung-Yu Chuang 2007/3/27. with slides by Trevor Darrell Cordelia Schmid , David Lowe, Darya Frolova, Denis Simakov , Robert Collins, Brad Osgood, W W L Chen, and Jiwon Kim. Announcements. - PowerPoint PPT Presentation

Citation preview

Page 1: More on Features

More on Features

Digital Visual Effects, Spring 2007Yung-Yu Chuang2007/3/27

with slides by Trevor Darrell Cordelia Schmid, David Lowe, Darya Frolova, Denis Simakov, Robert Collins, Brad Osgood, W W L Chen, and Jiwon Kim

Page 2: More on Features

Announcements• Project #1 was due at noon today. 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 handout will be available on the web today.

• We may not have class next week. I will send out mails if the class is canceled.

Page 3: More on Features

Outline• Harris corner detector• SIFT• SIFT extensions• MSOP

Page 4: More on Features

Three components for features • Feature detection• Feature description• Feature matching

Page 5: More on Features

Harris corner detector

Page 6: More on Features

Harris corner detectorConsider all small shifts by Taylor’s expansion

yxyx

yxy

yxx

yxIyxIyxwC

yxIyxwB

yxIyxwA

BvCuvAuvuE

,

,

2

,

2

22

),(),(),(

),(),(

),(),(

2),(

Page 7: More on Features

Harris corner detector

( , ) ,u

E u v u v Mv

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

2

2,

( , ) x x y

x y x y y

I I IM w x y

I I I

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

Page 8: More on Features

Harris corner detector (matrix form)

Huu

uuu

u

uu

uu

xuxu 00

T

TT

T

T

II

I

III

IIE

|)()(|)(

2

2

00

2

Page 9: More on Features

Quadratic forms• Quadratic form (homogeneous polynomial

of degree two) of n variables xi

• Examples

=

Page 10: More on Features

Symmetric matrices• Quadratic forms can be represented by a

real symmetric matrix A where

Page 11: More on Features

Eigenvalues of symmetric matrices

Brad Osgood

Page 12: More on Features

Eigenvectors of symmetric matrices

yΛyΛ

ΛyyxQΛxQ

xQΛQxAxx

21

21 T

T

TTT

TT

T

11q22 q

1 xxT

1zzT

Page 13: More on Features

Visualize quadratic functionsT

A

1001

1001

1001

1001

Page 14: More on Features

Visualize quadratic functionsT

A

1001

1004

1001

1004

Page 15: More on Features

Visualize quadratic functionsT

A

50.087.087.050.0

4001

50.087.087.050.0

75.130.130.125.3

Page 16: More on Features

Visualize quadratic functionsT

A

50.087.087.050.0

10001

50.087.087.050.0

25.390.390.375.7

Page 17: More on Features

Harris corner detector

( , ) ,u

E u v u v Mv

Intensity change in shifting window: eigenvalue analysis1, 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

Page 18: More on 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 19: More on Features

Harris corner detector

Measure of corner response: 2det traceR M k M

1 2

1 2

dettrace

MM

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

24)( 0110

211001100 aaaaaa

Page 20: More on Features

Harris corner detector

Page 21: More on Features

Summary of Harris detector

Page 22: More on 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.

( )

Page 23: More on Features

Harris Detector: Some Properties• Rotation invariance

Ellipse rotates but its shape (i.e. eigenvalues) remains the sameCorner response R is invariant to image rotation

Page 24: More on Features

Harris Detector: Some Properties• But: non-invariant to image scale!

All points will be classified as edges Corner !

Page 25: More on Features

Scale invariant detection• The problem: how do we choose corresponding

circles independently in each image?• Aperture problem

Page 26: More on Features

SIFT (Scale Invariant Feature

Transform)

Page 27: More on Features

SIFT• SIFT is an carefully designed procedure

with empirically determined parameters for the invariant and distinctive features.

Page 28: More on Features

SIFT stages:• Scale-space extrema detection• Keypoint localization• Orientation assignment• Keypoint descriptor

( )local descriptor

detector

descriptor

A 500x500 image gives about 2000 features

matching

Page 29: More on 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 30: More on Features

DoG filteringConvolution with a variable-scale Gaussian

Difference-of-Gaussian (DoG) filter

Convolution with the DoG filter

Page 31: More on Features

Scale space doubles for the next octave

K=2(1/s)

Dividing into octave is for efficiency only.

Page 32: More on Features

Detection of scale-space extrema

Page 33: More on Features

Keypoint localization

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

Page 34: More on 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 35: More on Features

Decide scale sampling frequency

S=3, for larger s, too many unstable features

for detector, repeatability

for descriptor, distinctiveness

Page 36: More on Features

Decide scale sampling frequency

Page 37: More on Features

Pre-smoothing

=1.6, plus a double expansion

Page 38: More on Features

Scale invariance

Page 39: More on 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 40: More on 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()( xfxffxf

31ˆ x

22 3262626)( xxxxxf

062)(' xxf

316

313

3126)ˆ(

2

xf

316

31

Page 41: More on Features

2. Accurate keypoint localization• Taylor series of several variables

• Two variables

222

22

221)0,0(),( y

yyfxy

yxfx

xxfy

yfx

xffyxf

yx

yyf

yxf

yxf

xxf

yxyx

yf

xff

yx

f 22

22

21

00

xx

xxx

0x 2

2

21

ffff TT

Page 42: More on Features

Accurate keypoint localization• Taylor expansion in in matrix form, x is a

vector, f maps x to a scalar

nxf

xfxf

1

1

2

2

2

2

1

2

2

2

22

2

12

21

2

21

2

21

2

nnn

n

n

xf

xxf

xxf

xxf

xf

xxf

xxf

xxf

xf

Hessian matrix(often symmetric)

gradient

Page 43: More on Features

2D illustration

Page 44: More on Features

2D example

-17 -1 -1

7

77

7

-9

-9

Page 45: More on Features

Derivation of matrix form

xgx T)(h

n

n

x

xgg

1

1

n

iii xg

1

gx

nn

g

g

xh

xh

h11

Page 46: More on Features

Derivation of matrix form

Axxx T)(h

nnnn

nT

n

x

x

aa

aaxx

1

1

111

1

n

i

n

jjiij xxa

1 1

AxxAx

T

n

i

n

jjnjiin

n

i

n

jjjii

n

xaxa

xaxa

xh

xh

h

1 1

1 111

1

xAAT )(

Page 47: More on Features

Derivation of matrix form

xffxfffh TTT

2

2

2

2

2

2

21

xxxxxx

Page 48: More on 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 49: More on Features

Accurate keypoint localization• Throw out low contrast 03.0|)ˆ(| xD

xx

xx

xx

xxxx

x

xxxxxx

x

xxxxxx

x

xx

xxx

x

ˆ21

)ˆ(21ˆ

21ˆ

21ˆ

21ˆ

ˆˆ21ˆ)ˆ(

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 50: More on Features

Eliminating edge responses

r=10

Let

Keep the points with

Hessian matrix at keypoint location

Page 51: More on Features

Maxima in D

Page 52: More on Features

Remove low contrast and edges

Page 53: More on Features

Keypoint detector233x89 832 extrema

729 after con-trast filtering

536 after cur-vature filtering

Page 54: More on 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 55: More on Features

Orientation assignment

Page 56: More on Features

Orientation assignment

Page 57: More on Features

Orientation assignment

Page 58: More on Features

Orientation assignment

σ=1.5*scale of the keypoint

Page 59: More on Features

Orientation assignment

Page 60: More on Features

Orientation assignment

Page 61: More on Features

Orientation assignmentaccurate peak position is determined by fitting

Page 62: More on Features

Orientation assignment

0 2

36-bin orientation histogram over 360°, weighted by m and 1.5*scale falloffPeak is the orientationLocal peak within 80% creates multiple

orientationsAbout 15% has multiple orientations and

they contribute a lot to stability

Page 63: More on Features

SIFT descriptor

Page 64: More on 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 65: More on Features

Why 4x4x8?

Page 66: More on Features

Sensitivity to affine change

Page 67: More on 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 68: More on Features

SIFT flow

Page 69: More on Features

Maxima in D

Page 70: More on Features

Remove low contrast

Page 71: More on Features

Remove edges

Page 72: More on Features

SIFT descriptor

Page 73: More on Features
Page 74: More on 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 75: More on Features

Applications

Page 76: More on Features

Recognition

SIFT Features

Page 77: More on Features

3D object recognition

Page 78: More on Features

3D object recognition

Page 79: More on Features

Office of the past

Video of desk Images from PDF

Track & recognize

T T+1

Internal representation

Scene Graph

Desk Desk

Page 80: More on Features

…> 5000images

change in viewing angle

Image retrieval

Page 81: More on Features

22 correct matches

Image retrieval

Page 82: More on Features

…> 5000images

change in viewing angle+ scale change

Image retrieval

Page 83: More on Features

Robot location

Page 84: More on Features

Robotics: Sony AiboSIFT is used for Recognizing

charging station

Communicating with visual cards

Teaching object recognition

soccer

Page 85: More on 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 86: More on Features

Structure from Motion

Poor mesh Good mesh

Page 87: More on Features

Augmented reality

Page 88: More on Features

Automatic image stitching

Page 89: More on Features

Automatic image stitching

Page 90: More on Features

Automatic image stitching

Page 91: More on Features

Automatic image stitching

Page 92: More on Features

Automatic image stitching

Page 93: More on Features

SIFT extensions

Page 94: More on Features

PCA

Page 95: More on 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 96: More on Features

GLOH (Gradient location-orientation histogram)

17 location bins16 orientation binsAnalyze the 17x16=272-d eigen-space, keep 128 componentsSIFT is still considered the best.

SIFT

Page 97: More on 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 98: More on 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 99: More on Features

Multi-Scale Harris corner detector

smoother version of gradients

Corner detection function:

Pick local maxima of 3x3 and larger than 10

Page 100: More on Features

Keypoint detection function

Experiments show roughly the same performance.

Page 101: More on 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 102: More on Features

Non-maximal suppression

Page 103: More on Features

Sub-pixel refinement

Page 104: More on Features

Orientation assignment• Orientation = blurred gradient

Page 105: More on Features

Descriptor Vector• Rotation Invariant Frame

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

Page 106: More on 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 107: More on 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 108: More on Features

Detections at multiple scales

Page 109: More on Features

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

Page 110: More on 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 111: More on 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 112: More on Features

Nearest neighbor techniques• k-D tree

and

• Best BinFirst(BBF)

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

Page 113: More on Features

Project #2 Image stitching• Assigned: 3/27• Checkpoint: 11:59pm 4/15• Due: 11:59am 4/24• Work in pairs

Page 114: More on Features

Reference software• Autostitchhttp://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html• Many others are available online.

Page 115: More on Features

Tips for taking pictures• Common focal point• Rotate your camera to increase vertical

FOV• Tripod• Fixed exposure?

Page 116: More on Features

Bells & whistles• Recognizing panorama• Bundle adjustment• Handle dynamic objects• Better blending techniques

Page 117: More on Features

Artifacts• Take your own pictures and generate a

stitched image, be creative.• http://www.cs.washington.edu/education/courses/cse590ss/01wi/p

rojects/project1/students/allen/index.html

Page 118: More on 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 119: More on Features

Reference• Chris Harris, Mike Stephens, A Combined Corner and Edge Detector, 4th Alvey Vision Conferen

ce, 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.