Project 3: Automated Panorama Stitching

Donnie Kendall (dkendall)

Algorithm

We first idenity the most likely feature points by using Harris corners. This is likely to return a very large number of features, so we limit it by using adapative non-maximal suppression until we reduce the list of candidate features points to the 500 strongest. We then extract the feature vector from these 500 features points by the method described in Brown, et al. Since we're not using image pyramids aliasing is avoided by taking a 40x40 block and using imresize to sample it at a lower frequency. The resulting 64 member vector is then standardized to gives us the final value of each feature.

We now have 500 fully described features in each image. We find our first-approximation of the best feature matches by featuring matching method given Brown, et al. Using Lowe's heurisitc we elimnate all matches which score worse than 0.3. Next we use a RANSAC implementation which does 1000 iterations to attempt to find the best possible transformation matrix.

Given this matrix we finally transform the right-hand image and compoisite the left-hand image into the proper location to form a single panorama image.

Results

For many images the algorithm results in a very good mask. However, even with a good mask images in which the color or texture suddenly jumps between the target and source ends up look bad because of the discontinuity. This is the problem I had with all of my extra test images, and why none of them are included in the results.

Below are the results from fully-automated runs. The results from hand-picking the reference points were quite hit and miss and I ended up not completely finishing my panorama algorithm until after the feature matching was finished

In the bus and CIT images it is especially obvious that the camera moved a bit between shots. The overall blending is fairly good, but the seams have some obvious discontinuities along them. The CIT one is especially interesting as some of the lines across the seam are mis-aligned, but others are perfect.