Lecture’7:’’...

46
Lecture 7 - Fei-Fei Li Lecture 7: Finding Features (part 2/2) Dr. Juan Carlos Niebles Stanford AI Lab Professor FeiFei Li Stanford Vision Lab 13Oct15 1

Transcript of Lecture’7:’’...

Page 1: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Lecture  7:    Finding  Features  (part  2/2)  

Dr.  Juan  Carlos  Niebles  Stanford  AI  Lab  

 Professor  Fei-­‐Fei  Li  Stanford  Vision  Lab  

13-­‐Oct-­‐15  1  

Page 2: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

What  we  will  learn  today?  

•  Local  invariant  features  – MoPvaPon  –  Requirements,  invariances  

•  Keypoint  localizaPon  – Harris  corner  detector    

•  Scale  invariant  region  selecPon  – AutomaPc  scale  selecPon  – Difference-­‐of-­‐Gaussian  (DoG)  detector  

•  SIFT:  an  image  region  descriptor  

13-­‐Oct-­‐15  2  

Previous  lecture  (#6)  

Some  background  reading:  David  Lowe,  IJCV  2004  

Page 3: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

A  quick  review  

•  Local  invariant  features  – MoPvaPon  – Requirements,  invariances  

•  Keypoint  localizaPon  – Harris  corner  detector    

•  Scale  invariant  region  selecPon  – AutomaPc  scale  selecPon  – Difference-­‐of-­‐Gaussian  (DoG)  detector  

•  SIFT:  an  image  region  descriptor  

13-­‐Oct-­‐15  3  

Page 4: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

General  Approach  N

pix

els

N pixels

Similarity measure Af

e.g. color

Bf

e.g. color

B1  B2  

B3  A1  

A2   A3  

Tffd BA <),(

1. Find a set of distinctive key- points

3. Extract and normalize the region content

2. Define a region around each keypoint

4. Compute a local descriptor from the normalized region

5. Match local descriptors

Slid

e cr

edit

: Ba

stia

n Le

ibe

13-­‐Oct-­‐15  4  

Page 5: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

A  quick  review  

•  Local  invariant  features  – MoPvaPon  –  Requirements,  invariances  

•  Keypoint  localizaPon  – Harris  corner  detector    

•  Scale  invariant  region  selecPon  – AutomaPc  scale  selecPon  – Difference-­‐of-­‐Gaussian  (DoG)  detector  

•  SIFT:  an  image  region  descriptor  

13-­‐Oct-­‐15  5  

Page 6: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Quick  review:  Harris  Corner  Detector  

13-­‐Oct-­‐15  6  

“edge”: no change along the edge direction

“corner”: significant change in all directions

“flat” region: no change in all directions

Slid

e cr

edit

: Al

yosh

a Ef

ros

Page 7: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Quick  review:  Harris  Corner  Detector  

13-­‐Oct-­‐15  7  

 

•  Fast  approximaPon  –  Avoid  compuPng  the  eigenvalues  

–  α:  constant  (0.04  to  0.06)  

θ = det(M )−α trace(M )2 = λ1λ2 −α(λ1 +λ2 )2

Slid

e cr

edit

: Kr

iste

n G

raum

an

“Corner” θ > 0  

“Edge”     θ < 0

“Edge”   θ < 0

“Flat”  region  

λ1

Page 8: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Quick  review:  Harris  Corner  Detector  

13-­‐Oct-­‐15  8  

Slid

e ad

apte

d fr

om D

arya

Fro

lova

, D

enis

Sim

akov

Page 9: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Quick  review:  Harris  Corner  Detector  

13-­‐Oct-­‐15  9  

•  TranslaPon  invariance  •  RotaPon  invariance  •  Scale  invariance?  

Not invariant to image scale!

All points will be classified as edges!

Corner

Slid

e cr

edit

: Kr

iste

n G

raum

an

Page 10: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

What  we  will  learn  today?  

•  Local  invariant  features  – MoPvaPon  –  Requirements,  invariances  

•  Keypoint  localizaPon  – Harris  corner  detector    

•  Scale  invariant  region  selecPon  – AutomaPc  scale  selecPon  – Difference-­‐of-­‐Gaussian  (DoG)  detector  

•  SIFT:  an  image  region  descriptor  

13-­‐Oct-­‐15  10  

Page 11: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

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

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

13-­‐Oct-­‐15  11  

Page 12: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  DetecPon  

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

13-­‐Oct-­‐15  12  

Page 13: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  DetecPon  •  SoluPon:  

–  Design  a  funcPon  on  the  region  (circle),  which  is  “scale  invariant”  (the  same  for  corresponding  regions,  even  if  they  are  at  different  scales)      

Example:  average  intensity.  For  corresponding  regions  (even  of  different  sizes)  it  will  be  the  same.  

scale = 1/2

–  For  a  point  in  one  image,  we  can  consider  it  as  a  funcPon  of  region  size  (circle  radius)      

f

region size

Image 1 f

region size

Image 2

13-­‐Oct-­‐15  13  

Page 14: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  DetecPon  •  Common  approach:  

scale = 1/2

f

region size

Image 1 f

region size

Image 2

Take  a  local  maximum  of  this  funcPon  

•  ObservaPon:  region  size,  for  which  the  maximum  is  achieved,  should  be  co-­‐variant  with  image  scale.  

s1 s2

Important: this scale invariant region size is found in each image independently!

13-­‐Oct-­‐15  14  

Page 15: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  DetecPon  

•  A  “good”  funcPon  for  scale  detecPon:          has  one  stable  sharp  peak  

f

region size

bad

f

region size

bad

f

region size

Good !

•  For  usual  images:  a  good  funcPon  would  be  one  which  responds  to  contrast  (sharp  local  intensity  change)  

13-­‐Oct-­‐15  15  

Page 16: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  DetecPon  •  FuncPons  for  determining  scale  

2 2

21 22

( , , )x y

G x y e σπσ

σ+

=

( )2 ( , , ) ( , , )xx yyL G x y G x yσ σ σ= +

( , , ) ( , , )DoG G x y k G x yσ σ= −

Kernel Imagef = ∗Kernels:

where Gaussian

Note: both kernels are invariant to scale and rotation

(Laplacian)

(Difference of Gaussians)

13-­‐Oct-­‐15  16  

Page 17: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  Detectors  •  Harris-­‐Laplacian1  

Find  local  maximum  of:  –  Harris  corner  detector  in  space  (image  coordinates)  

–  Laplacian  in  scale  

1  K.Mikolajczyk,  C.Schmid.  “Indexing  Based  on  Scale  Invariant  Interest  Points”.  ICCV  2001  2  D.Lowe.  “DisPncPve  Image  Features  from  Scale-­‐Invariant  Keypoints”.    IJCV  2004  

scale

x

y

← Harris →

← L

apla

cian

•  SIFT  (Lowe)2  Find  local  maximum  of:  –  Difference  of  Gaussians  in  space  

and  scale  

scale

x

y

← DoG →

← D

oG →

13-­‐Oct-­‐15  17  

Page 18: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  Detectors  

K.Mikolajczyk, C.Schmid. “Indexing Based on Scale Invariant Interest Points”. ICCV 2001

•  Experimental  evaluaPon  of  detectors    w.r.t.  scale  change  

Repeatability rate: # correspondences # possible correspondences

13-­‐Oct-­‐15  18  

Page 19: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Scale  Invariant  DetecPon:  Summary  

•  Given:  two  images  of  the  same  scene  with  a  large  scale  difference  between  them  

•  Goal:  find  the  same  interest  points  independently  in  each  image  

•  SoluPon:  search  for  maxima  of  suitable  funcPons  in  scale  and  in  space  (over  the  image)  

Methods:

1.  Harris-Laplacian [Mikolajczyk, Schmid]: maximize Laplacian over scale, Harris’ measure of corner response over the image

2.  SIFT [Lowe]: maximize Difference of Gaussians over scale and space

13-­‐Oct-­‐15  19  

Page 20: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

What  we  will  learn  today?  

•  Local  invariant  features  – MoPvaPon  –  Requirements,  invariances  

•  Keypoint  localizaPon  – Harris  corner  detector    

•  Scale  invariant  region  selecPon  – AutomaPc  scale  selecPon  – Difference-­‐of-­‐Gaussian  (DoG)  detector  

•  SIFT:  an  image  region  descriptor  

13-­‐Oct-­‐15  20  

Page 21: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Local  Descriptors  •  We  know  how  to  detect  points  •  Next  quesPon:  

How  to  describe  them  for  matching?  

? Point descriptor should be:

1.   Invariant 2.   Distinctive Sl

ide

cred

it:

Kris

ten

Gra

uman

13-­‐Oct-­‐15  21  

Page 22: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

CVPR  2003  Tutorial    

Recogni5on  and  Matching  Based  on  Local  Invariant  Features    

David  Lowe    Computer  Science  Department  University  of  BriPsh  Columbia  

13-­‐Oct-­‐15  22  

Page 23: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 -

Invariant  Local  Features  

•  Image  content  is  transformed  into  local  feature  coordinates  that  are  invariant  to  translaPon,  rotaPon,  scale,  and  other  imaging  parameters  

13-­‐Oct-­‐15  23  

Page 24: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Advantages  of  invariant  local  features  •  Locality:  features  are  local,  so  robust  to  occlusion  and  clumer  (no  prior  segmentaPon)  

•  Dis5nc5veness:  individual  features  can  be  matched  to  a  large  database  of  objects  

•  Quan5ty:  many  features  can  be  generated  for  even  small  objects  

•  Efficiency:  close  to  real-­‐Pme  performance  

•  Extensibility:  can  easily  be  extended  to  wide  range  of  differing  feature  types,  with  each  adding  robustness  

13-­‐Oct-­‐15  24  

Page 25: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 -

Scale  invariance  Requires  a  method  to  repeatably  select  points  in  loca5on  

and  scale:  •  The  only  reasonable  scale-­‐space  kernel  is  a  Gaussian  

(Koenderink,  1984;  Lindeberg,  1994)  •  An  efficient  choice  is  to  detect  peaks  in  the  difference  of  

Gaussian  pyramid  (Burt  &  Adelson,  1983;  Crowley  &  Parker,  1984  –  but  examining  more  scales)  

•  Difference-­‐of-­‐Gaussian  with  constant  raPo  of  scales  is  a  close  approximaPon  to  Lindeberg’s  scale-­‐normalized  Laplacian  (can  be  shown  from  the  heat  diffusion  equaPon)  

Blur

Resample

Subtract

Blur

Resample

Subtract

13-­‐Oct-­‐15  

Page 26: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Becoming  rotaPon  invariant  

•  We  are  given  a  keypoint  and  its  scale  from  DoG  

•  We  will  select  a  characterisPc  orientaPon  for  the  keypoint  (based  on  the  most  prominent  gradient  there;  discussed  next  slide)  

•  We  will  describe  all  features  rela5ve  to  this  orientaPon  

•  Causes  features  to  be  rotaPon  invariant!  –  If  the  keypoint  appears  rotated  in  

another  image,  the  features  will  be  the  same,  because  they’re  rela5ve  to  the  characterisPc  orientaPon  

0 2π

13-­‐Oct-­‐15  26  

Page 27: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Becoming  rotaPon  invariant  •  Choosing  characterisPc  orientaPon:  •  Use  the  blurred  image  associated  with  

the  keypoint’s  scale.  Look  at  pixels  in  a  square  around  it  (say,  size  16x16)  

•  Compute  gradient  direcPon  at  each  pixel  (this  is  easy,  using  verPcal  and  horizontal  edge  filters)  

•  Create  a  histogram  of  these  local  gradient  direcPons  

•  Keypoint  orientaPon  =  the  peak  of  that  histogram  

•  Minor  details:  we’ll  also  weight  each  pixel’s  histogram  contribuPon  by  the  magnitude  of  its  gradient  and  how  close  it  is  to  the  keypoint  

•  Now,  each  keypoint  has  stable  2D  coordinates  (x,  y,  scale,  orientaBon).  Now  we  must  give  it  a  “fingerprint.”   0 2π

13-­‐Oct-­‐15  27  

Page 28: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Example  of  keypoint  detecPon  Threshold  on  value  at  DOG  peak  and  on  raPo  of  principle  curvatures  (Harris  approach)  

(a)  233x189  image  (b)  832  DOG  extrema  (c)  729  let  ater  peak              value  threshold  (d)  536  let  ater  tesPng              raPo  of  principle              curvatures  

13-­‐Oct-­‐15  28  

Page 29: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Repeatability  vs  number  of  scales  sampled  per  octave  

David  G.  Lowe,  "DisPncPve  image  features  from  scale-­‐invariant  keypoints,"  InternaPonal  Journal  of  Computer  Vision,  60,  2  (2004),  pp.  91-­‐110  

13-­‐Oct-­‐15  29  

Page 30: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

SIFT  descriptor  formaPon  

•  Use  the  blurred  image  associated  with  the  keypoint’s  scale  •  Take  image  gradients  over  a  16x16  array  of  locaPons.  •  To  become  rotaPon  invariant,  rotate  the  gradient  direcPons  AND  locaPons  

by  (-­‐keypoint  orientaPon)  –  Now  we’ve  cancelled  out  rotaPon  and  have  gradients  expressed  at  locaPons  rela5ve  

to  keypoint  orientaPon  θ  –  We  could  also  have  just  rotated  the  whole  image  by  -­‐θ,  but  that  would  be  slower.  

13-­‐Oct-­‐15  30  

Page 31: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

SIFT  descriptor  formaPon  

•  Using  precise  gradient  locaPons  is  fragile.  We’d  like  to  allow  some  “slop”  in  the  image,  and  sPll  produce  a  very  similar  descriptor  

•  Create  array  of  orientaPon  histograms  (a  4x4  array  is  shown)  •  Put  the  rotated  gradients  into  their  local  orientaPon  histograms  

–  A  gradients’s  contribuPon  is  divided  among  the  nearby  histograms  based  on  distance.  If  it’s  halfway  between  two  histogram  locaPons,  it  gives  a  half  contribuPon  to  both.  

–  Also,  scale  down  gradient  contribuPons  for  gradients  far  from  the  center  •  The  SIFT  authors  found  that  best  results  were  with  8  orientaPon  bins  per  

histogram,  and  a  4x4  histogram  array.  

13-­‐Oct-­‐15  31  

Page 32: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

SIFT  descriptor  formaPon  

•  8  orientaPon  bins  per  histogram,  and  a  4x4  histogram  array,  yields  8  x  4x4  =  128  numbers.  

•  So  a  SIFT  descriptor  is  a  length  128  vector,  which  is  invariant  to  rotaPon  (because  we  rotated  the  descriptor)  and  scale  (because  we  worked  with  the  scaled  image  from  DoG)  

•  We  can  compare  each  vector  from  image  A  to  each  vector  from  image  B  to  find  matching  keypoints!  –  Euclidean  “distance”  between  descriptor  vectors  gives  a  good  measure  

of  keypoint  similarity  

13-­‐Oct-­‐15  32  

Page 33: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

SIFT  descriptor  formaPon  

•  Adding  robustness  to  illuminaPon  changes:  •  Remember  that  the  descriptor  is  made  of  gradients  (differences  

between  pixels),  so  it’s  already  invariant  to  changes  in  brightness  (e.g.  adding  10  to  all  image  pixels  yields  the  exact  same  descriptor)  

•  A  higher-­‐contrast  photo  will  increase  the  magnitude  of  gradients  linearly.  So,  to  correct  for  contrast  changes,  normalize  the  vector  (scale  to  length  1.0)  

•  Very  large  image  gradients  are  usually  from  unreliable  3D  illuminaPon  effects  (glare,  etc).  So,  to  reduce  their  effect,  clamp  all  values  in  the  vector  to  be  ≤  0.2  (an  experimentally  tuned  value).  Then  normalize  the  vector  again.  

•  Result  is  a  vector  which  is  fairly  invariant  to  illuminaPon  changes.  

13-­‐Oct-­‐15  33  

Page 34: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

SensiPvity  to  number  of  histogram  orientaPons  

13-­‐Oct-­‐15  34  

David  G.  Lowe,  "DisPncPve  image  features  from  scale-­‐invariant  keypoints,"  InternaPonal  Journal  of  Computer  Vision,  60,  2  (2004),  pp.  91-­‐110  

Page 35: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Feature  stability  to  noise  •  Match  features  ater  random  change  in  image  scale  &  

orientaPon,  with  differing  levels  of  image  noise  •  Find  nearest  neighbor  in  database  of  30,000  features  

13-­‐Oct-­‐15  35  

Page 36: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Feature  stability  to  affine  change  •  Match  features  ater  random  change  in  image  scale  &  

orientaPon,  with  2%  image  noise,  and  affine  distorPon  •  Find  nearest  neighbor  in  database  of  30,000  features  

13-­‐Oct-­‐15  36  

Page 37: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

DisPncPveness  of  features  •  Vary  size  of  database  of  features,  with  30  degree  affine  change,  

2%  image  noise  •  Measure  %  correct  for  single  nearest  neighbor  match  

13-­‐Oct-­‐15  37  

Page 38: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

RaPo  of  distances  reliable  for  matching  

13-­‐Oct-­‐15  38  

Page 39: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li 13-­‐Oct-­‐15  39  

Page 40: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li 13-­‐Oct-­‐15  40  

Page 41: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Nice  SIFT  resources  

•  VLFeat  toolbox:  – hmp://www.vlfeat.org/overview/sit.html  

•  an  online  tutorial:hmp://www.aishack.in/2010/05/sit-­‐scale-­‐invariant-­‐feature-­‐transform/  

•  Wikipedia:hmp://en.wikipedia.org/wiki/Scale-­‐invariant_feature_transform  

13-­‐Oct-­‐15  41  

Page 42: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

ApplicaPons  of  local  invariant  features  

•  Wide  baseline  stereo  •  MoPon  tracking  •  Panoramas  •  Mobile  robot  navigaPon  •  3D  reconstrucPon  •  RecogniPon  •  …  

Page 43: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

AutomaPc  mosaicing  

hmp://www.cs.ubc.ca/~mbrown/autosPtch/autosPtch.html  

Page 44: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

Wide  baseline  stereo  

[Image  from  T.  Tuytelaars  ECCV  2006  tutorial]  

Page 45: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

RecogniPon  of  specific  objects,  scenes  

Rothganger et al. 2003 Lowe 2002

Schmid and Mohr 1997 Sivic and Zisserman, 2003

Page 46: Lecture’7:’’ Finding’Features’(part2/2)’vision.stanford.edu/.../lectures/lecture7_DoG_SIFT_cs131.pdf · Lecture’7:’’ Finding’Features’(part2/2) ... Repeatability’vs’number’of’scales’sampled’per’octave

Lecture 7 - Fei-Fei Li

What  we  have  learned  this  week?  

•  Local  invariant  features  – MoPvaPon  –  Requirements,  invariances  

•  Keypoint  localizaPon  – Harris  corner  detector    

•  Scale  invariant  region  selecPon  – AutomaPc  scale  selecPon  – Difference-­‐of-­‐Gaussian  (DoG)  detector  

•  SIFT:  an  image  region  descriptor  

13-­‐Oct-­‐15  46  

Previous  lecture  (#6)  

today  (#7)  

Some  background  reading:  R.  Szeliski,  Ch  4.1.1;  David  Lowe,  IJCV  2004