Generate a panorama given a set of input images.
Figure 1. The end-to-end algorithm takes multiple images as input and creates a panorama as output.
Image stitching is a research problem that aims to create an image with a larger field of view (FOV) by stitching multiple images together. One common application of image stitching is the generation of panorama, which features a wide-horizontal-angle view. In this project, we implemented an end-to-end algorithm that takes multiple images as input and creates a panorama as output.
The algorithm includes six different steps: 1) feature detection, 2) feature matching, 3) cylindrical projection, 4) image matching, 5) blending, and 6) seam carving. Each step contains several substeps. For example, feature detection includes three substeps: i) get initial features, ii) refine features, and iii) generate descriptors. Exemplary results for each step are shown below. Please refer to our technical report for more details. Our code is also publicly available at GitHub.
Figure 2. From left to right: original image, an image with detected features, an image with the reduced number of detected features by applying the ANMS algorithm.
Figure 3. Looking for feature matching pairs between two neighboring images using KNN Search.
Figure 4. Original images and the cylindrically projected images.
Figure 5. The final result after performing image matching, image blending, and seam carving.