The ALPR errors you are getting looks like you do not have CUDA installed correctly. You should be using CUDA 11.8 and cuDNN v8.9.1I'm having a hell of a time trying to get BI to send in the correct frame to CPAI ALPR. I have a fairly tight shot of cars driving by. They are in the frame for just under 1 second. An example:
View attachment 163197
What I'm finding is that BI is either sending the frames too early (only part of the car is visible) or is sending the frames too late and the car has moved out of the FOV so I'm getting nearly 100% of "nothing found" judging by me looking at the saved Hi-Res alert images. It's just alert images of an empty road most of time. I've played with trying to send it more/less images on the "+ real-time images" area of the AI trigger in BI. I've also played with the "analyze each one" time settings. I've increased/decreased them. It seems like it's a bit too complicated that we have to try and "time/calculate" what frames we think we need to send from BI to CPAI. Shouldn't there be an option to send every frame from the trigger in for analysis? The BI manual seems to state that is possible on page 86 but I don't see any option to select that anywhere.
I'm also finding that when I have two cars coming through, on the off chance BI sends in the correct frame to CPAI of the first car and it actually finds the plate, the alert is moved to confirmed and the second car following closely behind the first car is never analyzed.
I also seem to be getting lots of this in the CPAI Dashboard when running ALPR:
Code:08:06:14:ALPR_adapter.py: [2023/05/16 08:06:14] ppocr WARNING: Since the angle classifier is not initialized, the angle classifier will not be uesd during the forward process 08:06:14:License Plate Reader: [AttributeError] : Traceback (most recent call last): File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR.py", line 227, in read_plate_chars_PaddleOCR ocr_response = ocr.ocr(image, cls=True) File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python37\venv\lib\site-packages\paddleocr\paddleocr.py", line 555, in ocr dt_boxes, rec_res, _ = self.__call__(img, cls) File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python37\venv\lib\site-packages\paddleocr\tools\infer\predict_system.py", line 71, in __call__ dt_boxes, elapse = self.text_detector(img) File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python37\venv\lib\site-packages\paddleocr\tools\infer\predict_det.py", line 244, in __call__ self.input_tensor.copy_from_cpu(img) File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python37\venv\lib\site-packages\paddle\fluid\inference\wrapper.py", line 36, in tensor_copy_from_cpu self.copy_from_cpu_bind(data) RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_8.dll) that Paddle depends on is not configured correctly. (error code is 126) Suggestions: 1. Check if the third-party dynamic library (e.g. CUDA, CUDNN) is installed correctly and its version is matched with paddlepaddle you installed. 2. Configure third-party dynamic library environment variables as follows: - Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...` - Windows: set PATH by `set PATH=XXX; (at ..\paddle\phi\backends\dynload\dynamic_loader.cc:303) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR_adapter.py", line 40, in process result = await detect_platenumber(self, self.opts, image) File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR.py", line 181, in detect_platenumber (label, confidence, plateInferenceMs) = await read_plate_chars_PaddleOCR(module_runner, numpy_plate) File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR.py", line 278, in read_plate_chars_PaddleOCR module_runner.report_error_aync(ex, __file__) AttributeError: 'ALPR_adapter' object has no attribute 'report_error_aync'
I'm using my GTX 3070 in my desktop to perform the ALPR. BI is sending images to that computer for analysis. That message is farily frequent in the logs. I'm also getting lots of normal logs as well:
Code:08:06:14:License Plate Reader: Queue request for License Plate Reader command 'alpr' (...8718e5) took 132ms 08:06:14:Object Detection (YOLOv5 6.2): Detecting using license-plate 08:06:14:Object Detection (YOLOv5 6.2): Detecting using license-plate 08:06:14:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...3457c8) took 58ms . 08:06:14:License Plate Reader: Queue request for License Plate Reader command 'alpr' (...23cc76) took 106ms 08:06:14:Object Detection (YOLOv5 6.2): Detecting using license-plate 08:06:14:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...139ede) took 43ms 08:06:14:License Plate Reader: Queue request for License Plate Reader command 'alpr' (...7ee2ed) took 67ms 08:06:15:Object Detection (YOLOv5 6.2): Detecting using license-plate 08:06:15:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...2a3695) took 42ms 08:06:15:Object Detection (YOLOv5 6.2): Detecting using license-plate 08:06:15:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...b988c9) took 35ms 08:06:15:License Plate Reader: Queue request for License Plate Reader command 'alpr' (...c55547) took 58ms