
Publié OpenCV 5.0.0 — une grande version de la bibliothèque open source de vision par ordinateur et de traitement d'images. La sortie a eu lieu le 6 juin 2026 et est déjà considérée comme pertinente dans le dépôt du projet sur GitHub. OpenCV est distribué sous la licence Apache-2.0.
L'essence de cette version est le passage d'OpenCV d'une « bibliothèque classique de vision par ordinateur » à une plateforme plus moderne pour les tâches CV/IA : le projet a nettoyé l'ancienne API, retravaillé le module d'inférence de réseaux de neurones, élargi le support d'ONNX, inclus des capacités pour les scénarios VLM/LLM et mis à jour le cadre de calibration 3D. Les développeurs décrivent OpenCV 5.0 comme une branche maintenant considérée comme stable, tandis que les nouvelles fonctionnalités y seront principalement ajoutées.
Principales modifications
Un nouveau moteur d'inférence DNN.
Le module dnn a un nouveau moteur qui coexiste avec l'ancien. Il fonctionne mieux avec des formes de tenseurs dynamiques, des sous-graphes et les capacités modernes d'ONNX. Une couverture de plus de 80 % de la spécification ONNX, alors qu'OpenCV 4.x couvrait moins de 23 %.
C'est probablement le principal changement de cette version : OpenCV tente de devenir non seulement un entrepôt autour des modèles, mais un moteur d'inférence intégré complet pour les réseaux de neurones modernes.Choix du moteur lors du chargement d'un modèle.
Dans cv::dnn::readNet() et des fonctions apparentées, un paramètre ENGINE_AUTO a été ajouté. Par défaut, OpenCV essaie d'abord le nouveau moteur, puis, en cas d'échec, revient à l'ancien. Ce comportement peut également être défini via la variable d'environnement OPENCV_FORCE_DNN_ENGINE : utiliser l'ancien moteur, le nouveau, le mode automatique ou ONNX Runtime. Les anciens projets ne sont pas obligés de passer complètement au nouveau moteur immédiatement, mais les nouveaux modèles peuvent être progressivement adaptés.Intégration avec ONNX Runtime.
OpenCV peut désormais être compilé avec ONNX Runtime inclus. Ainsi, OpenCV utilise son propre parseur ONNX pour construire le graphe ORT, donc il ne nécessite pas le package complet d'ONNX. Pour la compilation, les options CMake -DWITH_ONNXRUNTIME=ON et -DDOWNLOAD_ONNXRUNTIME=ON sont prévues ; pour les GPU NVIDIA — -DDOWNLOAD_ONNXRUNTIME_GPU=ON. Cette fonction sera utile pour ceux qui ont besoin d'inférence GPU dès maintenant, car le nouveau moteur DNN d'OpenCV fonctionne pour l'instant uniquement sur CPU.Support des modèles vision-langage.
Le nouveau moteur DNN inclut des tokenizeurs, des couches d'attention, des blocs de décodage, un post-traitement et un cache KV nécessaires au démarrage des modèles VLM "prêts à l'emploi". La bibliothèque était historiquement associée au traitement d'images et s'aventure maintenant dans le domaine des modèles qui travaillent simultanément avec des images et du texte.Le support GPU du nouveau moteur DNN n'est pas encore prêt.
Le nouveau moteur dans OpenCV 5.0 fonctionne uniquement sur CPU. Le support natif des GPU est promis pour les prochaines versions ; pour le GPU, il est recommandé d'utiliser l'ancien moteur ou une build avec ONNX Runtime et les fournisseurs d'exécution NVIDIA. Pour l'inférence CUDA serveur ou desktop, OpenCV 5.0 lui-même ne remplace pas encore les runtimes spécialisés.Les anciens parseurs Darknet et Caffe ont été supprimés.
Les développeurs ont retiré les parseurs Darknet et Caffe car la plupart des modèles ont déjà été convertis en ONNX. TFLite reste disponible via l'ancien moteur, tandis que la migration vers le nouveau moteur est prévue pour plus tard. OpenCV abandonne les anciens formats en se concentrant sur ONNX comme format d'échange principal des modèles.Une grande mise à jour de l'API obsolète.
L'API C d'OpenCV 1.x a été supprimée : des fonctions comme cvCreateMat() et les anciennes structures telles que CvMat ne font plus partie de l'API principale. Le support d'OpenVX a également été supprimé, le module G-API a été déplacé vers opencv_contrib, ainsi que le module ML classique. Changement majeur pour les anciens projets, mais il était nécessaire : la bibliothèque se débarrasse de sa dette technique accumulée au fil des décennies.Features2D a été renommé en Features.
Le module a été élargi pour intégrer des vecteurs de caractéristiques modernes issus de réseaux de neurones. Les SIFT, ORB, FAST, GoodFeaturesToTrack et MSER ont été conservés dans le dépôt principal, tandis que les détecteurs et descripteurs obsolètes ont été déplacés vers opencv_contrib. ALIKED, DISK et le découpleur LightGlue ont été ajoutés. OpenCV s'adapte clairement aux pipelines modernes, où les caractéristiques des images sont de plus en plus extraites non pas par des algorithmes classiques, mais par des réseaux de neurones.Nouveaux types de données dans Core.
Ajout de CV_16BF / cv::bfloat, CV_32U, CV_64U, CV_64S et CV_Bool. Le support des tableaux N-dimensionnels, 1D et des scalaires 0D a également été amélioré. LAPACK est désormais toujours disponible : si la bibliothèque externe est absente, OpenCV compile un sous-ensemble intégré minimal. Ces changements sont importants pour DNN, les algorithmes numériques et la compatibilité avec les formats de données modernes, où bfloat16 et les types étendus deviennent de plus en plus courants.Le traitement des images a été accéléré.
Dans imgproc, warpAffine, warpPerspective et remap ont été révisés. Les améliorations de performance sont annoncées entre 10 % et plus de 300 % selon la plateforme, la taille de l'image, le type de données et les drapeaux d'opération.
Ce n'est plus seulement une question de module AI – de telles optimisations sont directement importantes pour des tâches classiques : flux vidéo, stabilisation, transformations projectives et préparation des données avant l'inférence.La sortie de texte a été améliorée.
L'ancien mécanisme de rendu de texte a été remplacé par un moteur TrueType basé sur STB avec une police variable intégrée, Rubik. Il est possible de connecter des polices personnalisées, et un large support Unicode a été ajouté. Cependant, les écritures complexes comme l'arabe et le devanagari sont encore mal affichées sans Harfbuzz, et les emoji colorés ne sont pas pris en charge. OpenCV devient plus pratique pour la génération d'annotations, d'images de débogage et de visualisations sans bibliothèques externes.La calibration 3D et des caméras a été mise à jour.
calib3d a été divisé en geometry, calib, stereo et ptcloud. USAC est devenu le backend standard pour l'évaluation robuste de l'homographie, de la matrice essentielle/fondamentale, PnP et d'autres tâches. Un pipeline de calibration multi-caméras a été ajouté, avec un support initial pour le traitement de maillages et nuages de points, y compris TSDF, ICP, et l'importation/exportation de .ply et .obj. C'est une étape importante pour la robotique, SLAM, AR/VR et les systèmes multi-caméras, où le simple traitement 2D ne suffit plus.Les exemples et la documentation ont été révisés.
Les exemples obsolètes ont été supprimés, et les restants ont été mis à jour. Pour les exemples DNN, une collection de modèles commune est utilisée, téléchargeable avec le script download_models.py. Des exemples expérimentaux pour VLM et LDM ont été ajoutés, et la documentation a reçu un thème moderne, une recherche rapide, un mode clair/sombre et une navigation améliorée. Pour une si grande bibliothèque, ce n’est pas un changement cosmétiques : une documentation normale et des exemples fonctionnels influencent directement si les développeurs peuvent réellement passer à OpenCV 5.x.
En fin de compte, OpenCV 5.0 n'est pas simplement une autre version avec des optimisations, mais une mise à jour significative de l'ensemble : moins d'héritage de l'époque d'OpenCV 1.x et plus d'orientation vers ONNX, l'inférence par réseau de neurones, des fonctionnalités modernes, le traitement 3D et l'accélération hétérogène. Cependant, la transition pour les anciens projets peut nécessiter des modifications en raison de la suppression de l'API C et du transfert de certains modules dans opencv_contrib.
Source : linux.org.ru
