Project 6B: Feature Matching for Autostitching

Brian Kooperberg

This is the second part of the mosaic project the first part can be found here.

Adaptive Non-Maximal Suppression(ANMS)

The first thing that we have to do is use ANMS. This assigns a radius to each point based on the strength of the point that we found with Harris corners. It helps us create a more even spread of points, while also picking stronger points. Below you can see the transition from the 250 strongest Harris points and then 250 points picked from ANMS.

Top 250 Harris Corners


Top 250 AMNS


Feature Extraction and Matching

In this next part we use the points that we got from ANMS to identify similar features. We do this by taking a 40x40 patch around each of our points. We then apply a gaussian to it to avoid any aliasing and take points from every 5th column and row giving us an 8x8 feature. Then to find matching features we find the euclidean distance between all the points for each feature in the other image. After this we check if the closest feature is significantly closer than the second closest feature by dividing the two and comparing it to our threshold. If the two are close we like have a match.


Finding the Homography

To find the homography that we want to use we use RANSAC. To do this we randomly pick for matching features thousands of times. For each of these times we calculate the homography and see how many of the matching features would be close to the random homography(inliers). We keep the list of the most inliers for a random homography and then use this entire list to create a new homography which we will use. We then warp the images and blend them together like in the previous part giving us results like below.

Santa Cruz Beach




My Kitchen




Santa Cruz View



Bells and Whistles: Panorama Recognition

For this part I just checked how many matching features there were between each pair of images and if they were higher than a certain threshold I selected them as a pair to create a panorama with. Since I was running out of time with the project I only identified pairs and didn't create a new panorama. What is interesting about this is the right and left images for the panorama are random instead of the way that we manually picked it. When I submitted a list of my two Santa Cruz beach photos and one picture from my kitchen and the other spot in Santa Cruz it identified the two which were together. This would give a panorama like:

which we also see above.

Final Thoughts

I thought this project was really interesting. It was cool to implement the methods that are used to automatically find matching features while still avoiding aliasing. I thought it was also interesting to see the way RANSAC uses thousands of random trials to find the best homography rather than trying to mathematically solve it in one go.