Project 4A

Recover Homographies

For homography, the following equation is setup. pp' is the destination correspondence point while pp is the associated input correspondence point.

p=Hpp' = Hp

This equation expanded out looks like the below:

In order to get the homography matrix, corresponding points are used to solve the following linear system:

Source: https://towardsdatascience.com/estimating-a-homography-matrix-522c70ec4b2c

Rectified Images

Now we will rectify a few images. First we will look at the chess board:

The correspondence points are labeled below.

The destination correspondence points will be a square as expected for a chess board:

Next we will look at a poster frame:

The correspondence points are the corners of the frame:

The destination correspondence points are going to be a rectangle as shown below:

Mosaics

Note that all blending for the mosaics were done using laplacian pyramids from project 2.

First we will observe some picture of my friend Matt at the edge of Willard Park:

These images were a bit too dim so I brightened them and defined the following correspondence points:

The resulting mosaic of these two images is shown below:

Next we will observe the following images:

These images have the following correspondence points:

The resulting mosaic is shown below:

Next we observe the following photos:

The correspondences are shown below:

The resulting mosaic is shown below:

What I learned

I thought that the homography was really cool. Being able to view a chess board from the birds eye view was pretty astonishing!

Project 4A

Project 4B

Harris Interest Point Detector

I used the Harris Interest Point code that was provided in the spec. When computing the peak_local_max I wanted to see how the relative thresholds affect the interest points.

I used a relative threshold of 0.2 for the rest of the project:

Adaptive Non-Maximal Suppression

In order to get well distributed interest points, I implemented ANMS. The following is the interest points:

Feature Descriptor Extraction

Next I got 40x40 windows around each of the interest points and I rescaled it to 8x8. Here are a couple examples of the patches:

Feature Matching

I implemented feature matching between two images using Lowe thresholding (threshold = 0.5). The following is an example of the feature matching between two images:

Mosaic Creation with RANSAC

I used the RANSAC algorithm to compute robust homography and produced the following mosaics. All the source images are presented in the project 4A part. In addition the first image is the manual point selection stitched image while the second is the automatically stitched image.

What I learned?

I thought that the feature matching was the coolest part of this project. It surprised me when the automatic feature matching was so accurate!s