Computer Vision (CSE 455), Winter 2012

Project 2: Panoramic Mosaic Stitching

Assigned: Wednesday, January 25th, 2012

Due: Tuesday, February 7th, 2012 (by 11:59 pm)

Demo: Wednesday, February 8th, 2012

Artifact Due: Thursday, February 9th, 2012 (by 11:59pm)

Project Head TA: James Gray (send your questions here first!)

Project Secondary TA: Supasorn Suwajanakorn

**** Reminder: Sign up for Panorama kit here. ****

**** Reminder: Sign up to demo your results here. One slot per team, all members must attend. ****

As part of this project, you will be producing digital artifacts. The class will vote on the best artifacts.

You need to have a file named voting.jpg in your turnin/artifacts folder (not in a subfolder). This will be considered as your submission for the voting. It should be a full-resolution copy - we will produce thumbnails as needed.

Winter 2012 Voting Results!

Or go here to see all submissions with links to artifact reports.

Overall Synopsis

In this project, you will implement a system to combine a series of photographs into a 360° panorama (see panorama below). Your software will detect discriminating features in the images, find the best matching features in the other images, automatically align the photographs (determine their overlap and relative positions) and then blend the resulting photos into a single seamless panorama. You will then be able to view the resulting panorama inside an interactive Web viewer (see instructions on how to use the viewer). To start your project, you will be supplied with some test images and skeleton code you can use as the basis of your project.

Because this project is more extensive you can work in groups of two. Use this link to register your group on the Grouper tool.

"The Ave Panorama" by David Tepper and Jeremy Kallman, CSE 455 Winter 2008 (full size, 360° viewer)

This project can be thought of as two major components. Each has its own web page with detailed information:

  1. Feature Detection and Matching
  2. Panorama Mosaic Stitching

The project will consist of a pipeline of command line EXE programs (Feature.exe and Panorama.exe) that will operate on images or intermediate results to produce the final panorama output. A complete description of each component can be found on the dedicated component web page.

Project Files

Here's a collection of what you'll need to download for this project. Most of this also appears on the individual component pages.

Alternately, you can have one with everything.

We have also added a .bat script which will run all commands except blendPairs for the test set, and a pairlist.txt file for the same set which includes the expected alignPairs results. Note that the .bat script assumes Features.exe, Panorama.exe, and the target images are all present in the same folder.

Getting Things to Run

The steps required to complete the panorama are listed below:

Step EXE
1. Take pictures on a tripod (or handheld)
2. Warp to spherical coordinates Panorama
3. Extract features Features
4. Match features Features
5. Align neighboring pairs using RANSAC Panorama
6. Write out list of neighboring translations Panorama
7. Correct for drift Panorama
8. Read in warped images and blend them Panorama
9. Crop the result and import into a viewer

Although this is the final order of operations, you can complete Features.exe and Panorama.exe in parallel and test on other images.

Running the sample solution

Features.exe and Panorama.exe are command line programs that requires arguments to work properly. Thus you need to run it from the command line, or from a shortcut to the executable that has the arguments specified in the "Target" field of the shortcut properties. The one exception to this is that running Features.exe without command line arguments opens up the UI.

Running from the command line

To run from the command line, click the Windows Start button and select "Run". Then enter "cmd" in the "Run" dialog and click "OK". A command window will pop up where you can type DOS commands. Use the DOS "cd" (change directory) command to navigate to the directory where Features.exe or Panorama.exe is located. Then type "Features" or "Panorama" followed by your arguments. If you do not supply any arguments, the program will print out information on what arguments it expects or open the UI in the case of Features.exe.

Running from a shortcut

Another way to pass arguments to a program is to create a shortcut to it. To create a shortcut, right-click on the executable and drag to the location where you wish to place the shortcut. A menu will pop up when you let go of the mouse button. From the menu, select "Create Shortcut Here". Now right-click on the short-cut you've created and select "Properties". In the properties dialog select the "Shortcut" tab and add your arguments after the text in the "Target" field. Your arguments must be outside of the quotation marks and separated with spaces.

Running the skeleton program

You can run the skeleton program from inside Visual Studio. However, you will need to tell Visual Studio what arguments to pass. Here's how:

  1. Select the "ImageLib" project in the Solution Explorer (do NOT select the "Panorama" project).
  2. From the "Project" menu choose "Properties" to bring up the "Property Pages" dialog.
  3. Select the "Debugging" Property page.
  4. Enter your arguments in the "Command Arguments" field.
  5. Click "Ok".
  6. Now when you execute your program from within Visual Studio the arguments you entered will be passed to it automatically.
  7. Repeat the above steps for the solution for the Features component.

What to Turn In

In addition to your source code and executables, turn in a web page describing your approach and results. In particular:

Feature Detection and Matching

Panorama Mosaic Stitching

This portion of the web page should containin the following:

The web-page should be placed in the project2/artifact directory along with all the images in JPEG format. If you are unfamiliar with HTML you can use WYSIWYG-style editor such as Microsoft Word. It may be easiest to modify our template.

Panorama Links