Panorama Stitching (Artificial Vision)

Panorama Stitching (Artificial Vision)

October 2024
computer vision python

Overview

An end-to-end computer vision pipeline implemented in Jupyter Notebooks to reconstruct wide-angle panoramic photographs from sequential overlapping images, handling perspective warps, illumination differences, and camera lens distortions.

Key Features

  • SIFT Feature Extraction: Detected invariant local keypoints and 128-dimensional descriptors robust to scaling, rotation, and illumination shifts.
  • Adaptive Non-Maximal Suppression (ANMS): Enforced uniform spatial distribution of keypoints across the image plane to prevent clustering in high-contrast corners.
  • Robust Feature Matching: Implemented Lowe's ratio test (d1 / d2 < 0.75) with bidirectional mutual nearest-neighbor validation to filter out spurious matches.
  • Homography with DLT & RANSAC: Computed projective homography transformation matrices using Direct Linear Transform (DLT) coupled with RANSAC outlier rejection.
  • Weighted Multi-Band Blending: Applied distance-transform weighted blending along overlap seams to eliminate visible cut lines and vignetting.

Architecture & Implementation

Sequential image pairs are processed through SIFT detection, ANMS keypoint selection, Lowe ratio descriptor matching, and RANSAC homography estimation. Images are projected onto a shared planar canvas and fused using smooth alpha masks.

Results & Performance

Successfully stitched multiple overlapping camera images into clean, seamless panoramas with aligned architectural geometry and invisible seam transitions.

Tech Stack

Python OpenCV NumPy Matplotlib Jupyter Computer Vision