Skip to content

Tracking

The tracker is a stage that each frame takes an untracked bundle of poses and gives them IDs.

skelshop.bbtrack.TrackStage #

A pipeline stage wrapping the skelshop.track.PoseTrack generic approach to distance-based tracking.

Internally it uses the following class, which implements a generic approach to online pose tracking:

skelshop.track.track.PoseTrack #

Performs generic distance-based pose tracking.

__init__(self, spec) special #

Takes a TrackingSpec and constructs the corresponding tracking algorithm.

Source code in skelshop/track/track.py
def __init__(self, spec: TrackingSpec):
    """
    Takes a TrackingSpec and constructs the corresponding tracking
    algorithm.
    """
    self.next_id = 0
    self.prev_tracked: FrameBuf = (
        collections.deque(maxlen=spec.prev_frame_buf_size)
    )
    self.spec = spec

Which is in turn configured using a:

skelshop.track.spec.TrackingSpec dataclass #

A domain specific language for threshold distance-based style tracking.

Candidate poses are first filtered using cand_filter and then procedure is executed to decide how to assign the candidates.

Several configurations are given in:

skelshop.track.confs.CONFS #

A dictionary of ready-made tracking specs

Attributes:

Name Type Description
"lighttrackish" TrackingSpec

A LightTrack-like algoirhtm using greedy matching

"opt_lighttrack" TrackingSpec

A LightTrack-like algorithm which attempts to make optimal matches

"deepsortlike" TrackingSpec

A DeepSort-like algorithm (currently missing Kalman filtering)

There are references to two systems in the name: LightTrack1 and DeepSort2. The configurations are inspired by these, but not exact implementations.

Looking at the implementations in skelshop.track.confs.CONFS is a good starting point for adding new configurations, or extending the tracking, e.g. with a new approach to reidentification.


  1. Guanghan Ning, Heng Huang (2019) LightTrack: A Generic Framework for Online Top-Down Human Pose Tracking https://arxiv.org/abs/1905.02822 

  2. Nicolai Wojke, Alex Bewley, Dietrich Paulus (2017) Simple Online and Realtime Tracking with a Deep Association Metric https://arxiv.org/abs/1703.07402