CV Features Project

Matt Mukerjee -- mkm234


Custom Descriptor

I based my custom descriptor off of the simplified SIFT descriptor presented in class.
First, I computed a 16x16 patch around a feature, but made sure it was oriented to the
gradient orientation like MOPS is. Then I divided the 16x16 patch into 16 4x4 patches. For
each of these patches, I computed the orientations and magnitude of the gradient for each
pixel. One word of caution--in order to compute the gradient of a 4x4 patch at each pixel,
you'll need to know what pixel intensities are one pixel outside of your border, so you'll need
to actually compute the gradient on 6x6 patches in order to obtain the orientations and
orientations of a 4x4 patch. After computing these, I ignored pixels with gradient magnitudes
of zero, and sorted each of the remain gradient orientations into one of eight bins, each
corresponding to PI/4 of the interval [0,2*PI]. This gives me a single value for each bin, and
eight bins in total, gives me a vector of length 8 for each patch. Since we do this for 16 patches
we end up with a vector of length 128. I choose to normalize this vector such that the mean is
0 and the std. dev. is 1. This normalized vector is the descriptor.

Design Choices

I decided to normalize both the MOPS vector and my custom SIFT-like vectors to provide
additional photometric invariance.
Other things were fairly straight-forward decision from the skeleton code. Perhaps the only
other detail worth mentioning is that I used a threshold for the Harris corner detector of
0.05 after trying out a few values and comparing them to performance. Any other parameters
(like window size for non-maximal suppression) were done through trial and error, or by
using the values suggested by comments in the code or on the website.

Performance

Average AUC benchmark:
Simple + SSD Simple + Ratio MOPS + SSD MOPS + Ratio Custom + SSD Custom + Ratio
graf: 0.517437 0.539731 0.540114 0.567170 0.585497 0.585241
bikes: 0.282546 0.442362 0.609159 0.595451 0.638710 0.599260
leuven: 0.270104 0.457370 0.550238 0.599961 0.584674 0.611651
wall: 0.280386 0.537714 0.586899 0.583862 0.628896 0.601718


Yosemite

Graf

Harris Images:

ROC Curves:

Strengths and Weaknesses

Strengths:

Weaknesses:

Real Images

Uses my custom SIFT-like descriptor and the ratio test. Seems to handle
the vertical shift in perspective well for this image, even though my upright-bass
has a lot of "flat regions."