Skip to main content

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

Project description

BoxMOT logo

Pluggable Python and C++ multi-object tracking modules for axis-aligned and oriented bounding box detections from any model.

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

mikel-brostrom%2Fboxmot | Trendshift


DocsInstallationModesAPI ReferenceTrackersContributing

BoxMOT demo

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 Status 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 yolo26n --reid lmbn_n_duke --tracker occluboost --source 0 --save --show

Python:

import numpy as np
from boxmot.trackers import OccluBoost

tracker = OccluBoost()

# dets: (N, 6) array with [x1, y1, x2, y2, conf, cls] per detection
dets = np.array([[100, 200, 300, 400, 0.9, 0]], dtype=np.float32)
img = np.zeros((480, 640, 3), dtype=np.uint8)  # current frame

# tracks: (M, 8) array with [x1, y1, x2, y2, id, conf, cls, det_ind] per track
tracks = tracker.update(dets, img)
print(tracks)

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-22.0.0.tar.gz (25.7 MB view details)

Uploaded Source

Built Distribution

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

boxmot-22.0.0-py3-none-any.whl (854.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: boxmot-22.0.0.tar.gz
  • Upload date:
  • Size: 25.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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-22.0.0.tar.gz
Algorithm Hash digest
SHA256 21af6871025f9be42296d48684331592496a24cc8bd532fd9d54e847a834e35c
MD5 ddac143867ce24b3810065e054b0ab91
BLAKE2b-256 edfff7470a09b6683cb09ad1d8ed35ba03cc4e7a318b4da3bbf840cf85f59d18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: boxmot-22.0.0-py3-none-any.whl
  • Upload date:
  • Size: 854.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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-22.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 545e8a0fb33e3bf9b5da0a8a4bea02e01ed50f60dd125742fc3eadb53011b220
MD5 cad2bcb3dfc6342eff348830bb545fe0
BLAKE2b-256 8e904e5e08d477058b0132acb2fffdc5bcd472fc15ba3938dcccae0231dc70a1

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