In this page you will find the programming assignments for the Advanced Multimedia Computing course at the University of Amsterdam.

These assignments are industry oriented and are meant to let the student deal with computer vision problems coming from real situations.
All assigments need to be solved by using the open-source OpenCV library.
Some notes:

The final grade depends on the percentage of delivered working assignments: 60% will be a 6, 100% a 10. Non working assignments are weigthed by the difficulty and the progress (alias: i decide).

It is strongly recommended to go through the samples included in the OpenCV library directory. The following is a useful list of resources for OpenCV:

Assignment 1: Set up and running (suggested deadline:April 14th)

This is a tutorial task: it might be boring but it's a good exercise to deal with pointers, video input/output and simple opencv operations. It will give an overview on how to use the library before start implementing nice stuff :) . Iteratively load frames from a video (.avi) or from a webcam (for video, make it loop when is over).

For many of the i/o functions you will need to use functions from the highgui library. make sure that you are releasing all the structures correctly (opencv is famous for memory leaks) by checking the allocated memory every few minutes.

Assignment 2: Hotspot detector (suggested deadline:April 21st)

Download the movie at http://staff.science.uva.nl/~rvalenti/downloads/teaching/hand.avi .
Implement an hotspot detector, write on the image which book is being touched. Optional: implement a "visual piano", use your webcam to play it.

Assignment 3: Face counting (suggested deadline:May 4th)

Download the movies at http://staff.science.uva.nl/~rvalenti/downloads/teaching/face_counting1.avi and http://staff.science.uva.nl/~rvalenti/downloads/teaching/face_counting2.avi .
Count the number of people that are displayed on the video. Try not to double-count by using some heuristics. Show the results in real time on the video.

Assignment 4: Car tracking (suggested deadline:May 14th)

Download the movie at http://staff.science.uva.nl/~rvalenti/downloads/teaching/cars.avi .
Count how many cars are passing on the left and right lane, independently. Track their location (optional: display an estimate of the speed of each car) Count how many cars on the right lane are turning right at the crossing and display the information on the image.

Assignment 5: A simple OCR (Optional)

Let's implement a simple barcode reader/ocr: Download an image of a bar code at http://staff.science.uva.nl/~rvalenti/downloads/teaching/upc.jpg.

Assignment 6: Smart shopping window (deadline:June 2nd)

Download the shopping window movie at http://staff.science.uva.nl/~rvalenti/downloads/teaching/shopping.avi .
Note: the video is quite big, you can process only the part that works best with your approach. In case you have bandwidth problems, a shorter version (and in lower resolution) is available at http://staff.science.uva.nl/~rvalenti/downloads/teaching/shoppingsmall.avi .
There are 4 progressive points for this assignment (each of them counts as 25% for the total completion), you should be able to complete some of them starting from the code of the previous assignments:

Display the obtained information on the image.