-
Notifications
You must be signed in to change notification settings - Fork 258
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 counts as a "SWITCH"? #160
Comments
@jvlmdr could you comment on this? |
Hi @alckasoc !
The metrics enforce that the correspondence is one-to-one per frame: each ground-truth track can match to at most one predicted track, and vice versa. This is done by solving a linear assignment problem in each frame (after continuing any existing feasible correspondence). In your example above, this prevents both See the MOTA paper for more detail ("Evaluating multiple object tracking performance: the CLEAR MOT metrics"). |
Thank you. I see now. I have another example that I was a little confused about. In the above image, the first update matches Thanks. |
MOTA assumes that there is a binary overlap criterion. The In the second example you've shown, the correspondence from the first frame can be continued into the second frame since all of the elements of the distance matrix are not-nan. For an example of how the distance matrix is computed using a threshold: py-motmetrics/motmetrics/distances.py Line 123 in 1ad168c
|
Are you happy for me to close this issue? Thanks! |
Thanks @jvlmdr :) |
Adding on to #159, I'm wondering what counts as a "SWITCH".
I looked at the docstring for the code here, but it still doesn't seem right. If I'm reading this correctly, then the following scenario would be a switch:
Instance
i
in framet
is assigned to track_id0
. At framet + 1
, instancei
is assigned to track_id1
.Another possibility for a switch (or actually 2 switches) is if instance
i
and instancej
at framet
are assigned to track_ids0
and1
, respectively. And at framet + 1
, instancei
is now assigned to1
, and instancej
is now assigned to0
.Figure 1. A possible switch.
For the image above, I would think it would log the event as a switch because the first update would map
Oid=0
toHid=0
andOid=1
toHid=1
. Then, the 2nd update will mapOid=0
toHid=1
andOid=0
toHid=1
(which will probably result in some error). BecauseOid=0
is now mapped toHid-1
instead ofHid=0
, shouldn't this be logged as a switch?Thanks.
The text was updated successfully, but these errors were encountered: