Project 6 Part B: Feature Matching for Autostitching

Jonathan Chu

Background

In this project, we create a system to automatically stitch images into mosaics. We separate this system into 3 steps: 1. Detecting corner features in each image. 2. Extracting feature descriptors from these corner features. 3. Matching these corner features between adjacent images to align them. 4. Finally, using RANSAC to calculate the correct homography.

Extracting Features

To detect corners we use the Harris Corner Detector with threshold of 0.1.

Original Center Image
Original Right Image
Harris Corners Center
Harris Corners Right

Adaptive Non-Maximal Suppression

In order to reduce the number of interest points, we use Adaptive Non-Maximal Suppression to suppress the number of feature points. We calculate a radius to restrict the distance to nearest neighbor with a larger Harris intensity. Then we sort the minimum radius for each point and choose the largest 500 of them.

Suppressed 1
Suppressed 2

Feature Descriptor Extraction and Matching

After we get list of interest points, we try to get a 40x40 window around each interest point so that compare these frames with a simple SSD to get the best match between points from adjacent images. We first apply a gaussian to smooth out our grayscale image. We then downscale the image into a 8x8 patch. That way, we take care of the high frequency details while still preserving the low frequencies. We then take care of the change of color intensities through bias/gain normalization.

Feature Match Center
Feature Match Right

RANSAC Blending and Stitching

Finally, we use RANSAC with 1000 iterations and random choices 4. For each iteration, we randomly select 4 matching feature points to calculate the homography transformation. We transform source to target and choose the set of points with the most inliers. Then, we return the homography from the best inliers and use it for our warping.

Here are some results.

Doe Left
Doe Center
Doe Right
Backyard Left
Backyard Center
Backyard Right
House Left
House Center
House Right

Summary

Without a doubt, the coolest thing I learned from this project was extracting features and matching features across images. I also learned how using ANMS and RANSAC helped improve the accuracy of our results.