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.
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 SORT Tracker in version v1.
- inputs:
Text Display,Crop Visualization,Image Slicer,Detection Event Log,ByteTrack Tracker,Image Threshold,Image Blur,Instance Segmentation Model,Color Visualization,Gaze Detection,Classification Label Visualization,Corner Visualization,Mask Edge Snap,Dynamic Crop,Per-Class Confidence Filter,Detections Transformation,Time in Zone,SAM 3 Interactive,Velocity,Image Slicer,Absolute Static Crop,Detections Classes Replacement,Instance Segmentation Model,Template Matching,Pixel Color Count,Detections Consensus,Identify Outliers,SIFT Comparison,Mask Area Measurement,SIFT,Morphological Transformation,Background Subtraction,Nearest Neighbor Detection Match,Line Counter Visualization,Auto Rotate on Edges,BoT-SORT Tracker,Time in Zone,Ellipse Visualization,Instance Segmentation Model,SAM 3,Trace Visualization,Grid Visualization,Bounding Box Visualization,Perspective Correction,Morphological Transformation,Camera Focus,Segment Anything 2 Model,Seg Preview,EasyOCR,Byte Tracker,Object Detection Model,Motion Detection,Object Detection Model,Overlap Filter,Instance Segmentation Model,OC-SORT Tracker,Distance Measurement,VLM As Detector,Path Deviation,Depth Estimation,Blur Visualization,Path Deviation,Image Preprocessing,Detections Stabilizer,Polygon Visualization,Bounding Rectangle,Stability AI Inpainting,Image Convert Grayscale,SAM 3,Line Counter,Moondream2,Stitch Images,SAM2 Video Tracker,Clip Comparison,Camera Calibration,Dynamic Zone,Google Vision OCR,Mask Visualization,QR Code Generator,Reference Path Visualization,Polygon Zone Visualization,Polygon Visualization,Contrast Equalization,Detection Offset,Roboflow Visual Search,SAM3 Video Tracker,Detections Filter,SIFT Comparison,Halo Visualization,Detections List Roll-Up,Pixelate Visualization,Contrast Enhancement,Keypoint Detection Model,SORT Tracker,Detections Combine,Circle Visualization,Byte Tracker,Image Contours,Camera Focus,Detections Stitch,Heatmap Visualization,Triangle Visualization,Stability AI Image Generation,Track Class Lock,Line Counter,YOLO-World Model,Icon Visualization,Dot Visualization,Stability AI Outpainting,Keypoint Visualization,Byte Tracker,Relative Static Crop,PP-OCR,Label Visualization,Time in Zone,Background Color Visualization,Keypoint Detection Model,Image Stack,Roboflow Visual Search Classifier,VLM As Detector,OCR Model,SAM 3,Model Comparison Visualization,Keypoint Detection Model,PTZ Tracking (ONVIF),Detections Merge,Halo Visualization,Object Detection Model,Frame Delay,Identify Changes - outputs:
Crop Visualization,Detection Event Log,Roboflow Dataset Upload,ByteTrack Tracker,Mask Edge Snap,Dynamic Crop,SAM 3 Interactive,Detections Transformation,Time in Zone,Per-Class Confidence Filter,Velocity,Detections Classes Replacement,Overlap Analysis,Roboflow Custom Metadata,Mask Area Measurement,BoT-SORT Tracker,Ellipse Visualization,Segment Anything 2 Model,Bounding Box Visualization,Byte Tracker,Overlap Filter,Path Deviation,Size Measurement,Detections Stabilizer,Bounding Rectangle,Roboflow Dataset Upload,SAM2 Video Tracker,Florence-2 Model,Detection Offset,Detections List Roll-Up,Pixelate Visualization,SORT Tracker,Detections Stitch,Track Class Lock,Triangle Visualization,Icon Visualization,Dot Visualization,Byte Tracker,Keypoint Visualization,GeoTag Detection,PTZ Tracking (ONVIF),Halo Visualization,Frame Delay,Color Visualization,Corner Visualization,Stitch OCR Detections,Event Writer,Detections Consensus,Nearest Neighbor Detection Match,Stitch OCR Detections,Time in Zone,Trace Visualization,Perspective Correction,Camera Focus,OC-SORT Tracker,Distance Measurement,Path Deviation,Blur Visualization,Polygon Visualization,Model Monitoring Inference Aggregator,Stability AI Inpainting,Florence-2 Model,Dynamic Zone,Mask Visualization,Polygon Visualization,Detections Filter,Halo Visualization,Detections Combine,Byte Tracker,Circle Visualization,Heatmap Visualization,Roboflow Vision Events,Line Counter,Label Visualization,Time in Zone,Background Color Visualization,Model Comparison Visualization,Detections Merge,Line Counter
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[instance_segmentation_prediction,object_detection_prediction,rle_instance_segmentation_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.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>"
}