CISC849 S2011 HW1
From class_wiki
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