Skip to content

Latest commit

 

History

History
121 lines (84 loc) · 4.41 KB

File metadata and controls

121 lines (84 loc) · 4.41 KB

Panorama Stitching

Outputs

Classical Panorama Stitching Output

Output 1 Output 2
Output 1 Output 2

Supervised and Self-Supervised Output

Supervised Homography Net Loss Self-supervised Homography Net Loss
Supervised Loss Unsupervised Loss

Table of Contents

About The Project

In Phase 1, the project utilizes traditional computer vision methods for stitching together multiple images. This includes Harris Corner Detection, Feature Descriptors, Feature Matching, the RANSAC algorithm, and warping and blending of images.

Phase 2 employs deep learning techniques for panorama stitching. This includes a Homography Net used for supervised learning, and Tensor Direct Linear Transform (DLT) for self-supervised learning.

Repository Structure

.
├── Phase1
│   ├── code
│   │   ├── Wrapper.py
│   ├── Outputs
│   │   ├── mypano1.png
│   │   ├── mypano2.png
|   ├──Data
│   │   ├── Test
│   │   ├── Train
 Phase2
│   ├── Checkopints
│   │   ├──supervised_unsupervised.zip
│   ├── deep_output
│   │   ├── supervisedlos.jpeg
│   │   ├── unsupervisedlos.jpg
│   ├── code
│   │   ├── main.py
│   │   ├── utils.py
├──README.md
└──Report.pdf

Technologies Used

This project uses several technologies and methodologies to achieve panorama stitching:

  • Python: The main programming language used for the implementation of this project.
  • OpenCV: A powerful library used extensively for image processing tasks.
  • NumPy: Essential for high-performance mathematical computations on multi-dimensional arrays and matrices.
  • PyTorch: The deep learning framework used for implementing the Homography Net and Tensor DLT.
  • Homography Net: A supervised learning method using a neural network to predict homography between pairs of images.
  • Tensor Direct Linear Transform (DLT): A self-supervised learning method that predicts homographies purely from the image data.
  • Spatial Transformer: A differentiable module that performs an explicit geometric transformation on the input image, enabling neural networks to learn how to perform spatial transformations on images.

Installation & Usage

To run the project locally, follow these steps:

  1. Clone the repository:
git clone https://github.com/Prasannanatu/panorama-stitching-classcial-and-Deep-Learning.git

Install the required dependencies. You can use the provided requirements.txt file to install the necessary packages. Run the following command:

pip install -r requirements.txt

References

The following sources have been instrumental in the development of this project:

  1. DeTone, D., Malisiewicz, T., & Rabinovich, A. (2016). Deep Image Homography Estimation. arXiv preprint arXiv:1606.03798 [Link]
  2. Nguyen, T., Chen, S. W., Shivakumar, S. S., Taylor, C. J., & Kumar, V. (2018). Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model. In Proceedings of the European Conference on Computer Vision (ECCV) (pp. 621-637).[Link]

3.RBE-549 Computer Vision course project page[link].

Tags

  • Homography Estimation
  • Deep Learning
  • Computer Vision
  • Unsupervised Learning
  • Robust Estimation
  • Image Registration
  • Feature Extraction
  • HomographyNet