Think of this assignment as a warmup excercise. You are to write a Python program using OpenCV that tracks the Frigate bird in the following video.

To be more precise, your python function once loaded will take the name of the video (yes you are only using one video) and then displays each frame with a bounding box drawn around the frigatebird. The display will use a single window and advance to the next frame after a specified number of milliseconds; perhaps 100.


Tracking a moving object in video can be a difficult computer vision task. However, in this particular video, not so much. There are a variety of relatively simple solutions and you should not seek generality for generalities sake in this first assignment. There will be time later to think more deeply about robust tracking. Also, there is a larger lesson here about needless complexity. Often in applied taks the constraints are sufficient to allow for simple solutions, and you should always consider and try these simpler solutions for two reasons. First, if they work, you have a simple solution. Two, if they don't, their failures will guide you in seeking more robust and often more complex solutions.

Starting Point

If you have a sense that your not being told here how to solve the problem, then your senses are telling you the truth. We will discuss different specific approaches in lecture, but as this is a graduate course, you are being asked to take the initiative in terms of how to proceed. That includes generating some ideas on your own and using discussion in class to focus your attention on more rather then less promising approaches.

Lastly, do not be surprised if much of your time on this first assignment is spent in frastructure work, e.g. getting up to speed on running OpenCV codes through Python.

Paired Programming

Collaboration is a good thing. In that spirit, you will pick a partner for this project and work together. That means each team will submit a single solution to this assignment. Initially I will not be assigning teams and to the extent student inform me who they have chosen to partner with I will not become involved. I request and email by close of day Friday February 1 from students who have selected a partner. I will then work individually with sutdent who I have not heard from to see if I can actively assist in forming teams for students still seeking a partner.


On this first assignment grading will be done based upon meeting with the instructor. Each PA01 team will pick a time (signup coming later) and meet with the instructor and present and discuss their solution. We will hold these meetings on Thursday February 14 and Friday February 15.

As a fallback, teams may develop code and demonstrate their code using the department machines. However, looking toward later assignments, I am hoping most all teams will have at least one and perhaps two laptops where code may be developed and run. The great advantage of running on a laptop you control is it becomes easy to build and test intereactive vision system that receive live video data from a built in camera.