37
Robust and large-scale alignment Image from http://graphics.cs.cmu.edu/courses/15-463/2010_fall/

Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust and large-scale alignment

Image from http://graphics.cs.cmu.edu/courses/15-463/2010_fall/

Page 2: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment• So far, we’ve assumed that we are given a set of

“ground-truth” correspondences between the two images we want to alignimages we want to align

• What if we don’t know the correspondences?

),( ii yx ′′),( ii yx

Page 3: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment• So far, we’ve assumed that we are given a set of

“ground-truth” correspondences between the two images we want to alignimages we want to align

• What if we don’t know the correspondences?

??

Page 4: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment

Page 5: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment

E tract feat res• Extract features

Page 6: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment

E tract feat res• Extract features• Compute putative matches

Page 7: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment

E tract feat res• Extract features• Compute putative matches• Loop:Loop:

• Hypothesize transformation T

Page 8: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment

E tract feat res• Extract features• Compute putative matches• Loop:Loop:

• Hypothesize transformation T• Verify transformation (search for other matches consistent

with T)with T)

Page 9: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Robust feature-based alignment

E tract feat res• Extract features• Compute putative matches• Loop:Loop:

• Hypothesize transformation T• Verify transformation (search for other matches consistent

with T)with T)

Page 10: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Generating putative correspondences

??

Page 11: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Generating putative correspondences

??

( ) ( )=?

featuredescriptor

featuredescriptor

• Need to compare feature descriptors of local patches surrounding interest points

Page 12: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Feature descriptors• Recall: covariant detectors => invariant descriptors

Detect regions Normalize regionsCompute appearance

descriptors

Page 13: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Feature descriptors• Simplest descriptor: vector of raw intensity values• How to compare two such vectors?

• Sum of squared differences (SSD)• Sum of squared differences (SSD)

( )∑ −= ii vuvu 2),SSD(

– Not invariant to intensity change

∑i

• Normalized correlation

−−∑i ii vvuuvu

))(()(ρ

⎟⎟⎠

⎞⎜⎜⎝

⎛−⎟⎟

⎞⎜⎜⎝

⎛−

=

∑∑j

jj

j

i

vvuu

vu22 )()(

),(ρ

– Invariant to affine intensity change

⎠⎝⎠⎝ jj

Page 14: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Disadvantage of intensity vectors as descriptors• Small deformations can affect the matching

score a lot

Page 15: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Feature descriptors: SIFT• Descriptor computation:

• Divide patch into 4x4 sub-patches• Compute histogram of gradient orientations (8 referenceCompute histogram of gradient orientations (8 reference

angles) inside each sub-patch• Resulting descriptor: 4x4x8 = 128 dimensions

David G. Lowe. "Distinctive image features from scale-invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.

Page 16: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Feature descriptors: SIFT• Descriptor computation:

• Divide patch into 4x4 sub-patches• Compute histogram of gradient orientations (8 referenceCompute histogram of gradient orientations (8 reference

angles) inside each sub-patch• Resulting descriptor: 4x4x8 = 128 dimensions

• Advantage over raw vectors of pixel values• Gradients less sensitive to illumination change• Pooling of gradients over the sub-patches achieves

robustness to small shifts, but still preserves some spatial information

David G. Lowe. "Distinctive image features from scale-invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.

Page 17: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Feature matching• Generating putative matches: for each patch in one

image, find a short list of patches in the other image that could match it based solely on appearancethat could match it based solely on appearance

?

Page 18: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Feature space outlier rejection• How can we tell which putative matches are more reliable?• Heuristic: compare distance of nearest neighbor to that of

second nearest neighborsecond nearest neighbor• Ratio of closest distance to second-closest distance will be high

for features that are not distinctive

Threshold of 0.8Threshold of 0.8 provides good separation

David G. Lowe. "Distinctive image features from scale-invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.

Page 19: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Reading

David G Lowe "Distinctive image features from scaleDavid G. Lowe. Distinctive image features from scale-invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.

Page 20: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

RANSAC• The set of putative matches contains a very high

percentage of outliers

RANSAC loop:1. Randomly select a seed group of matches2. Compute transformation from seed group3. Find inliers to this transformation 4. If the number of inliers is sufficiently large, re-compute

least-squares estimate of transformation on all of the inliersinliers

Keep the transformation with the largest number of inliers

Page 21: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

RANSAC example: Translation

Putative matches

Page 22: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

RANSAC example: Translation

Select one match, count inliers

Page 23: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

RANSAC example: Translation

Select one match, count inliers

Page 24: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

RANSAC example: Translation

Select translation with the most inliers

Page 25: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Scalability: Alignment to large databases• What if we need to align a test image with thousands

or millions of images in a model database?• Efficient putative match generationEfficient putative match generation

• Approximate descriptor similarity search, inverted indices

T t i

?Test image

Model

?Model

database

Page 26: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Scalability: Alignment to large databases• What if we need to align a test image with thousands

or millions of images in a model database?• Efficient putative match generationEfficient putative match generation

• Fast nearest neighbor search, inverted indexes

T t i

D Nistér and H Stewénius Scalable

Test image

D. Nistér and H. Stewénius, Scalable Recognition with a Vocabulary Tree, CVPR 2006Vocabulary

tree with invertedinverted

index

Database

Page 27: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Descriptor spaceSlide credit: D. Nister

Page 28: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Hierarchical partitioning ofpartitioning of

descriptor space (vocabulary tree) Slide credit: D. Nister

Page 29: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Slide credit: D. NisterVocabulary tree/inverted index

Page 30: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Model images

Populating the vocabulary tree/inverted indexSlide credit: D. Nister

Page 31: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Model images

Populating the vocabulary tree/inverted indexSlide credit: D. Nister

Page 32: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Model images

Populating the vocabulary tree/inverted indexSlide credit: D. Nister

Page 33: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Model images

Populating the vocabulary tree/inverted indexSlide credit: D. Nister

Page 34: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Test imageModel images

Looking up a test image Slide credit: D. Nister

Page 35: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Voting for geometric transformations• Modeling phase: For each model feature, record 2D location,

scale, and orientation of model (relative to normalized feature coordinate frame)

index

model

de

model

Page 36: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Voting for geometric transformations• Test phase: Each match between a test and model feature

votes in a 4D Hough space (location, scale, orientation) with coarse bins

• Hypotheses receiving some minimal amount of votes can be subjected to more detailed geometric verification

index

model

test image

de

model

Page 37: Robust and large-scale alignment - Computer Sciencelazebnik/spring11/lec12_alignment2.pdf · Scalability: Alignment to large databases • What if we need to align a test image with

Indexing with geometric invariants• When we don’t have feature descriptors, we can take n-tuples of

neighboring features and compute invariant features from their geometric configurations

• Application: searching the sky: http://www.astrometry.net/

B

CD

A

D