shenh10 / mot_evaluation

A python implementation of Multiple Object Tracking(MOT) evaluation toolkit(2D)
52 stars 21 forks source link

Confusion on mme array #4

Open EddieEduardo opened 4 years ago

EddieEduardo commented 4 years ago

I am confused about the line152 in utils/measurements.py

"if ct in gt_inds[t - 1].keys() and last_non_empty != -1:"

Why do I think it would be properer if use 'or' rather than 'and' after reading

the following lines' codes?

Thanks for replying.

shenh10 commented 4 years ago

As far as I remember, the line means "If the estimated id is different from the latest estimated id w.r.t. the same ground-truth id, and it is not the first time being detected, count it as an id switch "

EddieEduardo commented 4 years ago

Thanks very much for your reply.

But now I'm confused the results of MOTA/MOTAL are negative (My own data, but I've formatted them into the same format as MOT16,

GT: frame number, ID, coordinate x(top left), coordinate y(top left), width, height, confidence, class, visibility

RES: frame number, ID, coordinate x(top left), coordinate y(top left), width, height, -1, -1, -1, -1)

But the result, for example: IDF1 IDP IDR | Rcll Prcn FAR | GT MT PT ML | FP FN IDs FM | MOTA MOTP MOTAL 0.0 0.0 0.0 | 0.0 0.0 3.16 | 11 0 0 11 | 1709 5940 0 0 | -28.8 nan -28.8

EddieEduardo commented 4 years ago

But I still think if just make a judgement on whether id (ct) shows up for the first time, **"if

last_non_empty != -1:"** is enough.

ct in gt_inds[t - 1].keys() indicates id (ct) does exist in the last frame in gt file. Why is it supposed

to exist in the last frame ?

Thanks for reply.

123mw123 commented 4 years ago

I am also getting same error. why MOTA is negative?

shenh10 commented 4 years ago

I am also getting same error. why MOTA is negative?

as MOTA is defined,

MOTA = 1 - (FP + FN + IDS)/GT,

It's normal that MOTA can be negative.

Imagine a case when nothing is detected, FN = GT, and FP > 0, then

1 - FN/GT - (FN + IDS)/GT = - (FN + IDS)/GT < 0