Intensity Processing¶
The intensity module contains classes that hide some of all the repeated
code associated with processing intensity data. The main component
is the 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
IntensityProcessing.compute_foreground_masks()
.
The bounding boxes proposals are extracted using IntensityProcessing.extract_proposal_bbox()
from an aggregator build using Porikli’s method via IntensityProcessing.update_detection_aggregator()
.
Usage Example¶
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()
IntensityProcessing class¶
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.
-
class
intensity_processing.
IntensityProcessing
(image_shape=(640, 480))[source]¶ -
compute_foreground_masks
(frame)[source]¶ 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_proposal_bbox
()[source]¶ 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_detection_aggregator
()[source]¶ 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
-