SORT Tracker¶
Class: SORTBlockV1
Source: inference.core.workflows.core_steps.trackers.sort.v1.SORTBlockV1
Track objects across video frames using the SORT algorithm from the roboflow/trackers package.
SORT pairs a Kalman filter motion model with single-stage IoU-based Hungarian assignment. It has the fewest parameters and lowest overhead, processing hundreds of frames per second. However, it lacks re-identification and occlusion-recovery mechanisms, so tracks may fragment or switch IDs when objects are temporarily hidden.
When to use SORT: - Controlled environments with reliable, high-confidence detections. - Real-time pipelines where maximum throughput is critical. - Simple scenes with minimal occlusion and predictable linear motion.
When to consider alternatives: - If you see fragmented tracks or missed weak detections, try ByteTrack. - If objects undergo heavy occlusion or non-linear motion, try 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_sort@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.3.. | ✅ |
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: 3.. | ✅ |
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.25.. | ✅ |
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 SORT Tracker in version v1.
- inputs:
Detections Stabilizer,QR Code Generator,Detection Offset,Velocity,Keypoint Detection Model,Clip Comparison,Instance Segmentation Model,Distance Measurement,SIFT Comparison,Google Vision OCR,Circle Visualization,Bounding Box Visualization,SAM 3,Image Slicer,Mask Edge Snap,Detections Filter,Overlap Filter,Identify Outliers,Image Contours,Image Blur,Keypoint Detection Model,Detections Consensus,Dot Visualization,Polygon Zone Visualization,Detections Merge,Label Visualization,Icon Visualization,Byte Tracker,Image Threshold,Depth Estimation,Line Counter Visualization,Object Detection Model,OC-SORT Tracker,VLM As Detector,Stitch Images,Blur Visualization,Line Counter,Morphological Transformation,Bounding Rectangle,Relative Static Crop,Model Comparison Visualization,Trace Visualization,Moondream2,Dynamic Zone,Segment Anything 2 Model,Camera Focus,Grid Visualization,Pixelate Visualization,Instance Segmentation Model,Time in Zone,Image Convert Grayscale,Detections Classes Replacement,Keypoint Visualization,Byte Tracker,SAM 3,Polygon Visualization,SAM 3,Halo Visualization,Camera Focus,SIFT Comparison,Keypoint Detection Model,Line Counter,Classification Label Visualization,Mask Visualization,Image Stack,Morphological Transformation,Gaze Detection,Camera Calibration,SIFT,Path Deviation,Image Preprocessing,Text Display,Image Slicer,Corner Visualization,Absolute Static Crop,Detections Transformation,Halo Visualization,Byte Tracker,PTZ Tracking (ONVIF),Path Deviation,Object Detection Model,ByteTrack Tracker,Detections Combine,Dynamic Crop,Reference Path Visualization,Mask Area Measurement,Seg Preview,Instance Segmentation Model,Time in Zone,Background Color Visualization,Detections Stitch,Identify Changes,Ellipse Visualization,Stability AI Outpainting,Contrast Enhancement,VLM As Detector,EasyOCR,Triangle Visualization,Motion Detection,Crop Visualization,OCR Model,Per-Class Confidence Filter,Perspective Correction,Stability AI Image Generation,SAM2 Video Tracker,Detection Event Log,Color Visualization,Heatmap Visualization,Detections List Roll-Up,Contrast Equalization,BoT-SORT Tracker,Instance Segmentation Model,Object Detection Model,SORT Tracker,Time in Zone,YOLO-World Model,Polygon Visualization,Background Subtraction,Template Matching,Pixel Color Count,Stability AI Inpainting - outputs:
Detections Stabilizer,Distance Measurement,Velocity,Detection Offset,Circle Visualization,Bounding Box Visualization,Florence-2 Model,Mask Edge Snap,Detections Filter,Overlap Filter,Detections Consensus,Detections Merge,Dot Visualization,Label Visualization,Icon Visualization,Byte Tracker,Roboflow Vision Events,OC-SORT Tracker,Blur Visualization,Line Counter,Bounding Rectangle,Model Comparison Visualization,Trace Visualization,Size Measurement,Dynamic Zone,Segment Anything 2 Model,Florence-2 Model,Pixelate Visualization,Time in Zone,Detections Classes Replacement,Byte Tracker,Keypoint Visualization,Polygon Visualization,Halo Visualization,Camera Focus,Line Counter,Mask Visualization,Path Deviation,Roboflow Dataset Upload,Corner Visualization,Stitch OCR Detections,Detections Transformation,Halo Visualization,Byte Tracker,PTZ Tracking (ONVIF),Path Deviation,ByteTrack Tracker,Roboflow Custom Metadata,Detections Combine,Mask Area Measurement,Dynamic Crop,Overlap Analysis,Time in Zone,Background Color Visualization,Detections Stitch,Model Monitoring Inference Aggregator,Ellipse Visualization,Triangle Visualization,Per-Class Confidence Filter,Crop Visualization,Perspective Correction,SAM2 Video Tracker,Detection Event Log,Stitch OCR Detections,Color Visualization,Heatmap Visualization,Detections List Roll-Up,BoT-SORT Tracker,SORT Tracker,Time in Zone,Polygon Visualization,Roboflow Dataset Upload,Stability AI Inpainting
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
SORT 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[keypoint_detection_prediction,rle_instance_segmentation_prediction,object_detection_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.3..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: 3..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.25..
-
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 SORT Tracker in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/trackers_sort@v1",
"image": "<block_does_not_provide_example>",
"detections": "$steps.object_detection_model.predictions",
"minimum_iou_threshold": 0.3,
"minimum_consecutive_frames": 3,
"lost_track_buffer": 30,
"track_activation_threshold": 0.25,
"instances_cache_size": "<block_does_not_provide_example>"
}