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, 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, 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.9 through 3.12.

pip install boxmot
boxmot --help

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

Benchmark Results (MOT17 ablation split)

Tracker Python C++
HOTA MOTA IDF1 OBB HOTA MOTA IDF1 OBB
occluboost 70.47 78.32 84.14 70.48 78.31 84.14
botsort 69.44 78.24 81.94 69.43 78.26 82.00
boosttrack 69.25 75.91 83.20
strongsort 68.05 76.19 80.76
deepocsort 67.95 75.83 80.54
bytetrack 67.68 78.04 79.16 67.75 78.03 79.38
hybridsort 67.31 74.09 78.87
ocsort 66.44 74.55 77.90 66.44 74.55 77.90
sfsort 62.65 76.87 69.18 62.66 76.74 69.18

Evaluation was run on the second half of the MOT17 training set because the validation split is not public and the ablation detector was trained on the first half. Results used pre-generated detections and embeddings with each tracker configured from its default repository settings. Native cpp cells use --tracker-backend cpp for the implemented replay backends.

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-19.0.0.tar.gz (9.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-19.0.0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: boxmot-19.0.0.tar.gz
  • Upload date:
  • Size: 9.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","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-19.0.0.tar.gz
Algorithm Hash digest
SHA256 c56be3a0fd2bac0a8075a6b68775ec9e809d8b1a51282c64655c029b96e8cce7
MD5 2f6f6a1e0bab860738a7a4e7f384600c
BLAKE2b-256 e161a761321f44dd50f03991674952f6c02cf1bf6aec17897ecf19ca12d51c5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: boxmot-19.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","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-19.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6545da9d1a1d26a470362526c7f2fea2b3b2d3ac329254099d58ced22e4bf487
MD5 b89d864accb3492bcdffd79f65570005
BLAKE2b-256 dafa29ed65415fa3d5fce346227dbf13c7891cae3d33e1d9471a37a5e3fd2c3e

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