• Hardware Platform (Jetson / GPU) = Jetson Xavier Nx
• DeepStream Version = 6.1.1
• JetPack Version (valid for Jetson only) = 35.1.0
• TensorRT Version = 8.4.1.5
• CUDA Version (valid for GPU only) = 11.4
• Issue Type( questions, new requirements, bugs) = Question
Hi fellow community members,
I am using the python binding of Deepstream to perform detection and tracking on a video.
For detection, I am using the custom YOLOv5 model and for tracking, I am using the Deepstream plugin.
(I am using this repo NVIDIA DeepStream SDK 6.1 / 6.0.1 / 6.0 configuration for YOLO-v5 & YOLO-v7 models · GitHub to perform detection and tracking using the Deepstream pipeline).
I can observe the seamless detection of vehicles with corresponding tracking ID on the display window as shown below.
My Target
I want to accomplish 3-level detection i.e., vehicle detector → license plate detector → license plate character detector.
My primary detector (pgie) is the vehicle detector and therefore, in its config-file, I have set → gie-unique-id=1.
My secondary detector (sgie1) is the license plate detector and it operates on the output of pgie, and therefore, in its config-file, I have set → gie-unique-id=2 and operate-on-gie-id=1; this implies that my sgie1 only does detection on the crops/output of pgie and till here all the steps are successful as we can see on the diagram above. I can see bounding boxes on the vehicles (pgie) and then on top of that license plate is also detected (sgie1).
My Challenge
My program fails when I try to implement one more detector on top of the license plate detector.
My third detector (sgie2) is an object detector trained on the characters of the license plate.
In the config file of sgie2, I have set → gie-unique-id=3 and operate-on-gie-id=2, i.e., sgie2 should operate on the output of sgie1.
This works well for like a few seconds and I can see even the characters on the screen as shown in the following diagram, but the program soon crashes after 3-4 seconds.
As you can see in the diagram, on top of license plate detector (sgie1), works the character detector (sgie2).
But after 3-4 seconds the program crashes.
I am attaching the crash_log.txt which has the error message from the terminal after my program crashes.
I am also attaching the config_file of pgie, sgie1 and sgie2, so that you can take a look at it and let me know if I can improve something there.
Note: For license plate detetcion and character detection, I am using the same model file but different config files. In the license plate config file, I ma filtering out all the classes belonging to characters, and in the config file of characters, I am filtering-out the class ID belonging to license plate.
Looking forward to your insights.
Thank you.
crash_log.txt (26.5 KB)
config_pgie_vehicle.txt (1.6 KB)
config_sgie1_LP.txt (897 Bytes)
config_sgie2_characters.txt (1.1 KB)
Edit
After researching a bit more about my error, I found that my error is similar to this Limitation of VIC Configuration failed image scale factor - #4 by srsjd
Here, the suggestion is to change scaling compute-hw to gpu.
I added this line in “config_pgie_vehicle.txt” → scaling-compute-hw=1. Doing so, results an error in my terminal during program run. The error is → Unknown key ‘scaling-compute-hw’ for group [property].
Please put forth your suggestions on how may I solve this.
Thank you.