Spring 2006 - CS477/577 - An Introduction to Computer Vision

Assignment eight

Required for grad students only

Due: May 4

Credit (Grads): Approximately 8 points (Relative, and very rough absolute weighting)
Credit (Ugrads): Approximately 4 bonus points (Relative, and very rough absolute weighting)

This assignment must be done individually


You can do this assignment in either Matlab or C/C++.

Information for those working in C/C++ who want to use my libraries.


Assignment specification

Implement both methods for computing the homography between two planar images based on 4 point matches.

Test both methods on the data used in Assignment Six. For each pair of images (slide and video frame), collect 4 point matches using manual mouse clicking. This should be input to a test program that computes the homography, and then uses that homography to map the source points (from slides) to the video frame. In the video frame images, mark the 4 clicked points, and the 4 mapped locations differently (e.g. different color). Ideally they should be close. This is just a check, but hand in three pairs of images for each method showing the marked points in both, and the mapped points in the video frame.

Now use RANSAC to improve the keypoint matching to search for a set of N keypoints that all agree about the homography. From your previous work on Assignment Six, you probably have some idea about what a good number for N is. Does RANSAC help?

Comment on any difference in the two methods for solving for the homography. (Note: In general the DLT method is regarded to be more stable, but I have no idea if this will be the case here).

Tip: Ensure that the 4 matches in each group are different. If you naively randomly sample, then you might draw the same match twice. This will lead to a degenerate equation that might produce an error when you try to solve it. (This may happen on occasion anyway, so if you are able to trap that error and ignore it, your code will be more robust.

Tip: See http://en.wikipedia.org/wiki/RANSAC for more on RANSAC, including the standard formula that allows you to choose the number of iterations sensibly.


To hand in the above, use the turnin program available on lectura (turnin key is cs477_hw8).  Hand in any code, a README, and /or images, and/or a PDF reporting on what you did with images embedded.