Skip to content

Release v21.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Jun 17:18
de459eb

Highlights

  • Mask visualization — tracking results now render segmentation masks when available
  • HuggingFace CLI downloads — model and dataset downloads switched to the hf CLI for faster, more reliable fetches
  • Cleaner tracking UI — streamlined Rich terminal output with more discrete, focused panels
  • Memory leak fix — BotSort's removed_stracks list could grow without bound; now capped via deque(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 growthremoved_stracks converted to a bounded deque(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_info with direct fallback to seqinfo.ini
  • CI benchmark — single ubuntu-latest runner with HF cache layer instead of full os×python matrix

Dependencies

  • uv.lock refreshed
  • pyproject.toml minor 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.