IDF1, IDR and IDP greater than 100% after post-processing tracks using re-id methods
See original GitHub issueI have a bunch of objects that I am tracking using the Deep SORT algorithm, that produce decent results when evaluated using this library. However, as in all multi-object tracking applications, one ground truth identity (oid
) usually ends up being assigned multiple identities in testing (hid
). I am using re-identification methods to try to correct some of the mistakes made by Deep SORT
Fundamentally, in an ideal scenario, if oid 1, is assigned hids 6, 8, 32 and 35 through the time it is tracked, the re-identification system would recognise that hids 8, 32 and 35 are the same as 6 and subsequently set them all to 6 as that was the first hid that was assigned. So something that looks like this as the input
frame id x y width height conf
1 6 1466.00 578.00 195.00 390.00 1
2 8 1475.00 2.00 222.00 375.00 1
3 32 700.48 580.39 276.07 453.66 1
4 35 770.00 5.00 378.00 99.00 1
would be modified to look like this
frame id x y width height conf
1 6 1466.00 578.00 195.00 390.00 1
2 6 1475.00 2.00 222.00 375.00 1
3 6 700.48 580.39 276.07 453.66 1
4 6 770.00 5.00 378.00 99.00 1
So the only thing that is modified is the hid, everything else is left the same.
When I process the original, I get the results I would expect, however when I process the modified version, my IDF1, IDR and IDP are all above 100%.
I’ve traced this problem back to idfn(df, id_global_assignment)
in metrics.py
, which returns a negative number (which I reckon is the problem, but I’m not sure), however I can’t figure out what could be causing this in relation to the input I’m providing.
Issue Analytics
- State:
- Created 4 years ago
- Comments:9 (4 by maintainers)
Top GitHub Comments
thanks for your report. Would you mind creating a small unit-test case, i.e. strip your data as far as you can to recreate the issue. Then share the files, so that I could have a look.
Best, Christoph
I think it might be down to there being duplicate IDs in single frames. EDIT: It was.