sportslabkit.mot#

Overview#

Classes#

MultiObjectTracker

Helper class that provides a standard way to create an ABC using

BYTETracker

BYTE tracker from https://arxiv.org/pdf/2110.06864.pdf

DeepSORTTracker

DeepSORT tracker from https://arxiv.org/abs/1703.07402

SORTTracker

SORT tracker from https://arxiv.org/pdf/1602.00763.pdf

TeamTracker

TeamTrack

Classes#

class sportslabkit.mot.MultiObjectTracker(window_size=1, step_size=None, max_staleness=5, min_length=5, callbacks=None)[source]#

Bases: abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

Overview

Methods#

update_tracklet(tracklet, states)

-

update(current_frame, trackelts)

abc -

process_sequence_item(sequence)

-

track(sequence)

-

track_sequence(sequence)

-

cleanup_tracklets(tracklets)

-

increment_staleness(tracklets)

-

reset_staleness(tracklets)

-

pre_track()

-

post_track()

-

reset()

-

check_updated_state(state)

-

create_tracklet(state)

-

to_bbdf()

Create a bounding box dataframe.

separate_stale_tracklets(unassigned_tracklets)

-

create_hparam_dict()

-

get_new_hyperparameters(hparams, trial)

-

apply_hyperparameters(params)

-

tune_hparams(frames_list, bbdf_gt_list, n_trials, hparam_search_space, verbose, return_study, use_bbdf, reuse_detections, sampler, pruner)

-

Members

update_tracklet(tracklet: sportslabkit.Tracklet, states: dict[str, Any])#
abstract update(current_frame: Any, trackelts: list[sportslabkit.Tracklet]) tuple[list[sportslabkit.Tracklet], list[dict[str, Any]]]#
process_sequence_item(sequence: Any)#
track(sequence: Iterable[Any] | np.ndarray) sportslabkit.Tracklet#
track_sequence(sequence)#
cleanup_tracklets(tracklets)#
increment_staleness(tracklets)#
reset_staleness(tracklets)#
pre_track()#
post_track()#
reset()#
check_updated_state(state: dict[str, Any])#
create_tracklet(state: dict[str, Any])#
to_bbdf()#

Create a bounding box dataframe.

separate_stale_tracklets(unassigned_tracklets)#
create_hparam_dict()#
get_new_hyperparameters(hparams, trial)#
apply_hyperparameters(params)#
tune_hparams(frames_list, bbdf_gt_list, n_trials=100, hparam_search_space=None, verbose=False, return_study=False, use_bbdf=False, reuse_detections=False, sampler=None, pruner=None)#
class sportslabkit.mot.BYTETracker(detection_model=None, image_model=None, motion_model=None, first_matching_fn: sportslabkit.matching.MotionVisualMatchingFunction = MotionVisualMatchingFunction(motion_metric=IoUCMM(use_pred_box=True), motion_metric_gate=0.2, visual_metric=CosineCMM(), visual_metric_gate=0.2, beta=0.5), second_matching_fn=SimpleMatchingFunction(metric=IoUCMM(use_pred_box=True), gate=0.9), detection_score_threshold=0.6, window_size: int = 1, step_size: int | None = None, max_staleness: int = 5, min_length: int = 5, callbacks=None)[source]#

Bases: sportslabkit.mot.base.MultiObjectTracker

BYTE tracker from https://arxiv.org/pdf/2110.06864.pdf

Overview

Methods#

update(current_frame, tracklets)

-

Members

update(current_frame, tracklets)#
class sportslabkit.mot.DeepSORTTracker(detection_model=None, image_model=None, motion_model=None, matching_fn: sportslabkit.matching.MotionVisualMatchingFunction = MotionVisualMatchingFunction(motion_metric=IoUCMM(), motion_metric_gate=0.2, visual_metric=CosineCMM(), visual_metric_gate=0.2, beta=0.5), window_size: int = 1, step_size: int | None = None, max_staleness: int = 5, min_length: int = 5, callbacks=None)[source]#

Bases: sportslabkit.mot.base.MultiObjectTracker

DeepSORT tracker from https://arxiv.org/abs/1703.07402

Overview

Attributes#

hparam_search_space

-

Methods#

update(current_frame, tracklets)

-

Members

hparam_search_space#
update(current_frame, tracklets)#
class sportslabkit.mot.SORTTracker(detection_model, motion_model, matching_fn: sportslabkit.matching.SimpleMatchingFunction = SimpleMatchingFunction(metric=IoUCMM(use_pred_box=True), gate=1.0), window_size: int = 1, step_size: int | None = None, max_staleness: int = 5, min_length: int = 5, callbacks=None)[source]#

Bases: sportslabkit.mot.base.MultiObjectTracker

SORT tracker from https://arxiv.org/pdf/1602.00763.pdf

Overview

Attributes#

hparam_search_space

-

Methods#

update(current_frame, tracklets)

-

Members

hparam_search_space#
update(current_frame, tracklets)#
class sportslabkit.mot.TeamTracker(detection_model=None, image_model=None, motion_model=None, calibration_model=None, first_matching_fn: sportslabkit.matching.MotionVisualMatchingFunction = MotionVisualMatchingFunction(motion_metric=IoUCMM(use_pred_box=True), motion_metric_gate=0.2, visual_metric=CosineCMM(), visual_metric_gate=0.2, beta=0.5), second_matching_fn=SimpleMatchingFunction(metric=IoUCMM(use_pred_box=True), gate=0.9), detection_score_threshold=0.6, window_size: int = 1, step_size: int | None = None, max_staleness: int = 5, min_length: int = 5, callbacks=None)[source]#

Bases: sportslabkit.mot.base.MultiObjectTracker

TeamTrack

Overview

Methods#

predict_single_tracklet_motion(tracklet)

-

predict_multi_tracklet_motion(tracklets)

-

tracklet_to_points(tracklet, H)

-

detection_to_points(detection, H)

-

update(current_frame, tracklets)

-

Members

predict_single_tracklet_motion(tracklet)#
predict_multi_tracklet_motion(tracklets)#
tracklet_to_points(tracklet, H)#
detection_to_points(detection, H)#
update(current_frame, tracklets)#