CS 4670 Project 2

Patrick Dear (pmd68), Peter Tseng (pht24)

Implementation notes

Dealing with boundaries

When computing the H matrix, any pixels that lie outside of the image simply do not contribute. When calculating gradients in the X and Y directions, we take a symmetric difference unless the pixel is on an edge, in which case we take a one-sided difference.

Normalizing Harris scores

Since it appears the solution does this as well, after computing Harris scores for each point, we normalize them by dividing by the maximum.

MOPS

Our initial attempt first took a 41x41 window around the feature, prefiltered it, rotated it, and downsampled it. We found that rotating after taking the window lost many pixels. Instead our final implementation prefilters the entire image, then performs a single warp to rotate it and take a 41x41 window around the feature.

ROC Curves

Here is the ROC curve for the graf image set:
graf ROC

Here is the ROC curve for the Yosemite image set:
yosemite ROC

Harris Operator Results

Here is the result of the Harris operator on graf/img1.ppm (hover to see original):

graf harris

Here is the result of the Harris operator on yosemite/Yosemite1.jpg (hover to see original):

yosemite harris

Average AUC tables

Here are the tables that describe the average AUC. For fun, since the benchmark code reports them, we show the error in pixels as well.

AUC
DescriptorSimpleMOPS
MatcherSSDRatioSSDRatio
Image set
bikes0.2888000.5171360.7672450.869546
leuven0.1474880.3423310.7389970.841543
wall0.3791630.6446550.5792320.814030
Error (pixels)
DescriptorSimpleMOPS
MatcherSSDRatioSSDRatio
Image set
bikes369.906847369.906847380.084868380.084868
leuven378.311008378.311008350.942274350.942274
wall362.921648362.921648433.683218433.683218

Performance analysis

Our Harris operator seems to do a good job of corner detection based on the resulting harris.tga images. The detected features are clustered around areas of high detail, like corners in the graffiti image and the small clumps of snow in the yosemite image.

The ROC curves for the graf and Yosemite image sets did not show a clear best-combination of feature descriptors and matching algorithms for both images, other than showing that SIFT does a much better job as a feature descriptor than the other techniques. Interestingly, the MOPS descriptor does not seem to consistently produce a better descriptor than the simple block of pixels descriptor.

Other images

The following pair of images are were taken from the downward camera of the Cornell University Autonomous Underwater Vehicle team's sub Tachyon. They show different views of a set of bins on the bottom of a pool; Part of the sub's competition task is to drop a set of markers into bins with images in them.

The two images show quite a few matches on the pool floor itself, from the pattern of white lines in between the black pool tiles. It does not seem to find any features from the images inside of the bins themselves, likely due to the low contrast of the red images against the black background.

Extra Credit

Alas, we did not have time to implement any.