Here are the ROC curves for Yosemite
Here are the Graf ROC Curves
For Yosemite, the Harris image looks like this:
For the graf images, the Harris image looks like this:
For extra credit, we implemented contrast invariant features. To do this, we normalize our feature windows. This is achieve by using the formula" Var [X] = E[X^2] - E[X]^2. Once this value is computed, take the square root of the radius and compute the standard deviation. From this, we can compute the z-score ((pixel value - mean) / stdev) and then we center this at 0.5.
To test this, we took the two shot of Yosemite and increased the contrast of the image on the left. With the orginal feature detection function, we found only two inliers, resulting in the following distorted image:
On the other hand, using our feature detector gave us the following image, which looks more acceptable, modulo some artifacts from the contrast.
Please click on a panorama shot for a zoomed-in view.
This panorama turn out reasonbly well in that we had very little vertical drift. A few of the seams are somewhat visible (near the columns). This might be the result of turning the camera too far.
The test image appear to be relatively similar to the one provided in the sample soution.
This image turned out rather badly. We had too much vertical displacement, which resulted in a rather badly matched image.
In this image, Milda appeared in every photo. There are some ghosting artifacts because the blend width is relatively large. The image boundaries become worse and worse (i.e., more and more visible) as we decrease the blend width. We tried blend widths of 100, 75, and 50 pixels.
The warp and the RANSAC algorithm were relatively straightforward to implement and all issues that we encountered while doing these parts were easily debugged. Our biggest issue was with figuring out the appropriate locations for the constituent images in the blended image. However, a couple of debug print statements made this also work.