Highlights
- Mask visualization — tracking results now render segmentation masks when available
- HuggingFace CLI downloads — model and dataset downloads switched to the
hfCLI for faster, more reliable fetches - Cleaner tracking UI — streamlined Rich terminal output with more discrete, focused panels
- Memory leak fix — BotSort's
removed_strackslist could grow without bound; now capped viadeque(maxlen=100)
New Features
| Area | Change |
|---|---|
| Segmentation | Show masks overlay during tracking when using a seg model |
| Downloads | Use huggingface_hub CLI (hf download) for weights and datasets |
| Track UI | More discrete Rich panels — removed verbose parameter dumps |
| Logo | Updated project logo (higher resolution) |
Bug Fixes
- BotSort memory growth —
removed_stracksconverted to a boundeddeque(maxlen=100)to prevent unbounded RAM usage on long sequences - Benchmark CI — fixed flaky workflow; added dedicated HF dataset download job with caching
Internal Improvements
- Tuner hardening — config parsing validates YAML structure and prints available trackers on
FileNotFoundError; malformed param entries are warned and skipped instead of crashing - Rich UI consolidation — shared formatters moved to
boxmot/utils/rich/__init__.py; eval/tune/track reporters simplified - Evaluator simplification — ~100 lines of dead code removed
- Timing module — removed legacy accumulation branches; cleaner cached-detection display ("loaded from cache (0 ms)")
- Dataset loader — simplified
_collect_seq_infowith direct fallback toseqinfo.ini - CI benchmark — single
ubuntu-latestrunner with HF cache layer instead of full os×python matrix
Dependencies
uv.lockrefreshedpyproject.tomlminor version bumps
Upgrade Notes
If you rely on raw timing dictionaries with keys preprocess / inference / postprocess, switch to detector_preprocess / detector_process / detector_postprocess. Dictionary access via the old names still works for reads (via _AliasedTotals) but will be removed in a future release.