/Automatic-Blind-Panorama-Stitcher

Blind panorama stitcher based on the paper "Automatic Panorama Image Stitching using Invariant Features" by Brown and Lowe

Primary LanguageJupyter NotebookMIT LicenseMIT

Automatic Blind Panorama Stitcher

Blind panorama stitcher based on the paper "Automatic Panorama Image Stitching using Invariant Features" by Brown and Lowe Identifies different panoramas in the same folder, aligns, optimizes for errors and does gain compensation.

Highlights

  1. Blind stitching. Separates panoramas that do not belong to each other (based on overlapping points transformed to destination place)
  2. Images not belonging to each other are not connected in the network and thus excluded (more efficient)
  3. Final images are trimmed to reduced black space from geometric transformation

Drawbacks

  • Bundle adjustment takes a long time with many images
  • Network theory slows the process considerable when more images from different panoramas are added

Potential Improvements

  • Derivation of Camera Jacobian Matrix for Bundle Adjustment
  • Finding the Image in the center that is visually symmetric to the user
  • Save images to .png files

How to run

  1. Download the repo
  2. Run main_notebook.ipynb to visualize the output better o runt the main.py file (Image outputs may not visualize correctly on all computers
  3. Image folder can be selected in the code section:
# --------------------------------------
imageFolder = "images/setBig"
#       images/setBig has 4 Unordered panoramas
#       images/setSmall has 2 Unordered panoramas
#       images/setSingle has 1 panorama
#       images/setSingle2 has 1 panorama
#       images/setSingle3 has 1 panorama
#       images/setSingle4 has 1 panorama
#       images/setSingle5 has 1 panorama
# --------------------------------------
  1. Configuration of parameters can be changed in src/config.py

Demo Images

Network Connections

Images not belonging to each other are not connected in the network and thus excluded (saves power) image

Panorama 1 of 4 (Output)

image

Panorama 2 of 4 (Output)

image

Panorama 3 of 4 (Output)

image

Panorama 4 of 4 (Output)

image

References