cheind / py-motmetrics

:bar_chart: Benchmark multiple object trackers (MOT) in Python
MIT License
1.37k stars 259 forks source link

Why algorithm prefers to assign a higher cost #108

Closed OrhanAgaOglu closed 4 years ago

OrhanAgaOglu commented 4 years ago

Can somebody help me with the readme file? I couldn't get why algorithm prefers a higher cost In the readme file the part that gives an example about id switch. Here is the copy of that part: frameid = acc.update( [1, 2], [1, 3], [ [0.6, 0.2], [0.1, 0.6] ] ) print(acc.mot_events.loc[frameid]) """ Type OId HId D Event 4 MATCH 1 1 0.6 5 SWITCH 2 3 0.6 """ Why the event number 4 matches a higerher cost and it ends up as a switch in the event number 5.

jvlmdr commented 4 years ago

The following line in the readme explains what is happening here:

Object 2 is now tracked by hypothesis 3 leading to a track switch. Note, although a pairing (1, 3) with cost less than 0.6 is possible, the algorithm prefers prefers to continue track assignments from past frames which is a property of MOT metrics.

This follows the specification from the original CLEAR MOT paper (https://link.springer.com/content/pdf/10.1155/2008/246309.pdf section 2.1.3)

cheind commented 4 years ago

I close this problem as solved. If not, feel free to reopen.