OpenCV 5 : Nouveau moteur DNN et meilleures performances pour la vision par ordinateur

OpenCV 5

Selon cnx-software, la bibliothèque de vision par ordinateur open source OpenCV 5 vient d’être lancée avec un nouveau moteur DNN (Deep Neural Network) qui améliore la couverture ONNX tout en prenant en charge les modèles de langage de grande taille (LLM) et de vision (VLM).

Cette cinquième version de l’incontournable bibliothèque de vision par ordinateur introduit également l’accélération matérielle pour des architectures telles qu’Intel, Arm, Qualcomm et RISC-V. En plus d’une vision 3D améliorée, elle propose une multitude de nouvelles fonctions fondamentales, incluant de nouveaux types de données, un vrai support N-dimensionnel et scalaire, ainsi que des gains de performance significatifs.

OpenCV 5

Moteur DNN dans OpenCV 5 : 80 % de couverture ONNX et modèles dynamiques

OpenCV 4.x supportait environ 22 % des opérateurs ONNX, tandis que le moteur DNN d’OpenCV 5 améliore ce chiffre à plus de 80 %. Cela indique que les modèles avec des formes dynamiques, qui posaient problème dans la version 4.x, fonctionnent désormais grâce à une reconstruction du moteur autour d’un graphique d’opération typé, intégrant inférence de forme appropriée, pliage constant et fusion d’opérateurs.

Couverture ONNX OpenCV 5 vs 4
Couverture ONNX : OpenCV 4.x contre OpenCV 5

La comparaison entre OpenCV 4.x et 5 démontre des améliorations cruciales, notamment dans la représentation des modèles et la gestion des formes. Le nouveau moteur introduit une structure de graphique permettant à OpenCV 5 de symboliser et de gérer des formes dynamiques, en plus d’un support pour les sous-graphiques et une fusion accrue des opérations, entre autres.

Les utilisateurs peuvent choisir parmi quatre options de moteur pour s’assurer que les performances soient optimales et que la compatibilité soit maintenue. L’option ENGINE_CLASSIC permet de conserver l’ancien moteur, tandis que ENGINE_NEW active le moteur graphique moderne, sans GPU pour l’instant, mais des mises à jour concernant l’accélération GPU sont en cours. L’option ENGINE_AUTO teste d’abord le nouveau moteur, et ENGINE_ORT utilise un wrapper ONNX Runtime.

OpenCV 5 n’est pas seulement limité à la vision par ordinateur, il permet aussi l’exécution de grands modèles de langage directement dans le module DNN grâce à un tokenizer natif et à un cache KV, simplifiant l’utilisation simultanée de tâches de vision et de langage.

Cette capacité à gérer divers modèles d’IA générative et de vision témoigne d’un véritable potentiel pour les développeurs d’adopter OpenCV 5 dans leurs projets.

Modèle OpenCV 5 activé par le nouveau DNN

Performance DNN : OpenCV 5 sur Core i9-14900KS vs ONNX runtime

Les performances du moteur DNN d’OpenCV 5 semblent très prometteuses, comme l’indiquent les résultats de benchmarks comparatifs réalisés sur une machine disposant d’un Intel Core i9-14900KS fonctionnant sous Ubuntu 24.04 LTS. Les temps de traitement pour divers modèles sont significativement inférieurs par rapport à ceux enregistrés avec le runtime ONNX, avec des gains variés selon les modèles.

Modèle OpenCV 5 DNN (ms) Durée d’exécution ONNX (ms) Différence
XFeat 6.56 8.61 31,25 % plus rapide
YOLOv8n 10.9 12h15 11,5 % plus rapide
YOLOX-S 23h46 25.16 7,24 % plus rapide
DINov2 petit 23.78 29.58 24,4 % plus rapide
RF-DETR 102.01 106.49 4,4 % plus rapide
OWLv2 1 090 1 489 36,6 % plus rapide
BiRefNet 7 178 9 503,14 32,4 % plus rapide

Pour des benchmarks supplémentaires, le wiki GitHub est une excellente ressource.

Améliorations techniques : jusqu’à 2x plus de performances et support N-dimensionnel

OpenCV 5 n’offre pas que des avancées en matière de Deep Learning. La fondation propose également plusieurs améliorations au sein de son noyau. Parmi les ajouts notables, on trouve des types de données améliorés tels que FP16 et BF16, un support authentique pour les dimensions N et scalaires ainsi que des performances pouvant atteindre deux fois le rendement sur des charges de travail mathématiques. Le même code peut être exécuté sur divers processeurs et accélérateurs sans investissements supplémentaires.

De plus, la bibliothèque a été mise à jour pour inclure des nettoyages au niveau de son langage : l’ancienne API C est désormais obsolète, C++17 est la norme minimale recommandée, avec des modules C++20 à venir pour les futures versions. Les utilisateurs de Python bénéficieront également d’une prise en charge améliorée de NumPy et de la possibilité d’utiliser des arguments nommés pour des méthodes, rendant l’appel aux algorithmes plus intuitif.

Accélération matérielle : 3-4x de performance sur Arm avec HAL repensée

OpenCV 5 offre une couche d’accélération matérielle (HAL) renforcée, utilisant Universal Intrinsics 2.0, pouvant s’adapter à des ensembles de instructions comme SSE, AVX2/512, NEON, SVE, et RVV. Cette mise à jour prend en charge plusieurs accélérateurs, y compris :

Pour Intel, le partenariat avec IPP (IPPICV) a permis une restructuration, offrant des optimisations pour le filtrage et la conversion des couleurs. La version pour Arm (KleidiCV) améliore considérablement les performances en utilisant NEON et SVE, faisant état d’accélérations de 3 à 4 fois sur certaines opérations. De plus, Qualcomm tire parti de FastCV pour optimiser les performances sur les plateformes Snapdragon. Enfin, la prise en charge vectorielle de RISC-V a été développée, principalement pour OpenCV China.

Le code reste identique à travers les différents matériels et OpenCV sélectionne automatiquement les meilleures voies selon l’architecture disponible.

Vision 3D optimisée : support multi-caméras et algorithmes avancés

La vision 3D dans OpenCV 5 introduit de nouvelles capacités avec un support pour l’étalonnage multi-caméras, les nuages de points et les E/S maillées. Trois modules fondamentaux sont proposés :

Le module 3D offre des fonctions de géométrie et de vision 3D, avec des algorithmes comme ICP. Le module calib s’occupe de l’étalonnage des caméras et du pipeline multi-caméras refondé. En ce qui concerne le module stéréo, il fournit des informations de profondeur.

Ces développements sont perçus comme une amélioration majeure pour les professionnels dans le domaine de la robotique, de la reconstruction et du suivi des mouvements.

Pour en savoir plus sur OpenCV 5, il est conseillé de consulter l’annonce officielle ainsi que la documentation mise à jour sur leur site. La version pip d’OpenCV 5 sera probablement lancée le 8 juin, mais il est recommandé de compiler la bibliothèque à partir des sources pour l’instant.

  • Moteur Hors-Bord thermique à 4 temps 5-60CV | Aiqidi (8CV, Arbre Court)
  • Moteur à Essence 7,5CV 4 Temps 212CM3 OHV, Vilebrequin de 20MM, Moteur à Cart, Moteur Stationnaire avec Fonction d'Avertissement d'Huile Refroidi par Air pour Pompe Générateur Tondeuse Kart