CISC849 S2011 HW1

From class_wiki
Jump to: navigation, search

For this assignment, due on Tuesday March 8, you will attempt to implement a simplified version of the Caltech ctrax fly tracker discussed in class.

OpenCV-based C++ framework code and a sample video are provided for you here (75 MB). The code currently does the following:

  • Computes median, MAD intensity at each pixel over entire sequence
  • Uses this to calculate difference and threshold it to obtain a foreground pixel mask

You must minimally add these features to it:

  • Clean up noise and count fly blobs accurately for each foreground mask
  • Fit an ellipse or oriented rectangle to each fly blob
  • Match blobs to trajectories of blobs from previous frames (i.e., tracking). Try this first independently for each blob or trajectory, then look into doing it jointly
  • Draw appropriate graphical overlays showing fitted shapes and trajectories, color-coded to differentiate
  • Test your code on other fruit fly arena videos such as these

Optional extras to try (which will be counted as extra credit for grading):

  • Deal with ambiguities of "close encounters" via splitting of connected components and scoring of alternative blob counts
  • Make algorithm online instead of batch by only calculating statistics over a rolling window of the last N frames
  • Try it on videos of other animals and make code changes to improve performance on them