Skip to content
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

Multi Tracking Multi Camera with Re-Identification starts fast and slows down and quits #2734

Open
hardik0 opened this issue Sep 8, 2021 · 5 comments

Comments

@hardik0
Copy link

hardik0 commented Sep 8, 2021

Hey @sovrasov,

I am running the demo: https://github.com/openvinotoolkit/open_model_zoo/tree/master/demos/multi_camera_multi_target_tracking_demo/python

I have run this on a core i5 with Nvidia GPU and 8 Gigs Ram as well as on a core i9 with 16 Gigs Ram with the time_window set to 1 in the configs/person.pyfile to ensure REID.

The system works great but slows to an absolute crawl within 5 minutes, like 1 frame per 10 seconds at best. The GPU/CPU and memory are not exploited, they are not effected or at a maximum (under 60% utilization) but still the system crawls.

Initially it starts off with 20 or 30 (or more) frames a second but then just bottoms out.

Utilizing the :
FP16-INT8\person-reidentification-retail-0277 (for reidentification)

and

FP16-INT8\person-detection-retail-0013.xml (for detection)

Have tried both FP16 and FP32.

When the config is set to time_window=10 then it flies but reidentification is at 10% or 20% accuracy at best, most people are not reidentified, when set to 1 second, all are identified but system crawls to a grinding halt.

Any help would be appreciated.

Thanks

@ivikhrev
Copy link

ivikhrev commented Sep 9, 2021

The tracker itself seems to work fine. The problem occurs due to accumaltion of tracks, the more objects we have to track, the more it slows down. You should try to reduce track_clear_thresh in configs/person.py. Right now it is set to 3000, so old tracks are not cleared and get accumulated. Try to set it to 300 or less, then atleast demo shouldn't slow down so much.

@duggydoo
Copy link

duggydoo commented Sep 9, 2021

Also encountering this phenomenon and have been searching for answers.
In my case I need to set the track_clear_thresh to even higher (9000) in order to reid people who entered the scene over an hour or two ago. Is there a solution for this?
Another model rather than the person-reidentification-retail-0277 or person-reidentification-retail-0288?
Setting Reid only for a selected (entrance camera) rather than all cameras?
Would an NCS2 stick solve this issue?
Or if reid didnt have to happen in real time to "reprocess" after hours?

Any suggestions?

@vladimir-dudnik
Copy link
Contributor

@duggydoo the problem is not in performance of reidentification model. The reid model just return numeric descriptor for object, which tracker then have to compare against all previously accumulated descriptors to decide if this is the same object or new one. So, more object's descriptors you keep in history - longer processing of each subsequent frame.

@duggydoo
Copy link

duggydoo commented Sep 9, 2021

Understood, thank you. So limiting to 300 seconds for example would decrease Reid for people leaving after 300 seconds. That is, if someone walked in got a Reid ID, then left 10 minutes later they would never receive the same Reid number as they are outside of the 300 seconds threshold.
And there is no solution (hardware/software/NCS2 stick) that would solve for this?

@vladimir-dudnik
Copy link
Contributor

@duggydoo tracking for big amount of objects is compute heavy task. You should be easily able to track few objects for hours, but if the goal is to identify each object among thousands which has been seen by camera, you better look for targeted optimized application rather then simple demo which just show how to use OpenVINO for inference in tasks similar to tracking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants