Module #1: A Basic Surveillance System
Week #2: Foreground Object Extraction
With the background modelling step done, we have a means to identify regions of the image that do not conform to the expected scene. We will presume that these are all objects of interest to track, e.g. targets. Advance beyond the current foreground modelling step to include processing of the binary foreground image for extraction of detected targets and their bounding boxes. Extracting the foreground objects is really performing blob extraction from the binary foreground image. While there are Matlab examples that go beyond simply detecting the bounding box, this activity is simply asking to place in the surveillance system the foreground detection, the blob extraction, and the visualization with track number.
Flesh out the overlayState
function so that it can overlay the surveillance system output over the current image frame. In addition to keeping track of the total number of detected objects, like in the example, for each box plotted, plot the detection index associated to the box like here. You will also need to modify the functions that are invoked within the process
member function. You may find that some will not be modified due to how the Matlab implementation works.
Apply the algorithm to the video S2.L1 Walking, View 001 from the PETS 2009 People Tracking Dataset. It may be a collection of images, in which case some modification of the main loop will be needed. I have a github repository of reader functions/classes, one of which allows for reading from a directory with images. It is called impathreader
and has an interface somewhat similar to how Matlab deals with video. You are free to use it. Also apply to the couple of videos that you've selected (here, couple = exactly two). If one of them is the S2.L1 PETS 2009 video, then select another one to process.
Explore & Deliverables: Turn in state overlays of the processed video for the specified PETS 2009 dataset, plus for your two additional videos chosen. Discuss the performance of the foreground detection process, as well as the detection labelling for the targets over time.
- Are there any challenges that pop up regarding the box estimation process?
- How did you select your parameters?
- What are morphological operations?
- Explain the relationship between the erode, dilate, open, and close operations.
- One thing that the Matlab examples do that I requested not to include is to include some kind of spatio-temporal tracking module to maintain the track identify of the objects. Based on pure detection and the processing natively done in Matlab, how often do you see the numerical identity given to a detected person change? What happens as they come in and out? cross people? How often?
Naturally, you should be turning in your code in the submission document. The best is to provide code snippets of the class member functions that you modified as part of this activity. If you submit the entire class, then highlight the modified functions so that we can see what was done.