Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What does match_thresh mean? #374

Open
cxy86121 opened this issue Dec 11, 2023 · 1 comment
Open

What does match_thresh mean? #374

cxy86121 opened this issue Dec 11, 2023 · 1 comment

Comments

@cxy86121
Copy link

What does match_thresh mean in a member variable in BYTETracker class? The larger the setting, the more stable the tracking and the less prone to ID change.

@leeping-ng
Copy link

@cxy86121 if you trace this variable starting from byte_tracker.py it ends up being called by lap.lapjv() in matching.py as the cost_limit argument.

Someone described the meaning of cost_limit on the lap repo as:

Values larger than cost_limit are disregarded. Which means that there will be unmatched rows.

I'm not 100% sure, but I think this is consistent with what you observed. My guess:

  • Low match_thresh - more stringent due to low cost threshold, therefore less detections assigned to tracks. New tracks may be assigned to these detections when they should have been assigned to existing tracks -> ID switching gets worse.
  • High match_thresh - the opposite, tracking improves. Perhaps the downside of this is more computational time for the linear assignment algorithm, but if we're using it with object detection anyway this shouldn't matter too much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants