The intensity module contains classes that hide some of all the repeated
code associated with processing intensity data. The main component
IntensityProcessing class, which is used to process
continuously retrieved data from the kinect.
The background model used in this class is obtained through
Zivkovic method: Adaptive Gaussian Mixture Model.
The extraction of the foreground pixels proposals is obtained via the
The bounding boxes proposals are extracted using
from an aggregator build using Porikli’s method via
If code already exists to retrieve the data extracting the bounding boxes proposals can be reduced to as little as the following:
# get next video frame rgb.current_frame = cam.get_image() while True: # get rgb dual background (long and short sensitivity) # N.B. background is black (0) and foreground white (1) rgb.compute_foreground_masks(rgb.current_frame) # update rgb aggregator rgb.update_detection_aggregator() # extract bounding box proposals rgb_proposal_bbox = rgb.extract_proposal_bbox()
This module contains class for intensity processing. This class handles the rgb camera status and its methods ensure proper updates to the background models and the bounding boxes extraction.
Compute foreground masks for term background and short term background following Porikli’s method
Parameters: frame (np.uint8) – frame (3 channels) from which extract foregrounds masks Returns: foreground masks for long term and short term backgrounds Return type: np.int8
Extract RGB proposal as the bounding boxes of the areas of the accumulator that have reached a value of AGG_RGB_MAX_E
Returns: list of bounding boxes
Update aggregator with the provided foregrounds. If a pixel is in foreground_long but not in foreground_short increment its accumulator otherwise decrement it. If a particular area has already been detected as proposal don’t decrement if the above condition is not verified.
Returns: updated accumulator Return type: np.int8