CS 766 Computer Vision Assignment 2: Panorama & Mosaics

Saikat R. Gomes (saikat@cs.wisc.edu) & Stephen Lazzaro (slazzaro@cs.wisc.edu)

Contents

  1. Home
  2. Introduction
  3. Image Acquisition
  4. Cylindrical Coordinates
  5. SIFT Feature detection
  6. Ransac Translation
  7. Stitching: Translastion
  8. Image Blending
  9. Results
    1. Monona Terrace
    2. University
    3. CS Lobby (iPhone)
  10. Datasets
  11. Code
  12. Git Logs
  13. References

Introduction

For this project, we took a series of images from a Canon A640 camera as well as an iPhone 5 camera and converted them into panoramas. Our process for converting the images into panoramas was the following:
  • Warp each image into cylindrical coordinates (cropping the pictures where necessary)
  • Use a feature based translational motion method to compute the alignment of each image relative to its subsequent partner image. We found SIFT features for each of the images and then used the RANSAC method as well as an average vector translation method in order to estimate a homography between each image pair. We also expanded on the standard RANSAC method with some variations in order to utilize better epsilon and n parameters.
  • Blend neighboring images together using the feather blending technique.
  • Use a linear warp to remove vertical space between the first and last image, and then crop out surrounding black pixels as well as horizontal extents to match the left and right ends of the panorama.

Extensions and Short Summary of Findings

  1. Average Vector Translation:
    The average vector translation method consisted of first finding SIFT features for a pair of images. Then, our algorithm throws out features that are unlikely to be in the overlap region. Finally, it takes an average of the distance for each SIFT match and stitches the images together by shifting 1 image by that average amount. This yielded very good results that were oftentimes better than the standard RANSAC/homography method, but part of that finding may be due to our images being taken with a steady camera frame.

  2. Cell phone images:
    We tested our algorithms on images taken from an iPhone 5 camera. Our simple average vector translation actually yielded very good results for these images.

  3. Variation of RANSAC methods:
    In addition to implementing the standard RANSAC algorithm, we also expanded upon it with some variations in order to utilize better epsilon and n parameters. One issue with the standard RANSAC algorithm is finding appropriate epsilon and n values for each set of images. Rather than having to test different epsilons and n values for each set of images, we used a few different heuristics to attempt to use appropriate epsilon and n parameters for any arbitrary set of images.

  4. Pyramid blending:
    We used pyramid blending while stitching the mosaics. We experimented by only blending the overlap region and then used simple feather blending to stitch this overlap region to the rest of the mosaic.

Our Image (*.jpg) for submission can be found here