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
- 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