CS194 Project 6: Image Warping and Mosaicing

Overview

In this project, we do automatic feature matching, using the paper "Multi-Image Matching using Multi-Scale Oriented Patches". We then use the homography matrix found from the feature matching to stitch pictures of the same scene into a panorama.

Image Rectification

For this part, I would pick 4 points in the picture and then manually define 4 rectangular points to create the homography matrix.

I rectified a picture of my dog to be bird's eye using the floor tiles.

I rectified a picture of a teahouse in Taiwan using the windows as my reference points

Mosaics

For automatic matching, I would first find the Harris Corners. Then, if the image had a lot of corners, I would first threshold them based on their corner strength so ANMS wouldn't take so long. Then, I would apply ANMS to pick out the best, distributed 250 corners. Afterwards, I would extract features from each corner and normalize them. Next, I would match features between images using Lowe thresholding. After that, I would perform RANSAC over 1000 iterations to get an optimal homography matrix. Like before, I would apply the warp to all the points in the image. I then blended the two images using Laplacian pyramids.

Kyoto Temple

Harris Corners before and after ANMS

Here is a mosaic of a temple in Kyoto with manual matching.

Here is a mosaic of a temple in Kyoto with automatic matching.

Sproul Hall

Harris Corners before and after ANMS

Here is a mosaic of Sproul Hall with manual matching and then automatic matching.

Twin Peaks

Harris Corners before and after ANMS

Here is a mosaic of the view from Twin Peaks in San Francisco with manual matching.

Here is a mosaic of the view from Twin Peaks in San Francisco with automatic matching.

What I've Learned

I learned how to toggle thresholds to get desired results, the power of iteration in RANSAC, and how to implement a paper.