openvinotoolkit / openvinotoolkit/open_model_zoo
Bug causes degraded performance with latest version of multi_camera_multi_target_tracking_demo
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.4k
- Forks
- 1.4k
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 4
Description
We have recently upgraded our OpenVino version from 2021.2 to 2022.2. We are running the Python demo of multi_camera_multi_target_tracking_demo installed using https://pypi.org/project/openvino-dev/ Ubuntu* 20.04 long-term support (LTS), using WSL
Our command line: python multi_camera_multi_target_tracking_demo.py -i ./Data/filename.mp4 --config ./configs/person.py -m "./intel/person-detection-retail-0013/FP32/person-detection-retail-0013.xml" --m_reid "./intel/person-reidentification-retail-0286/FP32/person-reidentification-retail-0286.xml"
We observe the following:
- What is most worrying is that the performance of the tracker is degraded - mostly by getting less tracks since many more tracks are merged. After investigating this issue - I found a problematic area but I haven't managed to figure it out. In the file mc_tracker in function _compute_detections_assignment_cost line 526 the cluster distance is calculated : reid_dist_clust = clusters_vec_distance(self.tracks[idx].f_clust, features[j]) I have found that this value (in the latest version) is sometimes 0.0. This I found is caused by a cluster being updated to the exact embedding of the current frame (therefore obtaining an exact 0.0 distance) but I can't figure out how the cluster can be updated in that same frame.
- If we run the command line we get the message:
FATAL: exception not rethrown
Aborted
If we add "--history_file "./Data/filename_b.json" this message disappears.
This is really important to us since we created a solution based on this code base.
Adding our test clip:
https://user-images.githubusercontent.com/68502115/200169839-42426075-04b2-48b2-9e2e-f1bbdfb8725d.mp4
Thanks
Zvi
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Python multi_camera_multi_target_tracking_demo and inspect mc_tracker, especially _compute_detections_assignment_cost around line 526 and the clusters_vec_distance call. Reproduce the tracking degradation with the provided command and clip, then compare runs with and without --history_file. Done means explaining and correcting the merged-track behavior and the FATAL abort, with both reproductions no longer occurring.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-vision
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100