Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) - Jetson Xavier AGX • DeepStream Version - 6.0 • JetPack Version (valid for Jetson only) - 4.6 • TensorRT Version - 8.5.2 • NVIDIA GPU Driver Version (valid for GPU only) • Issue Type( questions, new requirements, bugs) - Bug • How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing) • Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
We have a counting installation at a customer location. We are using the Peoplenet model, and DeepSort tracking with native deepstream models. See embedded gif for illustration of the line placement. We have some issues with the counting accuracy, which we compare to an IR-counter:
When there are many people entering the mall the NvDsAnalytics plugin counts approx. 10% more than the IR-counter, this is verified by manual counts. The line counting mode is strict, so my immediate assumption was that if anything the count should be lower, due to camera positioning and possible occlusions.
The biggest problem is ghost counts, on sundays when the mall is closed the plugin counts 40 people crossing the line, whereas the IR-counter only gets 1 person (janitor). This indicates that there are cases where the algorithm counts people passing by or something, even though there are no actual crossings.
Since the plugin isn’t open source we are considering making our own, as this is not at all accurate enough to be used in production, even when using native deepstream models.
Any tips as to how to debug this? We are considering moving the camera, but that still doesn’t explain how the system generates 40 non-occurring counts.
We can’t extract recordings of people other than ourselves, as this would breach with GDPR. Manual counts were done by us on-site without access to the video feed.
The ID of the person crossing is not the same every crossing. but this wouldn’t be the case anyway as the tracker is not performant enough to keep the same ID for a person after they leave to cameras view for minutes at a time (using deepsort with nativ deepstream models). All of the ghost crossings that we’ve seen in our system happen within one hour, and the IR counter only has 1 event. The IR-counter does not have the capability to ReID a person, so that the janitor entered and exited many times is highly unlikely. This is further strengthened by the fact that in times of high traffic the plugin is off by 10%.
about “Ghost counts”, first we need to check it is detection issue or NvDsAnalytics issue. do you mean that there is no people in the camera, but NvDsAnalytics gave a crossing record? did you check the source video with crossing timestamp? the crossing record should has a timestamp.
In Norway where we’re located our constitution-day was 17th of May. This means the mall we have the solution installed in is closed, meaning no people will cross the line.
The 17th of May har parades going down the main streets of every city in the country, including the one where the solution is installed. The doors were locked (verified by mall staff), and the IR counter has 0 in its count. Our system with the NvDsAnalytics plugin has a whopping 3451 persons crossing the line, which is impossible given the circumstances. This is not to say that there aren’t detections, as the camera has view of the street as seen in the GIF from my first post.
We are using all Nvidia base models, and of course no changes to the line count implementation as it is closed source.
There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks
the configuration is normal. it is similar to opt\nvidia\deepstream\deepstream-6.2\sources\apps\sample_apps\deepstream-nvdsanalytics-test\config_nvdsanalytics.txt. I can’t reproduce this “ghost counts” using deepstream sample videos.
as you know, the analysis is based on the decteion and tracker, if there is crosssing event, there should be a detection at least.
you don’t have an access to the video recording? you can check the video directly if there are something passed.
to verify this, you can save the object when there is a crossing event. specifically you can use nvds_obj_enc_process to save the object when meta->objLCCumCnt increases, please refer to the sample \opt\nvidia\deepstream\deepstream-6.2\sources\apps\sample_apps\deepstream-image-meta-test\deepstream_image_meta_test.c