Homework Assignment #2

Geometric techniques: morphing, panoramas, model estimation


This homework has two (or three) parts covering basic geometric techniques in visual computing: warping, morphing, blending, and geometric model estimation. Generalization of these methods are routinely used in more advanced applications of computer vision. Thus, hands-on experience that you obtain while working on this assignment should aid in better understanding some later material in this course.

As in assignemnt 1, the students are strongly encouraged to work in python notebook environment (Jupiter/Anaconda/Python 2.7). Python's domain transformation functions that will be used in assignment 2 are available in standard skimage.transform module (e.g. warp, AffineTransform, PiecewiseAffineTransform, ProjectiveTransform).

The students should use several starter notebooks provided specifically for this homework inside hw2.zip. These starter notebooks includes the necessary GUI interfaces for entering corresponding points and image display. In particular, CrossDissolver and LineBuilder classes are fully implemented.

It is expected that in each notebook (for parts I, II, or III below) you will use or create multiple "cells" corresponding to different specific tasks/experiemnts. In particular, use "markdown" cells to comment or discuss your results. Presentatation clarity and good organization of your notebooks will be evaluated/marked. Note: all results should be generated in your code cells - do not show results loaded from external images.

IMPORTANT: When preparing your notebooks for submission, you should test each notebook after restarting the python kernel in Jupiter (Kernel->Restart). Then, run the cells consequtively (top to bottom) and make sure that they work correctly in this order. When saving your notebook before submission, the cell numbers on the left margin of the notebook should be 1,2,3,4,... from top to bottom. When testing your code I can re-run the cells of your notebook only in this specific order. Also, save your notebook after each (interactive) figure cell is in the state showing the exact result that you want to demonstrate (e.g. for specific seeds) and that you might be discussing in a markdown cell right below the figure. Besides these tested notebook files, you should also save and submit their "html" versions (File->Download as->HTML), which also contain the "current" state of your figures.

Note that the assignment may mentions some "optional" tasks. As all other required tasks, the optional tasks should be implemented in separate cells. Conclusive figures/experiments with specific points discussed in "markdown" cells (below) can yield bonus points.

Specific Tasks