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.
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.