Blue Iris and CodeProject.AI ALPR

Thank you very much. So does this mean that the CUDA special sauce isn't in play?
Is the custom model for the ALPR "license-plate"?
 
Last edited:
Again thanks for the pointers. I have the License Plate Reader module installed

Module 'License Plate Reader' 3.3.4 (ID: ALPR)
Valid: True
Module Path: <root>\modules\ALPR
Module Location: Internal
AutoStart: True
Queue: alpr_queue
Runtime: python3.9
Runtime Location: Local
FilePath: ALPR_adapter.py
Start pause: 3 sec
Parallelism: 0
LogVerbosity:
Platforms: all,!windows-arm64
GPU Libraries: installed if available
GPU: use if supported
Accelerator:
Half Precision: enable
Environment Variables
AUTO_PLATE_ROTATE = True
CROPPED_PLATE_DIR = <root>\Server\wwwroot
MIN_COMPUTE_CAPABILITY = 6
MIN_CUDNN_VERSION = 7
OCR_OPTIMAL_CHARACTER_HEIGHT = 60
OCR_OPTIMAL_CHARACTER_WIDTH = 30
OCR_OPTIMIZATION = True
PLATE_CONFIDENCE = 0.55
PLATE_RESCALE_FACTOR = 2
PLATE_ROTATE_DEG = 0
REMOVE_SPACES = False
ROOT_PATH = <root>
SAVE_CROPPED_PLATE = False
Status Data: {
"inferenceDevice": "GPU",
"inferenceLibrary": "CUDA",
"canUseGPU": "true",
"successfulInferences": 0,
"failedInferences": 0,
"numInferences": 0,
"averageInferenceMs": 0
}
Started: 25 Sep 2025 6:00:10 PM Pacific Standard Time
LastSeen: 25 Sep 2025 6:20:27 PM Pacific Standard Time
Status: Started
Requests: 0 (includes status calls)



Installation Log
2025-09-25 13:15:47: Installing CodeProject.AI Analysis Module
2025-09-25 13:15:47: ======================================================================
2025-09-25 13:15:47: CodeProject.AI Installer
2025-09-25 13:15:47: ======================================================================
2025-09-25 13:15:48: 1646.6Gb of 1906Gb available on (No label) (Windows 11 x86_64 - windows)
2025-09-25 13:15:48: General CodeProject.AI setup
2025-09-25 13:15:48: Checking for VC++ Redist...v14 Present.
2025-09-25 13:15:48: Creating Directories...done
2025-09-25 13:15:48: GPU support
2025-09-25 13:15:49: CUDA Present...Yes (CUDA 12.2, No cuDNN found, CUDA Toolkit: true)
2025-09-25 13:15:49: ROCm Present...No
2025-09-25 13:15:49: Checking for .NET 9.0...Checking runtimes...All good. Found .NET aspnetcore 9
2025-09-25 13:15:50: Reading ALPR settings.......done
2025-09-25 13:15:50: Installing module License Plate Reader 3.3.4 (Internal)
2025-09-25 13:15:50: Installing Python 3.9
2025-09-25 13:15:50: Python 3.9 is already installed
2025-09-25 13:15:55: Creating Virtual Environment (Local)...done
2025-09-25 13:15:55: Confirming we have Python 3.9 in our virtual environment...present
2025-09-25 13:15:55: Downloading ALPR models...already exists...Expanding...done.
2025-09-25 13:15:55: Copying contents of ocr-en-pp_ocrv4-paddle.zip to paddleocr...done
2025-09-25 13:15:57: Checking CPU compatibility...All good
2025-09-25 13:15:57: Installing Python packages for License Plate Reader
2025-09-25 13:15:57: [0;Installing GPU-enabled libraries: If available
2025-09-25 13:15:58: Ensuring Python package manager (pip) is installed...done
2025-09-25 13:16:05: Ensuring Python package manager (pip) is up to date...done
2025-09-25 13:16:05: Python packages specified by requirements.windows.cuda12.txt
2025-09-25 13:16:10: - Installing NumPy, a package for scientific computing...(✅ checked) done
2025-09-25 13:16:41: - Installing PaddlePaddle, Parallel Distributed Deep Learning...(✅ checked) done
2025-09-25 13:17:36: - Installing PaddleOCR, the OCR toolkit based on PaddlePaddle...(✅ checked) done
2025-09-25 13:17:37: - Installing imutils, the image utilities library...(✅ checked) done
2025-09-25 13:17:43: - Installing the CodeProject.AI SDK...(✅ checked) done
2025-09-25 13:17:43: Scanning modulesettings for downloadable models...No models specified
2025-09-25 13:17:43: Executing post-install script for License Plate Reader
2025-09-25 13:17:52: Traceback (most recent call last):
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR_adapter.py", line 105, in
2025-09-25 13:17:52: ALPR_adapter().start_loop()
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python39\venv\lib\site-packages\codeproject_ai_sdk\module_runner.py", line 278, in start_loop
2025-09-25 13:17:52: self.initialise()
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR_adapter.py", line 43, in initialise
2025-09-25 13:17:52: init_detect_platenumber(self.opts)
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\ALPR.py", line 40, in init_detect_platenumber
2025-09-25 13:17:52: ocr = PaddleOCR(lang = opts.language,
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python39\venv\lib\site-packages\paddleocr\pipelines\ocr.py", line 163, in __init_
2025-09-25 13:17:52: super().init(**base_params)
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python39\venv\lib\site-packages\paddleocr\pipelines\base.py", line 63, in __init_
2025-09-25 13:17:52: self._common_args = parse_common_args(
2025-09-25 13:17:52: File "C:\Program Files\CodeProject\AI\modules\ALPR\bin\windows\python39\venv\lib\site-packages\paddleocr\_common_args.py", line 43, in parse_common_args
2025-09-25 13:17:52: raise ValueError(f"Unknown argument: {name}")
2025-09-25 13:17:52: ValueError: Unknown argument: use_gpu
2025-09-25 13:17:52: Self test: Self-test failed
2025-09-25 13:17:52: Module setup time 00:02:03.54
2025-09-25 13:17:52: Setup complete
2025-09-25 13:17:52: Total setup time 00:02:05.07
2025-09-25 13:17:52: SETUP FAILED:
2025-09-25 13:17:52: - [ALPR] Self test failed

And here is the BI settings. It looks like the Self test failed
1758849575472.png


I had DayPlate in the To confirm before, but changed it it "*" after looking at another set up. I think you had mentioned using the use Main stream for plate readers as I was getting this

1758849895703.png


Do I need "Get your API key from Plate Recognizer"
 
Thanks for the help. It looks like you took the image that I uploaded and then put it through CPAI. I have never seen that before which is cool! One thing you might have missed is that CPAI gave this a confirmation for the DayPlate. I guess I assumed that if it does this then it should be able to "read" the plate. I might not have uploaded the image where it thought i (but I would think it should given it was from the AI inspector, but it does not have the orange outline in the image). This camera at this setting has worked in the past, but we had a crash on our machine and had to start from scratch and didn't have any of the info about how we set it up in the past so here we are trying again.

Could the image you use not be as high resolution as what is produced at the camera given I uploaded to a forum? Did you have a camera in the past that didn't work and you zoomed in and then it did? It looks like you used Yolo5.NET but it looks like this used ALPR module. Is that a correct comparison? Really appreciate the time you took to look into this and point me in the right direction.
 
Thanks for the help. It looks like you took the image that I uploaded and then put it through CPAI. I have never seen that before which is cool! One thing you might have missed is that CPAI gave this a confirmation for the DayPlate. I guess I assumed that if it does this then it should be able to "read" the plate. I might not have uploaded the image where it thought i (but I would think it should given it was from the AI inspector, but it does not have the orange outline in the image). This camera at this setting has worked in the past, but we had a crash on our machine and had to start from scratch and didn't have any of the info about how we set it up in the past so here we are trying again.

Could the image you use not be as high resolution as what is produced at the camera given I uploaded to a forum? Did you have a camera in the past that didn't work and you zoomed in and then it did? It looks like you used Yolo5.NET but it looks like this used ALPR module. Is that a correct comparison? Really appreciate the time you took to look into this and point me in the right direction.

To reliably capture plates, most of us have the camera optically set to where the field of view is not much bigger than the size of a vehicle.

The bigger the plate in the field of view, the better the chances.

Your field of view is just too wide. Sure you might catch some, but it will drop even more at night.
 
  • Like
Reactions: Vettester
One thing you might have missed is that CPAI gave this a confirmation for the DayPlate
That is because you have the custom license-plate model enabled . This will only tell you if a license plate was detected (DayPlate/NightPlate), it does not read the plate. It is not needed if you are doing ALPR.
 
Thanks so much for the help. I have zoomed in the image and will test it out today. Do the BI settings for this look correct? I have the ALPR module running in CAPI. Do I need to run the custom license plate model or should I just leave it open for this camera in BI? Is the alert confirmation correct? Much appreciate the pointers. This system with this camera right were it is worked every time in the past so I think it is just getting the setting correct.