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, pluggable framework for multi-object tracking (MOT). It solves the problem of having to manually integrate different detectors, appearance encoders, and tracking algorithms, allowing users to easily swap components and evaluate their performance across various datasets.

How it works

The system uses a modular pipeline where independent components—detectors, segmentors, appearance-encoders, and trackers—are composed together. It supports both axis-aligned bounding boxes (AABB) and oriented bounding boxes (OBB). The framework provides a CLI for managing workflows like tracking, evaluation, and ReID training, and a Python API for embedding these components into larger applications. For production environments, it offers native C++ implementations of trackers to ensure high performance while maintaining the same metrics as the Python versions.

Who it’s for

It is designed for developers and researchers working on computer vision tasks that require tracking multiple objects across video frames, ranging from those building real-time applications to those conducting academic research on tracking algorithms.

Highlights

  • Pluggable Architecture: Easily swap detectors and trackers (e.g., BoTSORT, ByteTrack, OccluBoost).
  • Dual Bounding Box Support: Handles both standard axis-aligned and oriented bounding boxes.
  • C++ Backend: Optional production-ready C++ tracker implementations for increased speed.
  • Comprehensive Tooling: Built-in CLI for materializing datasets, evaluation, tuning, and ReID workflows.
  • Broad Compatibility: Supports various model formats including ONNX, OpenVINO, and TFLite.

Related

  • Project
  • Project
  • Project
  • Project
  • Project