Distinctive Image Features from Scale-Invariant Keypoints By David G. Lowe, University of British...

Post on 11-Jan-2016

225 views 1 download

transcript

Distinctive Image Features from Scale-Invariant KeypointsBy David G. Lowe, University of British Columbia

Presented by:

Tim Havinga,

Joël van Neerbos

and

Robert van der Linden

Organization

• Introduction• Keypoint extraction• Applications

Introduction

Matching images across affine transformation:

Change in lightingand 3D viewpoint:

Introduction

• Motion tracking• Object and scene recognition• Stereo correspondence

Extracting features

• Extrema detection• Keypoint localization• Orientation assignment• Local image descriptor

Extrema detection

Blur copies of the image with broadening Gaussian filters.

Extrema detection

Subtract these (DoG) to find local extrema.

Extrema detection

Calculate the DoGs for different gaussians.

2 x

Extrema detection

Calculate the DoGs for different gaussians.

2 x

Extrema detection

Blur Blur

Keypoint localization

Select keypoints that are higher or lower than their 26 neighbours.

Keypoint localization

Reject all points where the contrast is too low.

Keypoint localization

Reject all points that lie on an edge.

Effects of this elimination

Extrema detection

Effects of this elimination

Contrast check

Effects of this elimination

Edge check

Extracting features

• Extrema detection• Keypoint localization• Orientation assignment• Local image descriptor

Orientation assignment

Assign an orientation to a keypoint to make its descriptor invariant to rotation

Orientation assignment

The orientation of a keypoint is determined in four steps:

1. Determine sample points2. Determine the gradient magnitude and

orientation of each sample point3. Create an orientation histogram of the

sample points4. Extract the dominant directions from the

histogram

Step 1: Determine sample points

• The source image is the Gaussian smoothed image with the closest scale

• Use all pixels within a certain radius

Actual scale

Used Gaussian

Step 2: Determine gradient magnitude and orientation of each sample point

• Gradient magnitude:

• Gradient orientation:

Step 2: Determine gradient magnitude and orientation of each sample point

• Gradient magnitude:

• Gradient orientation:

pixel

Step 3: Create an orientation histogram

• The histogram has 36 bins, each covering 10 degrees

• Each sample is weighted its gradient magnitude and a Gaussian weighted circular window

Step 4: Extract dominant directions

• Take the peak(s) from the orientation histogram

• Use all peaks greater than 80% of the highest peak

• Every direction gets its own keypoint

The Local image descriptor

• Every keypoint now has a location, scale and orientation, from which a repeatable 2D grid can be determined

• We want distinctive descriptor vectors, partially invariant to illumination and viewpoint changes

Computing the Local image descriptor

• Take the 16 x 16 sample array around the keypoint

• Compute 4 x 4 orientation histograms from this array

• Use 8 bins per histogram: 4x4x8=128 features

Local image descriptor optimizations

• Normalize the obtained feature vector to enhance invariance to illumination changes

• Reduce the influence of large gradient magnitudes by capping the normalized features to 0.2

• Normalize again

Possible applications for SIFT

We have a feature extraction method which yields useful keypoints, what's next?

• Some appications:• Object recognition in images• Panorama stitching• 3D scene modelling• 3D human action tracking

(for example for security surveillance)• Robot localisation and mapping

Panorama stitching

Brown, ICCV 2003

Panorama stitching

(from Sudderth et al., 2006)

3D modelling

Application: SIFT to object recognition

We can applicate SIFT to recognize objects in images.Say, we have an image which contains an object. How to recognize?

Key idea: Compare keypoints, if these are similar it is likely that it is the same object.

First problem: a lot of features arise from background clutter. How to remove these?

Possible approach: - Look for clusters of matching features- Look for distance of closest match to the second-closest match

Efficiently locating the nearest neighbour

128 dimensional feature vector for each keypoint: no search optimization possible, no better way to find the nearest neighbour than exhaustive search.

But: only 3 features are enough to locate objects, for example when occluded.

Hough Transform method is used to describe clusters of keypoints as shapes and let them 'vote' for the pose of an object, described in location, orientation and scale.

Application: robot vision, localization and mapping

Se, S. Lowe, D. G. Little, J. Vision-based Mobile Robot Localization And Mapping using Scale-Invariant Features, 2001

Application of SIFT to mobile robotics SIFT features combined with Simultaneous

Localization And Map Building (SLAMB) Recognizing landmarks: estimation of the 10m by 10m lab, 3000 features collected Preliminary results: quite good

Conclusions from the paper

• The keypoints SIFT extracts are indeed invariant to image rotation, scale and robust to affine distortion, noise and change in illumination.

• SIFT can be optimized to run real-time.• The proposed approach (SIFT combined with

Hough transform for object recognition) has shown to work reliably.

Discussion

• Is the SIFT method for keypoint extraction the best way to get distinctive features from images?

• Is SIFT biologically plausible? Is it important to have biologically inspired methods in object recognition / localization?

References

Main article:• Distictive Image Features from Scale-Invariant

Keypoints, D. G. Lowe. International Journal of Computer Vision 60, 91-110, 2004.

Other articles:• Depth from Familiar Objects: A Hierarchical Model for

3D Scenes, Sudderth et al, Proceedings of the 2006 IEEE Conference on computer vision and pattern recognition, volume II, 2410-2417, 2006.

• Vision-based Mobile Robot Localization And Mapping using Scale-Invariant Features, Se, S. Lowe, D. G. Little, J., 2001