

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Assignment; Class: LANG OF THE WORLD; Subject: Linguistics; University: University of California - Santa Barbara; Term: Winter 2009;
Typology: Assignments
1 / 3
This page cannot be seen from the preview
Don't miss anything!


Notes: Be sure to re-read the “Policy on Academic Integrity” on the course syllabus. This assignment is to be in a group of two or three students. (No, not just one!) General help from other students is fine (e.g., “When was that covered?” “What does that mean again?” etc.), but the problems are to be worked on, and the answers conceived, only by the members of each group. Either Matlab or OpenCV may be used for this assignment. Any updates or corrections will be posted on the Announcements page (home page for the course), so check there occasionally. Only one submission per group – include a Readme.txt file that gives the full names of all members of the group. Turn in the files (the Readme file, your report, your code, an executable, and image outputs) using the CSIL turnin command, as described on the Assignments page on the course web site. (No hardcopy is required for this assignment.) Be aware of the late policy in the course syllabus.
Your group must choose one of the following problems for this assignment. In grading, your solution will be run on the sample images or videos provided as well as similar testing data that will not be provided. You must turn in a report that briefly describes your approach, weakness or problems in your approach, and a summary of your results (i.e., how well you think it works and why).
Option #1 – Object Recognition [75 points]
Write a program to recognize 2D objects in grayscale images, where the objects are defined by a collection of line segments. To accomplish this, you’ll want to do edge detection on the input image, perform a Hough Transform to find significant lines in the image, and match line segments detected in the image with the object model to determine whether or not the object is in the image – and if so, at what location, orientation, and scale.
If the input image is RGB, first convert it to grayscale.
An object is defined in a text-readable file with the following format:
v. 1.
N // integer – number of line segments defining the object x1 y1 x2 y2 // x, y coordinates of the two ends of line segment # x1 y1 x2 y2 // x, y coordinates of the two ends of line segment # … x1 y1 x2 y2 // x, y coordinates of the two ends of line segment #N
The images will be relatively simple, with plain backgrounds and zero or more objects in the scene. The program or function should take two arguments: the image filename and the filename of the object description. The output should state whether or not the object was found in the image, the parameters describing its occurrence if found (x-y location, rotation angle, scale), and a single window displaying (1) the original image, (2) the edges computed, (3) the Hough Transform output, (4) the detected peaks in the Hough Transform (corresponding to lines in the image), and (5) the image with the detected object overlaid on top (in a visible color), if the object was detected.
Example images and object descriptions will be posted on the Assignments page of the course web site.
Option #2 – Object Tracking [75 points]
Write a program to track an object in 2D throughout a video sequence, where the object has a fixed color and shape, but its location and orientation can change throughout the sequence. You may use the first frame of the video sequence to train the tracker (with user interaction if desired – e.g., to click on, or outline, the object to be tracked), but from there it should track automatically throughout the sequence.
For each frame of the video, the program or function should output the (row, col) location of the centroid of the object. The program should output and display a video that overlays a (not-too-small) dot at the centroid location in each frame of the video. It should also display a plot of the location at every frame (connecting locations from adjacent frames of the video).
Example videos will be posted on the Assignments page of the course web site.
Option #3 – Photo clustering [75 points]
Write a program to take a (possibly large) directory of images and output a clustering of the images so that images from similar scenes cluster together. For example, images of the kid’s birthday party might all be one category, images of the soccer match another, images of the walk on the beach another, etc. To do this clustering, compute features from the image that might be useful (e.g., color and texture features at multiple scales) and do k- means clustering or another clustering algorithm to determine similar clusters of images.