
Detector-agnostic multi-object tracker over the BoxMOT tracker zoo (appearance/ReID or motion-only). Links per-frame [BoundingBox] detections into stable track ids. Track-centric resolved oneof: [Track] (default), tracked objects, boxes, or ids.
Detections are tracked into stable identities, then collapsed into a per-track summary.
Tracked boxes and ids are rendered over the frame for a live operator view.
algorithm exposes only its own subset of the knobs below; a knob whose description does not name the selected algorithm has no effect. Confirmation delay and track survival are governed by per-algorithm thresholds (e.g. min_hits/max_age on the SORT-family trackers).
Image and [BoundingBox] inputs must come from the same frame; mismatched timing degrades both motion and appearance association.
[Track] for id + current box + center trajectory (the default arm), [TrackedObject] for id + confidence, [BoundingBox] for id-less boxes, or [UInt64] for the bare id set. Each fire emits one record per ACTIVE track and every arm derives from that same per-frame track list, so counts and ids stay consistent across arms. The [TrackedSegmentation] arm is NOT served: the BoxMOT bbox trackers associate boxes only and carry no mask, so selecting it fails fast at startup pointing at a mask-capable tracker (e.g. track_objects_sam_3).
[Track] arm fills each track's `trajectory` with a bounded history (last 64) of box-center points, oldest first, accumulated per track id across frames in a per-id deque (BoxMOT exposes no uniform per-track history across its trackers, so it is maintained here). The history resets on tracker reset and an id that disappears drops its history. The current box carries the matched detection's real class id and confidence, so `Track.box.class` is meaningful downstream.
Automated release