
Appearance re-identification over a video Image and a tracker's [Track] stream. Each track's box is cropped, OSNet-embedded, matched against a per-identity bank, and its volatile id is rewritten to a stable global id. The sink resolves the output arm.
Short-term tracking handed off to stable global ids, then summarised.
Stable-identity counts pushed over MQTT.
[Track] (box + trajectory unchanged, id rewritten to the global id), [TrackedObject] for id-plus-confidence, [BoundingBox] for the boxes only, or [UInt64] for the global-id set. Every arm derives from the same per-track records, so the arms agree id-for-id.
model slot and must match the backbone named by reid_model_name; the architecture is built first and the file is loaded into it, so a mismatch fails at startup. The backbone and offline loader are a vendored subset of KaiyangZhou/deep-person-reid; no weights are ever downloaded at runtime.
forget_after evicts a track after that many frames without an observation, bounding memory.
sim_base toward sim_min with time since last seen, so a longer absence is matched more leniently; raise sim_min to forbid loose re-entries at the cost of fragmenting identities across long gaps.
max_gap_frames, base_radius_px and radius_growth_px gate candidates by a motion-predicted search window that widens with the gap; an object that reappears far from its predicted position outside this window is treated as new even if its appearance matches.
device `cuda` is strongly preferred; CPU inference is too slow for real-time streams.
Automated release