-
Notifications
You must be signed in to change notification settings - Fork 1
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
MOTA revisited #181
MOTA revisited #181
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #181 +/- ##
==========================================
+ Coverage 39.52% 46.16% +6.64%
==========================================
Files 24 24
Lines 1417 1460 +43
==========================================
+ Hits 560 674 +114
+ Misses 857 786 -71 ☔ View full report in Codecov by Sentry. |
…re/crabs-exploration into nikkna/id_switches
hey @nikk-nikaznan, I was just having a look at this and I get a different result:
For me this returns I think this is not intended right? Otherwise whenever a crab appears in view (exiting a burrow for example) it will be counted as an ID switch. |
I think there is some confusion, because as I understand it from the HOTA paper we only check ID switches for the true positives. So we shouldn't be filtering out missed detections or false negatives inside this function, right? I got this from sections 3 and 4.1 (included). I recommend it, it is very well explained. I think we could rewrite the |
I think it would be something like follows:
Let me know thoughts, happy to chat offline if you prefer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the count_identity_switches
is not behaving as expected 🤔
I explained in the comments above ☝️
Maybe a good one to pair program? Let me know thoughts.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks Nik! This is great 🌟
I reviewed the rest. Apologies that it's a big one 🙏
The bigger points of this PR are:
- suggested reimplementation of
count_identity_switches
function. tracked_list
should be a dictionary (followinggt_data
) rather than a list (otherwise if frames are not valid Python indices it will break).- dictionaries that map from ground truth ID to predicted ID to include missed detections.
- suggestions to rearrange and remove duplicates in the parametrisation of the ID switches test.
Re the first point, I think you are right and with the latest fixes the suggested algorithm doesn't cover any additional cases compared to the current one (contrary to what we thought initially).
However, I think it is a bit easier to read and conceptualise, and it allows us to structure the cases to test. Plus if in the future we want to cover that case of reID after a missed detection gap, I think the suggested algorithm would make it easier.
Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks Nik, it looks great!
Just a few frame_idx
to frame_number
to avoid confusion when it the frame number is not a valid index to a list / array.
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
Co-authored-by: sfmig <[email protected]> Signed-off-by: nikk-nikaznan <[email protected]>
I am trying to add more definition to what we consider as ID switches. This PR consider ID switch as a crab been assigned a new ID (re-ID)
prev_id = [1, 2, 3]
andcurrent_id = [1, 2, 4]
then_switches =2
. The new approach will be 1.After some help from @sfmig and @samcunliffe, this is currently what we have:
We create a dict to map the ground_truth ID to tracked ID in every frame.
count_identity_switches
we haveprev_frame_id_map
andcurrent_frame_id_map
.Some changes for the test -- feel free to play around with the value in the test to see any other possibility.