DigiVFX
Digital Visual Effects, Spring 2018

Jump to...

project #1
project #3
final project
assignments


project #2: Image Stitching

Assigned: 2018/4/18
Due: 2018/5/16 2:00pm
submission, voting

Project description

Image stitching is a technique to combine a set of images into a larger image by registering, warping, resampling and blending them together. A popular application for image stitching is creation of panoramas. Generally speaking, there are two classes of methods for image stitching, direct methods and feature-based methods. An example of direct methods is Szeliski and Shum's SIGGRAPH 1997 paper. Brown and Lowe's ICCV2003 paper, Recognising Panoramas, is a cool example for feature-based methods.

In this project, you will implement parts of the "Recognising Panoramas" paper. There are basically five components in that paper, feature detection, feature matching, image matching, bundle adjustment and blending. You are required to do feature detection, feature matching, image matching and blending. For feature matching, we have talked about several options, SIFT, Harris and MSOP. You are free to make your own choice. If you want to implement SIFT, you can refer to this matlab implementation as a reference. (However, you should implement it using another language.) For feature matching, if you want to speed up matching, you can use some kd-tree library such as ANN. Note that you need to implement your own feature detection/description/matching. It is not allowed to use exisiting feature libraries

For estimating the focal length, you can either use the method we mentioned in the class or autostitch. For autostitch, you need to use the old 32-bit Windows version, which will save a file called pano.txt under the image directory. The file looks likethe following:
C:\Users\cyy\Desktop\autostitch\images\test\100-0024_img.jpg
568 758

1 0 378.5 
0 1 283.5 
0 0 1 

0.989768 -0.0039487 0.142633 
0.00390831 0.999992 0.000563158 
-0.142635 1.74769e-008 0.989775 

897.93

...
where 897.93 is the estimated focal length for the first image.

Sign up here for borrowing equipment.

Bells and whistles

Students will get extra points if they implement any of the following extensions: You are welcome to do any other extensions or develop algorithm related to image stitching. The bonus depends on how useful and difficult these extensions are and how much you archieve the goal.

Submission

You have to turn in your complete source, the executable, a complete test example and instruction to run the test, a report in an html/pdf format (including all resources) and your favorite artifact. The report could contain a description of this project, what you have learned from this project, description of the algorithm you implemented, implementation details, results (either good or bad), and what extensions you have implemented. You also have to submit your favorite artifact generated by the program you have implemented (not by the reference software). For this project's artifacts, submit a stitched image using your own program from a set of images you take yourself. Look for inspiration from this website, this one and this one. When taking pictures, remember to rotate your camera to increase vertical FOV if you want to create a panorama.

Please submit your project through the submission website.

Test data

We provide five sets of test data so that you can start to work on this project before you take pictures.

pictures taken with tripods


pictures taken without tripods



References