Project 2: Panorama Stitching

 

Cameron Lee

CSE 576

4/29/2008

 

This project used two methods for stitching photos.  One was the traditional RANSAC and the other was and iterative search I call Window Reduction Method (WRM).  In the process of developing the stitching algorithm it became apparent that the feature detection algorithms must be robust.  WRM was created to help reduce avoid gross registrations errors from false global maxima counts in the RANSAC solution.  These false maxima are often the product of repeating patterns such as brick and other periodic features.  This problem is exacerbated when the feature detector performance is poor.

 

WRM is a recursive method of pruning your feature matches by reducing your match variation range.  The process continues to reduce the match variation limits and until the desired range is obtained.  Unlike RANSAC, WRM can accept an initial condition which can help reduce obvious false positive matches.  This is helpful when the user knows basic information about how the images should align.

 

The algorithm steps are as follows:

  1. Select an initial range of feature matcher
  2. Find the mean feature value within the range
  3. reorient the center of the feature range to the mean
  4. Reduce the range by X percent
  5. if the range is greater than the desired final range return to step 2 otherwise exit

 

The final center position of the feature range is the translation implied by the set of matches.

 

Results

 

pano

Test Sequence (RANSAC)

Full Scale

Panorama

 

inlineCamSSDSransac

Kalaidan (WRM)

Full Scale

Panorama

 

inlineWindRatioRansac

Kalaidan (RANSAC)

Full Scale

Panorama

 

HH_CAMRatioSransac

Hand Held Series (WRM)

Full Scale

Panorama

 

inlineHH_CAMRatioRansac

Hand Held Series (RANSAC)

Full Scale

Panorama

 

Synopsis

 

In general the stitching software worked well when the feature set was good and the camera properties were well defined.  The alignment, warping and blending were straight forward and created smooth panoramas.  Conversly, operation on non-ideal feature sets and distorted images was quite poor.

 

The stitching operation was sensitive to poor feature detection and matching.  In cases where feature sets were not ideal the alignment algorithms suffered.  The blending operation designed to reduce the visibility of small errors did not alleviate these problems, instead the blending produced ghosts. Camera parameters were also more difficult to obtain than solicited.  I used a Camera Calibration Toolbox for Matlab to find the field of view and radial distortion of my camera.  The results were not outstanding, but neither, was the calibration target I printed.

 

The stitching algorithm was a thorough test of my feature detections software.  I revisited the code several times in an attempt to improve feature detection.  I found problems with my Harris functions that caused the funcion to detect false Harris maxima.  After fixing this I found the stitching code performed worse.  It appears that sometimes more features are a benefitial, regardless if their location corresponds with Harris maxima.