-
Notifications
You must be signed in to change notification settings - Fork 286
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
Tracker improvements #77
Comments
Other improvement would be to add this idea of "tracker accuracy" , right now it seems everything is well tracked but it would be important to have a way to see which part of the frame is well tracked and do not have much id-reassigments. Data wise, naive algo idea is that tracker should divide the frame is several areas and count how much reassigments are happening in each one of them and then tag each bbox with this "accuracy" score when they are in this part of the screen. Visually @b-g had this idea of "blurry" borders .. would love to see some example of this ? |
Another bug found is on stationary object (traffic jam), to make sure that they aren't counted several time. If they are id reassign I think we can't do much but to make sure we at least have a rule in the counter that doesn't count the same id on the same counting line. It's more an improvement to do to the counting algorithm and not the tracker |
I'm also looking into integrating some ideas of an iteration of the original IOU Tracker paper, the V-IOU: Extending IOU Based Multi-Object Tracking by Visual Information , which formalize some of the things we are already doing with node-moving-things-tracker , but also add some new idea, more here: bochinski/iou-tracker#7 |
I have made two improvements: (cc @b-g )
|
cc @b-g , some work on the idea of tracker accuracy: https://www.youtube.com/watch?v=me4_f5DwTUE Note for future self picking up work on this:
|
@tdurand Thanks! I think we should discuss this in our next call. Basically from my own projects I don't have good experiences with splitting one big thing into tiles. Normally you (or at least me) never get it right in terms of representing with the tiles the problem accurately. Hence what about something more relative e.g. closest neighbors to the tracked object/host? |
Good points ! let's discuss this on friday... |
|
@b-g , worked on this idea of a heatmap today, let me know what you think, here is a demo, I'm quite happy with the quick prototype: If we go for something like this, we would need those improvements:
|
Hi @tdurand! Many thanks for the neat prototype! I agree! I think it is already working in principle and it would be great feature!
Yes! And I would rather vote on a short time window seconds and not minutes.
What about using an additional small canvas element of the same aspect ratio to draw the detection errors, and not a full blown heatmap lib? Something like:
Yes. Now maybe is the time to introduce a generic ℹ️ or ⍰ element? Also: |
|
cc @b-g , some progress update screencast: And more:
TODO behind the hoods:
|
Hi @tdurand, Sorry I'm a bit behind with everything due to my NY trip. Sorry! Basically the heatmap feature is all great! I would just change the color gradient to something a lot simpler and that visualizes better what is actually going on: e.g. just two steps orange and red, as every cluster stands already for "bad" tracking areas. I would entirely try to avoid anything "green" as the heatmap just accumulate bad tracking areas. This is should imo also be added to the hint modal: transparent = good tracking, heatmap = bad tracking areas |
Good points will do ! and no problem 😉 |
Ok feature tracker accuracy with heatmap merged |
One good thing of having this nice live view + path view is that we can see all the errors of the tracker 😉, I'll list them in this issue and let's see if we can improve: https://github.com/tdurand/node-moving-things-tracker
First one is something I noticed since a long time but didn't create an issue to track it yet.
Ghost re-targeting on the other lane:
Video: https://youtu.be/vFde4ZqP7Ao
"Frame by frame"
As the bounding box of the left car going down has some area overlap area with the new bbox of the car appearing on the opposite lane, it is retargeted and keep "living" as the same ID.
Potential solutions:
add a mode in the tracker that prevent abrupt change of directions of the velocity vector , and makes a new ID in this case ... tricky to reason just on the next frame as a bounding box can seems to have changed direction on one frame just because YOLO isn't accurate... Would need to be computed over 3-4 frames , and this would still cause a wrong tracking for some frame before re-assigning a new ID.
this generally happens at the edges of the frames because YOLO in this case stretches the bbox as the car is partially occluded... Try to add a mode that add a rule which consider that if the velocity vector is pointing toward leaving the frame and is very close the border, just stop the tracking and ignore the bboxes there.... This might be a better solution.
The text was updated successfully, but these errors were encountered: