
Hungarian-algorithm multi-object tracker over per-frame [BoundingBox] or [Segmentation]. Class-aware gating, a tentative/confirmed/coasting lifecycle, and motion prediction give stable ids through occlusions. Emits one active-track list per frame, not per box.
Tracked detections with trajectories into zone-transition logic.
Counted, tracked detection summarised over MQTT.
Instance-mask tracking - segmentations in, mask-bearing tracks out.
Re-id chain into PPE summariser.
[TrackedSegmentation] output arm is only selectable when the input is [Segmentation]; the carried mask comes from the input. With [BoundingBox] input it cannot be resolved and the worker errors at startup.[Track] arm is the only one that fills each track's ``trajectory``; it holds the track's own past centre points, oldest first, capped at history_size.min_hits consecutive frames, then confirmed and emitted. A confirmed track unmatched for up to max_age frames is kept and emitted with its predicted (occlusion-bridged) box; after that it is dropped and its id is never reused.max_match_distance is the key quality lever. Lower it to forbid loose links (fewer id swaps, more new tracks); raise it to tolerate fast motion / low overlap.class_agnostic false keeps each track on its own class id; cross-class detections never steal a track. Set true only when the upstream class id is unreliable.occlusion_aspect is OFF by default. Enable it only for upright-person tracking; it forces every box to occlusion_aspect_ratio and distorts other classes.Rebuild against the current pipeml