Project 6: Part B by Salil Vanvari

Objective

The goal for this project was to automatically select points to create nice mosiacs out of. We approached this problem by first picking independent sets of corners in both images and then spreading them out. Next we found point correspondences by reducing each feature to a descriptor and identifying the nearest descriptor to that. After this we threw away outliers. Once all of these process were completed, we were left with a clean set of correspondences to create what we did for part A of this project.

Mosaics

Harris Corners

Step one was to simply get all of the harris corner points in both images. Below is an example of how many points were returned.

Left Image Right Image

ANMS

To understand ANMS was the most difficult part of this project. The paper did not have a clear explanation of how to perform it leading to much confusion. A simple take to the approach we ended up taking was simply to store the distance to the closest larger point by some margin for every single point. Then with these values, we simply took the points that were at the top of this list in terms of distance away from larger valued points. View Results after perfoming ANMS below

Left Image Right Image

Point Correspondence

The next step was to identify point correspondence. In order to do this, I broke each point into a feature descriptor which was a scaled down version of the 40x40 patch around the point. Below is the break down of how my points correspond to one another.

Left Image Right Image

RANSAC

Finally to trim some of the extra outlier points out, I performed RANSAC. Here are my results of RANSAC below. Look carefully for the couple of points that were removed due to being outliers.

Left Image Right Image

Mosiacs

Below are images after I got the points through the above methods. First there are some comparisons to images where I hand wrote the points versus images that were completely generated.

Manual Automatic
Other Results

Reflection

I personally had a lot of fun figuring out how and why each of these segments worked. For example, RANSAC was interesting to see how it fit together with other peices. Also finally figuring out ANMS also made me feel much more capable as a paper reader.