CS 6670 Project 1
by
Ivaylo Boyadzhiev (iib2)



1. Custom features detector/descriptor (details):


My feature detector and custom descriptor use ideas from both MOPS and SURF.

2. Major design choices:


First of all, my initial idea was to implement something similar to what SIFT is doing. I actually wrote the code, but it did
not work that great for me (either I had some bug, or you need all the components of SIFT in order for the magic to happen).

I also tried using HoG for determining the orientation of patches, but (in my tests) it was worse than using the dominant
eigenvector.

I decided to discretize the possible orientation angles (using 36 bins, each of size 10 degrees) in order to achieve some level
of robustness (worked out pretty well in practice).

My second choice for descriptor was SURF, as its idea seemed very elegant and efficient to implement.

I decided to implement Adaptive Non-Maximum Suppression in order to reduce the number of features and this actually
improved the results, as after applying this filter, we would work with smaller, uniformly distributed set of features that
have relatively high values for the corner strength function.

3. Performance:

4. Strength and weakness:

5. My test case:




6. Extra credit features:

Acknowledgment:
  1. SURF paper
  2. MOPS paper
  3. SIFT paper
  4. Lecture notes.