OpenCV 4.0 et 4.1 - quoi de neuf?



Nous revenons à l'histoire de la bibliothèque open source de vision par ordinateur OpenCV . Le projet vit et se développe, animé par une équipe de développeurs travaillant chez Intel, ainsi que par un support communautaire durable. Fin 2018, la première version stable de la branche 4.x a été publiée, et il y a tout juste un mois, une nouvelle mise à jour a été publiée - la version 4.1. Nous avons demandé aux auteurs de la bibliothèque de lister brièvement les nouveautés apportées par ces deux versions à la fonctionnalité OpenCV.

Opencv 4.0


La sortie d'OpenCV 4.0 a terminé le cycle de vie de la version 3.x - pour corriger les erreurs et les améliorations mineures, une branche 3.4 a été créée, à partir de laquelle des versions mineures 3.4.x seront déjà créées (similaire à 2.4.x).

Opencv 4.0 final

  • OpenCV est maintenant une bibliothèque C ++ 11 et nécessite un compilateur compatible C ++ 11;
  • De nombreuses fonctions de l'API C obsolète (d'OpenCV 1.0) ont été supprimées, les anciennes constantes et déclarations de fonction ont été déplacées vers des fichiers d'en-tête séparés ( imgproc_c.h ) et devraient désormais être incluses explicitement par l'utilisateur ( #include <opencv / imgproc / imgproc_c.h> );
  • Tous les modules CUDA ont été portés vers le référentiel opencv_contrib ;
  • L'API de persistance pour écrire et lire des données dans un fichier a été réécrite en C ++, les anciennes fonctions ont été supprimées;
  • Un nouveau module G-API a été ajouté, qui vous permet de créer des graphiques à partir d'opérations sur les images et de leur appliquer diverses optimisations;
  • Ajout de la prise en charge du Deep Learning Deployment Toolkit (y compris les versions opensource ) au module dnn , y compris l'utilisation de Intel Movidius Neural Compute Stick ou Intel Neural Compute Stick 2 sur Raspberri Pi 3 ;
  • La prise en charge des réseaux au format ONNX (Open Neural Network Exchange) a été ajoutée au module dnn ;
  • Ajout d'un support expérimental pour les calculs via Vulkan au module dnn;
  • La mise en œuvre de l'algorithme en temps réel pour le traitement des scènes / modèles 3D de KinectFusion (avec optimisation pour CPU et GPU / OpenCL) a été ajoutée ;
  • La prise en charge de la détection et du décodage des codes QR a été ajoutée au module objdetect (le décodeur utilise la bibliothèque QUirc) - cet été, dans le cadre du stage d'été, des travaux seront effectués pour améliorer la qualité et, éventuellement, le mode de détection-décodage simultané de plus d'un code QR dans l'image sera ajouté.
  • Un algorithme de flux optique DIS très efficace et en même temps de haute précision a été transféré d' opencv_contrib au module vidéo du référentiel principal.

Opencv 4.1


  • Ajout d'implémentations optimisées pour la répartition de nombreux algorithmes dans les modules core et imgproc ;
  • Améliorations du module dnn :
    • Prise en charge du lancement de réseaux sur Intel Neural Compute Stick 2 (en utilisant DLDT);
    • Consommation de mémoire maximale réduite, prise en charge de nombreux nouveaux réseaux de TensorFlow
  • Le module Videoio ajoute la prise en charge de l' API Android Media NDK pour la lecture de fichiers / flux vidéo sur les appareils Android à partir de code C ++ (utile pour tester les algorithmes);
  • Un nouveau module d'analyse de la qualité d'image ( opencv_contrib / quality ) a été ajouté . Il implémente à la fois des algorithmes de base (PSNR, SSIM) et de nouveaux algorithmes spécialisés (comme l'algorithme d'évaluation de la qualité sans utiliser les images BRISQUE originales - Blind / Referenceless Image Spatial Quality Evaluator);
  • Implémentation de plusieurs nouveaux algorithmes: flux optique local robuste, stéréo quasi dense, calibrage de la caméra attaché au manipulateur (main-œil);

Plus d'informations sur la bibliothèque peuvent être trouvées sur le site du projet, qui a changé au-delà de la reconnaissance.

Le nombre de correctifs de 4.0.0 à 4.1.0: 462 (environ 5,3 correctifs par jour, hors week-end et jours fériés). Il y a de nombreux changements, comme vous le voyez, et ils sont importants. Si vous avez des questions sur la fonctionnalité intégrée ou, au contraire, sur la fonctionnalité non implémentée, bienvenue dans les commentaires, les développeurs d'OpenCV essaieront d'y répondre.

Source: https://habr.com/ru/post/fr452790/


All Articles