CS 194 - Project 5B: Feature Matching for Autostitching

Overview

In this assignment, I will create a system for automatically stitching images into a mosaic. I will do this by reading and implementing the research paper linked here.

Step 1: Detecting corner features in an image.

First, Harris corners are found (left). ANMS is used to select a spacially distributed set of stronger corners (right).

Step 2: Extracting a Feature Descriptor for each feature point

Next, a feature descriptor is extracted for each interest point by selecting and downsampling a larger window centered around the interest point. The left picture is the original with a feature point, the middle picture is the window, and the right picture is the downsampled and normalized feature.

Step 3: Matching these feature descriptors between two images

Features are matched and matches are selecting according to the lowe's threshold of first neighbor distance divided by the average second neighbor distance.

Step 4: Use a robust method (RANSAC) to compute a homography

Pictures do not do this beautiful method justice. See here.

Step 5: Proceed as in Project 5A to produce a mosaic

Building mosaic

Using my old warp functions from Project 5A, I warped the photos into a mosaic and blended them.

Here is a side-by-side comparison of autostitching (left) vs manual (right).

Mosaic mosaic

Fridge mosaic (failure case)

What have I learned?

The thing I found coolest was the neat visualizations I did with the matching features. Each step was very laborious for me, and so I was very satisfied each time I moved forward and made progress. Ransac is awesome, AMNS is quite nifty - so much to love about this project, probably my favorite one!