Skip to content

ByteTrack Tracker

Class: ByteTrackBlockV1

Source: inference.core.workflows.core_steps.trackers.bytetrack.v1.ByteTrackBlockV1

Track objects across video frames using the ByteTrack algorithm from the roboflow/trackers package.

ByteTrack splits detections into high- and low-confidence pools and runs two rounds of IoU-based association. The first round matches high-confidence detections to existing tracks; the second recovers weak detections that overlap unmatched tracks. This makes ByteTrack particularly effective in dense environments where objects are frequently partially occluded and detector confidence fluctuates.

When to use ByteTrack: - General-purpose tracking across diverse scenes. - Dense or crowded environments with partial occlusions. - Sports tracking and fast-moving objects (highest benchmark scores on SportsMOT). - When your detector produces a mix of high- and low-confidence detections that you want to retain.

When to consider alternatives: - For maximum simplicity and speed with a strong detector, use SORT. - For scenes with heavy occlusion and non-linear motion, use OC-SORT.

Outputs three detection sets: - tracked_detections: All confirmed tracked detections with assigned track IDs. - new_instances: Detections whose track ID appears for the first time. - already_seen_instances: Detections whose track ID has been seen in a prior frame.

The block maintains separate tracker state and instance cache per video_identifier, enabling multi-stream tracking within a single workflow.

Type identifier

Use the following identifier in step "type" field: roboflow_core/trackers_bytetrack@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
minimum_iou_threshold float Minimum IoU required to associate a detection with an existing track. Default: 0.1..
minimum_consecutive_frames int Number of consecutive frames a track must be matched before it is emitted as a confirmed track (tracker_id != -1). Default: 2..
lost_track_buffer int Number of frames to keep a track alive after it loses its matched detection. Higher values improve occlusion recovery. Default: 30..
track_activation_threshold float Minimum detection confidence required to spawn a new track. Detections below this threshold are not used to create new tracks. Default: 0.7..
high_conf_det_threshold float Confidence threshold for high-confidence detections used in association. Default: 0.6..
instances_cache_size int Maximum number of track IDs retained in the instance cache for new/already-seen categorisation. Uses FIFO eviction. Default: 16384..

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Compatible Blocks

Check what blocks you can connect to ByteTrack Tracker in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds ByteTrack Tracker in version v1 has.

Bindings
  • input

    • image (image): Input image with embedded video metadata (fps and video_identifier). Used to initialise and retrieve per-video tracker state..
    • detections (Union[instance_segmentation_prediction, object_detection_prediction, keypoint_detection_prediction]): Detection predictions for the current frame to track..
    • minimum_iou_threshold (float_zero_to_one): Minimum IoU required to associate a detection with an existing track. Default: 0.1..
    • minimum_consecutive_frames (integer): Number of consecutive frames a track must be matched before it is emitted as a confirmed track (tracker_id != -1). Default: 2..
    • lost_track_buffer (integer): Number of frames to keep a track alive after it loses its matched detection. Higher values improve occlusion recovery. Default: 30..
    • track_activation_threshold (float_zero_to_one): Minimum detection confidence required to spawn a new track. Detections below this threshold are not used to create new tracks. Default: 0.7..
    • high_conf_det_threshold (float_zero_to_one): Confidence threshold for high-confidence detections used in association. Default: 0.6..
  • output

Example JSON definition of step ByteTrack Tracker in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/trackers_bytetrack@v1",
    "image": "<block_does_not_provide_example>",
    "detections": "$steps.object_detection_model.predictions",
    "minimum_iou_threshold": 0.1,
    "minimum_consecutive_frames": 2,
    "lost_track_buffer": 30,
    "track_activation_threshold": 0.7,
    "high_conf_det_threshold": 0.6,
    "instances_cache_size": "<block_does_not_provide_example>"
}