mikel-brostrom/boxmot

BoxMOT: Pluggable Python and C++ SOTA multi-object tracking modules with support for axis-aligned and oriented bounding boxes

What it solves

BoxMOT provides a unified interface for multi-object tracking (MOT) workflows. It eliminates the need to rebuild the entire detector and tracker stack for every experiment, allowing users to easily swap trackers and evaluate them against benchmarks using a single CLI and Python API.

How it works

The project implements a pluggable architecture where trackers can be swapped while sharing the same detector and ReID (re-identification) plumbing. It supports both axis-aligned bounding boxes (AABB) and oriented bounding boxes (OBB), and provides both Python and native C++ implementations of trackers for production use.

Who it’s for

It is designed for researchers and developers working on computer vision tasks that require tracking multiple objects across video frames, specifically those needing a benchmark-oriented workflow for tuning and evaluation.

Highlights

  • Unified Interface: A single CLI and API for tracking, generating, evaluating, tuning, and training ReID models.
  • Swappable Trackers: Supports multiple modern trackers like OccluBoost, BoTSORT, ByteTrack, and others.
  • Dual Backend: Offers Python for flexibility and production-ready native C++ implementations for performance.
  • Broad Detection Support: Works with axis-aligned and oriented bounding box detections from any model.
  • Benchmark-Oriented: Includes tools for cached benchmark evaluation and research loops.