CS 4501: Computer Vision
Spring 2011

Home | Schedule | Assignments | Additional Resources

Assignment 3: Optical Flow

Due Monday, March 28


Overview

In this assignment you will implement, test, and analyze a differential algorithm for computing optical flow. A major component of this assignment is related to visualization. The ability to create compelling and informative visualizations is an essential skill for computer scientists and engineers. In this assignment, effective visualizations will help you understand and evalauate the performance and accuracy of your solution.


1. Questions (30 points)

  1. Generalize the line fitting technique covered in class, which allows fitting a single line to a set of points, to allow fitting multiple lines to a set of points. Your solution should use the Expectation-Maximization (EM) framework and answer the following questions:

  2. Imagine that you are the lead engineer in the Image Search Group at Google. Outline an image retrieval system that takes an image as input and returns a rank-ordered list of images from the Internet that are most similar. Your solution should make use of the image segmentation and texture analysis methods we covered in class. Clearly specify the way you define distance between two images (this must be a scalar value).


2. Colorspaces and false-color visualizations (10 points)

For this part of the assignment you need to devise a method for mapping a scalar value p that lies in the range [0...1] to a unique color. This helper function will be used in future parts of the assignment to visualize scalar-valued functions (e.g., error images, stability measures, etc.). The HSV colorspace is well suited for this task. One idea is to map p to a unique hue value and either set saturation and value to 1 or map them to functions of p as well. Play around with different choices, be creative!! You may use images from previous assignments or things you find on-line (topographic images are good for this) to test your function by first converting it to grayscale (i.e., each pixel will have a value in the range [0,1]) and then generating a unique color at each pixel using your mapping function. Be sure that your final "false color" image is in RGB format and displayable within MATLAB (consult help hsv2rgb). Include some false color images obtained with your mapping function in your write-up and explain what you did.


3. Optical Flow (60 points)

Your next task is to implement the differential algorithm for computing optical flow that we covered in class. Recall that there are two main underlying assumptions: object brightness is constant and motion is constant and purely translational within small image regions (details can be found in the class notes).

Implement the following (30 points):

By superimposing colored line segments over images and using your color mapping function from part one, create the following visualizations (20 points):

Include these visualizaations in your write-up and, for each, discuss what they reveal about the data. Your discussion should mention features in the images (e.g., lack/presence of texture), properties of the scene motion, and the difference between apparent and actual motion (i.e., the aperture problem).

Next, choose one (or two) of the above visualizations and a single pair of images to analyze the impact of adjusting the image neighborhood size N. Based on these visualizations, answer the following questions (10 points):


Submitting

This assignment is due Monday, March 28, 2011 at 11:55 PM. Please see the general notes on submitting your assignments, as well as the late policy and the collaboration policy.

Please submit as one single ZIP file:

Note that programming in Matlab is not an excuse to write unreadable code. You are expected to use good programming style, including meaningful variable names, a comment or three describing what the code is doing, etc. Also, all images you submit should have been saved with the "imwrite" function - do not submit screen captures of the image window.

Data