OpenCV 5.0.0

Pubblicato OpenCV 5.0.0 — una grande release della libreria open source per la visione artificiale e l'elaborazione delle immagini. Il rilascio è avvenuto 6 giugno 2026 ed è già stato contrassegnato come attuale nel repository del progetto su GitHub. OpenCV è distribuito sotto licenza Apache-2.0.

La sostanza del rilascio è il passaggio di OpenCV da "libreria classica di visione artificiale" a una piattaforma più moderna per compiti CV/AI: il progetto ha depurato le API obsolete, rielaborato il modulo di inferenza delle reti neurali, ampliato il supporto per ONNX, aggiunto funzionalità per scenari VLM/LLM e aggiornato il stack 3D/calibrazione. Gli sviluppatori descrivono OpenCV 5.0 come un ramo ora considerato stabile, mentre le nuove funzionalità verranno principalmente integrate lì.

Modifiche principali

  • Un nuovo motore di inferenza DNN.
    Nel modulo dnn è stato introdotto un nuovo motore, che coesiste con il precedente. Funziona meglio con forme tensoriali dinamiche, sottografi e le moderne capacità di ONNX. È stato dichiarato un copertura di oltre 80% delle specifiche ONNX, mentre in OpenCV 4.x si copriva meno del 23%.
    Questo è probabilmente il cambiamento principale del rilascio: OpenCV cerca di diventare non solo un'astrazione attorno ai modelli, ma un vero e proprio motore di inferenza integrato per le moderne reti neurali.

  • Scelta del motore durante il caricamento del modello.
    In cv::dnn::readNet() e funzioni correlate è stato aggiunto il parametro ENGINE_AUTO. Per impostazione predefinita, OpenCV prova prima il nuovo motore e, in caso di fallimento, torna a quello classico. Questo comportamento può essere definito anche tramite la variabile di ambiente OPENCV_FORCE_DNN_ENGINE: utilizzare il vecchio motore, il nuovo, la modalità automatica o ONNX Runtime. I vecchi progetti non sono obbligati a passare immediatamente al nuovo motore, ma i nuovi modelli possono essere gradualmente trasferiti.

  • Integrazione con ONNX Runtime.
    OpenCV può ora essere compilato con ONNX Runtime collegato. In questo modo OpenCV utilizza il proprio parser ONNX per costruire il grafo ORT, quindi non richiede il pacchetto completo di ONNX. Sono previsti parametri CMake per la compilazione: -DWITH_ONNXRUNTIME=ON e -DDOWNLOAD_ONNXRUNTIME=ON; per GPU NVIDIA — -DDOWNLOAD_ONNXRUNTIME_GPU=ON. Questa funzione sarà utile a chi ha bisogno di inferenza GPU già ora, poiché il nuovo motore DNN di OpenCV al momento funziona solo su CPU.

  • Supporto per modelli vision-language.
    Il nuovo motore DNN include tokenizer, strati di attenzione, blocchi di decodifica, post-elaborazione e cache KV necessari per eseguire i modelli VLM "out of the box". Storicamente, la libreria è stata associata all'elaborazione delle immagini, ma ora si sta avventurando nel campo dei modelli che lavorano simultaneamente con immagini e testi.

  • Il supporto GPU per il nuovo motore DNN non è ancora pronto.
    Il nuovo motore in OpenCV 5.0 funziona solo su CPU. Il supporto nativo per GPU è previsto per le prossime versioni; nel frattempo, si consiglia di utilizzare il motore classico o una build con ONNX Runtime e provider di esecuzione NVIDIA. Per l'inferenza CUDA su server o desktop, OpenCV 5.0 da solo non sostituisce i runtime specializzati.

  • Sono stati rimossi i vecchi parser Darknet e Caffe.
    Gli sviluppatori hanno rimosso i parser Darknet e Caffe, poiché la maggior parte dei modelli è già stata convertita in ONNX. TFLite rimane supportato tramite il motore classico, mentre il trasferimento al nuovo motore è pianificato per un momento successivo. OpenCV abbandona i vecchi formati e si concentra su ONNX come formato principale per lo scambio di modelli.

  • Pulisci in modo sostanziale l'API obsoleta.
    Rimosso C API OpenCV 1.x: funzioni come cvCreateMat() e le vecchie strutture come CvMat non fanno più parte dell'API principale. È stata rimossa anche la supporto per OpenVX, il modulo G-API è stato trasferito in opencv_contrib, insieme al classico modulo ML. Un cambiamento che rompe con i vecchi progetti, ma era stato a lungo previsto: la libreria si sta liberando del debito tecnico accumulato nel corso degli anni.

  • Features2D è stato rinominato in Features.
    Il modulo è stato ampliato per i moderni vettori di caratteristiche delle reti neurali. Sono stati mantenuti nel repository principale SIFT, ORB, FAST, GoodFeaturesToTrack e MSER, mentre i rilevatori e descrittori obsoleti sono stati trasferiti in opencv_contrib. Sono stati aggiunti ALIKED, DISK e il corrispondente LightGlue. OpenCV si sta chiaramente adattando ai moderni pipeline, dove le caratteristiche delle immagini vengono sempre più frequentemente estratte non da algoritmi classici, ma da reti neurali.

  • Nuovi tipi di dati in Core.
    Sono stati aggiunti CV_16BF / cv::bfloat, CV_32U, CV_64U, CV_64S e CV_Bool. È stato anche migliorato il supporto per array N-dimensionali, array 1D e scalari 0D. LAPACK è sempre disponibile: se la libreria esterna non è presente, OpenCV raccoglie un sottoinsieme minimo integrato. Le modifiche sono importanti per DNN, algoritmi numerici e compatibilità con formati di dati moderni, dove bfloat16 e tipi avanzati sono sempre più comuni.

  • È stata accelerata l'elaborazione delle immagini.
    In imgproc sono stati riprogettati warpAffine, warpPerspective e remap. I miglioramenti delle prestazioni sono dichiarati nel range dal 10% a oltre il 300% a seconda della piattaforma, delle dimensioni dell'immagine, del tipo di dati e dei flag dell'operazione.
    Questo non riguarda più il modulo AI: tali ottimizzazioni sono direttamente importanti per le attività classiche: flussi video, stabilizzazione, trasformazioni proiettive e preparazione dei dati prima dell'inferenza.

  • È stato migliorato il rendering del testo.
    Il vecchio meccanismo di rendering del testo è stato sostituito con un motore TrueType basato su STB, dotato del font variabile Rubik. È possibile collegare font personalizzati e c'è un'ampia supporto per Unicode. Tuttavia, le scritture complesse come l'arabo e il devanagari non vengono ancora visualizzate correttamente senza Harfbuzz, e le emoji colorate non sono supportate. OpenCV diventa più conveniente per la generazione di annotazioni, immagini di debug e visualizzazioni senza librerie esterne.

  • Aggiornati 3D e calibrazione delle telecamere.
    calib3d è stato suddiviso in geometry, calib, stereo e ptcloud. USAC è diventato il backend standard per la valutazione robusta della omografia, matrice essenziale/fondamentale, PnP e altri compiti. Aggiunto il pipeline di calibrazione multi-camera, supporto iniziale per la lavorazione di mesh e nuvole di punti, inclusi TSDF, ICP, importazione ed esportazione di .ply e .obj. Questo è un passo importante per la robotica, SLAM, AR/VR e sistemi multi-camera, dove la sola lavorazione 2D non è più sufficiente.

  • Riscritti esempi e documentazione.
    Esempi obsoleti rimossi, mentre quelli rimanenti sono stati aggiornati. Per gli esempi DNN viene utilizzata una raccolta comune di modelli, scaricabile tramite lo script download_models.py. Sono stati aggiunti esempi sperimentali per VLM e LDM, e la documentazione ha ricevuto un tema moderno, una ricerca rapida, una modalità chiara/scura e una navigazione migliorata. Considerando le dimensioni di questa libreria, non si tratta di un cambiamento cosmetico: documentazione chiara e esempi pratici influenzano direttamente la possibilità per gli sviluppatori di passare effettivamente a OpenCV 5.x.

In sintesi, OpenCV 5.0 non è solo un ulteriore rilascio con ottimizzazioni, ma un aggiornamento significativo in tutto: meno eredità dall'era OpenCV 1.x e maggiore orientamento verso ONNX, inferenza con reti neurali, caratteristiche moderne, elaborazione 3D e accelerazione eterogenea. Questo passaggio, tuttavia, potrebbe richiedere modifiche nei progetti più vecchi a causa dell'eliminazione dell'API C e del trasferimento di alcuni moduli in opencv_contrib.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster