108 lines
2.2 KiB
Markdown
108 lines
2.2 KiB
Markdown
# Aggiornamento 2026-05-18 15:42
|
|
|
|
## Obiettivo
|
|
|
|
Ripristinare OpenCV con supporto CUDA, come nel setup precedente basato sulle wheel `cudawarped/opencv-python-cuda-wheels`.
|
|
|
|
## Situazione iniziale
|
|
|
|
Dopo la reinstallazione per riavere le finestre OpenCV, lo stato era:
|
|
|
|
```text
|
|
OpenCV GUI: WIN32UI
|
|
OpenCV CUDA devices: 0
|
|
```
|
|
|
|
Quindi la GUI era tornata, ma CUDA no.
|
|
|
|
## Installazione wheel CUDA
|
|
|
|
Installata la wheel:
|
|
|
|
```text
|
|
https://github.com/cudawarped/opencv-python-cuda-wheels/releases/download/4.12.0.88/opencv_contrib_python-4.12.0.88-cp37-abi3-win_amd64.whl
|
|
```
|
|
|
|
Motivo della scelta:
|
|
|
|
- il sistema ha CUDA Toolkit `v12.9`;
|
|
- la release `4.12.0.88` e' compilata contro CUDA `12.9`;
|
|
- la RTX 3050 ha compute capability `(8, 6)`, supportata dalla wheel.
|
|
|
|
## Correzione config.py
|
|
|
|
Dopo l'installazione, `import cv2` falliva per DLL mancanti.
|
|
|
|
Aggiornato:
|
|
|
|
```text
|
|
C:\Python313\Lib\site-packages\cv2\config.py
|
|
```
|
|
|
|
Aggiunti i path alle DLL NVIDIA presenti in:
|
|
|
|
```text
|
|
C:\Python313\Lib\site-packages\nvidia\cudnn\bin
|
|
C:\Python313\Lib\site-packages\nvidia\cublas\bin
|
|
C:\Python313\Lib\site-packages\nvidia\cuda_runtime\bin
|
|
C:\Python313\Lib\site-packages\nvidia\cufft\bin
|
|
C:\Python313\Lib\site-packages\nvidia\curand\bin
|
|
C:\Python313\Lib\site-packages\nvidia\cusolver\bin
|
|
C:\Python313\Lib\site-packages\nvidia\cusparse\bin
|
|
C:\Python313\Lib\site-packages\nvidia\nvjitlink\bin
|
|
```
|
|
|
|
## Verifica OpenCV
|
|
|
|
Risultato:
|
|
|
|
```text
|
|
cv2 4.12.0
|
|
GUI: WIN32UI
|
|
NVIDIA CUDA: YES (ver 12.9.86, CUFFT CUBLAS NVCUVID NVCUVENC)
|
|
cuDNN: YES (ver 9.10.2)
|
|
cuda devices: 1
|
|
gpu resize: OK
|
|
namedWindow: OK
|
|
```
|
|
|
|
Quindi OpenCV ora ha sia GUI sia CUDA.
|
|
|
|
## Stato GPU complessivo
|
|
|
|
YOLO / Ultralytics:
|
|
|
|
```text
|
|
torch_cuda True
|
|
NVIDIA GeForce RTX 3050
|
|
```
|
|
|
|
OpenCV:
|
|
|
|
```text
|
|
CUDA attivo
|
|
cuda devices 1
|
|
```
|
|
|
|
PaddleOCR:
|
|
|
|
```text
|
|
paddle 3.3.1
|
|
cuda False
|
|
device cpu
|
|
```
|
|
|
|
PaddleOCR resta volutamente nel virtualenv CPU per evitare il problema precedente sulle DLL/cuDNN Paddle GPU.
|
|
|
|
## Nota operativa
|
|
|
|
Ora ha senso lavorare sui target:
|
|
|
|
```text
|
|
preview/acquisizione: 24 fps
|
|
YOLO: circa 14-15 fps
|
|
OCR/WMS: asincrono, non deve bloccare la preview
|
|
```
|
|
|
|
OpenCV CUDA non accelera automaticamente tutto il codice: serve usare esplicitamente funzioni `cv2.cuda.*` nei punti in cui conviene. Pero' ora la base CUDA e' disponibile.
|