Homography Estimation and Image Stitching

Overview

This was an assignment for 16-720B Introduction to Computer Vision. Our task was to develop a script that identifies a homography and then uses it to perform image stitching to create a panorama image.

Process

In order to calculate the homography between two images, we first need to find key points that will act as features. I implemented the BRIEF descriptor as my main key point detector. Below are some preliminary results of applying BRIEF to a couple images, and then matching the BREIF descriptors between two images, as shown by the two soup cans.

Once the BREIF descriptors were found for each image, then I was able to calculate a homography between the two sets of points. Shown below in the results section is a book that has been “Harry Potterized”. In order to do this I computed a homography between the cover of the book and the image of the book on the desk, and then applied that same homography to the Harry Potter cover.

Results

Here is the result of the homography calculation while using RANSAC. It allows us to get pretty accurate results when mapping the Harry Potter cover to the book cover.

Then for the panorama, we calculate the matched features between the left and right images of Pittsburgh, which we use to calculate the homography between the two images.

Finally, a completed panorama. This used the detected homography to match the panorama view.