Key

Vector that summarizes the content of the keypoint neighborhood - describes characteristics of NEIGHBORHOOD around a keypoint and is used to compare similarity between image features

to match the detected keypoints, we need a way to describe the keypoints based on their local appearance.

Generally, each region around detected keypoint locations is converted into a fixed-size vectors called descriptors.

invariance

  • scale
    • normalize keypoints to be the same size
  • rotation
    • We are given a keypoint and its scale from DoG (SIFT - local detector)
    • We will select the direction of maximum Image gradient as the orientation for the keypoint - rotate to make gradient 0
    • We will describe all features relative to this orientation

generating vector from rotated patch

One (bad) approach

  • We can turn every pixel into a histogram
  • Histogram contains 8 buckets, all of them zero except for one.
  • Make the bucket of the direction of the gradient equal to 1
  • produces sparse vectors
  • Solution:
    • divide keypoint up into 4x4 “cells”
    • Calculate a histogram per cell and sum them together

SIFT Descriptor

  • see SIFT - local detector
  • scale and rotation invariant
    • we work with scaled image from DoG and we rotated the patch
  • 8 orientation bins per histogram
  • 4x4 histogram vectors
  • total is 8 x 4x4 = 128 numbers.
  • So a SIFT descriptor is a length 128 vector

next: matching keypoints