{"id":27621,"library":"boxmot","title":"BoxMOT","description":"BoxMOT provides pluggable state-of-the-art multi-object tracking modules for segmentation, object detection, and pose estimation models. Current version 18.0.0 requires Python <3.13,>=3.9 and follows a fast release cadence.","status":"active","version":"18.0.0","language":"python","source_language":"en","source_url":"https://github.com/mikel-brostrom/boxmot","tags":["multi-object-tracking","yolo","computer-vision","deep-learning"],"install":[{"cmd":"pip install boxmot","lang":"bash","label":"Install from PyPI"},{"cmd":"pip install boxmot[ultralytics]","lang":"bash","label":"Install with Ultralytics support"}],"dependencies":[{"reason":"Required for YOLO detection models integration","package":"ultralytics","optional":true},{"reason":"Linear assignment solver for tracking","package":"lap","optional":false}],"imports":[{"note":"In older versions trackers were under boxmot.trackers; v18 uses top-level exports.","wrong":"from boxmot.trackers import BoTSORT","symbol":"BoTSORT","correct":"from boxmot import BoTSORT"},{"note":"Direct import from boxmot is the correct modern pattern.","wrong":"from boxmot.trackers.strongsort import StrongSORT","symbol":"StrongSORT","correct":"from boxmot import StrongSORT"}],"quickstart":{"code":"from boxmot import BoTSORT\nimport numpy as np\n\n# Initialize tracker\ntracker = BoTSORT()\n\n# Simulate detections: [x1, y1, x2, y2, conf, class_id]\ndetections = np.array([[100, 100, 200, 200, 0.9, 0]])\n\n# Update with a dummy image (for embeddings, pass real image if needed)\nresults = tracker.update(detections, np.zeros((480, 640, 3), dtype=np.uint8))\nprint(results)","lang":"python","description":"Initialize BoTSORT tracker and update with dummy detections."},"warnings":[{"fix":"Use `from boxmot import BoTSORT` instead of `from boxmot.trackers import BoTSORT`.","message":"In version 18.0.0, the import paths changed: trackers are now directly under boxmot, not boxmot.trackers.","severity":"breaking","affected_versions":">=18.0.0"},{"fix":"Call tracker.update(detections, image) where image is a numpy array (H,W,3). Review return structure.","message":"The signature of the update method changed. The method now requires a second argument (image) for features, and the return format may differ.","severity":"breaking","affected_versions":">=18.0.0"},{"fix":"Pass a configuration dictionary to the tracker constructor, e.g., BoTSORT(config={...}).","message":"The creation of a tracker without explicit configuration will use defaults; future versions may require config.","severity":"deprecated","affected_versions":">=17.0.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Change import to `from boxmot import BoTSORT`.","cause":"Import path changed in v18; old code uses boxmot.trackers submodule.","error":"ModuleNotFoundError: No module named 'boxmot.trackers'"},{"fix":"Pass an image array as second argument: `tracker.update(detections, image)`.","cause":"The update method now requires an image argument for feature computation.","error":"TypeError: update() missing 1 required positional argument: 'img'"},{"fix":"Ensure detections are formatted as 2D array with 6 columns per detection.","cause":"The detections array must have shape (N,6) with columns (x1,y1,x2,y2,conf,class_id).","error":"ValueError: detections array shape mismatch; expected (N,6)"},{"fix":"Instantiate tracker classes directly: `from boxmot import BoTSORT; tracker = BoTSORT()`.","cause":"The create_tracker helper function was removed in v18.","error":"ImportError: cannot import name 'create_tracker' from 'boxmot'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}