-
Notifications
You must be signed in to change notification settings - Fork 327
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
Ospa Metric #67
Comments
Hi, first of all sorry for the late response! Without having re-read the OSPA paper and just by looking at the code, I think the reason for creating a square cost matrix is that by default, many solvers for the Hungarian problem only support square input matrices. It seems that pymunkres in the latest version also supports solving rectangular cost matrices. In that case, according to their documentation, one shall pad it with 0 values -- instead, we use MAX_COST. However, I believe that does not really make a difference: We will get a solution with at most Remember that the following loop only iterates over the resulting assignments: Line 135 in bcde8b7
I believe also the OSPA paper recommends to use a square matrix in practice. See p.5, "C. computation of the OSPA metric":
I think that's exactly what we are doing. |
Hello! Thank you for your reply. I get your point. After "re-reading" the parts you highlighted in your code and the article, I still believe their is an issue. In particular, when you say:
If To put it under another perspective, in the original paper they do pad the
So with the MAX_COST padding, in your code line 160, Line 160 in bcde8b7
|
Hi!
I want to thank you with the work you did coding all that stuf but I am missing something with your OSPA metric.
I read the original paper:
http://www.dominic.schuhmacher.name/papers/ospa.pdf
If I got it right, I get an
m*n
distance matrix from their algorithm. Why do you compute an*n
distance matrix with a "c=10" padding? Even in the original implementation you cited (https://github.com/cheesinglee/cuda-PHDSLAM/blob/master/python/ospa.py), they use am*n
matrix without padding.In the end, with p=1, your code behaves as if you where adding
(n-m)*c/n
to your OSPA metric even though missed detections or false alarms are already taken into account by the second term of the OSPA metric.Could you please either enlighten me or correct this behavior if I am not mistaken?
Once again, I thank you deeply for the efforts you put in your code.
Best regards,
Louis
The text was updated successfully, but these errors were encountered: