Feature Detection
- Harris Corner: implemented standard Harris corner detector. Works pretty well.
- Other: Calculate mean of window, and SSD of pixels in the window. Fire at local max of this. Not as good as Harris.
Feature Description
Feature descriptors were an 11x11 window of colored pixel information around the feature. The featurs are taken from a subsampled, gaussian blurred image.
- Rotation invariant: Dominant gradient of feature was calculated by summing up the gradients of all pixels with distance less than 11 (to get a circle) from the feature in grayscale. The gradient was used to align the window around the feature.
- Illumination invariant: The mean and standard deviation of the grayscale image are calculated. Then the mean is subtracted from each color in each pixel, and then it is divided by half the standard deviation.
Feature Matching
Features were matched by euclidian distance. One of two thresholds was used to determine if matches were "good enough".
- Fixed threshold. Works ok.
- Threshold ratio of best to second best match. Works better.
Reasons for design choices
Most of the design choices were made because they were the design presented in lecture and in the notes. Some ideas and details were refined by discussing with other students. Also some time was spent tweaking the constants.
Benchmark performance
Leuven: 110.620184
Bikes: 295.042907
Graf: 237.597278
Wall: 154.263520
Relative performance
I got these numbers from Indri:
Leuven: 12
Bikes: 25
Graf: 160
Wall: 81
In general, it does not perform nearly as well as SIFT.
Strength/weaknesses
It seems to do well overall, even in the face of translations, rotations and illuminations. It does best with outstanding features, but has more problems with features that are not very specific, such as the edges of clouds or small houses.
Images