Skip to content

Classical and Deep Learning (supervised, unsupervised) approaches to Panoramic Image Stitching using Homography

Notifications You must be signed in to change notification settings

rkulkarni1999/classical-and-deep-learning-approach-to-image-stitching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My AutoPano

The purpose of this project is to stitch two or more images in order to create one seamless panorama image by finding the Homography between the two images. The project is divided into two phases,

  1. Phase 1: Classical approach of local feature matching
  2. Phase 2: Deep Learning approach(Homography Net - supervised and unsupervised) to estimate the homography.

Team Members

**Phase 1 - Using Classical CV **

Implemented traditional CV pipeline combines algorithms of corner detection, ANMS, feature extraction, feature matching, RANSAC, homography estimation and blending.

Results

Corner Detection and Non-Maximal Suppression

Undistorted

Feature Matching

Undistorted

Outlier Rejection using RANSAC

Undistorted

Warping, Blending and Stitching

Undistorted

Undistorted

Undistorted

Usage Guidelines

  1. Open directory Phase1/Code and run the following command with the Data location as command line argument: -

    python3 Wrapper.py 
    
  2. Results folder contains stitched images of all Train Sets and Test Sets.

Phase 2 - using Deep Learning

In Deep learning, used Homography Net (both supervised and unsupervised) to estimate the homography.

DataSet Generation

To generate dataset, run the following command in Phase2/Code/supervised: - python3 make_dataset.py

Original Patch

Undistorted

Patch after applying perturbations

Undistorted

Supervised Homography

Undistorted

Result

Training Loss

Undistorted

Validation Loss

Undistorted

Stitched Image.

Undistorted

Undistorted

  1. To train the network, run: -

    python3 Train.py
    
  2. To test the model on test set, run: -

    python3 Test.py
    

Unsupervised Homography

Undistorted

  1. To train the network, run: -

    python3 Train.py
    
  2. To test the model on trainset , run: -

    python3 Test.py
    

Result

Training Loss

Undistorted

Validation Loss

Undistorted

Output on the Patch (Image, Ground Truth, Prediction)

Undistorted

About

Classical and Deep Learning (supervised, unsupervised) approaches to Panoramic Image Stitching using Homography

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages