Skip to content

feat/core: BoT-SORT block#2349

Merged
PawelPeczek-Roboflow merged 3 commits into
roboflow:mainfrom
AlexBodner:feat/BoT-SORT-Tracker
May 15, 2026
Merged

feat/core: BoT-SORT block#2349
PawelPeczek-Roboflow merged 3 commits into
roboflow:mainfrom
AlexBodner:feat/BoT-SORT-Tracker

Conversation

@AlexBodner
Copy link
Copy Markdown
Contributor

@AlexBodner AlexBodner commented May 14, 2026

What does this PR do?

Following Trackers 2.4.0 release, where we added BoT-SORT tracker (our new best one), we are adding it to workflows!
It is the first and only so far that takes an image as input along to detections in order to compensate camera motion between frames!

Type of Change

  • New feature (non-breaking change that adds functionality)
  • Documentation update

Testing

  • I have tested this change locally
  • I have added/updated tests for this change

Added tests following the other trackers and tried custom workflow:

{
  "version": "1.0",
  "inputs": [
    { "type": "WorkflowImage", "name": "image" }
  ],
  "steps": [
    {
      "type": "ObjectDetectionModel",
      "name": "model",
      "image": "$inputs.image",
      "model_id": "yolov8n-640",
      "confidence": 0.25,
      "class_filter": ["person"]
    },
    {
      "type": "roboflow_core/trackers_botsort@v1",
      "name": "tracker",
      "image": "$inputs.image",
      "detections": "$steps.model.predictions",
      "minimum_consecutive_frames": 1,
      "enable_cmc": true,
      "cmc_method": "sparseOptFlow",
      "cmc_downscale": 2
    },
    {
      "type": "roboflow_core/bounding_box_visualization@v1",
      "name": "boxes",
      "image": "$inputs.image",
      "predictions": "$steps.tracker.tracked_detections",
      "color_axis": "TRACK",
      "thickness": 2
    },
    {
      "type": "roboflow_core/label_visualization@v1",
      "name": "labels",
      "image": "$steps.boxes.image",
      "predictions": "$steps.tracker.tracked_detections",
      "text": "Tracker Id",
      "color_axis": "TRACK"
    },
    {
      "type": "roboflow_core/trace_visualization@v1",
      "name": "traces",
      "image": "$steps.labels.image",
      "predictions": "$steps.tracker.tracked_detections",
      "color_axis": "TRACK"
    }
  ],
  "outputs": [
    {
      "type": "JsonField",
      "name": "preview",
      "selector": "$steps.traces.image"
    }
  ]
}

Had problems with the docker server so couldn't test the UI in local.

We now generate warnings if cmc is enabled and frame is not passed, or viceversa, when the tracker doesn't use frame and it is passed.

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code where necessary, particularly in hard-to-understand areas
  • My changes generate no new warnings or errors
  • I have updated the documentation accordingly (if applicable)

@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​trackers@​2.3.0 ⏵ 2.4.096100100100100

View full report

@PawelPeczek-Roboflow PawelPeczek-Roboflow merged commit b252227 into roboflow:main May 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants