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.
Runtime compatibility¶
-
soft— runtimehosted_serverless,dedicated_deployment; executionremote; inputvideo - Block keeps per-video state in process memory (keyed by video_metadata.video_identifier). With remote step execution on stateless or multi-replica HTTP runtimes, successive requests may be served by different worker processes, so the state resets between calls and the output is meaningless for tracking / counting / aggregation. Use local step execution in an InferencePipeline for stable cross-frame results.
-
soft— inputimage - Block depends on temporal context from video or repeated-frame workflows. With a still image/photo, there is no meaningful history to track, compare, aggregate, or visualize, so the block provides little or no benefit.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to ByteTrack Tracker in version v1.
- inputs:
SAM 3,Circle Visualization,Path Deviation,Path Deviation,Image Blur,Overlap Filter,Reference Path Visualization,Camera Focus,PTZ Tracking (ONVIF),SIFT Comparison,Identify Changes,SAM2 Video Tracker,Halo Visualization,Image Stack,Bounding Rectangle,Object Detection Model,Dot Visualization,Byte Tracker,SAM 3,Image Slicer,Label Visualization,Background Color Visualization,SAM 3 Interactive,OCR Model,Velocity,Pixelate Visualization,Mask Area Measurement,Heatmap Visualization,Track Class Lock,Stitch Images,Identify Outliers,Time in Zone,Morphological Transformation,EasyOCR,YOLO-World Model,Blur Visualization,Trace Visualization,Detection Event Log,ByteTrack Tracker,Moondream2,Clip Comparison,Camera Focus,Detections List Roll-Up,Corner Visualization,Detections Stabilizer,Pixel Color Count,Model Comparison Visualization,SIFT Comparison,SAM 3,Google Vision OCR,Image Threshold,Image Contours,Byte Tracker,Motion Detection,Instance Segmentation Model,Polygon Visualization,Polygon Visualization,SIFT,Segment Anything 2 Model,Time in Zone,Stability AI Image Generation,Classification Label Visualization,Line Counter Visualization,Mask Edge Snap,Line Counter,Relative Static Crop,Per-Class Confidence Filter,Instance Segmentation Model,Keypoint Detection Model,Grid Visualization,Image Preprocessing,Keypoint Visualization,Template Matching,Gaze Detection,Instance Segmentation Model,Icon Visualization,Color Visualization,Dynamic Zone,Detections Combine,Triangle Visualization,Seg Preview,QR Code Generator,Contrast Enhancement,Object Detection Model,Absolute Static Crop,Dynamic Crop,Stability AI Inpainting,Background Subtraction,Bounding Box Visualization,Polygon Zone Visualization,Stability AI Outpainting,Detections Transformation,Crop Visualization,BoT-SORT Tracker,OC-SORT Tracker,Image Convert Grayscale,Byte Tracker,Mask Visualization,Halo Visualization,Image Slicer,Detections Stitch,Detection Offset,Distance Measurement,SORT Tracker,Perspective Correction,Text Display,Morphological Transformation,Line Counter,Instance Segmentation Model,VLM As Detector,Depth Estimation,Detections Consensus,Contrast Equalization,Object Detection Model,Detections Filter,Camera Calibration,Ellipse Visualization,Detections Merge,Detections Classes Replacement,VLM As Detector,Keypoint Detection Model,SAM3 Video Tracker,Keypoint Detection Model,Time in Zone - outputs:
Size Measurement,Circle Visualization,Path Deviation,Path Deviation,Overlap Filter,PTZ Tracking (ONVIF),Event Writer,SAM2 Video Tracker,Halo Visualization,Bounding Rectangle,Dot Visualization,Byte Tracker,Label Visualization,Background Color Visualization,SAM 3 Interactive,Velocity,Pixelate Visualization,Mask Area Measurement,Heatmap Visualization,Track Class Lock,Time in Zone,Trace Visualization,Stitch OCR Detections,Detection Event Log,ByteTrack Tracker,Blur Visualization,Camera Focus,Detections List Roll-Up,Florence-2 Model,Corner Visualization,Detections Stabilizer,Model Comparison Visualization,Model Monitoring Inference Aggregator,Byte Tracker,Polygon Visualization,Segment Anything 2 Model,Polygon Visualization,Time in Zone,Mask Edge Snap,Line Counter,Per-Class Confidence Filter,Keypoint Visualization,Stitch OCR Detections,Icon Visualization,Color Visualization,Dynamic Zone,Detections Combine,Triangle Visualization,Roboflow Dataset Upload,Dynamic Crop,Stability AI Inpainting,BoT-SORT Tracker,Detections Transformation,Bounding Box Visualization,Crop Visualization,OC-SORT Tracker,Byte Tracker,Mask Visualization,Halo Visualization,Detections Stitch,Distance Measurement,Florence-2 Model,Detection Offset,SORT Tracker,Perspective Correction,Roboflow Vision Events,Overlap Analysis,Roboflow Dataset Upload,Detections Consensus,Roboflow Custom Metadata,Detections Filter,Ellipse Visualization,Detections Merge,Detections Classes Replacement,Line Counter,Time in Zone
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[object_detection_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction,instance_segmentation_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
tracked_detections(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): Prediction with detected bounding boxes in form of sv.Detections(...) object ifobject_detection_predictionor Prediction with detected bounding boxes and segmentation masks in form of sv.Detections(...) object ifinstance_segmentation_predictionor Prediction with detected bounding boxes and detected keypoints in form of sv.Detections(...) object ifkeypoint_detection_predictionor Prediction with detected bounding boxes and RLE-encoded segmentation masks in form of sv.Detections(...) object ifrle_instance_segmentation_prediction.new_instances(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): Prediction with detected bounding boxes in form of sv.Detections(...) object ifobject_detection_predictionor Prediction with detected bounding boxes and segmentation masks in form of sv.Detections(...) object ifinstance_segmentation_predictionor Prediction with detected bounding boxes and detected keypoints in form of sv.Detections(...) object ifkeypoint_detection_predictionor Prediction with detected bounding boxes and RLE-encoded segmentation masks in form of sv.Detections(...) object ifrle_instance_segmentation_prediction.already_seen_instances(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): Prediction with detected bounding boxes in form of sv.Detections(...) object ifobject_detection_predictionor Prediction with detected bounding boxes and segmentation masks in form of sv.Detections(...) object ifinstance_segmentation_predictionor Prediction with detected bounding boxes and detected keypoints in form of sv.Detections(...) object ifkeypoint_detection_predictionor Prediction with detected bounding boxes and RLE-encoded segmentation masks in form of sv.Detections(...) object ifrle_instance_segmentation_prediction.
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>"
}