Skip to content
Open
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
251a649
feat(reid): add Deep OC-SORT adaptive appearance fusion
AlexBodner Aug 19, 2026
889ea13
docs(reid): document fusion choice and the proximity gate
AlexBodner Aug 19, 2026
a56a774
feat(reid): gate weak appearance matches with an appearance floor
AlexBodner Sep 2, 2026
64b064b
fix(pre_commit): 🎨 auto format pre-commit hooks
pre-commit-ci[bot] Sep 2, 2026
2a11a2a
docs(reid): add BoT-SORT + ReID to the tracker comparison and per-rul…
AlexBodner Sep 4, 2026
d7d3819
docs(botsort): fix typo flagged by codespell
AlexBodner Sep 4, 2026
0febfa9
docs(reid): Default-tab rows for DanceTrack and SoccerNet; correct th…
AlexBodner Sep 4, 2026
f75d328
docs(reid): the generic encoder on SoccerNet is rescued by adaptive f…
AlexBodner Sep 5, 2026
4c0386c
docs(reid): add BoT-SORT + ReID rows to the Default tabs for MOT17 an…
AlexBodner Sep 6, 2026
4f57f5d
docs(reid): DanceTrack rows from a reshipped encoder, and fill the ad…
AlexBodner Sep 8, 2026
a4d5aee
docs(reid): one Results section with generic and fine-tuned encoders
AlexBodner Sep 17, 2026
bea30af
docs(reid): add adaptive fusion to the fine-tuned SoccerNet results
AlexBodner Sep 17, 2026
eef9286
docs(reid): markdown results tables, MOT17 adaptive rows, tuning note
AlexBodner Sep 17, 2026
616d635
docs(reid): add the fine-tuned DanceTrack encoder to the results
AlexBodner Sep 17, 2026
a6a136f
docs(reid): order the guide as the steps a user takes
AlexBodner Sep 17, 2026
5d63744
docs(reid): shorten the page title and cut a line that says nothing
AlexBodner Sep 17, 2026
dfd5e04
docs(reid): tuned results for every row, and the tuning-split tables
AlexBodner Sep 22, 2026
525ec26
docs: list BoT-SORT + ReID in the tracker tables
AlexBodner Sep 22, 2026
3c2d17c
fix(reid): reject NaN and infinity for the adaptive weights
AlexBodner Sep 22, 2026
c5e8258
docs(reid): name both thresholds the fusion range affects
AlexBodner Sep 22, 2026
41f6c33
docs(reid): say what the adaptive fusion is not, and test the ignored…
AlexBodner Sep 22, 2026
1525d8d
docs(changelog): leave the adaptive-fusion entry to the release pass
AlexBodner Sep 22, 2026
5409f09
docs(evaluations): scope the version note to the rows it covers
AlexBodner Sep 22, 2026
0444e76
docs(reid): both fusion methods on test for every generic row
AlexBodner Sep 22, 2026
8f1138a
docs(reid): the SportsMOT fine-tuned row, and what a seed is worth
AlexBodner Sep 23, 2026
3118268
docs(reid): the fine-tuned SportsMOT row everywhere, and the tuner's …
AlexBodner Sep 23, 2026
50c041b
docs(evaluations): say what appearance can and cannot recover
AlexBodner Sep 24, 2026
602e52c
docs(reid): fastreid_mot17_sbs50 as the default encoder in the docs
AlexBodner Sep 24, 2026
d71f9ce
docs(reid): FPS of tracker.update next to the default results
AlexBodner Sep 24, 2026
b0ceb64
docs: order tracker tables from motion-only to appearance and masks
AlexBodner Sep 24, 2026
e4594d3
docs(evaluations): the best test result as each Tuned ReID row
AlexBodner Sep 24, 2026
4a7c155
docs(reid): test results only, one table per dataset
AlexBodner Sep 24, 2026
0a1b745
Merge #511 into #571
AlexBodner Sep 24, 2026
cef9d8c
docs(evaluations): hold the FPS column back until every dataset has it
AlexBodner Sep 24, 2026
ee0d069
docs(reid): one grouped results table per tab, at one decimal
AlexBodner Sep 24, 2026
1a582ba
docs(reid): fastreid_mot17_sbs50 is in domain on MOT17
AlexBodner Sep 24, 2026
08aa487
docs(reid): say what each encoder is
AlexBodner Sep 24, 2026
8b7cbb4
docs(reid): fine-tuned results first
AlexBodner Sep 24, 2026
3d2fc9d
docs(reid): drop osnet_x1_0_msmt17_combineall from the guide
AlexBodner Sep 24, 2026
3f4e85f
docs(reid): describe the encoders in the two bullets, without a table
AlexBodner Sep 24, 2026
0e35aed
docs: list trackers in the table order in the intros
AlexBodner Sep 24, 2026
6b49735
docs(reid): give the encoders' parameter counts
AlexBodner Sep 24, 2026
a344cfe
docs(reid): one merged, centred cell per dataset in the results tables
AlexBodner Sep 24, 2026
fc1cd9c
docs(reid): name the fine-tuned encoders
AlexBodner Sep 24, 2026
53cd7b6
test(reid): make the floor test tell raw from floored margins
AlexBodner Sep 29, 2026
b4d65fe
docs(reid): one MOT17 BoT-SORT baseline across the results tabs
AlexBodner Sep 29, 2026
c46303c
docs: map the BoT-SORT + ReID copies in the benchmark cross-references
AlexBodner Sep 29, 2026
6cc733d
docs: swap the benchmark footnote markers and clarify the BoT-SORT + …
AlexBodner Oct 5, 2026
e4c41f8
docs(reid): drop the MOT20 mention from the fusion weights note
AlexBodner Oct 5, 2026
70a81b8
Merge remote-tracking branch 'origin/feat/core/reid-consume-reid-pack…
AlexBodner Oct 15, 2026
d7f01cb
Merge latest #511 into approved #571 before ReIDConfig integration
AlexBodner Oct 17, 2026
59b2d17
refactor(reid): integrate adaptive fusion with ReIDConfig
AlexBodner Oct 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

</div>

`trackers` gives you clean-room, benchmarked implementations of SORT, ByteTrack, OC-SORT, BoT-SORT, C-BIoU, and McByte — so occlusions, fast motion, and moving cameras stop being your problem to solve from scratch. It speaks `supervision.Detections` natively, slotting into any detector you already use — YOLO, DETR, RT-DETR, or anything else — without glue code. One consistent interface, whether you're a researcher comparing algorithms, an engineer shipping a production pipeline, or a hobbyist building something cool. Requires Python ≥ 3.10.
`trackers` gives you clean-room, benchmarked implementations of SORT, ByteTrack, OC-SORT, C-BIoU, BoT-SORT, and McByte — so occlusions, fast motion, and moving cameras stop being your problem to solve from scratch. It speaks `supervision.Detections` natively, slotting into any detector you already use — YOLO, DETR, RT-DETR, or anything else — without glue code. One consistent interface, whether you're a researcher comparing algorithms, an engineer shipping a production pipeline, or a hobbyist building something cool. Requires Python ≥ 3.10.

## Why trackers?

Expand Down Expand Up @@ -83,21 +83,24 @@ For all CLI options, see the [tracking guide](https://trackers.roboflow.com/deve

## Algorithms

Each tracker below is a faithful implementation of its original paper's motion and association pipeline; appearance/ReID branches are not included where papers offer them — see each tracker's docs page for the exact scope. Pick the one that fits your scene, or run the benchmark to find out which performs best on your data.
Each tracker below is a faithful implementation of its original paper's motion and association pipeline; appearance/ReID branches are off by default, though BoT-SORT accepts one through `reid_model` (see the [ReID guide](https://trackers.roboflow.com/latest/guides/reid/)). Each tracker's docs page states the exact scope. Pick the one that fits your scene, or run the benchmark to find out which performs best on your data.

<!-- BENCH-XREF copy-of: [docs/evaluations/results.md](docs/evaluations/results.md) mot17/sportsmot/soccernet/dancetrack-default tables, HOTA column only, all 6 rows (SORT/ByteTrack/OC-SORT/BoT-SORT/C-BIoU/McByte). Also duplicated in [docs/index.md](docs/index.md)'s Algorithms table (all 6 rows). Update results.md first, then mirror both copies. -->
<!-- BENCH-XREF copy-of: [docs/evaluations/results.md](docs/evaluations/results.md) mot17/sportsmot/soccernet/dancetrack-default tables, HOTA column only, all 7 rows (SORT/ByteTrack/OC-SORT/BoT-SORT/C-BIoU/McByte/BoT-SORT + ReID). Also duplicated in [docs/index.md](docs/index.md)'s Algorithms table (all 6 rows). Update results.md first, then mirror both copies. -->
Comment thread
AlexBodner marked this conversation as resolved.
Outdated

| Algorithm | Description | MOT17 HOTA | SportsMOT HOTA | SoccerNet HOTA | DanceTrack HOTA |
| :-------------------------------------------: | :------------------------------------------------------------------------------: | :--------: | :------------: | :------------: | :-------------: |
| [SORT](https://arxiv.org/abs/1602.00763) | Kalman filter + Hungarian matching baseline. | 58.4 | 70.8 | 81.6 | 47.2 |
| [ByteTrack](https://arxiv.org/abs/2110.06864) | Two-stage association using high and low confidence detections. | 60.1 | 73.0 | 84.0 | 53.3 |
| [OC-SORT](https://arxiv.org/abs/2203.14360) | Observation-centric recovery for lost tracks. | 61.9 | 71.7 | 78.4 | 54.1 |
| [BoT-SORT](https://arxiv.org/abs/2206.14651) | Camera motion compensation. | 63.7 | 73.8 | 84.5 | 57.8 |
| [C-BIoU](https://arxiv.org/abs/2211.14317) | Cascaded buffered IoU matching for fast or irregular motion. | 63.0 | 73.1 | 82.6 | 56.7 |
| [McByte](https://arxiv.org/abs/2506.01373) | Mask-conditioned tracking — adds propagated SAM/Cutie masks as a matching cue.\* | **64.1** | **76.5** | **85.0** | **67.2** |
| Algorithm | Description | MOT17 HOTA | SportsMOT HOTA | SoccerNet HOTA | DanceTrack HOTA |
| :-------------------------------------------------------------------: | :------------------------------------------------------------------------------: | :--------: | :------------: | :------------: | :-------------: |
| [SORT](https://arxiv.org/abs/1602.00763) | Kalman filter + Hungarian matching baseline. | 58.4 | 70.8 | 81.6 | 47.2 |
| [ByteTrack](https://arxiv.org/abs/2110.06864) | Two-stage association using high and low confidence detections. | 60.1 | 73.0 | 84.0 | 53.3 |
| [OC-SORT](https://arxiv.org/abs/2203.14360) | Observation-centric recovery for lost tracks. | 61.9 | 71.7 | 78.4 | 54.1 |
| [C-BIoU](https://arxiv.org/abs/2211.14317) | Cascaded buffered IoU matching for fast or irregular motion. | 63.0 | 73.1 | 82.6 | 56.7 |
| [BoT-SORT](https://arxiv.org/abs/2206.14651) | Camera motion compensation. | 63.7 | 73.8 | 84.5 | 57.8 |
| [BoT-SORT + ReID](https://trackers.roboflow.com/develop/guides/reid/) | Appearance embeddings fused with motion, for harder association.\*\* | 63.9 | 75.5 | 84.3 | 57.0 |
| [McByte](https://arxiv.org/abs/2506.01373) | Mask-conditioned tracking — adds propagated SAM/Cutie masks as a matching cue.\* | **64.1** | **76.5** | **85.0** | **67.2** |

\*McByte needs optional heavyweight deps (`torch`, SAM, Cutie) not installed by default. It tops HOTA on all four benchmarks above — see the [McByte docs](https://trackers.roboflow.com/develop/trackers/mcbyte/) for setup.

\*\*BoT-SORT + ReID is listed at library defaults with the default encoder `fastreid_mot17_sbs50`, BoT-SORT's own ReID model trained on MOT17. At its best tuned configuration on each test set it reaches 64.6, 77.8, 88.4 and 60.8 HOTA, above BoT-SORT on all four. See the [ReID guide](https://trackers.roboflow.com/develop/guides/reid/).
Comment thread
AlexBodner marked this conversation as resolved.
Outdated
Comment thread
AlexBodner marked this conversation as resolved.
Outdated

All scores use default parameters on the standard split. Detections come from a YOLOX detector (MOT17, SportsMOT, DanceTrack) or oracle ground-truth boxes (SoccerNet) — absolute numbers shift with detector quality. See the [tracker comparison](https://trackers.roboflow.com/develop/evaluations/results/) for tuned numbers and methodology.

## Evaluate
Expand Down
Binary file not shown.
Binary file not shown.
Loading
Loading