What does match_thresh mean?
cxy86121 opened this issue · 1 comments
cxy86121 commented
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 commented
@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