Skip to main content

BoxMOT: pluggable SOTA tracking modules for segmentation, object detection and pose estimation models

Project description

BoxMOT demo

mikel-brostrom%2Fboxmot | Trendshift

CI PyPI version downloads license python-version colab DOI docker pulls discord Ask DeepWiki

BoxMOT gives you one CLI and one Python API for running modern multi-object tracking workflows. It covers direct tracking, cached benchmark evaluation, tuning, research loops, ReID training and evaluation, and ReID export without forcing you to rebuild the detector and tracker stack for each experiment.

Why BoxMOT

  • One interface for track, generate, eval, tune, research, train, eval-reid, and export.
  • Swappable trackers with shared detector and ReID plumbing.
  • Benchmark-oriented workflows with reusable detections and embeddings.
  • Support for both AABB and OBB tracking paths.
  • Optional production-ready native C++ tracker implementations with the same metrics as the Python path, opted into via --tracker-backend cpp and embeddable in standalone C++ projects via CMake (see Native C++ Integration).
  • Public Python API for embedding the same workflows in applications and notebooks.

Installation

BoxMOT supports Python 3.10 through 3.13.

pip install boxmot
boxmot --help

For mode-specific extras such as yolo, evolve, research, onnx, openvino, and tflite, see the installation guide.

Benchmark Results

Tracker MOT17 ablation SportsMOT val MMOT test OBB
HOTA MOTA IDF1 HOTA MOTA IDF1 HOTA MOTA IDF1
occluboost 70.47
(70.48)
78.32
(78.31)
84.14
(84.14)
83.17 97.48 89.36
botsort 69.44
(69.43)
78.24
(78.26)
81.94
(82.00)
76.93 98.11 78.30 51.79 46.05 60.85
boosttrack 69.25
(—)
75.91
(—)
83.20
(—)
76.32 97.08 77.82
strongsort 68.05
(—)
76.19
(—)
80.76
(—)
79.80 97.31 80.27
deepocsort 67.95
(—)
75.83
(—)
80.54
(—)
79.51 97.94 79.59
bytetrack 67.68
(67.75)
78.04
(78.03)
79.16
(79.38)
67.93 97.25 76.90 33.97 33.72 39.74
hybridsort 67.31
(—)
74.09
(—)
78.87
(—)
81.14 98.07 81.88
ocsort 66.44
(66.44)
74.55
(74.55)
77.90
(77.90)
76.34 96.60 75.64 28.57 26.19 29.95
sfsort 62.65
(62.66)
76.87
(76.74)
69.18
(69.18)
75.73 98.39 72.99 44.19 44.27 46.25

Py (C++); unavailable. See Benchmark Workflows.

Related guides:

Minimal Usage

CLI:

boxmot track --detector yolov8n --reid osnet_x0_25_msmt17 --tracker botsort --source video.mp4 --save

Python:

from boxmot import Boxmot

run = Boxmot(detector="yolov8n", reid="osnet_x0_25_msmt17", tracker="botsort").track(
    source="video.mp4",
    save=True,
)
print(run)

Contributing

Start with CONTRIBUTING.md and the contributor docs.

Contributors

BoxMOT contributors

Support and Citation

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boxmot-20.0.0.tar.gz (26.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boxmot-20.0.0-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file boxmot-20.0.0.tar.gz.

File metadata

  • Download URL: boxmot-20.0.0.tar.gz
  • Upload date:
  • Size: 26.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for boxmot-20.0.0.tar.gz
Algorithm Hash digest
SHA256 1e2693c35148dc95fa8260768035ce8fd2ef7c58d889fda9eaf4922f61706fc6
MD5 e889139eac745d47c0c357cfbd7ee9b6
BLAKE2b-256 f6c6d6117b263dc37c23e5279656e41bfbdf9e230b6bdafffc52dc3584ed3341

See more details on using hashes here.

File details

Details for the file boxmot-20.0.0-py3-none-any.whl.

File metadata

  • Download URL: boxmot-20.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for boxmot-20.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64eb5a119bb86d6467edc257f84e4d4361fc089467cdeb6c5331666ff63a25f4
MD5 959381b42eff509c7a9f83cf1eadf468
BLAKE2b-256 7a54701b91b52ad388bc4cc05eb66f72cadceebf4832737f13cf2529a58a01eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page