Project 1: Feature Detection and Matching

 

Cameron Lee

CSE 576

4/16/2008

 

The custom feature “CAM” is derived from the gradients of a 7x7 window surrounding the Harris local maxima.  The window is normalized using a two dimensional Gaussian to reduce false features information produced by the square aperture.  The gradients of the 7x7 window are represented in polar coordinates.  The each gradients is sorted by angle and its magnitude is added to a bin.  The bins are uniformly distributed from zero to pi.

 

Procedure

  1. Compute the gradient for each pixel in the image
  2. Apply a 7x7 Gaussian windowing function to the feature window
  3. Sort the vectors into bins corresponding to similar angle ranges
  4. Sum the Gradient magnitudes in each bin
  5. Record the feature as a list.  The list represents a vector with index corresponding to angular bin and value as a magnitude.

 

The feature was designed based on the method described in class.  This method was used because it seemed to be a simple way of describing the contours surrounding local extreme in an image.  This method could easily be done without complicated math function such as transformations or iterative solving algorithms.  I also liked the fact that the measure was immune to illumination offsets creating some robustness to illumination changes.

           

Figure 1. ROC curve for yosemite1.jpg and yosemite2.jpg

 

 

Table 1. Area Under the Curve (AUC) values for Yosemite images

 

Cam

Wind

SIFT

SSD Metric

0.7056

0.7975

0.9947

Ratio Metric

0.7783

0.8372

0.9955

 

Figure 2. ROC curves for graph1.jpg and graph2.jpg

 

Table 2. AUC of graph images

 

Cam

Wind

SIFT

SSD Metric

0.5455   

0.5504   

0.9678

Ratio Metric

0.4505

0.4933   

0.9320

 

Figure 3. Simple discrimination test for setting feature matching threshold

 

Figure 4. yosemite1.jpg after the Harris operation

 

Figure 5. graph1.ppm after the Harris operation

 

Table 3.  Average AUC for benchmark images

Image Set

AUC

Graph

0.6117

Leuven

0.5887

Bikes

0.6644

Wall

0.5874

 

Obviously this descriptor could use some improvement.  One of the major weaknesses of this metric is the in ability to decipher local maxima minima and saddle points as long as the respective slopes are similar.  Another problem with this metric is that it is not rotation invariant, however, a simple matching metric change could easily be made to allow for rotation invariance.  Another weakness it the feature being skewed by exposure effects; normalization of magnitude the data could help reduce error caused by exposure changes.  This method on the other had lends it’s self easily to rotation invariance since rotation can be represented by barrel rolling the data.  A circular correlation function cold be performed with multiple lags to supply two matching criteria: best match score and best match angle. This angle information could be used to adjust match scores after a data set is collected.  Finally this feature smaller then the other 5x5 window proposed.

 

Here is an example of the feature detection running on an image I took of a crab.  It is interesting to see how the feature detector is attracted to regions of high frequency such as the saw dust and twigs.