Project 6B: Feature Matching for Autostitching

Overview

The goal of this project is to implement automatic panorama alignment and stitching. This is done by finding all the Harris points, using adaptive non maximal suppression, and finally RANSAC.

What I Learned

The coolest thing I learned is how edges or corners can be automatically detected which is different from manually selecting points as I'm used to in the previous projects. However, it is not always perfect automatically (at least in my case).

Step 1: Harris Interest Point Detector

Detecting corner features in an image using the sample harris code. In the image, there are many points covering the image itself since the diameter of the points is quite large. However, the basic idea is that Harris Corners select all the potential corners in our image which is a lot.


Step 2: Adaptive Non-Maximal Suppression

From the Harris corners we created, we detect more spread out feature points.


Step 3: Feature Descriptor extraction

From running the ANMS algorithm, we create a feature vector for the points. We will then use each of the feature vectors created from each point for comparisons.

Step 4: Feature Matching With RANSAC

For feature matching, we select the nearest neighbors from the points returned from the ANMS algorithm.



Step 5: Stitch Mosaics

Now we warp the images and compare them to the manual mosaics.

Image 1: Balcony View

Left Image

Right Image

Left Image Feature Points

Right Image Feature Points

Manual Mosaic Image

Automatic Mosaic Image

Image 2: Trees

Left Image

Right Image

Left Image Feature Points

Right Image Feature Points

Manual Mosaic Image

Automatic Mosaic Image

Image 3: Bedroom

Left Image

Right Image

Left Image Feature Points

Right Image Feature Points

Manual Mosaic Image

Automatic Mosaic Image