In this project we are learning to stitch two or more images in order to create a seamless panorama by finding the homohraphy between the two images.
The claasical method involves several steps, it starts with corner detection. Then Adaptive Non-maximal Suppression (ANMS) is applied to ensure an even distribution of conrners. Feature descriptors are created by encoding information at each feature point into a vector. The next step is feature matching, where feature points between images are matched. RANSAC is used for outlier rejection and to estimate a robust homography. Finally, the images are blended to produce the panorama.The deatiled steps are explained here.
Place the image pairs in the dir:"../Data/Train/Set1/" and run the following command:
python3 Wrapper.py
The classical pipeline is given below:
The deep learning model effectively combines corner detection, ANMS, feature extraction, feature matching, RANSAC and estimate homography all into one robust generalizable network. The complete methodolgy is given here.
Run the following to generate the dataset
python3 Datagen.py
Divide train and validation. and run:
python3 network.py
python3 Train.py
python3 Test.py
The network pipeline is given below:
We followed a supervised model and obtained the follwing results:
The following picture shows the input and output patch from the trained network.
The training loss over number of epochs is given below:
This project was part of RBE549- Computer Vision (Fall 22) at Worcester Polytechic Institute[1].
Team members :Thabsheer Machingal and Krishna Madhurkar
[1] RBE549-Project1