
Pubblicato OpenCV 5.0.0 — un'importante pubblicazione della biblioteca open source per la visione artificiale e l'elaborazione delle immagini. Il rilascio è avvenuto 6 giugno 2026 ed è già stato riconosciuto come pertinente nel repository del progetto su GitHub. OpenCV è distribuito sotto licenza Apache-2.0.
Il succo del rilascio è la transizione di OpenCV da "classica biblioteca di visione artificiale" a una piattaforma più moderna per compiti di CV/AI: il progetto ha ripulito le API obsolete, rielaborato il modulo di inferenza delle reti neurali, ampliato il supporto per ONNX, ha preparato il terreno per scenari VLM/LLM e aggiornato lo stack 3D/calibrazione. Gli sviluppatori descrivono OpenCV 5.0 come un ramo che ora è anch'esso considerato stabile, e le nuove funzionalità arriveranno principalmente lì.
Modifiche principali
Nuovo motore di inferenza DNN.
Nel modulo dnn è comparso un nuovo motore, che coesiste con il vecchio. Funziona meglio con forme di tensori dinamiche, sottogruppi e le moderne possibilità di ONNX. È stato dichiarato un supporto per oltre l'80% delle specifiche ONNX, mentre in OpenCV 4.x era meno del 23%.
Questo è probabilmente il principale cambiamento del rilascio: OpenCV cerca di diventare non solo un wrapper attorno ai modelli, ma un vero e proprio motore di inferenza integrato per le moderne reti neurali.Scelta del motore al caricamento del modello.
In cv::dnn::readNet() e nelle funzioni correlate è comparso il parametro ENGINE_AUTO. Per impostazione predefinita, OpenCV prova prima il nuovo motore e, in caso di fallimento, torna al classico. Il comportamento può essere anche impostato tramite la variabile ambientale OPENCV_FORCE_DNN_ENGINE: utilizzare il vecchio motore, il nuovo, la modalità automatica o ONNX Runtime. I vecchi progetti non sono obbligati a passare subito al nuovo motore, ma i nuovi modelli possono essere gradualmente adattati ad esso.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 l'intero pacchetto ONNX. Per la compilazione sono previsti i parametri CMake -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 finora funziona solo su CPU.Supporto per modelli vision-language.
Il nuovo motore DNN include tokenizzatori, strati di attenzione, blocchi di decodifica, post-elaborazione e cache KV necessari per eseguire i modelli VLM "out of the box". La libreria è storicamente associata all'elaborazione delle immagini e ora si sta addentrando nel campo dei modelli che lavorano contemporaneamente con immagini e testo.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 in versioni future; nel frattempo, per GPU si consiglia di utilizzare il motore classico o una build con ONNX Runtime e NVIDIA execution providers. Per l'inferenza CUDA su server o desktop, OpenCV 5.0 da solo non sostituisce i runtime specializzati.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 per ora tramite il motore classico, mentre il trasferimento al nuovo motore è pianificato per un secondo momento. OpenCV abbandona i vecchi formati concentrandosi su ONNX come principale formato di scambio dei modelli.Ampia pulizia dell'API obsoleta.
Rimosso l'API C di OpenCV 1.x: funzioni come cvCreateMat() e le vecchie strutture come CvMat non fanno più parte dell'API principale. È stato rimosso anche il supporto per OpenVX, il modulo G-API è stato spostato in opencv_contrib, dove è stato allocato anche il modulo ML classico. Un cambiamento dirompente per i vecchi progetti, ma era necessario: la libreria si sta liberando del debito tecnico accumulato in decenni.Features2D è stato rinominato in Features.
Il modulo è stato espanso per i moderni vettori di caratteristiche dai reti neurali. Nel repository principale sono rimasti SIFT, ORB, FAST, GoodFeaturesToTrack e MSER, mentre i detector e descrittori obsoleti sono stati spostati in opencv_contrib. Sono stati aggiunti ALIKED, DISK e il corrispondente LightGlue. OpenCV si adatta chiaramente ai moderni flussi di lavoro, dove le caratteristiche delle immagini vengono sempre più spesso estratte non da algoritmi classici, ma da reti neurali.Nuovi tipi di dati in Core.
Aggiunti CV_16BF / cv::bfloat, CV_32U, CV_64U, CV_64S e CV_Bool. Migliorato anche il supporto per array N-dimensionali, array 1D e scalari 0D. LAPACK ora è sempre disponibile: se la libreria esterna non è presente, OpenCV raccoglie un sottogruppo minimo incorporato. Le modifiche sono importanti per DNN, algoritmi numerici e compatibilità con i formati di dati moderni, dove bfloat16 e tipi estesi sono sempre più frequenti.Accelerata l'elaborazione delle immagini.
In imgproc sono stati rielaborati warpAffine, warpPerspective e remap. I miglioramenti delle prestazioni dichiarati variano dal 10% a oltre il 300% a seconda della piattaforma, delle dimensioni dell'immagine, del tipo di dati e dei flag dell'operazione.
Non si tratta più di un modulo AI: tali ottimizzazioni sono direttamente importanti per i compiti classici: flussi video, stabilizzazione, trasformazioni proiettivo e preparazione dei dati prima dell'inferenza.Migliorata l'uscita del testo.
Il vecchio meccanismo di rendering del testo è stato sostituito con un motore TrueType basato su STB con un font variabile integrato di Rubik. È possibile collegare font personalizzati e c'è un'ampia compatibilità con Unicode. Tuttavia, le scritture complesse come quella araba e devanagari al momento vengono visualizzate in modo errato senza Harfbuzz, e le emoji a colori non sono supportate. OpenCV diventa più comodo per la generazione di annotazioni, immagini di debug e visualizzazioni senza librerie esterne.Aggiornati i 3D e la calibrazione delle telecamere.
calib3d è stato suddiviso in geometry, calib, stereo e ptcloud. USAC è diventato il backend standard per la valutazione robusta dell'omografia, della matrice essenziale/fondamentale, del PnP e di altri compiti. Aggiunto un pipeline per la calibrazione multi-camera, supporto iniziale per l'elaborazione di mesh e nuvole di punti, incluso TSDF, ICP, importazione e esportazione di .ply e .obj. Questo è un passo importante per la robotica, SLAM, AR/VR e sistemi multi-camera, dove la sola elaborazione 2D è ormai inadeguata.Rielaborati esempi e documentazione.
Esempi obsoleti rimossi, quelli rimanenti aggiornati. Per gli esempi DNN si utilizza una collezione di modelli condivisa che può essere scaricata tramite lo script download_models.py. Aggiunti esempi sperimentali per VLM e LDM, e la documentazione ha ricevuto un tema moderno, ricerca rapida, modalità chiara/scura e navigazione migliorata. Per una libreria così grande, questo non è un cambiamento cosmetico: una documentazione normale e esempi funzionanti influenzano direttamente se gli sviluppatori possono effettivamente passare a OpenCV 5.x.
In conclusione, OpenCV 5.0 non è semplicemente una nuova versione con ottimizzazioni, ma un aggiornamento significativo di tutto: meno eredità dall'era di OpenCV 1.x e maggiore orientamento verso ONNX, inferenza di rete neurale, caratteristiche moderne, elaborazione 3D e accelerazione eterogenea. Tuttavia, il passaggio per i vecchi progetti potrebbe richiedere modifiche a causa della rimozione dell'API C e del trasferimento di alcuni moduli in opencv_contrib.
Fonte: linux.org.ru
