Video analysis¶
These classes provide basic motion tracking features via foreground-background subtraction - for more details see the OpenCV docs 2 and Tutorial 6.Motion tracker¶
- class phenopype.tracking.motion_tracker(video_path, at_frame=1)¶
Bases:
object
Initialize motion tracker class; extract information (length, fps, codec, etc.) from input video and pass to other tracking methods.
- Parameters:
video_path (str) – path to video
at_frame (int, optional) – frame index to be used to extract the video information
- video_output(video_format=None, save_suffix='out', dirpath=None, fps=None, save_colour=None, dimensions=None, resize=1)¶
Set properties of output video file. Most settings can be left blank, so that settings from the input video will be applied
- Parameters:
video_format (str, optional) – format of the output video file. needs to be a fourcc-string https://www.fourcc.org/codecs.php
save_suffix (str, optional) – name for the output video file (defaut: “input-filename” + _out.avi)
dirpath (str, optional) – save directory for the output video file. will be created if not existing
fps (int, optional) – frames per second of the output video file
dimensions (tuple, optional) – dimensions (width, length) of the output video file
resize (int, optional) – factor by which to resize the output video dimensions
save_colour (bool, optional) – should the saved video frames be in colour
- detection_settings(skip=5, warmup=0, start_after=0, finish_after=0, history=60, threshold=10, detect_shadows=True, mode='MOG', methods=None, masks=None, c_mask=False, c_mask_shape='rect', c_mask_size=50)¶
Set properties of output video file. Most settings can be left at their default value.
- Parameters:
skip (int, optional) – how many frames to skip between each capture
warmup (int, optional) – warmup period in seconds for the background subtractor
start_after (int, optional) – start after X seconds
finish_after (int, optional) – finish after X seconds
history (int, optional) – how many frames to use for fg-bg subtraction algorithm
threshold (int, optional) – sensitivity-level for fg-bg subtraction algorithm (lower = more sensitive)
detect_shadows (bool, optional) – attempt to detect shadows - will be returned as gray pixels
mode ({"MOG", "KNN"} str, optional) – type of fg-bg subtraction algorithm
methods (method or list of methods, optional) – list with tracking_method objects
c_mask (bool, optional) – consecutive masking. if multiple methods are defined, the objects detected first will mask the objects detected in subsequent methods
c_mask_shape ({"rect", "ellipse", "contour"} str, optional) – which shape should the consecutive mask have
c_mask_size (int, optional) – area in pixels that is added around the mask
- run_tracking(feedback=True, canvas='overlay', overlay_weight=0.5, **kwargs)¶
Start motion tracking procedure. Enable or disable video feedback, output and select canvas (overlay of detected objects, foreground mask, input video).
- Parameters:
feedback (bool, optional) – show output of tracking
canvas ({"overlay","fgmask","input"} str, optional) – the background for the ouput video
overlay_weight (float (default: 0.5)) – if canvas=”overlay”, how transparent should the overlay should be
Tracking methods¶
- class phenopype.tracking.tracking_method(label='m1', blur=5, threshold=127, remove_shadows=True, min_length=0, max_length=inf, min_area=0, max_area=inf, mode='multiple', overlay_colour='red', operations=[])¶
Bases:
object
Constructs a tracking method that can be supplied to the motion_tracker class.
- Parameters:
label (str, optional) – label for all objects detected by this method
blur (int, optional) – blurring of fgbg-mask (kernel size)
threshold (int, optional) – binarization of fgbg-mask after blurring (threshold value)
remove_shadows (bool, optional) – if motion_tracker has detect_shadows=True, they can be removed here
min_area (int, optional) – minimum contour area in pixels to be included
max_area (int, optional) – maximum contour area in pixels to be included
min_length (int, optional) – minimum diameter of boundary circle to be included
max_length (int, optional) – maximum diameter of boundary circle to be included
mode ({"single", "multiple"} str, optional) – track “multiple”, or “single” (biggest by diameter) objects
remove_shadows – remove shadows if shadow-detection is actived in MOG-algorithm
overlay_colour ({"red", "green", "blue", "black", "white"} str, optional) – which colour should tracked objects have
operations (list (default: ["length", "area"])) –
- determines the type of operations to be performed on the detected objects:
”diameter” of the bounding circle of our object
”area” within the contour of our object
”grayscale” mean and standard deviation of grayscale pixel values inside the object contours
”grayscale_background” background within boundingbox of contour
”bgr” mean and standard deviation of blue, green and red pixel values inside the object contours